Blockchain لمنتج مالي: لماذا تحتاجها وكيفية بنائها

ملاحظة: قد يتم عرض نماذج الأكواد بطريقة غير صحيحة بسبب تخفيض السعر. أوصي بمتابعة قراءة المقالة الأصلية على مدونتنا للتأكد من عرض جميع الأمثلة بشكل صحيح.

إنه لمن دواعي لي أن التكنولوجيا الواعدة لهذا العقد مرتبطة بالمضاربة والاحتيال المالي. هذا غريب حقًا. بدلاً من محاولة تطبيقه بشكل صحيح ، لدينا مؤتمرات وقوالب Fashion Blockchain حول ICOs ناجحة. لحسن الحظ ، هناك بعض رواد الأعمال والمهندسين الذين لديهم جرأة كافية لمحاولة تطبيق blockchain بحيث يمكن للكثيرين الاستفادة منه.

لن أتحدث عن الثورات الرقمية ونوع الأشياء "لنغير الكلمات" ، لكن بدلاً من ذلك ، سأشارك (1) أفكاري حول سبب استفادة التمويل من blockchain أكثر من أي صناعة أخرى ، و (2) ) يعلمك كيفية بناء blockchain بسيط في بيثون.

أنت لا صناعة له. من هو مستعد ل Blockchain

في معظم المقالات التي قرأتها عن "لماذا تفشل المنتجات" ، يذكر المؤلفون دائمًا ارتفاع الأسعار ، وحملات التسويق الضعيفة ، ونقص التميز في المنتجات ، واستهداف السوق الخطأ. لكن القليل منهم كتبوا أي شيء عن المنتجات التي يتم إصدارها في الوقت الخطأ. المثال الأبرز هو الإنترنت: لقد أصبح متاحًا في أوائل التسعينيات ، لكن معظم الأشخاص ، بمن فيهم رواد الأعمال ، لم يتمكنوا من معرفة كيفية تطبيقه للاستفادة منه.

لماذا حصل هذا؟ جزئيًا لأن الناس لم يكونوا مستعدين لمثل هذه الخطوة المهمة نحو العولمة ؛ جزئيًا لأن القليل منهم حاولوا دراسة كيفية استخدام الإنترنت لمصلحتهم الخاصة ، على الرغم من أن الجميع يعلمون بوجودها.

يحدث شيء من هذا القبيل في blockchain - الكثير منهم يتحدثون عن ذلك ، وفهم أقل له ، ويعرف عدد أقل منهم كيفية استخدامه. كيف وصل الأمر لأكثر من عقد وما زال لا يوجد تطبيق عالمي يعتمد على blockchain؟ لا أحد لديه الجواب على ذلك. لكننا على الأقل نعرف مكان استخدامها. دعني أشرح.

المصدر: مايكروسوفت أزور

الشخص أقل موثوقية من الجهاز. لهذا السبب احتاجت المجالات الأكثر تعرضًا للخطأ البشري (التزوير والاحتيال) إلى تقنية يمكنها استبعاد تلك العوامل. المجال الأكثر إثارة للقلق هو التمويل لأنه يتعامل مع المال ، والناس يحبون المال. نعلم جميعًا أنه في بعض الأحيان يكون من الصعب مقاومة إغراء كسب المزيد.

لهذا السبب تحاول الشركات الناشئة fintech تطبيق blockchain في التمويل - للتأكد من عدم حدوث أي احتيال. إنها سلسلة المفاتيح التي يمكنها استبعاد الأطراف الثالثة من عمليات التداول وتحسين مصادقة الأشخاص وتتبع المعاملات المالية والتأكد من أن المستند أصلي.

هذا لا يعني أن كل الشركات الناشئة في fintech تحتاج إلى blockchain. إليك اختبار بسيط.

لا تحتاج إلى blockchain إذا كان ما يلي صحيحًا بالنسبة لك:

  • ليس لديك ميزانية للتجارب. إن تطبيق blockchain دائمًا ينطوي على مخاطرة ، لذا لا يوجد ما يضمن أنك ستربح.
  • أنت محافظ. قد ينتج عن Blockchain تغييرات كبيرة في الهيكل التنظيمي ، لذلك ما لم تكن مستعدًا لذلك ، فلن أقترح ذلك.
  • تريد النتائج الآن. Blockchain هو كل شيء عن منظور طويل الأجل. لا تتوقع أي نتائج في أقل من عام.

من ناحية أخرى ، يجب أن تجرب blockchain في هذه الحالات:

  • تريد الحصول على الاستثمارات. نظرًا لأن blockchain هي كلمة طنانة ، فإنها تجذب استثمارات أكثر من أي ميزة وعدت بها.
  • تريد زيادة قدرتك التنافسية في السوق. بناء منتج مالي على blockchain سيثبت كفاءتك في المنطقة. سيؤدي هذا إلى زيادة جاذبية شركتك للمستثمرين والعملاء.
  • يمكنك تحمل التجارب. على عكس ما كتبته أعلاه ، إذا كانت ميزانيتك تسمح لك بتوظيف مطوري blockchain ولديك رؤية قوية حول منتجك المستقبلي ، فابحث عن ذلك.

الآن ، لإثبات أن blockchain ليس بهذه الصعوبة بالفعل ، سوف أعطيك إرشادات خطوة بخطوة حول كيفية بنائه.

تطبيق blockchain في fintech

"أطر" للاستخدام

CryptoNote

CryptoNote هي تقنية مفتوحة المصدر تتيح لك إنشاء الرموز. إنه يحتوي على دليل بسيط لإنشاء عملة مشفرة ، ويتطلب بدء التشغيل عقدتين تستخدمهما لتشغيل خادم Monero.

روابط مفيدة:

كيفية إنشاء رمز. ، كيفية إنشاء محفظة

Ethereum

منصة مفتوحة لإنشاء التطبيقات اللامركزية مع التركيز على تشغيل كود البرمجة. "... التطبيقات التي تعمل تمامًا كما هي مبرمجة دون أي إمكانية للتوقف أو الرقابة أو الاحتيال أو تدخل طرف ثالث."

ZeroNet

استخدم ZeroNet لإنشاء مواقع لا مركزية. يستخدم النظام آليات التحقق والتحقق من Bitcoin ، وشبكة تسليم المحتوى الموزعة من BitTorrent لإنشاء مواقع لا يمكن مراقبتها أو حظرها أو تزويرها.

كيفية إنشاء blockchain بسيط

والآن بعد أن عرفت الأدوات ، فلنقم بإنشاء سلسلة مفاتيح بسيطة. سأستخدم بيثون في هذا المثال. أولاً ، سأشرح العناصر الأساسية اللازمة لبناء كتلة.

تاريخ الخلق

إنه الوقت الحالي والوقت بتنسيق يونيكس. ستحتاج إليها لاحقًا - عندما يكون لديك العديد من العقد قيد التشغيل ، وتضيف كتلة جديدة إلى فرعك ، ستختار العقدة أي كتلة تستخدم بناءً على تاريخ الإنشاء.

مناسبة حالية

إنها مجموعة من الرموز التي نحتاج إلى إضافتها إلى الكتلة لإنشاء المجموع الاختباري الذي يناسب المتطلبات. على سبيل المثال ، إذا كانت قيمة nonce هي 5 ، فعلينا إضافة 5 أصفار (00000) إلى كتلة البيانات لحساب المجموع الاختباري الصحيح.

اختباري

إنه يحظر البيانات مع المجموع الاختباري nonce plus للكتلة السابقة. SHA256 يحمي السلسلة من إعادة كتابتها. كيف يعمل: العقدة تحسب المجموع الاختباري ومقارنة واحدة من الكتل الجديدة - إذا كانت مطابقة ، يتم إضافة كتلة إلى blockchain.

البيانات

جزء من البيانات التي سيتم تخزينها في كتلة وتوقيعها. يمكن أن يحتوي على أي نوع من البيانات: قائمة المعاملات (وليس فقط المعاملة الأخيرة) ؛ المعلومات حول الكمبيوتر الذي أنشأ الكتلة (مثل عنوان MAC الخاص به) ؛ تاريخ إنشاء مفصل (المنطقة الزمنية).

إثبات العمل

دليل العمل (PoW) هو خوارزمية إجماع فريدة في شبكة blockchain. يتم استخدامه للتحقق من صحة العمليات وإنشاء سلاسل جديدة في blockchain. تتمثل الفكرة الرئيسية لـ PoW في إضافة التعقيد إلى بناء كتلة على جانب العميل وتقليل الحمل على جانب الخادم. على سبيل المثال ، أقول أن المجموع الاختباري يجب أن يحتوي على 5 أصفار تؤدي ؛ وهذا يعني أننا سنزيد من nonce حتى يحتوي المجموع الاختباري على 5 أصفار من الرصاص.

لنبدأ برمز

أولاً ، سأقوم بإنشاء فصل للكتلة. ستكون فئة بسيطة جدًا مع مُنشئ - طريقة لحساب المجموع الاختباري والممتلكات للتحقق من صحة الكتلة. سيكون لدينا ثوابتان ، أحدهما بالنسبة لعدد الأصفار الرصاصية في المجموع الاختباري والثاني لتحديد الرمز الذي سنستخدمه مع علامة nonce.

وقت الاستيراد
من hashlib استيراد sha256
 
كتلة الصف:
    CHECKSUM_LEAD_ZEROS = 5
    NONCE_SYMBOL = 'Z'
 
    def __init __ (self، prev_block، data):
        self._prev_block = prev_block
        self.data = البيانات
        self.checksum = لا شيء
        self.nonce = 0
        self.timestamp = time.time ()
 
    @خاصية
    def is_valid (self):
        المجموع الاختباري = self.calculate_checksum ()
 
        إرجاع (
            المجموع الاختباري [: self.CHECKSUM_LEAD_ZEROS] == '0' * self.CHECKSUM_LEAD_ZEROS
            و الاختباري == self.checksum
        )
 
    def calculate_checksum (الذات):
        البيانات = '|' .join ([
            شارع (self.timestamp)،
            self.data،
            self._prev_block.checksum،
        ])
        بيانات + = self.NONCE_SYMBOL * self.nonce
 
        إرجاع sha256 (بايت (بيانات ، 'utf-8')). hexdigest ()

البناء

يقبل المنشئ معلمتين فقط - الأولى هي الكتلة السابقة ، والثانية هي بيانات الكتلة الحالية. ينشئ المُنشئ أيضًا علامة الوقت ويحدد القيمة nonce على الصفر كقيمة أولية.

صالح

خاصية تحسب المجموع الاختباري وتقارن ما إذا كانت الخاصية الحالية مساوية للحساب ولديها العدد الصحيح من الأصفار.

حساب المجموع الاختباري

الطريقة الأكثر تعقيدًا في الكود الخاص بنا. تحزم هذه الطريقة علامة الوقت والبيانات ومجموع المجموع السابق على سلسلة واحدة. ثم نضيف سلسلة nonce. في حالتنا ، ستكون قائمة بحرف Z. ثم يقوم بحساب المجموع الاختباري لسلسلة النتائج.

الآن لدينا كتلة بسيطة ولكنها وظيفية. دعنا ننتقل وننشئ سلسلة من القطع. في الوقت الحالي ، ستذهب سلسلة بسيطة دون القدرة على تخزين البيانات وتحميلها.

استيراد جسون
 
سلسلة الطبقة:
 
    def __init __ (self):
        self._chain = [
            self._get_genesis_block ()
        ]
 
    def is_valid (self):
        prev_block = self._chain [0]
        للكتلة في self._chain [1:]:
            أكد prev_block.checksum == self._prev_block.checksum
            تأكيد block.is_valid ()
            prev_block = كتلة
 
    def add_block (الذات ، البيانات):
        block = Block (self._chain [-1] ، بيانات)
        block = self._find_nonce (كتلة)
        self._chain.append (كتلة)
 
        كتلة العودة
 
    staticmethod
    def _get_genesis_block ():
        genesis_block = كتلة (بلا ، بلا)
        genesis_block.checksum = '00000453880b6f9179c0661bdf8ea06135f1575aa372e0e70a19b04de0d4cbc7'
 
        عودة genesis_block
 
    staticmethod
    def _find_nonce (كتلة):
        بداية = '0' * حظر. CHECKSUM_LEAD_ZEROS
        احيانا صحيح:
            المجموع الاختباري = block.calculate_checksum ()
            إذا المجموع الاختباري [: Block.CHECKSUM_LEAD_ZEROS] == بداية:
                استراحة
            block.nonce + = 1
        block.checksum = المجموع الاختباري
 
        كتلة العودة

دعونا نلقي نظرة على الطرق في سلسلة السلسلة لدينا:

البناء

أنا خلقت سلسلة مع كتلة واحدة فقط - كتلة التكوين. كتلة سفر التكوين هي الكتلة الأولى من السلسلة ولا تحتوي إلا على المجموع الاختباري. هذه الكتلة مطلوبة لإضافة أول كتلة حقيقية إلى السلسلة لأن الكتلة الحقيقية تتطلب المجموع الاختباري للكتلة الأخيرة في السلسلة.

إضافة كتلة جديدة

لديها معلمة واحدة فقط - البيانات لكتلة جديدة. هذا الأسلوب يخلق كتلة جديدة مع البيانات المقدمة وطريقة التشغيل للعثور على القيمة غير الصحيحة الصحيحة. عندها فقط ستضيف كتلة جديدة إلى السلسلة.

العثور على نونسي

تهدف هذه الطريقة إلى العثور على حق nonce للكتلة. يحتوي على حلقة لا نهائية حيث قمت بزيادة nonce وحساب المجموع الاختباري الجديد. ثم يقارن المجموع الاختباري بالقواعد - في الوقت الحالي ، إنه فقط عدد الأصفار.

التحقق من صحة السلسلة

توضح هذه الطريقة ما إذا كانت السلسلة صالحة - إنها تمر عبر جميع الكتل الموجودة في السلسلة وتتحقق من كل كتلة على حدة.

الحد الأدنى

الرسالة الرئيسية التي أردت إيصالها هي: blockchain هي تقنية حديثة ولكن لدينا كل شيء لدراستها. بعد العثور على أفضل تطبيق عملي له في fintech ، يمكن أن تساعد blockchain الشركات في حماية المعلومات ، وزيادة سرعة نقل البيانات ، والأهم من ذلك - استبعاد العامل البشري.

لمعرفة كيفية إنشاء blockchain ، قم بدراسة أمثلة التعليمات البرمجية الخاصة بي ، واكتبها بلغتك المفضلة وحاول اللعب بها. من يدري ، ربما سيكون منتجك هو مبدل اللعبة التالي؟

ترقبوا الجزء التالي حول blockchain و fintech ، مع المزيد من التعليمات البرمجية المعقدة والاقتراحات حول تطبيقها العملي في fintech.

هذه المقالة عن blockchain لمنتج fintech كتبها Vadym Zakovinko - Backend Engineer في نجوم Django.
إذا وجدت هذه المشاركة مفيدة ، فالرجاء النقر على الزر below أدناه :)