الغرض من الدرس: التعرف على مبادئ Ethereum blockchain ، ومجالات التطبيق والمصطلحات الأساسية.
تمارين
عملية : غير متوفرة في هذا الدرس.
لا يوجد اليوم مطور برامج لا يسمع أي شيء عن تقنية Blockchain أو عملات التشفير (Cryptocurrency أو Crypto Currency) أو Bitcoins (Bitcoin) أو عرض العملة الأولي (ICO أو عرض العملة الأولي) أو العقود الذكية (العقد الذكي) ، وكذلك المفاهيم والمصطلحات الأخرى ذات الصلة إلى blockchain.
تكنولوجيا Blockchain تفتح أسواق جديدة وتخلق وظائف للمبرمجين. إذا فهمت كل تعقيدات تقنيات العملة المشفرة وتقنيات العقد الذكية ، فلا ينبغي أن تواجه مشاكل في تطبيق هذه المعرفة في الممارسة.
يجب أن أقول أن هناك الكثير من التكهنات حول العملات المشفرة والسندات. سنترك جانبا المناقشات حول التغييرات في معدلات العملة المشفرة ، حول إنشاء الأهرامات ، حول تعقيدات تشريعات العملة المشفرة ، إلخ. في الدورة التدريبية الخاصة بنا ، سوف نركز بشكل أساسي على الجوانب الفنية لتطبيق العقود الذكية لـ Ethereum blockchain (Ethereum ، ether) وتطوير ما يسمى بالتطبيق الموزع (DApp).
ما هو blockchain؟
Blockchain (Blockchain ، Block Chain) هي سلسلة من كتل البيانات المتصلة بطريقة معينة. في بداية السلسلة ، تُسمى الكتلة الأولى كتلة التكوين أو كتلة التكوين. تليها ثانية ، ثم الثالثة ، وهلم جرا.
يتم تكرار كل كتل البيانات هذه تلقائيًا على العديد من عقد شبكة blockchain. وهذا يضمن التخزين اللامركزي لبيانات blockchain.
يمكنك تخيل نظام blockchain باعتباره عددًا كبيرًا من العقد (الخوادم الفعلية أو الظاهرية) ، حيث يتم ربط كل التغييرات في سلسلة كتل البيانات بالشبكة وتكرارها. يشبه هذا الكمبيوتر العملاق متعدد الخوادم ، ويمكن أن تنتشر عقد مثل هذا الكمبيوتر (الخوادم) في جميع أنحاء العالم. ويمكنك أيضًا إضافة جهاز الكمبيوتر الخاص بك إلى شبكة blockchain.
قاعدة البيانات الموزعة
يمكن تخيل Blockchain كقاعدة بيانات موزعة يتم نسخها نسخًا متماثلاً إلى جميع عقد شبكة blockchain. من الناحية النظرية ، سيتم تشغيل blockchain طالما أن هناك عقدة واحدة على الأقل تخزن جميع كتل blockchain تعمل.
سجل البيانات الموزعة
يمكن تخيل Blockchain كسجل موزع للبيانات والعمليات (المعاملات). اسم آخر لمثل هذا السجل هو دفتر الأستاذ.
يمكنك إضافة بيانات إلى سجل موزع ، لكن لا يمكنك تغييره أو حذفه. يتم تحقيق هذا الاستحالة ، على وجه الخصوص ، عن طريق استخدام خوارزميات التشفير ، خوارزميات خاصة لإضافة كتل إلى السلسلة ، وتخزين البيانات اللامركزي.
عند إضافة الكتل وتنفيذ العمليات (المعاملات) ، يتم استخدام المفاتيح الخاصة والعامة. يقيدون مستخدمي blockchain من خلال منحهم إمكانية الوصول فقط إلى كتل البيانات الخاصة بهم.
المعاملات
يخزن blockchain معلومات حول العمليات (المعاملات) في الكتل. في الوقت نفسه ، لا يمكن التراجع عن المعاملات القديمة المكتملة بالفعل أو تغييرها. يتم تخزين المعاملات الجديدة في كتل جديدة مضافة.
وبالتالي ، يمكن تسجيل تاريخ المعاملة بالكامل دون تغيير في blockchain. لذلك ، يمكن استخدام blockchain ، على سبيل المثال ، لتخزين العمليات المصرفية بشكل آمن ومعلومات حقوق النشر وتاريخ التغييرات في ملكية العقارات وما إلى ذلك.
يحتوي Ethereum blockchain على ما يسمى حالات النظام. عند اكتمال المعاملات ، تتغير الحالة من الأولي إلى الحالي. تتم كتابة المعاملات في كتل.
السلاسل العامة والخاصة
تجدر الإشارة إلى أن كل ما سبق ينطبق فقط على ما يسمى بشبكات blockchain العامة ، والتي لا يمكن التحكم فيها من قبل أي فرد أو كيانات قانونية أو هيئات حكومية أو حكومات.
تخضع شبكات ما يسمى blockchain الخاصة للسيطرة الكاملة على منشئيها ، وكل شيء ممكن هناك ، على سبيل المثال ، الاستبدال الكامل لجميع كتل السلسلة.
التطبيقات العملية Blockchain
ما يمكن أن تأتي blockchain ل؟
باختصار ، يتيح لك blockchain إجراء المعاملات (المعاملات) بأمان بين الأشخاص الذين لا يثقون في بعضهم البعض أو الشركات. لا يمكن تزوير أو استبدال البيانات المسجلة في blockchain (المعاملات ، البيانات الشخصية ، المستندات ، الشهادات ، العقود ، الفواتير ، وما إلى ذلك) بعد التسجيل. لذلك ، على أساس blockchain ، يمكنك إنشاء ، على سبيل المثال ، سجلات موثوقة موزعة لأنواع مختلفة من المستندات.
بالطبع ، أنت تعلم أن أنظمة العملة المشفرة يتم إنشاؤها على أساس قيود ، مصممة لتحل محل النقود الورقية العادية. تسمى النقود الورقية أيضًا النقود الورقية (من النقود الورقية).
يوفر blockchain تخزينًا وثباتًا للمعاملات المسجلة في الكتل ، وبالتالي يمكن أيضًا استخدامه لإنشاء أنظمة عملة مشفرة. يحتوي على السجل الكامل لتحويل أموال التشفير بين مستخدمين مختلفين (حسابات) ، ويمكن تتبع أي عملية.
على الرغم من أن المعاملات داخل أنظمة العملة المشفرة قد تكون مجهولة ، إلا أن سحب العملة المشفرة واستبدالها بأموال فيات عادة ما يؤدي إلى الكشف عن هوية مالك أصل العملة المشفرة.
ما يسمى بالعقود الذكية ، والتي هي برامج تعمل على شبكة Ethereum ، تعمل على أتمتة عملية إبرام الصفقات والتحكم في تنفيذها. يكون هذا فعالًا بشكل خاص إذا تم تنفيذ عملية الدفع باستخدام عملة Ether cryptocurrency.
يمكن استخدام العقود الذكية لـ Ethereum blockchain و Ethereum المكتوبة بلغة البرمجة Solidity ، على سبيل المثال ، في المجالات التالية:
- بديل لتوثيق الوثائق ؛
- تخزين سجل العقارات ومعلومات عن المعاملات مع العقارات ؛
- تخزين معلومات حقوق الطبع والنشر المتعلقة بالملكية الفكرية (الكتب ، الصور ، الموسيقى ، إلخ) ؛
- إنشاء أنظمة تصويت مستقلة ؛
- المالية والمصرفية.
- اللوجستية الدولية ، تتبع حركة البضائع ؛
- تخزين البيانات الشخصية كتناظرية لنظام بطاقة الهوية ؛
- تأمين المعاملات في المجال التجاري ؛
- تخزين نتائج الفحوصات الطبية ، وكذلك تاريخ الإجراءات المقررة
القضايا Blockchain
لكن ، بالطبع ، ليس كل شيء بسيطًا كما يبدو!
هناك مشاكل في التحقق من البيانات قبل إضافتها إلى blockchain (على سبيل المثال ، ليست مزيفة؟) ، مشاكل في أمان النظام وبرامج التطبيقات المستخدمة للعمل مع blockchain ، مشاكل في القدرة على استخدام أساليب الهندسة الاجتماعية لسرقة الوصول إلى محافظ العملات المشفرة ، إلخ. ن.
مرة أخرى ، إذا لم يكن الأمر متعلقًا بلوكشين عام ، تنتشر عقده في جميع أنحاء العالم ، ولكن عن بلوكشين خاص يمتلكه شخص أو مؤسسة ، فلن يكون مستوى الثقة هنا أعلى من مستوى الثقة في هذا الشخص أو هذه المنظمة.
يجب أن يؤخذ في الاعتبار أن البيانات المسجلة على blockchain تصبح متاحة للجميع. في هذا المعنى ، فإن blockchain (وخاصة العامة) ليست مناسبة لتخزين المعلومات السرية. ومع ذلك ، فإن حقيقة أن المعلومات الموجودة على blockchain لا يمكن تغييرها يمكن أن تساعد في منع أو التحقيق في جميع أنواع الأنشطة الاحتيالية.
ستكون تطبيقات Ethereum اللامركزية ملائمة إذا كنت تدفع مقابل استخدامها مع العملة المشفرة. كلما زاد عدد الأشخاص الذين يمتلكون عملة مشفرة أو مستعدون لشرائها ، ستحصل على تطبيقات DApp الأكثر شعبية والعقود الذكية.
من بين المشاكل الشائعة في blockchain التي تعوق تطبيقه العملي ، يمكن للمرء أن يذكر السرعة المحدودة لإضافة كتل جديدة وارتفاع تكلفة المعاملات نسبيا. لكن التقنيات في هذا المجال تتطور بفعالية ، وهناك أمل في حل المشكلات الفنية بمرور الوقت.
هناك مشكلة أخرى وهي أن العقود الذكية لـ Ethereum blockchain تعمل في بيئة الجهاز الظاهري المعزولة وليس لديها إمكانية الوصول إلى البيانات في العالم الحقيقي. على وجه الخصوص ، لا يمكن لبرنامج العقود الذكية قراءة البيانات من المواقع أو أي أجهزة فعلية (أجهزة الاستشعار ، جهات الاتصال ، إلخ) نفسها ، ولا يمكنه إخراج البيانات إلى أي أجهزة خارجية. سنناقش هذه المشكلة وطرق حلها في درس مكرس لما يسمى بأوراكيس - وسطاء معلومات العقود الذكية.
هناك أيضا قيود قانونية. في بعض البلدان ، على سبيل المثال ، يُحظر استخدام العملة المشفرة كوسيلة للدفع ، ولكن يمكنك امتلاكها كنوع من الأصول الرقمية ، مثل الأوراق المالية. يمكن شراء هذه الأصول وبيعها في البورصة. في أي حال ، عند إنشاء مشروع يعمل مع العملات المشفرة ، فأنت بحاجة إلى التعرف على التشريعات في الدولة التي يقع مشروعك تحت ولايتها القضائية.
كيف يتم تشكيل سلسلة blockchain
كما قلنا بالفعل ، تعتبر blockchain عبارة عن سلسلة بسيطة من كتل البيانات. أولاً ، يتم تشكيل الكتلة الأولى من هذه السلسلة ، ثم يتم إضافة الكتلة الثانية إليها ، وهكذا. من المفترض أن يتم تخزين بيانات المعاملة في كتل ، وإضافتها إلى الكتلة الأخيرة.
في التين. 1.1 أظهرنا أبسط نسخة من سلسلة من الكتل ، حيث تشير الكتلة الأولى إلى المجموعة التالية.
التين. 1.1. تسلسل بسيط من الكتلومع ذلك ، في هذا النموذج ، من السهل جدًا تزوير محتويات أي كتلة في السلسلة ، نظرًا لأن الكتل لا تحتوي على أي معلومات للحماية من التغييرات. بالنظر إلى أن blockchain مخصص لاستخدام الأشخاص والشركات الذين لا توجد ثقة بينهم ، يمكننا أن نستنتج أن طريقة تخزين البيانات هذه الخاصة بـ blockchain غير مناسبة.
دعونا حماية الكتل من وهمية. في المرحلة الأولى ، سنحاول حماية كل كتلة باستخدام المجموع الاختباري (الشكل 1.2).
التين. 1.2. إضافة حماية كتلة البيانات مع الاختباريالآن ، لا يمكن للمهاجم تغيير كتلة لأنه يحتوي على المجموع الاختباري لبيانات الكتلة. سيظهر فحص المجموع الاختباري أن البيانات قد تغيرت.
لحساب المجموع الاختباري ، يمكنك استخدام إحدى وظائف التجزئة ، مثل MD-5 ، و SHA-1 ، و SHA-256 ، إلخ. تحسب دالات التجزئة قيمة معينة (على سبيل المثال ، كسلسلة نصية ذات طول ثابت) كنتيجة لأداء عمليات لا رجعة فيها على كتلة بيانات. تعتمد العمليات على نوع دالة التجزئة.
حتى مع حدوث تغيير بسيط في محتويات كتلة البيانات ، فإن قيمة دالة التجزئة سوف تتغير أيضًا. من خلال تحليل قيمة دالة التجزئة ، يستحيل استعادة كتلة البيانات التي تم حسابها لها.
هل ستكون هذه الحماية كافية؟ لسوء الحظ ، لا.
في هذا المخطط ، يحمي المجموع الاختباري (دالة التجزئة) الكتل الفردية فقط ، ولكن لا يحمي سلسلة الكتل بأكملها. معرفة خوارزمية حساب دالة التجزئة ، يمكن للمهاجم استبدال محتويات كتلة بسهولة. أيضا ، لا شيء يمنعه من إزالة كتل من السلسلة أو إضافة كتل جديدة.
لحماية السلسلة بأكملها ، من الممكن تخزين تجزئة البيانات من الكتلة السابقة في كل كتلة مع البيانات (الشكل 1.3).
التين. 1.3. إضافة تجزئة الكتلة السابقة إلى كتلة البياناتفي هذا المخطط ، لتغيير كتلة ، تحتاج إلى إعادة حساب وظائف التجزئة لجميع الكتل اللاحقة. يبدو ، ما هي المشكلة؟
في القيود الحقيقية ، يتم إنشاء صعوبات مصطنعة لإضافة كتل جديدة - تستخدم الخوارزميات التي تتطلب الكثير من موارد الحوسبة. نظرًا لأنه لإجراء تغييرات على كتلة ما ، فإنه ليس فقط كتلة واحدة يجب احتسابها ، ولكن كل المجموعات اللاحقة ، سيكون من الصعب للغاية القيام بذلك.
تذكر أيضًا أن بيانات blockchain مخزنة (مكررة) على العديد من عقد الشبكة ، أي
يستخدم التخزين اللامركزي. وهذا يعقد إلى حد كبير كتلة وهمية ، ل يجب إجراء التغييرات على جميع عقد الشبكة.نظرًا لأن الكتل تخزن معلومات حول الكتلة السابقة ، يمكنك التحقق من محتويات جميع الكتل في السلسلة.Ethereum
Ethereum , DApp. , Ethereum (-, smart contracts), Solidity.
2013 , Bitcoin Magazine, 2015 . , , Ethereum - Solidity.
(mining) , « ». , .. Ethereum.
, , (miner).
(), , Nonce, -, . Ethash, Ethereum, Nonce .
Nonce, (PoW, Proof-of-work). , Ethereum, — Ether. 5 Ether, .
, Ethereum , , . , Solidity DApp Ethereum.
, . , , .
. — ( ), . , Ethereum - Solidity. , , ..
, . , , , , - , , .
. . , , .