كيف تعمل سلسلة السجلات

مكتمل

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

كيف تُوزَّع البيانات؟

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

كل عُقدة متصلة بالعُقد الأخرى باستخدام شبكة سلسلة السجلات. على سبيل المثال، تمتلك كل من مزارع داليا بلايو ومصنع الآيس كريم ومتاجر الآيس كريم عُقدة يديرونها. تُعد شركتا Contoso West وContoso East شريكين منفصلين يشتركان في الشركة الأم نفسها. لدى شركة Contoso عُقدة واحدة. ليس هناك حاجة لوجود علاقة مباشرة بالشركات.

Several participant blockchain nodes connected by a network.

تغيير الحالة

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

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

Example transaction from an IoT temperature sensor. The transaction sets the temperature to -2° celsius in the ledger.

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

List of transactions in order that change the responsible party and temperature. The combination of transactions result in a ledger state based on the order of transaction changes.

عند إرسال معاملة، فإنك ترسلها إلى عُقدة معاملة سلسلة السجلات. لنفترض أن مزارع داليا بيلايو ترسل شحنة من الحليب باستخدام شركة Contoso West Shipping. يرسل نظام شحن مزارع داليا بلايو معاملة إلى عُقدة سلسلة السجلات خاصتهم. تحدث المعاملة مسؤولية الشحن من المزارع إلى شركة Contoso West Shipping.

A transaction from the farmer being sent to the farmer's blockchain node.

تُرسل سلسلة السجلات المعاملة عبر شبكة سلسلة السجلات. تحصل كل عُقدة على نسخة من المعاملة.

A transaction being copied to all participant blockchain node peers.

تُعالج كل عقدة المعاملة ولكنها لا تزال تتطلب التحقق باستخدام آلية توافق. التوافق يتيح التناسق والثقة لدفتر الأستاذ المُوزع.

كيف يمكنك الوثوق في اتساق بيانات دفتر الأستاذ؟

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

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

Consensus mechanism agrees on validated transactions across nodes. Each blockchain node writes the latest validated block to the blockchain.

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

ما الكتلة؟

الكتلة عبارة عن كتلة من البيانات داخل سلسلة الكتل التي تخزن معلومات المعاملات. عادة ما يستند عدد المعاملات في كتلة إلى الوقت. على سبيل المثال، يُظهر الرسم التوضيحي كتلة تحتوي على معاملات حدثت في الدقائق العشر الماضية.

Example of several transactions representing a block. The order of transactions result in a given state.

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

كيف يمكنك الوثوق في أن دفتر الأستاذ غير قابل للتغيير؟

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

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

A block is sent through a hash function and a cryptographic hash is generated.

تستخدم سلسلة السجلات شفرات التجزئة لاكتشاف ما إذا كان قد أُجريت أي تغييرات على الكتل. بتضمين قيمة تجزئة الكتلة السابقة عند إنشاء تجزئة الكتلة التالية، تُربط الكتل معًا من خلال شفرات التجزئة.

A block includes the previous block's hash when generating it's hash. Including the previous hash links the blocks together.

تمنح سلسلة السجلات الثقة باستخدام شفرات التجزئة لإثبات أن سجل البيانات لم يتغير. من خلال تضمين تجزئة الكتلة السابقة عند إنشاء كتلة جديدة، تُنشئ سلسلة غير قابلة للتغيير من المعاملات بالترتيب.

Three blocks linked together by the previous block's hash

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

منطق موثوق به

تسمح لنا سلسلة السجلات بتخزين بيانات متسقة ويمكن الوثوق بها. كيف نضيف المنطق الذي ينفذ الشيء نفسه في كل عُقدة؟

في السيناريو خاصتنا، نحتاج إلى منطق لنقل مسؤولية المنتج من مشاركٍ لآخر. نحتاج أيضًا إلى استخدام البيانات من مستشعر درجة حرارة IoT لمعرفة ما إذا كانت درجة الحرارة مرتفعة جدًا.

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

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

Components of a smart contract include address, logic, and data.

عندما تنتقل مسؤولية المنتج إلى طرف آخر، تُنفذ المعاملة. يحدث منطق العقد الذكي بيانات الحالة. في سيناريو الآيس كريم خاصتنا، ينشئ نظام شحن مصنع الآيس كريم مثيل عقد ذكي لشحنة آيس كريم جديدة. يرسل نظام الشحن المصنع معاملة تستدعي الدالة TransferResponsibility لنقل مسؤولية الشحن إلى شركة Contoso East shipping. ترسل شبكة سلسلة السجلات المعاملة إلى جميع العُقد. يُنفذ منطق العقد الذكي في كل عُقدة.

A smart contract transaction is sent to one node and copied to the other peer nodes.

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

A smart contract transaction executes logic to set the shipment to out of compliance due to the temperature. The transaction is copied and executed on other peer nodes.

نظرا لأن المعاملة مضمنة في سلسلة من الكتل، فهناك سجل غير قابل للتغيير عندما أصبحت الشحنة غير متوافقة. يمكن لمتجر الآيس كريم أن يرفض التوصيل ويمكنه تجنب مشاكل سلامة الأغذية.

تمامًا مثل البيانات الموجودة في سلسلة السجلات، يكون العقد الذكي غير قابل للتغيير. بمجرد نشرها، لا يمكن تغيير المنطق. لذلك، يمكنك الوثوق في أن منطق العقد الذكي يطبق دائمًا الشيء نفسه على جميع العُقد. تتطلب أي تغييرات في التعليمات البرمجية نشر عقد ذكي جديد بعنوان جديد.