عقود Ethereum Oracle: هل يمكننا الوثوق في Oracle؟
نشرت: 2022-03-11هذه المقالة هي الجزء الأخير من سلسلة من ثلاثة أجزاء حول استخدام عقود Ethereum oracle.
- كان الجزء الأول عبارة عن مقدمة لإعداد الكود وتشغيله واختباره باستخدام إطار عمل الكمأة.
- ألقى الجزء الثاني نظرة صغيرة على الكود واستخدمه كنقطة انطلاق للمناقشة حول بعض كود Solidity وميزات التصميم.
الآن ، في هذا الجزء الأخير أود أن أطرح الأسئلة: ماذا فعلنا للتو ، ولماذا؟ وحاول توفير بعض طرق التفكير التي نأمل أن تحفز على التفكير. لا تزال هيئة المحلفين بعيدة عن كيفية ارتباط استخدام أوراكل بعدم الثقة ، وماذا تعني كلمة "عدم الثقة" من حيث صلتها بتقنية blockchain ، في الواقع في الاستخدام الفعلي. عندما نجلب بعض هذه الأفكار من شكلها المفاهيمي إلى الاستخدام العملي ، سنضطر إلى المصارعة والتصالح مع أسئلة مثل هذه. فلنبدأ.
خلاصة: لماذا نحتاج إلى Ethereum oracle؟
يصل هذا إلى صميم طبيعة تنفيذ التعليمات البرمجية على blockchain. من أجل تلبية متطلبات الثبات والحتمية ، وكأداة للطريقة التي يتم بها تنفيذ الكود فعليًا بواسطة العقد الموجودة في السلسلة ، لا يمكن للعقد الذكي الوصول مباشرة إلى خارج blockchain للقيام بعمل جيد ، أي شيء.
بالنسبة لمعظم المبرمجين ، تقدم هذه الحقيقة طريقة غير طبيعية للغاية في التفكير. إذا احتجنا إلى بيانات من مكان ما ، فعادة ما نتصل بذلك في مكان ما ونقوم بسحبه. عقد ذكي يحتاج إلى بيانات تقرير الطقس؟ فقط قم بالاتصال بخلاصة الطقس. لكن لا؛ لا يمكن لعقد blockchain الذكي القيام بذلك على الإطلاق ؛ إذا لم تكن بعض البيانات موجودة على blockchain بالفعل ، فلن يكون لرمز العقد إمكانية الوصول إليها في وقت التنفيذ. إذن ، الحل هو أن تكون البيانات المطلوبة موجودة بالفعل على blockchain ، في وقت تنفيذ العقد. يتطلب هذا آلية خارجية تدفع البيانات إلى السلسلة ، بدلاً من سحب البيانات إلى السلسلة ، لاستخدامها على وجه التحديد بواسطة عقود أخرى. تلك الآلية الخارجية هي الوسيلة. يتم دفع البيانات التي يتم دفعها إلى السلسلة في عقد أوراكل ، والذي من المفترض بعد ذلك أنه قد وضع أحكامًا لمشاركتها مع العقود الأخرى. مثال على هذا الإعداد هو بالضبط ما قمنا ببنائه وفحصناه في الجزأين السابقين من ثلاثية المقالات هذه.
ثقوب أمنية صارخة
بالنسبة لي ، فإن القضية المركزية التي تنطوي عليها جميع blockchain العامة هي كلمة T: الثقة. في أنقى صورها ، ما تفعله هذه الأنظمة هو أفضل ما لديها لضمان (لا يوجد ضمان كامل ممكن في هذا العالم ، ولكن أقرب ما يمكن) أنه لا يتعين علينا الوثوق بشكل أعمى بأي طرف. ربما يكون القارئ الذكي قد تساءل بالفعل عن بعض الثغرات الأمنية الصارخة في مثال Boxing Bets. أود التركيز على تلك التي ستكون أكثر أهمية في مناقشتنا لعدم الثقة وكيفية ارتباطها باستخدام أوراكل مع العقود الذكية.
1. قد يكون مالك / مشرف عقد الرهان فاسدا
بدءًا من السطر 58 من BoxingBets.sol ، لدينا الوظيفة التالية:
/// @notice sets the address of the boxing oracle contract to use /// @dev setting a wrong address may result in false return value, or error /// @param _oracleAddress the address of the boxing oracle /// @return true if connection to the new oracle address was successful function setOracleAddress(address _oracleAddress) external onlyOwner returns (bool) { boxingOracleAddr = _oracleAddress; boxingOracle = OracleInterface(boxingOracleAddr); return boxingOracle.testConnection(); }
يجب أن يكون واضحًا تمامًا ما يسمح به هذا. يمكن لمالك العقد (ومالك العقد فقط) ، في أي وقت ودون أي قيود ، تغيير أوراكل الذي يتم استخدامه لخدمة مباريات الملاكمة وتحديد الفائزين. لماذا هذا يعد مشكلة؟ إذا لم يكن الأمر واضحًا لك بالفعل ، فإن هذا يسمح لمالك العقد بإساءة استخدام العقد عمداً لتحقيق ربحه الخاص.
مثال: مباراة الملاكمة القادمة هي صودا بوبينسكي ضد جلاس جو. الصودا هي المفضلة بشكل واضح بفارق كبير. الجميع يراهن على الصودا. طن من المال يركب عليه. أنا ، صاحب العقد ، قررت سحب واحدة سريعة. قبل أن يتم تحديد المباراة مباشرة ، قمت بتغيير أوراكل إلى الوحي الخبيث الخاص بي ، والذي يتطابق مع أوراكل الرسمي باستثناء أنه من الصعب إعلان أن جلاس جو هو الفائز. يعلن Glass Joe ، أنني أكسب كل المال ، ولا يمكن لأحد أن يمنعني. بعد ذلك ، ربما لن يثق أحد في عقدي بعد الآن ، لكن لنفترض أنني لا أهتم ؛ ربما كتبت العقد ونشرته لغرض وحيد هو سحب تلك السرقة.
ما هي بعض البدائل؟
1. لا تسمح بتغيير أوراكل
تنشأ المشكلة التي حددناها أعلاه من حقيقة أننا نسمح لمالك العقد بتغيير أوراكل. لذا ، لنفترض أننا قمنا فقط ببرمجة عنوان أوراكل بشكل ثابت ولا نسمح بتغييره على الإطلاق؟ حسنًا ، يمكننا فعل ذلك بالفعل ، فهذا ليس واردًا على الإطلاق. ولكن السؤال الذي يطرح نفسه بعد ذلك ، ماذا لو توقف هذا الوسيط - توقف عن تقديم البيانات لأي سبب من الأسباب؟ ثم سنحتاج إلى الحصول على وحي جديد. أو ماذا لو تبين أن هذا الوسيط ، الموثوق به في البداية ، فاسد ولم يعد موثوقًا به؟ مرة أخرى ، سنريد التغيير إلى أوراكل جديد. إذا قمنا بترميز أوراكل ، فإن الطريقة الوحيدة لتغيير أوراكل هي إصدار عقد جديد يستخدم أوراكل مختلفًا. حسنًا ، مرة أخرى ، يمكننا فعل ذلك. هذا ليس واردًا على السؤال. لاحظ ، بالطبع ، أن العقود الذكية لا يمكن تحديثها بسهولة كما يمكن ، على سبيل المثال ، موقع الويب. ألن يكون ذلك سهلاً؟ إذا لاحظت وجود خطأ أو ثغرة أمنية ، فما عليك سوى تصحيحها ولن يكون أحد أكثر حكمة. يعد نموذج نشر العقد الذكي أقرب قليلاً إلى نموذج البرنامج المغلف بالانكماش ؛ بمجرد أن يصبح البرنامج في متناول المستخدم ، يكون هناك ولا يمكنك إصلاحه. يجب مطالبة المستخدم بترقية نفسه يدويًا. العقود الذكية متشابهة بعض الشيء. بمجرد أن يكون هذا العقد على blockchain ، فإنه غير قابل للتغيير كما هو الحال مع بقية blockchain ، باستثناء الأجزاء التي كتبت فيها منطقًا لجعله قابلاً للتغيير.
هذا ليس بالضرورة مانعًا ؛ هناك الكثير من النماذج ومدارس الأفكار الآن حول كيفية جعل عقد ذكي قابل للتعديل. قد يكون هذا الموضوع مقالًا لائقًا في حد ذاته ، ولكن في الوقت الحالي يمكنك الاطلاع على مقالة Hackernoon هذه ، بالإضافة إلى هذه المقالة حول استراتيجيات العقود الذكية.
كيف سيبدو ذلك من منظور المستخدم؟ لنفترض أنني أفكر في وضع رهان على مباراة دون فلامنكو القادمة. أستطيع أن أرى بوضوح أن العقد غير معقد يحتوي على رموز أوراكل التي أعرفها بالفعل وأثق بها (حسنًا ، أثق بما يكفي لوضع رهان بحجم معين). هذا كل شيء. بسيط جدا. إذا أصدر مالك العقد إصدارًا جديدًا من العقد باستخدام أوراكل جديد ، فلا يزال (ينبغي) أن أمتلك حرية الاستمرار في استخدام الإصدار القديم. حسنا ربما. يعتمد ذلك على كيفية معالجة الترقية. إذا تم تعطيل العقد أو إتلافه ، فقد أكون محظوظًا. لكن في حالة الفانيليا ، يجب أن تظل قائمة.
2. قفل في أوراكل طوال المدة
يمكننا إضافة بعض التعقيدات إلى الكود (ليس من المرغوب فيه حقًا أن يكون المثال معقدًا للغاية ، ولكن بالنسبة لحل العالم الحقيقي ، قد نرغب في الفائدة التي يجلبها هذا التعقيد) من أجل التخفيف من الخدع مثل تلك الموصوفة أعلاه. أعتقد أن الشيء المعقول جدًا الذي يجب القيام به ، هو إضافة رمز من شأنه أن "يثبت" أوراكل طوال مدة الرهان. بعبارة أخرى ، يمكن أن يضمن منطق العقد بطريقة واضحة جدًا وبسيطة ، أن أيًا كان أوراكل كان موجودًا عندما قمت بالرهان يجب أن يكون نفس الوسيطة المستخدمة لتحديد الفائز. لذلك ، حتى لو تغيرت أوراكل في هذه الأثناء ، بالنسبة للمباريات الأخرى ، وللمباريات الخاصة بي ، ولرهانتي ، يجب أن تظل كما هي طوال الوقت. يسير هذا جنبًا إلى جنب مع السماح للمستخدم بمعرفة من هو أوراكل.
دعونا نحصل على مثال سريع لتوضيح ذلك. أنا مستخدم. أنا أفكر في وضع رهان على معركة Little Mac القادمة. هناك وسيلة في العقد تسمح لي بفحص أوراكل الذي سيتم استخدامه لتحديد الفائز في هذه المباراة. أؤكد أن العقد هو عقد مشهور قدمته Nintendo Sports. أشعر بالثقة الكافية في هذا الوحي. (لإضافة المزيد من التعقيد ، ربما يسمح العقد للمستخدمين بالاختيار من بين مجموعة من الأوراكل المتاحة لمباراة معينة). يمكنني الآن فحص رمز أوراكل ، وأرى أن منطق أوراكل يضمن أن نفس الوسيلة ستُستخدم لتحديد نتيجة المباراة. لذلك أنا ، كمراهن ، لدي هذا التأكيد على الأقل. لا يستبعد ذلك حقيقة أن أوراكل قد يكون سيئًا (أي فاسد أو غير جدير بالثقة) ولكنه يؤكد لي على الأقل أنه لا يمكن تغييره في الخلفية.
قد يكون الخطر هنا هو أن أوراكل "توقف عن العمل" (توقف الصيانة أو التحديث) بين الوقت الذي أضع فيه الرهان ، ويتم تحديد المباراة. يمكن حجز الأموال في العقد ، وتصبح غير قابلة للاسترداد. لذلك ، يمكننا (ربما) وضع بند مفعل بالوقت في العقد ، حيث إذا لم يتم تحديد المباراة في وقت أو تاريخ معين (يمكن أن تكون جزءًا من تعريف المطابقة) ، فإنها تعتبر "ميتة" وكل الأموال مقفلة بالداخل عاد للمراهنون.
3. دع كلمة oracle تكون معرّفة من قبل المستخدم
الأمر الأكثر تعقيدًا (ولكن ربما يكون أكثر إثارة للاهتمام) هو ترك عنوان أوراكل "فارغًا" ، بمعنى ما ، للسماح للمستخدمين بتحديد أوراكل الخاصة بهم ، وتشكيل مجموعات الرهان الخاصة بهم (من خلال العقد) حول تلك الأوراكل. يمكن لمجموعات المستخدمين الذين يستخدمون نفس الوسيطة المراهنة معًا باتباع منطق العقد. يضع ذلك على عاتق المستخدم مسؤولية اختيار أوراكل الذي يثق به ، ومشاركة هذه الوسيلة مع مستخدمين آخرين متشابهين في التفكير. إنه في الواقع يكسر مجتمع المراهنات ، لذلك لن ينجح إلا إذا كانت هناك قاعدة مستخدمين كبيرة ؛ خلاف ذلك ، سيكون هناك عدد قليل جدًا من المراهنين المشاركين لجعل المراهنة ممتعة ومربحة حقًا. إذا كنت الشخص الوحيد الذي يراهن باستخدام أوراكل المفضل لدي ، فليس هناك الكثير من الحافز! لكن من ناحية أخرى ، فإنه يأخذ على عاتقه اختيار وحي مؤتمن من صاحب العقد ، ويغسل يديه من ذلك. إذا وجد بعض المستخدمين أن أوراكل غير جدير بالثقة ، فسيتوقفون ببساطة عن استخدامه والتحول إلى أخرى ، ولن يغضب أحد من مالك العقد. لقد قدم ببساطة ساحة المراهنة وأدى خدمته بشرف.
ومما يزيد من تعقيد هذه الإستراتيجية حقيقة أنه سيتعين علينا بطريقة ما السماح لمجموعة عضوية من الأوراكل "بالنمو" في البرية ، وتلك التي تناسب هذا الحل تمامًا. سيتعين علينا أن نبث للعالم الواجهة الدقيقة التي يجب أن تلتزم بها أوراكل المحتملة ، ونأمل أن يظهر عدد كافٍ منهم لإعطاء المستخدم بالفعل بعض الخيارات. ربما يمكننا زرع الدفعة بواحد أو اثنين من مجموعتنا. إذا لم يستغرق الأمر ، فلن نراهن على DApp. ولكن إذا كان الأمر كذلك ، فلا بد لي من الاعتراف بأن فكرة اختيار المستخدم ، والمزروعة عضويًا في البرية هي حل مثير للاهتمام وجذاب.
2. قد يكون مالك / مشرف الوحي فاسدا
الفساد بمعنى غير موثوق به ؛ أن مالك / مشرف / مدير أوراكل من المرجح أن يعلن نتيجة غير صحيحة للمباراة ، من أجل إثراء نفسه.
مثال: أنا المالك / المشرف على oracle الفعلي الذي يغذي بيانات الملاكمة على blockchain لاستخدام عقد الرهان. لا يشارك أوراكل بشكل مباشر في أي رهان أو إدارة مراهنة. وتتمثل مهمتها في توفير البيانات التي يمكن أن يستخدمها عقد الرهان (وربما أي عدد من العقود الأخرى). ومع ذلك ، قد أضع رهانًا شخصيًا باستخدام عقد الرهان الذي يستخدم بدوره أوراكل ؛ أنا مجهول على أي حال ، لذا فأنا لا أخاف من أي عقاب. بمجرد أن أراهن على مثل هذا العقد ، هناك تضارب واضح في المصالح. على وجه التحديد ، قد تتعارض الصدق الذي أقوم به بتحديث أوراكل بمعلومات صحيحة ودقيقة مع إجراءات الرهان الخاصة بي.
لنفترض أنه في مباراة Sandman / von Kaiser القادمة ، حيث يكون von Kaiser هو المستضعف بشكل كبير ، فأنا أضع رهانًا كبيرًا على von Kaiser. عندما يخسر فون كايزر كما هو متوقع ، أستخدم أوراكل لأعلنه كذباً الفائز بدلاً من ذلك! يتم تنفيذ عقد الرهان كما ينبغي (لا توجد طريقة لإيقافه في هذه المرحلة) ، أقوم بقتل المباراة ، ولا يوجد ملاذ ولا سبيل لمعاقبتي ، وتستمر الحياة. ربما ، بعد ذلك ، يرفض الناس استخدام أوراكل بعد الآن ؛ ربما لا يهمني.
كيف يمكننا منع حدوث ذلك؟
نحن الآن في سؤال أكبر بكثير وهو سؤال يتطرق إلى قلب ما يسمى بعدم الثقة من حيث صلته بأوراكل. موثوق به كطرف ثالث محايد أو حتى طرف ثالث موثوق به. المشكلة هي أن أوراكل يديره البشر. لا تزال هناك مشكلة أخرى وهي أن أوراكل يمارس قدرًا كبيرًا من السيطرة على كيفية أداء عقد العميل لواجباته لأنه يوفر البيانات التي يعمل بموجبها العقد. كيف يمكننا أن نعرف أبدًا أنه يمكننا الوثوق بوحي معين؟
لماذا يجب أن نثق في أي أوراكل؟
إذا كانت الفكرة الكاملة لعقود blockchain الذكية هي إزالة الحاجة إلى الوثوق بأي شخص ، فهل حقيقة أننا يجب أن "نثق" في أوراكل في مواجهة عدم الثقة؟ حسنًا ، أود أن أقول: حان وقت النضج ، يا بني (أو ابنة)! لا يوجد شيء مثل انعدام الثقة المطلق ، ولا توفر blockchain بيئة غير موثوق بها. Blockchain هي طبقة تسهل التفاعلات البشرية. لا تزال التفاعلات البشرية هي الأساس أو النتيجة النهائية ، ولا يمكن أن تكون التفاعلات البشرية غير موثوقة.
الرابط: مشكلة أوراكل

تطور الثقة
بالعودة إلى فجر التاريخ ، كيف يمكنني الوثوق بإنسان آخر؟ افترض أنني أصطاد الماموث ، وهذا الرجل قال إنه سيساعدني في اصطياد الماموث مقابل نصف اللحم؟ كيف يثق في أنني سأوفر النصف؟ كيف يمكنني أن أثق بأنني لن أصطدم برأسي وأخذ الماموث كله بمجرد انتهاء الصيد؟
بالعودة إلى تلك الأوقات ، كان من المحتمل أن يكون التهديد بالعنف في صميم العديد من أنواع الثقة الاجتماعية والاقتصادية. إذا حاولت سرقة نصيب هذا الرجل ، فأنا متأكد من أنه سيحاول مهاجمتي ، وهذا يعرضني للخطر. حتى لو شعرت بالثقة في أنني سأفوز في معركة معه ، فأنا (كرجل الكهف) أعرف ما يكفي عن القتال لأعرف أن أي شيء يمكن أن يحدث ، ويمكنني بسهولة أن أتحمل إصابة تهدد الحياة حتى لو فزت من الناحية الفنية. إنها دائمًا مخاطرة واستثمار للطاقة. في هذا العالم ، قد يكون ذلك كافيًا للحفاظ على صدق الناس.
بشكل عام ، لن أغش لأنه ليس من مصلحتي ، بشكل عام وفي المتوسط ، القيام بذلك. بمعنى آخر ، النتيجة المتوقعة للغش أقل من النتيجة المتوقعة للتعاون.
إذا لم يكن الأمر كذلك ، أو إذا أدرك الممثلون أن الأمر ليس كذلك ، فمن المحتمل أن يختار واحد أو أكثر عدم المشاركة. على سبيل المثال ، إذا رأيت أن الرجل الآخر هو عملاق يبلغ طوله 9 أقدام وله قرون وأسنان وحشية ، فقد أختار الهروب وعدم عقد أي صفقة ؛ الرجل يبدو خطيرًا جدًا بالنسبة لي للتعامل معه ، يمكنه ببساطة أن يسرق ما يحبه دون عقاب. إذا كنا متطابقين بشكل متساوٍ تقريبًا ، فإننا ندرك أننا في موقف لا يخدم فيه أي طرف الغش ، فمن مصلحتنا التعاون ، وبالتالي ، على افتراض أن كلا الطرفين عاقل وعقلاني ، كلا الطرفين سوف يتعاون.
كما تطورت الثقافة ، وكذلك التفاعلات البشرية. أصبحوا أقل عنفًا ، على الرغم من أن التهديد الضمني باستخدام القوة لم يختف. أعطت الأعراف الثقافية الناس حافزًا أكبر للتعاون وأنواعًا مختلفة من المثبطات للغش.
تقدم سريعًا إلى عصر الحضارة المبكرة ؛ أنا أقوم بصفقة لشراء 100 بوشل من القمح. إنه نوع من العقود الآجلة البدائية. أدفع اليوم ثمن الحبوب التي سأحصل عليها عندما يتم حصادها الشهر المقبل. أعطي للرجل عملاتي النحاسية ، نتصافح ، نتشارك مشروبًا من بيرة الشعير ، ونفصل طرقًا حتى الشهر المقبل لتسوية العقد. يبدو طيب.
لقد وضعت نفسي تحت رحمة ذلك الرجل ؛ لديه المبلغ الكامل من أموالي ، وليس لدي أي شيء حتى الآن. إذن ما الذي يجعلني أشعر بالثقة في أنه سينفذ العقد؟ أشياء قليلة. هو رجل أعمال؛ يتعامل بانتظام مع السكان المحليين. لقد أجرى أعمالًا مع أشخاص أعرفهم ، وكان دائمًا يقدم أداءً عادلاً وفي الوقت المحدد. يتمتع بسمعة طيبة في الصدق. علاوة على ذلك ، أعلم أن لديه ما يثبط الغش. إنه يكسب رزقه أساسًا من حقيقة أنه تاجر نزيه. إذا كان سيخدعني ، فسأخبر الجميع ، وهذا من شأنه أن يضر بسمعته الجيدة ، وبالتالي أعماله. سيكون مبلغ المال الذي يجنيه من غشتي صغيرًا مقارنة بالمبلغ المستقبلي الذي يمكنه تحمل عدم تحقيقه إذا تخلت قاعدة عملائه عنه. لذلك أعلم أنه ليس من مصلحته بالضرورة أن يخدعني.
هذا عظيم؛ التهديد باستخدام القوة أو العنف غائب عن الصورة أعلاه. باستثناء شيئين:
- التهديد باستخدام القوة ليس غائبا تماما. قد يكون من العوامل الأخرى التي تثبط الغش التفكير فيما سيفعله الرجل الذي تعرض للغش. لدي أسلحة وأصدقاء مخلصون لي. أنا ، كطرف غاضب غاضب ، يمكن أن ألجأ إلى القوة. هكذا تبدأ حروب العشائر!
- قد يكون هناك أيضًا نظام حوكمة من نوع ما ، والذي سيقيم تفاصيل القضية وربما يفرض غرامة على التاجر أو يضعه في السجن. إن مثبطك القياسي المدعوم من الحكومة مدعوم دائمًا بالتهديد باستخدام القوة ، لأن العقوبة الأساسية لرفض دفع الغرامة ، ورفض الذهاب إلى السجن ، ورفض الامتثال لجميع الإجراءات ، تكون سارية في النهاية. وهذا يستمر حتى يومنا هذا. إذا رفضت دفع غرامة ، فقد يتم اعتقالي. إذا رفضت أن يتم اعتقالي ، فسيتم استخدام القوة ضدي ، ويمكن زجني في السجن ضد إرادتي أو حتى قتلي (إذا كانت مقاومتي عنيدة بدرجة كافية). هناك نرى التهديد بالقوة على بعد خطوتين فقط ، ولو لمخالفة بسيطة!
الثقة اللامركزية اليوم
سريع إلى الأمام حتى يومنا هذا. ما هي مثبطات لكسر العقد؟ هل هم مختلفون كثيرًا عن السيناريو السابق؟
تمتلك الشركة X خصمًا عبر البريد لشراء هذا المنتج. لماذا تثق في أنهم سينجزون ذلك؟ كما في المثال السابق ؛ تكسب الشركة القليل من الغش في مبلغ زهيد ، وتخسر الكثير من خلال الإضرار بسمعتها. هذا هو الأساس وراء العديد من سيناريوهات الثقة وقد كان لفترة طويلة. ومرة أخرى ، كما في مثال تاجر الحبوب ، هناك تهديد باستخدام القوة ، رغم أنه في هذه الحالة لن يتحقق ذلك. قد يتم تغريم الشركة أو معاقبتهم بدعوى جماعية ، ويجب على الشركة دفع الغرامة أو مواجهة عقوبات أسوأ. هذه العقوبات مدعومة من قبل الحكومة ، والتي بدورها مدعومة بالتهديد باستخدام القوة ، اقتصاديًا وعسكريًا ، على الرغم من أننا يمكن أن نعتبر أن التهديد باستخدام القوة الاقتصادية مدعوم بدوره بالقوة العسكرية ، أي العنف.
الأنظمة التقليدية
نموذج العقود المدعوم بتطبيق القوة الذي أقرته الحكومة قد خدم الإنسانية جيدًا لآلاف السنين؟ أم لديها؟ حسنًا ، لقد حدث ذلك ، لكنه تطور طبيعي. في غياب الحكومة ، مجموعات من الناس تشكل الحكومات. يبدو أنه لا يمكنك منع الناس من تشكيل الحكومات ؛ سوف يتشكلون.
إذن ، ماذا عن العقود الذكية blockchain؟ كيف تضمن blockchain ونموذج العقد الذكي الموثوقية أو تثبط الغش؟ لا تقل "عدم الثقة" فقط ، فهذه ليست إجابة! في أمثلةنا السابقة ، يتم تثبيط الغش بطريقة ما.
دعنا نلقي نظرة فاحصة على كيفية قيام blockchain (أو استبدال) بهذه الوظيفة.
أنظمة Blockchain: Bitcoin
لتقسيم هذا السؤال الكبير إلى أسئلة أصغر ، لنبدأ بعملة البيتكوين. كيف تثبط البيتكوين الغش؟ أنا حر في تشغيل أي برنامج عقدة بيتكوين أريده ، طالما يبدو أنه يلتزم ببروتوكولات شبكة البيتكوين. لا أحد يثنيني عن تشغيل عقدة البيتكوين الخاصة بي التي تفعل ما تريد أثناء الالتزام ببروتوكولات الشبكة ؛ هل هناك طريقة يمكنني من خلالها استخدام ذلك لتحقيق مكاسب غير مشروعة؟
بالتأكيد ، يمكنني إصدار أي نوع من المعاملات إلى شبكة البيتكوين للموافقة عليها. يمكنني إصدار معاملة ترسل لي كل عملات البيتكوين الخاصة بك ، وتحريرها على الشبكة ، وانتظر إضافتها إلى كتلة ، واو ، والآن أصبحت جميع عملات البيتكوين الخاصة بك ملكًا لي ؟ لا ، بسبب التشفير.
ليس لدي مفتاحك الخاص ، ويجب توقيع مثل هذه المعاملة بمفتاحك الخاص. لذلك ، أنا محجوب هناك بواسطة التشفير. أو هل أنا؟ من قال أن مثل هذه الصفقة يجب أن يتم التوقيع عليها؟ ماذا سيحدث إذا حاولت ذلك؟ حسنًا ، ما سيحدث بالطبع هو أن شبكة البيتكوين بأكملها سترفض معاملتي. لماذا يقبلها أي شخص؟ بصرف النظر عن حقيقة أنهم جميعًا يديرون عقدًا قياسية ، والتي سترفضها تمامًا ، فلماذا تساعدني في الغش؟ سيؤدي القيام بذلك بالتأكيد إلى تقويض سلامة شبكة البيتكوين وبذلك يقوض ثروتهم المشفرة. لذلك ليس من المنطقي بالنسبة لهم أن يساعدوني ، أنا شخص غريب مجهول ، لخداع شخص غريب آخر مجهول الهوية. حتى إذا قبل أحد الفاعلين غير العقلانيين بطريقة ما معاملتي غير الصالحة ، فإن الغالبية العظمى من شبكة البيتكوين سترفضها ، وليس لديها فرصة. لقد هُزم مرة أخرى ، هذه المرة بالأعداد الهائلة.
ماذا لو كنت ، رغم ذلك ، عملية تعدين قوية؟ بالتأكيد لدي الآن المزيد من القوة لفهم الأمور لصالحي. أنا أفعل ، لكنها ما زالت لا تعطيني أي شيء قريب من القوة المطلقة. حتى بصفتي عامل منجم قويًا ، إذا كنت أتحكم في أقل من 50٪ من الشبكة ، فلا يمكنني فعل الكثير. لدي بعض القوة لاختيار الترتيب الذي تتم فيه إضافة المعاملات إلى الكتل ، ولكن هذه ليست القدرة على سك العملات أو سرقتها. حتى لو كنت أتحكم في أكثر من 50٪ من الشبكة (بافتراض هنا أن القارئ على علم بهجوم 51٪ المعروف فيما يتعلق بإثبات العمل كما هو الحال في البيتكوين) ، فإن قوتي الرئيسية ستكون الإنفاق المزدوج. على الرغم من كونه قوة رائعة ، إلا أنه من المشكوك فيه للغاية ما إذا كان من مصلحتي القيام بذلك ، لأنه من شأنه أن يقوض سلامة البيتكوين. يبدو أنه من الأفضل استخدام سيطرتى لتعدين جميع العملات ، وبالتالي كسب المزيد من المال ، والحفاظ على الأرضية التي تقوم عليها تلك الثروة. وبالتالي ، فأنا لا أتعرض للضرب ، لكن اندفاعي إلى الغش أعاقه عامل مثبط مضمّن عضويًا في البروتوكول. وهذا العامل المثبط مدعوم بشكل أساسي بقوة الأرقام ؛ الإجماع الساحق للمشاركين على شبكة البيتكوين.
عقود Blockchain الذكية وعقود Oracle
ما هي العقود الذكية؟ افترض أنني قمت بنشر عقد مضلل لخداع الناس لإرسال أموالهم إلي؟ أو لنفترض أنني قمت بنشر عقد مراهنة واستخدمت إحدى الهجمات (إذا كان بإمكانك تسميتها) التي تم وصفها مسبقًا؟ أستطيع أن أفعل ذلك ، فقد يخدع بعض الناس ؛ أنا ، بصفتي ممثلاً غير أمين ، قد أحقق بعض الأرباح الصغيرة من مثل هذا المسعى. الدفاع ضد ذلك سيكون لكل مشارك أن يدرس بعناية (كما يجب أن يفعل المرء مع أي عقد) العقد الذي يكون على وشك أن يصبح طرفًا فيه ، والطرق المحتملة التي يمكن من خلالها إساءة استخدامه. يجب عليهم أيضًا النظر في المصدر - ما الذي يعرفونه ، إن وجد ، عن الطرف الذي ينشر العقد ويحافظ عليه وأي أوراكل مرتبطة به أو عقود مرتبطة به. قد يأمل المرء ألا يستمر العقد غير النزيه لفترة طويلة قبل أن تضعه الشبكة بشكل غير رسمي على أنه غير نزيه ، مما يتسبب في تجنبه طواعية ، مما يؤدي إلى قطعه. الشبكة كبيرة والكلمة تنتقل بسرعة.
باستثناء وقت ما ، ما زلت بحاجة إلى الوثوق بإنسان. يتم توفير بيانات عقد الرهان بواسطة أوراكل. الوحي يحتفظ به الإنسان. بغض النظر عن عدد الطبقات التي تضيفها في محاولة للحفاظ على صدق الشبكة ، فإنها لا تزال تعود إلى الإنسان في مرحلة ما. إذن ما نوع الوسيطة التي تثق بها ، بالنظر إلى مثال الرهان لدينا؟ أود أن أثق في أوراكل الذي سيخسره أكثر من ربحه ، من خلال الغش. مثال: تخيل أن ESPN أو شبكة مماثلة كانت رعاة أوراكل. كنت تتوقع منهم ، أكثر من أي شخص آخر ، أن يقدموا بيانات صادقة ، لأن الفوز بشكل غير قانوني بمبلغ ضئيل في رهان ملاكمة سيطغى عليه فقدان السمعة الناتج. في هذه الحالة ، ثقتك في وضع جيد لنفس السبب الذي يجعلنا نثق في تاجر الحبوب الصادق. هذا النوع من ترتيب الثقة قديم وراسخ.
إذن ، ما الذي اكتسبناه من استخدام العقود الذكية؟ كيف تختلف العقود الذكية عن الحوكمة أو الأساليب السابقة في تنفيذ العقود؟
تغليف
فقط لإثبات نقطة ، لإعطاء طعام للفكر والمناقشة ، ولإختتام مقالتي ، سأقدم بعض الملاحظات البسيطة ، بدلاً من الاستنتاجات الصعبة. لأنه بالنسبة لموضوع بهذا التعقيد ، فإن الاستنتاج المختصر يبدو وكأنه نوع من القصة فقط وإفراط في التبسيط. الملاحظات التي سأقدمها (ولا تتردد في مناقشتها / دحضها / مناقضتها) هي:
- الثقة القائمة على افتراض أن الطرف الآخر سيكسب من التعاون أكثر من الغش أمر قديم ، ويعمل في مواقف عملية ، ولم يختف. لا يزال متأصلًا في بعض الحالات في عالم blockchain ، على الرغم من أنه ربما يتم التخلص منه في كثير من الحالات. في حالة مثال أوراكل لدينا ، لا يزال على قيد الحياة وبصحة جيدة.
- كانت الثقة القائمة على التهديد باستخدام القوة أو العنف متأصلة أيضًا في المجتمع البشري منذ زمن سحيق ، ولكنها غائبة بشكل ملحوظ عن نموذج العقد الذكي الخاص بنا ، وتم استبدالها بالإنفاذ من خلال مجموعات ذكية من التشفير وإجماع الأعداد الكبيرة.
أتحدى زملائي مطوري Ethereum للقيام بأمرين:
- فكر في أي طريقة في أنظمة البلوكشين العامة (مثل البيتكوين أو الإيثريوم) ، حيث يتم فرض أي شيء من خلال التهديد الضمني أو الصريح باستخدام القوة.
- فكر في أي نظام حكم رئيسي في العقد الحديث أو القانون المالي ، والذي لا يتم فرضه بطريقة ما من خلال التهديد الصريح أو الضمني باستخدام القوة.
شيء قديم ، شيء جديد
وأعتقد أننا وصلنا هنا إلى الاختلاف الرئيسي ، والسبب الحقيقي لقولنا إن أنظمة blockchain "ثورية" ، مقارنة بأنظمة الماضي. من وجهة نظري ، لا يتعلق الأمر بعدم الثقة على الإطلاق ، بل هو بالأحرى منصة أكثر استقرارًا للثقة - وعلى الأخص - منصة لا تعتمد على الإطلاق على التهديد باستخدام القوة أو العنف.
من ناحية أخرى ، لدينا ضمان قديم تم اختباره بمرور الوقت للمنفعة المتبادلة في المواقف التي يوجد فيها نقص في الحافز للغش. هذا ليس بجديد. الجديد هو تقديم الإجماع بمساعدة التشفير ، والذي يساعد على تثبيط الغش والحفاظ على صدق النظام. وقد أنتج تجميع هذين العنصرين شيئًا رائعًا حقًا ، ممكن لأول مرة في تاريخ البشرية: نظام يمكن استخدامه لمجموعات كبيرة مجهولة الهوية ، حيث لا يوجد في أي مكان التهديد الصريح أو الضمني باستخدام القوة كمثبط أو عقاب. . وهذا ، في اعتقادي ، هو ما هو مدهش حقًا. إذا تم التغاضي عن هذا الجانب ، فإن ما لدينا هو تقنية جديدة أنيقة (أعترف أنها رائعة بما يكفي كما هي). ولكن عند النظر في هذا الجانب ، من الواضح أننا دخلنا حقبة جديدة من الحكم.