Ethereum عبارة عن منصة لا مركزية تعمل كأساس للعقود الذكية - التطبيقات التي تعمل تمامًا وفقًا لرمز برنامجها ، دون أدنى احتمال لوقت التعطل أو الرقابة أو تدخل المحتالين أو وكلاء الطرف الثالث.
- Ethereum.org
نحن المطورون نحب أن نؤمن بمستوى توافق ملتزم بحل جميع المشاكل المعقدة للأنظمة الموزعة ، مما يسمح لنا بكتابة التطبيقات. يعيش عمال المناجم على مستوى الإجماع ، ويقومون بشؤون عمال المناجم. يجلس المطورون على مستوى التطبيق ويكتبون عقودًا ذكية - البرامج التي تعمل داخل Ethereum Virtual Machine (EVM). تتفاعل تطبيقاتنا اللامركزية مع الكمبيوتر ، وتعتمد على سلامته وأمانه.
نحن نعلم أن EVM يعمل بالإجماع ، ولسنا بحاجة للتفكير في هذه الآلية طالما أنها تعمل. نحن لا نفكر في عمال المناجم ، لأنه في النهاية ، ليست هناك حاجة لفهم مبدأ تشغيل أشباه الموصلات أو ميزات تصميم الرقائق الدقيقة لأجهزة الكمبيوتر الحديثة. لكن ، للأسف ، هذا الفصل المريح والمتوقع بين المستويات ليس أكثر من وهم. الوهم على مستوى الإجماع الذي يساعدنا على نسيان أن عمال المناجم ليسوا أصدقاء لنا.
من الناحية العملية ، فإن الانتقال من العقود إلى الإجماع هو ظاهرة أقل سلاسة بكثير ، وليست مباشرة كما يعتقد عادة. يؤثر إنشاء الكتل على حالة EVM ، مما يؤثر بدوره على تحديات العقود الذكية ، ونتيجة لذلك ، يؤثر على تشغيل التطبيقات اللامركزية ومستخدميها. كلما كانت الكتل أبطأ ، كانت التطبيقات اللامركزية أبطأ. كلما كانت الكتل أسرع ، زادت سرعة التطبيقات. تتسبب الكتل الفارغة في توقف التطبيقات عن العمل.
من وقت لآخر ، يتداخل مستوى الإجماع دون قصد مع التطبيقات اللامركزية. ولكن قد تكون هناك حالات قد يتدخل فيها ممثلو هذا المستوى عمداً. يتحكم عمال المناجم في مستوى الإجماع. إنهم يعملون من أجل المال ، وبالتالي سيحافظون على مستوى الطلب فقط طالما أنه سيجلب لهم الربح. إذا تمكنوا من كسب المزيد من المال من خلال التدخل في مستوى التطبيق ، فسيبدأون في النهاية في القيام بذلك.
حلقة مفرغة لعمال المناجم
عمال المناجم ليسوا أصدقاءك. ومع ذلك ، لا أعداء. إنهم لا يريدون إيذائك ، فهم ببساطة لا يمكنهم تجنبه. هذه هي متطلبات إثبات العمل. يجب على عمال المناجم الدخول في منافسة شرسة للحصول على الحق في الحصول على هامش صغير للغاية. إنهم عالقون في مشاية عمال المناجم ، حيث يحدد أسرع العدائين السرعة.

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

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

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

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

من خلال تغيير ترتيب عقود التصدير ، يمكن لعمال المناجم التأثير على نتائج تنفيذ العقود. هذا يعني أنه يمكنهم ، ضمن حدود معينة ، مراقبة حالة EVM. وتتفاقم الحالة بشكل خاص من خلال العقود العامة الكبيرة التي تحكم التفاعل بين عدد كبير من المستخدمين. كلما كانت مجموعة المعاملات المتاحة لعمال المناجم أوسع ، زادت سيطرته على الحالة النهائية.
يجب على مطوري العقود توفير مثل هذه المحاولات لتغيير ترتيب المعاملات بشكل عشوائي. خلاف ذلك ، قد يثير عمال المناجم دفع عمولات إضافية أو التسبب في ضرر آخر غير مقصود لمستخدمي التطبيق.
إدخال المعاملات
عند تشكيل ترتيب المعاملات في كتلة ، لا يقتصر عمال المناجم على مجرد القدرة على التلاعب في معاملات الآخرين. يمكنهم إنشاء معاملاتهم الخاصة. لديهم ETH. ومثلنا جميعًا ، يمكنهم اللعب معه في كازينو blockchain وشرائه أو بيعه في أسواق blockchain. ومع ذلك ، فإن القدرة على تحديد ترتيب معالجة المعاملات في بعض الحالات قد تسمح لها بأن تصبح الأولى في قائمة انتظار المعالجة.
دعونا نخرج بعقد ذكي بسيط آخر. هذه المرة ، تريد أليس أن تلعب لعبة التخمين. وضعت 5 إيثرات في العقد. يتم إرسال هذا المبلغ إلى الشخص الذي يسمي الرقم الأقرب إلى الرقم المقدر. نداءات أليس
commit
بتجزئة الرقم ، مما يضمن ثباته. يمكن لأي شخص استدعاء
guess
والمشاركة في التخمين. بعد مبنيين ،
reveal
مكالمات أليس لإعلام الجميع عن الرقم الذي تم تكوينه.

أليس لا يمكنها الغش ، لأن هذا منصوص عليه في العقد. لكن عامل المنجم لديه مثل هذه الفرصة. يمكنه الانتظار والاتصال برقمه بعد أن يرى المكالمة. سيعرف النتيجة حتى قبل تشكيل الكتلة! حتى لو اتصل ديفيد أيضًا بـ 4 ، يمكن لعمال المناجم تغيير الترتيب ، وبالتالي ضربه.
عندما ينشئ مستخدم عادي معاملة ، يرسلها إلى عمال المناجم لإدراجها في الكتلة. يجب على المستخدم إعطاء موافقة لا رجعة فيها على المعاملة قبل أن يرى نتيجة تنفيذها. على النقيض من ذلك ، يمكن لعمال المناجم الانتظار في عملية إنشاء كتلة ثم تحديد ما إذا كان يجب عليهم تضمين معاملة معينة أم لا. وهذا يعني أن لديهم إمكانية الوصول إلى معلومات أكثر من المستخدمين العاديين ، بالإضافة إلى القدرة على تغيير ترتيب المعاملات. هذا يمنحهم ميزة خطيرة في أي نظام قائم على blockchain.
عندما يتفاعل المستخدمون وعمال المناجم على blockchain من خلال عقد ذكي ، هناك خطر من أن يقوم عمال المناجم بإدخال المعاملات وتغيير ترتيبهم لمصلحتهم الخاصة. كقاعدة عامة ، هذا يعني أنهم سيحصلون على أموال ، والتي كان من المفترض أن تذهب إلى جيب المستخدم العادي. يجب على مطوري العقود الذكية تصميم أنظمتهم لمعالجة عدم المساواة.
أخطاء إجباريةيمكن لعمال المناجم الاستفادة من إعادة الترتيب والإدراج للتدخل في تحديات العقود الذكية. في بعض الأحيان يمكنهم حتى تعطيل التحدي بالكامل. نسمي مثل هذه الحالات أخطاء قسرية. تحدث عندما يقوم عمال المناجم بتغيير الحالة إلى نوع من المكالمات غير المتوقعة ، ونتيجة لذلك يفشل. يمكنهم القيام بذلك عن طريق إدراج معاملة تؤثر على الدولة.
لنقم بإنشاء عقد ذكي بسيط للسوق. أنا تصدير
sell
لطرح بعض الرموز المميزة للبيع بسعر معين. يمكن لأي شخص الاتصال
buy
لشراء بعض الرموز المميزة الخاصة بي.

في هذه الحالة ، يمكن لعمال المناجم التحقق من مكالمة بوب الواردة
buy
والنظر في خيار شراء الرمز المميز الخاص به. يمكنه شراء ما يلزم تمامًا لبوب لإتمام المعاملة بخطأ. إذا أراد بوب شراء 2.5 جي إن تي ، فيمكن لعمال المناجم تحقيق هذا النقص. ستنتهي معاملة بوب بالخطأ ، لكن عامل المنجم سيحصل على عمولة مقابل ذلك. وبالتالي ، فإن بوب ، على عكس إرادته ، سيدفع ثمن عمال المناجم لشراء GNT ، دون تلقي أي شيء في المقابل.
هذا الهجوم خطير بشكل خاص في الإصدارات القديمة من Solidity. ستقوم الإصدارات القديمة من الكلمات الأساسية
assert
throw
بنقل جميع الغاز المرفق إلى عامل المنجم ، مما سيؤدي إلى حصولهم على عمولات عالية جدًا لعدم وجود أي عمل.
require
الكلمات الرئيسية الجديدة
revert
استخدام الغاز استنادًا إلى العمل الفعلي المنجز.
تسمح الأخطاء الإجبارية لعمال المناجم بتلقي العمولات لرفضهم أداء العمل. إذا انتهت المعاملة بأخطاء ، تعود الدولة إلى حالتها الأصلية. إذا وجد عامل المنجم طريقة موثوقة لإثارة المكالمات الخاطئة ، فلن يحتاج حتى إلى معالجة تغييرات الحالة. الكتلة المثالية وفقًا لإصدار عامل المنجم هي التي يتم حظرها بسبب الفشل في المعاملات والمدفوعات الخاطئة مع تحويل العمولة لمعالجتها ، دون أي تغييرات أخرى في الحالة.
يمكن لمطوري العقود الذكية منع هذا السلوك جزئيًا من خلال فحص عودتهم بعناية وطلب التعبير. إذا تمكن عمال المناجم من العثور على الطريقة الصحيحة لدفع العقد إلى الخطأ ، فسيكون بإمكانهم جمع عمولات إضافية من المستخدمين. القاعدة الأولى في مثل هذه الحالات: إذا كانت المكالمة تعتمد على حالة يمكن أن يغيرها مستخدم آخر ، فهي عرضة للأخطاء الإجبارية.
الرقابةعند اتخاذ قرار بشأن ترتيب المعاملات في كتلة ، يمكن أيضًا لعمال المناجم تجاهل بعض المعاملات بشكل انتقائي. يمكنهم القيام بذلك لأسباب سياسية أو مالية. ليس لدى المستخدمين بشكل عام أي ضمانات بأن عمال المناجم سيدرجون معاملة معينة في كتلة.
لنفترض أن "أليس" تريد أن تصنع بنكًا أصبعًا لها. يمكنها إطلاق عقد بسيط ، مما يسمح لها بسحب الأموال في موعد لا يتجاوز 10 آلاف كتلة. أليس شخص جيد وبالتالي فهي تريد التأكد من أنه في حالة وفاتها المفاجئة ، سيتم إرسال الأموال إلى شخص آخر على الأقل. لذلك ، تتأكد من أن العقد يسمح لعمال المناجم بسحب الأموال بعد 50 ألف كتلة.

كل عامل منجم لديه دافع قوي لعدم تضمين معاملة السحب في كتله. ليس لديهم ما يخسرونه: إذا لم تستطع أخذ المال أبدًا ، يمكنهم تجربة حظهم والحصول عليه في المستقبل. بالإضافة إلى ذلك ، لن تتمكن من سحب الأموال إلا إذا سمح لها عمال المناجم بذلك. حتى إذا لم يتآمروا ويتجاهلوا معاملاتها ، أو قاموا بأي هجوم بنسبة 51 ٪ ، فلا يزال بإمكانهم رفض قبول معاملاتها بشكل جماعي للمعالجة.
وهذا يعني أنه لا توجد ببساطة عقود لضمان تسليم المعاملة في الوقت المناسب بنسبة 100٪! سيكون عليك تصميم التطبيقات في ضوء الرقابة المحتملة التي لا يمكن التنبؤ بها من قبل عمال المناجم. وبما أن العقد لا يمكن أن يتنبأ برغبتهم في التدخل ، فينبغي أن ينص على تأخيرات محتملة في الوقت.
تصاعد المشاكل
كلما دخل المزيد من الأموال إلى النظام ، زاد احتمال رغبة عمال المناجم في التدخل بطريقة أو بأخرى في عمله. مع نمو التبادلات ، تصبح الكازينوهات أكثر تعقيدًا وتزداد قيمة blockchain ، وكذلك زيادة دافع عمال المناجم للتدخل.
الإجماع ليس فقط المستوى الذي يتم فيه الاحتفاظ بطلباتنا اللامركزية. في الواقع ، فهي متشابكة بشكل وثيق مع طبقة التطبيق. عندما نكتب برامج ، لا نفكر في الخصائص الفيزيائية للسيليكون ، لأننا نعلم أنها لن تحاول بنشاط أخذ أموالنا. لسوء الحظ ، بين EVM والسيليكون هناك طبقة في شكل عمال المناجم ، وإذا كان لا يمكن الوثوق بهم ، فلا يمكن الوثوق EVM.
يجب على مطوري Solidity برمجة جهاز كمبيوتر يعمل ضدهم. EVM على هذا النحو هو "النظام البيزنطي". أي جزء منه عرضة لنتيجة فاشلة سيأتي إليه في أسوأ لحظة. اليوم ، ما زلنا في مرحلة مبكرة للغاية من فهم العملات المشفرة والتعدين والعقود الذكية. الآن ، لا يظهر عمال المناجم رغبة نشطة في تحسين أنشطتهم على حساب المستخدمين ، ولكن هذا فقط في الوقت الحالي. سوف تنمو Ethereum ويومًا ما ، سنظل نتذكر هذه المرة كعصر ذهبي للتطبيقات اللامركزية.
عمال المناجم ليسوا أصدقاء وليسوا أعداء. إنها نوع من الكوارث الطبيعية التي لا يمكن السيطرة عليها والتي تعمل في أنظمة إجماعنا. أولئك الذين لا يتعلمون إدارة هذا العنصر سيصبحون في النهاية ضحايا عمال المناجم المتقدمين.
