مرحبا هبر!
في هذه المقالة سأتحدث عن توليد أرقام شبه عشوائية من قبل المشاركين الذين لا يثقون ببعضهم البعض. كما سنرى أدناه ، من السهل جدًا تنفيذ مولد جيد "تقريبًا" ، ولكن من الصعب جدًا إنشاء مولد جيد جدًا.
لماذا تهتم بتوليد أرقام عشوائية للمشاركين الذين لا يثقون ببعضهم البعض؟ أحد مجالات التطبيق هو التطبيقات اللامركزية. على سبيل المثال ، التطبيق الذي يقبل مزايدة من أحد المشاركين ويضاعف المبلغ باحتمال 49٪ ، أو يأخذها من 51٪ ، لن يعمل إلا إذا كان بإمكانه الحصول على رقم عشوائي بطريقة منفتحة. إذا تمكن المهاجم من التأثير على نتيجة مولد الأرقام العشوائية ، بل وزاد بشكل طفيف من فرصته في الحصول على أموال في التطبيق ، فيمكنه تدميره بسهولة.
عندما نصمم بروتوكول إنشاء رقم عشوائي موزع ، نريد أن يكون له ثلاث خصائص:
يجب أن يكون غير متحيز. بمعنى آخر ، يجب ألا يؤثر أي مشارك بأي شكل من الأشكال على نتيجة مولد الأرقام العشوائية.
يجب أن يكون غير متوقع. بمعنى آخر ، يجب ألا يتمكن أي مشارك من توقع الرقم الذي سيتم إنشاؤه (أو استنتاج أي من خصائصه) قبل إنشائه.
يجب أن يكون البروتوكول قابلاً للتطبيق ، أي مقاومًا لحقيقة أن نسبة معينة من المشاركين تنفصل عن الشبكة أو يحاولون عمدًا إيقاف البروتوكول.
في هذه المقالة سنلقي نظرة على طريقتين: RANDAO + VDF وطريقة كود المسح. في الجزء التالي ، سوف نلقي نظرة فاحصة على نهج توقيع العتبة.
لكن أولاً ، دعنا نحلل خوارزمية بسيطة وشائعة الاستخدام وقابلة للتطبيق ، ولا يمكن التنبؤ بها ، ولكنها متحيزة.
رانداو
RANDAO - , , . , . , XOR, .
, , . .
(.. ): , , . , , , , .
, , RANDAO? , , , . , , , , XOR, , , . , 1 . , .
, , -. . , .
RANDAO + VDF
, RANDAO , : , , XOR , , , , .
(vdf_output, vdf_proof) = VDF_compute(input) //
correct = VDF_verify(input, vdf_output, vdf_proof) // Verifiable Delay Function, VDF. , , , .
VDF . , , VDF , Ethereum 2.0 RANDAO VDF . , , , , ( , ).
VDF, VDF . , , 10x. , ASIC, VDF , , RANDAO. - , , , , .
VDF ASIC 100+ , . , 10 , VDF, ASIC, 100 , 10- , , , VDF, , 100 x 100 = ~ 3 .
Ethereum Foundation ASIC. , , RANDAO + VDF , ASIC.
. , 100 . , :
, 67 , 100 , , 67 , 100 . .
, 67 .
, 67 , , .
67 (3), , XOR , (1).
, . , , ⅔ , . , , , , .
, (1) , ? , , , . , : , , , , , . (2) , ( , , , ). 67 , 67 ( ), 67 , .
(4) 67 , , :
, , , , .
, , .
.
, (1), (1), , (2) (3), (2) (3). , , . – XOR , .
BLS. , , , , , .
BLS – , . , .
BLS- , , – BFT. , 100 , , 67 . BLS- -, 67 , BLS-. 67 ( ) , , 67 , , , 67- , . , 67, .
, , , , , 67 ( , ) , . : , ( RANDAO , , ), BLS-. , 67 , .
, ⅔ , ⅓ . , , ⅓ ⅔ , .
– . , , .
– NEAR. NEAR – , .
!