هل من الممكن توليد أرقام عشوائية إذا كنا لا نثق في بعضنا البعض؟ الجزء 1

مرحبا هبر!

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

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

عندما نصمم بروتوكول إنشاء رقم عشوائي موزع ، نريد أن يكون له ثلاث خصائص:

  1. يجب أن يكون غير متحيز. بمعنى آخر ، يجب ألا يؤثر أي مشارك بأي شكل من الأشكال على نتيجة مولد الأرقام العشوائية.

  2. يجب أن يكون غير متوقع. بمعنى آخر ، يجب ألا يتمكن أي مشارك من توقع الرقم الذي سيتم إنشاؤه (أو استنتاج أي من خصائصه) قبل إنشائه.

  3. يجب أن يكون البروتوكول قابلاً للتطبيق ، أي مقاومًا لحقيقة أن نسبة معينة من المشاركين تنفصل عن الشبكة أو يحاولون عمدًا إيقاف البروتوكول.

في هذه المقالة سنلقي نظرة على طريقتين: 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.

, VDF .

, . ⅓ , , ⅔ , .

. , 100 . , :

  1. , 67 , 100 , , 67 , 100 . .

  2. , 67 .

  3. , 67 , , .

  4. 67 (3), , XOR , (1).

, . , , ⅔ , . , , , , .

, (1) , ? , , , . , : , , , , , . (2) , ( , , , ). 67 , 67 ( ), 67 , .

(4) 67 , , :

  1. , , , , .

  2. , , .

  3. .

, (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 – , .

, Rust, .

NEAR, -IDE .

, .

!




All Articles