دعونا نلقي نظرة على السمات الرئيسية لـ Corda وتفردها بين سلاسل الكتل الأخرى:
- ليس لدى Corda عملة مشفرة خاصة بها.
- لا تستخدم كوردا مفهوم التعدين ونظام إثبات العمل.
- يتم نقل البيانات فقط بين أطراف المعاملة/العقد. لا يوجد بث عالمي لجميع عقد الشبكة.
- لا توجد وحدة تحكم مركزية لإدارة جميع المعاملات.
- تدعم كوردا آليات الإجماع المختلفة.
- يتم تحقيق التوافق بين المشاركين على مستوى الاتفاقية/العقد الفردي، وليس على مستوى النظام بأكمله.
- يتم تأكيد المعاملة فقط من قبل المشاركين المرتبطين بها.
- توفر Corda اتصالاً مباشرًا بين اللغة القانونية البشرية الرسمية ورمز العقد الذكي.
دفتر الحسابات
مفهوم دفتر الأستاذ في كوردا هو ذاتي. لا يوجد مستودع بيانات مركزي واحد. وبدلاً من ذلك، تحتفظ كل عقدة بقاعدة بيانات منفصلة للحقائق المعروفة لها.
على سبيل المثال، تخيل شبكة مكونة من 5 عقد، حيث تكون الدائرة حقيقة معروفة للعقدة.
كما نرى، يعرف إد وكارل وديمي عن الحقيقة 3، لكن أليس وبوب ليسوا على علم بها. تضمن كوردا تخزين الحقائق الشائعة في قاعدة بيانات كل عقدة، وستكون البيانات متطابقة.
الدول
الدولة هي غير قابل للتغيير كائن يمثل حقيقة معروفة لواحدة أو أكثر من عقد الشبكة في وقت معين.
يمكن للدول تخزين بيانات عشوائية، مثل الأسهم والسندات والقروض ومعلومات الهوية.
على سبيل المثال، تمثل الحالة التالية سندات دين - وهي اتفاقية تدين بها أليس لبوب بمبلغ X:
يتم تمثيل دورة حياة الحقيقة مع مرور الوقت من خلال سلسلة من الحالات. عندما يكون من الضروري تحديث الحالة الحالية، نقوم بإنشاء حالة جديدة ونضع علامة على الحالة الحالية على أنها تاريخية.
المعاملات
المعاملات هي مقترحات لتحديث دفتر الأستاذ. ولا يتم بثها لجميع المشاركين في دفتر الأستاذ وتكون متاحة فقط للمشاركين في الشبكة الذين لديهم الحق القانوني في عرضها وإدارتها.
ستتم إضافة المعاملة إلى دفتر الأستاذ إذا:
- صالحة تعاقديا
- موقعة من قبل جميع المشاركين المطلوبين
- لا يحتوي على إنفاق مزدوج
تستخدم Corda نموذج UTXO (مخرجات المعاملات غير المنفقة)، حيث تكون كل حالة من حالات دفتر الأستاذ غير قابلة للتغيير.
عند إنشاء معاملة، يتم نقل حالة الإخراج للمعاملة السابقة (بواسطة التجزئة والفهرس) إلى الإدخال.
دورة حياة الصفقة:
- الإنشاء (في الوقت الحالي، تعد المعاملة مجرد اقتراح لتحديث دفتر الأستاذ)
- جمع التوقيعات (يشترط موافقة أطراف المعاملة على مقترح التحديث عن طريق إضافة توقيع إلى المعاملة)
- الالتزام بالمعاملة في دفتر الأستاذ
بمجرد إضافة معاملة إلى دفتر الأستاذ، يتم وضع علامة على حالات الإدخال على أنها تاريخية ولا يمكن استخدامها في المعاملات المستقبلية.
بالإضافة إلى حالات الإدخال والإخراج، قد تحتوي المعاملة على:
- الأوامر (معلمة المعاملة التي تشير إلى الغرض من المعاملة)
- المرفقات (تقويم العطلات، محول العملات)
- النوافذ الزمنية (فترة الصلاحية)
- كاتب العدل (كاتب العدل، المشاركون في الشبكة الخاصة الذين يقومون بالتحقق من صحة المعاملات)
عقود
عندما نتحدث عن صحة المعاملة، فإننا لا نعني فقط وجود التوقيعات اللازمة، ولكن أيضًا صحة التعاقد. ترتبط كل معاملة بعقد يقبلها ويتحقق من صحة حالات الإدخال والإخراج. تعتبر المعاملة صالحة فقط إذا كانت جميع حالاتها صالحة.
تتم كتابة العقود في Corda بأي لغة JVM (على سبيل المثال، Java، Kotlin).
class CommercialPaper : Contract {
override fun verify(tx: LedgerTransaction) {
TODO()
}
}
من الضروري أن ترث من الفصل نوع العقد وتجاوز الطريقة تحقق من. إذا كانت المعاملة غير صالحة، سيتم طرح استثناء.
يجب أن يكون التحقق من صحة المعاملة حتمية، أي. يجب أن يقبل العقد دائمًا المعاملة أو يرفضها. وفي هذا الصدد، لا يمكن أن تعتمد صلاحية المعاملة على الوقت أو الأرقام العشوائية أو الملفات المضيفة وما إلى ذلك.
في Corda، يتم تنفيذ العقود في ما يسمى بـ Sandbox - وهو JVM معدل قليلاً يضمن التنفيذ الحتمي للعقود.
تيارات
لأتمتة الاتصال بين عقد الشبكة، تمت إضافة المواضيع.
التدفق عبارة عن سلسلة من الخطوات التي تخبر العقدة بكيفية إجراء تحديث محدد لدفتر الأستاذ وعند أي نقطة يجب توقيع المعاملة والتحقق من صحتها.
في بعض الأحيان يستغرق الأمر ساعات أو أيامًا حتى يتم توقيع المعاملة من قبل جميع الأطراف وإدراجها في دفتر الأستاذ. ماذا يحدث إذا قمت بفصل العقدة المشاركة في المعاملة؟ المواضيع لديها نقاط تفتيش، حيث يتم كتابة حالة الموضوع إلى قاعدة بيانات العقدة. عند استعادة عقدة إلى الشبكة، ستستمر من حيث توقفت.
إجماع
للدخول إلى دفتر الأستاذ، يجب أن تصل المعاملة إلى إجماعين: الصلاحية والتفرد.
يتم اتخاذ القرار بشأن صحة المعاملة فقط من قبل الأطراف المشاركة بشكل مباشر فيها.
تقوم عقد كاتب العدل بفحص المعاملة للتأكد من تفردها ومنع الإنفاق المزدوج.
لنتخيل أن بوب لديه 100 دولار ويريد تحويل 80 دولارًا إلى تشارلي و70 دولارًا إلى دان باستخدام نفس حالة الإدخال.
لن تسمح لك كوردا بتنفيذ مثل هذه الخدعة. على الرغم من أن المعاملة ستجتاز فحص الصلاحية، إلا أن فحص التفرد سيفشل.
اختتام
إن منصة Corda، التي طورها اتحاد R3 blockchain، ليست حالة استخدام خالصة لتقنية blockchain. Corda هي أداة متخصصة للغاية للمؤسسات المالية.
المصدر: www.habr.com