ڇا اهو ممڪن آهي بي ترتيب نمبر پيدا ڪرڻ جيڪڏهن اسان هڪ ٻئي تي ڀروسو نٿا ڪريون؟ حصو 1

اي حبر!

هن مقالي ۾ آئون شرڪت ڪندڙن پاران pseudo-random نمبرن جي نسل بابت ڳالهائيندس جيڪي هڪ ٻئي تي ڀروسو نٿا ڪن. جيئن اسين هيٺ ڏسنداسين، ”تقريبا“ سٺي جنريٽر کي لاڳو ڪرڻ بلڪل سادو آهي، پر تمام سٺو جنريٽر ڏکيو آهي.

اهو ڇو ضروري هوندو ته انهن شرڪت ڪندڙن جي وچ ۾ بي ترتيب نمبر پيدا ڪرڻ جيڪي هڪ ٻئي تي ڀروسو نٿا ڪن؟ ھڪڙو ايپليڪيشن ايريا غير مرڪزي ايپليڪيشنون آھي. مثال طور، هڪ ايپليڪيشن جيڪا هڪ شرڪت ڪندڙ کان شرط قبول ڪري ٿي ۽ يا ته رقم کي ٻيڻو ڪري ٿي 49٪ امڪان سان يا کڻي وڃي ٿي 51٪ امڪان سان صرف ان صورت ۾ ڪم ڪندي جڏهن اها غير جانبداري سان بي ترتيب نمبر حاصل ڪري سگهي ٿي. جيڪڏهن ڪو حملو ڪندڙ بي ترتيب نمبر جنريٽر جي نتيجي تي اثرانداز ٿي سگهي ٿو، ۽ اڃا به ٿورڙو وڌائي سگھي ٿو ته هن جي درخواست ۾ ادائيگي حاصل ڪرڻ جو موقعو، هو آساني سان ان کي تباهه ڪري ڇڏيندو.

جڏهن اسان هڪ ورهايل بي ترتيب نمبر نسل پروٽوڪول ٺاهيندا آهيون، اسان چاهيون ٿا ته ان ۾ ٽي خاصيتون هجن:

  1. هن کي غيرجانبدار هجڻ گهرجي. ٻين لفظن ۾، ڪنهن به شرڪت کي ڪنهن به طريقي سان بي ترتيب نمبر جنريٽر جي نتيجي تي اثر انداز نه ڪرڻ گهرجي.

  2. هن کي غير متوقع هجڻ گهرجي. ٻين لفظن ۾، ڪو به حصو وٺندڙ کي اڳڪٿي ڪرڻ جي قابل نه هجڻ گهرجي ته ڪهڙو نمبر پيدا ڪيو ويندو (يا ان جي ڪنهن به ملڪيت جو اندازو لڳايو) ان جي پيدا ٿيڻ کان اڳ.

  3. پروٽوڪول کي قابل عمل هجڻ گهرجي، اهو آهي، حقيقت جي خلاف مزاحمتي آهي ته شرڪت ڪندڙن جو هڪ خاص سيڪڙو نيٽ ورڪ کان ڌار ٿي وڃي ٿو يا عمدي طور پروٽوڪول کي روڪڻ جي ڪوشش ڪري ٿو.

هن آرٽيڪل ۾ اسين ٻن طريقن تي نظر ڪنداسين: RANDAO + VDF ۽ erasure ڪوڊ جو طريقو. ايندڙ حصي ۾، اسان تفصيل سان جانچ ڪنداسين ته طريقي جي حد جي دستخط جي بنياد تي.

پر پهرين، اچو ته هڪ سادي ۽ عام طور تي استعمال ٿيل الورورٿم تي نظر رکون جيڪو قابل عمل، غير متوقع، پر تعصب آهي.

رنڊاءُ

RANDAO ھڪڙو بلڪل سادو آھي ۽ تنھنڪري بي ترتيب پيدا ڪرڻ لاءِ عام طور تي استعمال ٿيل طريقو آھي. سڀ نيٽ ورڪ شرڪت ڪندڙ پهريان مقامي طور تي هڪ pseudorandom نمبر چونڊيندا آهن، پوءِ هر شرڪت ڪندڙ چونڊيل نمبر جو هڪ هيش موڪليندو آهي. اڳيون، شرڪت ڪندڙ پنھنجي چونڊيل انگن کي ظاھر ڪرڻ ۽ نازل ڪيل نمبرن تي ھڪڙي XOR آپريشن کي انجام ڏيڻ لاء موڙ وٺندا آھن، ۽ ھن آپريشن جو نتيجو پروٽوڪول جو نتيجو بڻجي ويندو آھي.

انگن اکرن کي ظاهر ڪرڻ کان اڳ هيش شايع ڪرڻ جو قدم ضروري آهي ته جيئن حملو ڪندڙ ٻين شرڪت ڪندڙن جا نمبر ڏسڻ کان پوء پنهنجو نمبر چونڊي نه سگهي. اهو هن کي اجازت ڏيندو ته عملي طور تي اڪيلو هٿ سان بي ترتيب نمبر جنريٽر جي پيداوار جو اندازو لڳايو.

پروٽوڪول جي دوران، شرڪت ڪندڙن کي ٻه ڀيرا هڪ عام فيصلي (نام نهاد اتفاق راءِ) تي اچڻ جي ضرورت آهي: جڏهن چونڊيل انگن کي ظاهر ڪرڻ شروع ڪيو وڃي، ۽ تنهن ڪري هيشز کي قبول ڪرڻ بند ڪيو وڃي، ۽ جڏهن چونڊيل انگن کي قبول ڪرڻ بند ڪيو وڃي ۽ نتيجو بي ترتيب جي حساب سان. نمبر. شرڪت ڪندڙن جي وچ ۾ اهڙا فيصلا ڪرڻ جيڪي هڪ ٻئي تي ڀروسو نٿا ڪن، پاڻ ۾ ڪو آسان ڪم نه آهي، ۽ اسان مستقبل جي مضمونن ۾ ان ڏانهن موٽنداسين؛ هن آرٽيڪل ۾ اسان اهو سمجهنداسين ته اهڙي اتفاق الورورٿم اسان وٽ موجود آهي.

اسان مٿي بيان ڪيل ملڪيتن مان ڪهڙي RANDAO وٽ آهي؟ اهو غير متوقع آهي، هڪ ئي جيوت آهي بنيادي اتفاق پروٽوڪول وانگر، پر اهو تعصب آهي. خاص طور تي، هڪ حملو ڪندڙ نيٽ ورڪ جو مشاهدو ڪري سگهي ٿو، ۽ ٻين شرڪت ڪندڙن کان پوء انهن جي انگن اکرن کي ظاهر ڪري، هو انهن جي XOR کي ڳڻپ ڪري سگهي ٿو، ۽ فيصلو ڪري سگهي ٿو ته ڇا نتيجن کي متاثر ڪرڻ لاء هن جو نمبر ظاهر ڪرڻ يا نه. جڏهن ته هي حملو ڪندڙ کي اڪيلو هٿ سان بي ترتيب نمبر جنريٽر جي پيداوار کي طئي ڪرڻ کان روڪي ٿو، اهو اڃا تائين کيس 1 سا اثر ڏئي ٿو. ۽ جيڪڏهن حملو ڪندڙ ڪيترن ئي شرڪت ڪندڙن کي ڪنٽرول ڪن ٿا، پوء انهن جي ڪنٽرول بٽ جو تعداد انهن جي ڪنٽرول هيٺ شرڪت ڪندڙن جي تعداد جي برابر هوندو.

ڇا اهو ممڪن آهي بي ترتيب نمبر پيدا ڪرڻ جيڪڏهن اسان هڪ ٻئي تي ڀروسو نٿا ڪريون؟ حصو 1

حملي آورن جو اثر تمام گھٽ ٿي سگھي ٿو ان جي ضرورت سان ته شرڪت ڪندڙ انگن اکرن کي ظاهر ڪن. پوءِ حملو ڪندڙ صرف ان صورت ۾ نتيجو تي اثر انداز ٿي سگهندو جڏهن اهو آخري کوليو ويندو. جڏهن ته اثر خاص طور تي گهٽ آهي، الورورٿم اڃا تائين باصلاحيت آهي.

RANDAO+VDF

RANDAO کي غيرجانبدار بڻائڻ جو هڪ طريقو هي آهي: سڀني انگن اکرن کي ظاهر ڪرڻ کان پوءِ ۽ XOR کي ڳڻيو ويندو آهي، ان جو نتيجو هڪ فنڪشن جي ان پٽ ۾ ڀريو ويندو آهي، جنهن کي ڳڻڻ ۾ تمام گهڻو وقت لڳندو آهي، پر توهان کي اجازت ڏئي ٿي ته ان جي درستي کي جانچڻ لاءِ. حساب تمام جلدي.

(vdf_output, vdf_proof) = VDF_compute(input) // это очень медленно
correct = VDF_verify(input, vdf_output, vdf_proof) // это очень быстро

هن فنڪشن کي سڏيو ويندو آهي تصديق جي دير واري فنڪشن، يا VDF. جيڪڏهن آخري نتيجو ڳڻڻ ۾ انگ ظاهر ڪرڻ واري مرحلي کان وڌيڪ وقت لڳي ٿو، ته پوءِ حملو ڪندڙ پنهنجي انگ کي ڏيکارڻ يا لڪائڻ جي اثر جي اڳڪٿي نه ڪري سگهندو، ۽ ان ڪري هو نتيجو تي اثر انداز ٿيڻ جو موقعو وڃائي ڇڏيندو.

سٺي VDFs کي ترقي ڪرڻ تمام ڏکيو آهي. حالانڪه ڪيترائي پيش رفت ٿي چڪا آهن، مثال طور. هي и هي، جنهن VDF کي عملي طور تي وڌيڪ عملي بڻايو، ۽ Ethereum 2.0 رٿابندي ڪري ٿو RANDAO کي VDF سان گڏ ڊگھي مدت ۾ بي ترتيب نمبر ماخذ طور استعمال ڪيو وڃي. ان حقيقت کان سواءِ ته هي طريقو غير متوقع ۽ غيرجانبدار آهي، ان کي قابل عمل هجڻ جو اضافي فائدو آهي جيڪڏهن نيٽ ورڪ تي گهٽ ۾ گهٽ ٻه شرڪت ڪندڙ موجود آهن (فرض ڪيو ته اتفاق راءِ پروٽوڪول استعمال ٿيل آهي قابل عمل آهي جڏهن شرڪت ڪندڙن جي اهڙي ننڍڙي تعداد سان معاملو ڪرڻ).

هن طريقي جو سڀ کان وڏو چئلينج VDF کي ترتيب ڏيڻ آهي جيئن ته هڪ شرڪت ڪندڙ تمام قيمتي خاص هارڊويئر سان گڏ دريافت جي مرحلي جي اختتام کان اڳ VDF جو حساب ڪرڻ جي قابل نه هوندو. مثالي طور، الورورٿم کي به هڪ اهم حفاظتي مارجن هجڻ گهرجي، 10x چئو. هيٺ ڏنل انگ اکر ڏيکاري ٿو هڪ اداڪار پاران حملو ڪيو جنهن وٽ هڪ خاص ASIC آهي جيڪا هن کي RANDAO تصديق کي ظاهر ڪرڻ لاءِ مختص ڪيل وقت کان وڌيڪ تيز VDF هلائڻ جي اجازت ڏئي ٿي. اهڙو حصو وٺندڙ اڃا تائين پنهنجي نمبر کي استعمال ڪندي يا نه استعمال ڪندي حتمي نتيجو ڳڻائي سگهي ٿو، ۽ پوء، حساب جي بنياد تي، اهو چونڊيو ته اهو ڏيکارڻ يا نه.

ڇا اهو ممڪن آهي بي ترتيب نمبر پيدا ڪرڻ جيڪڏهن اسان هڪ ٻئي تي ڀروسو نٿا ڪريون؟ حصو 1

مٿي ذڪر ڪيل VDF خاندان لاءِ، هڪ وقف ڪيل ASIC جي ڪارڪردگي روايتي هارڊويئر کان 100+ ڀيرا وڌيڪ ٿي سگهي ٿي. تنهن ڪري جيڪڏهن ترتيب ڏيڻ وارو مرحلو 10 سيڪنڊن تائين رهي ٿو، ته پوءِ اهڙي ASIC تي ترتيب ڏنل VDF کي 100x حفاظتي مارجن حاصل ڪرڻ لاءِ 10 سيڪنڊن کان وڌيڪ وقت وٺڻ گهرجي، ۽ اهڙيءَ طرح ڪموڊٽي هارڊويئر تي ٺهيل ساڳيو VDF 100x 100 سيڪنڊ = ~ 3 ڪلاڪ.

Ethereum فائونڊيشن هن مسئلي کي حل ڪرڻ جو منصوبو ٺاهي ٿو پنهنجي عوامي طور تي دستياب، مفت ASICs ٺاهي. هڪ دفعو ائين ٿئي ٿو، ٻيا سڀئي پروٽوڪول به هن ٽيڪنالاجي مان فائدو وٺي سگهن ٿا، پر ان وقت تائين RANDAO+VDF جو طريقو انهن پروٽوڪولن لاءِ ايترو قابل عمل نه هوندو، جيڪي پنهنجون ASICs ٺاهڻ ۾ سيڙپڪاري نٿا ڪري سگهن.

VDF بابت ڪيترائي مضمون، وڊيوز ۽ ٻيون معلومات گڏ ڪيون ويون آهن هي سائيٽ.

اسان erasure ڪوڊ استعمال ڪندا آهيون

هن حصي ۾، اسان هڪ بي ترتيب نمبر نسل پروٽوڪول تي نظر ڪنداسين جيڪو استعمال ڪري ٿو ڪوڊ ختم ڪرڻ. اهو قابل عمل رهڻ دوران ⅓ حملي ڪندڙن کي برداشت ڪري سگهي ٿو، ۽ ⅔ حملي آورن کي موجود رهڻ جي اجازت ڏئي ٿو ان کان اڳ جو اهي نتيجا پيش ڪن يا اثر انداز ڪن.

پروٽوڪول جو بنيادي خيال هن ريت آهي. سادگي لاء، اچو ته فرض ڪريو ته اتي 100 شرڪت ڪندڙ آهن. اچو ته اهو پڻ فرض ڪريون ته سڀني شرڪت ڪندڙن وٽ مقامي طور تي ڪجهه خانگي ڪنجيون آهن، ۽ سڀني شرڪت ڪندڙن جون عوامي چابيون سڀني شرڪت ڪندڙن کي معلوم آهن:

  1. هر حصو وٺندڙ مقامي طور تي هڪ ڊگھي اسٽرنگ سان اچي ٿو، ان کي 67 حصن ۾ ورهائي ٿو، 100 شيئرز حاصل ڪرڻ لاءِ ايريزر ڪوڊ ٺاهي ٿو، جيئن ته ڪو به 67 اسٽرنگ کي بحال ڪرڻ لاءِ ڪافي آهن، هر هڪ شرڪت ڪندڙ کي 100 شيئر تفويض ڪري ٿو، ۽ انهن کي انڪريپٽ ڪري ٿو. ساڳئي حصو وٺندڙ جي عوامي ڪنجي. سڀ انڪوڊ ٿيل حصا پوءِ شايع ٿيل آهن.

  2. شرڪت ڪن مخصوص 67 شرڪت ڪندڙن کان ڪوڊ ٿيل سيٽن تي معاهدي تائين پهچڻ لاء ڪجهه قسم جي اتفاق جو استعمال ڪن ٿا.

  3. هڪ دفعو اتفاق راءِ تي پهچي، هر شرڪت ڪندڙ انڪوڊ ٿيل شيئرز کي 67 سيٽن مان هر هڪ ۾ انڪوڊ ٿيل شيئرز کي پنهنجي عوامي ڪيئي سان گڏ ڪري ٿو، اهڙن سڀني شيئرز کي ڊيڪرپٽ ڪري ٿو، ۽ اهڙن سڀني ڊريپ ٿيل شيئرز کي شايع ڪري ٿو.

  4. هڪ دفعو 67 شرڪت ڪندڙن قدم (3) مڪمل ڪيو، سڀئي اتفاق ٿيل سيٽ مڪمل طور تي ڊيڪوڊ ۽ ٻيهر ٺاهي سگھجن ٿا ايريچر ڪوڊز جي خاصيتن جي ڪري، ۽ آخري نمبر حاصل ڪري سگھجي ٿو XOR جي طور تي ابتدائي قطارن جي جيڪو شرڪت ڪندڙن سان شروع ڪيو (1) .

ڇا اهو ممڪن آهي بي ترتيب نمبر پيدا ڪرڻ جيڪڏهن اسان هڪ ٻئي تي ڀروسو نٿا ڪريون؟ حصو 1

هي پروٽوڪول غيرجانبدار ۽ غير متوقع طور ڏيکاري سگهجي ٿو. نتيجو بي ترتيب نمبر اتفاق راءِ تي پهچڻ کان پوءِ طئي ڪيو ويندو آهي، پر ڪنهن کي به خبر نه هوندي آهي جيستائين شرڪت ڪندڙن مان ⅔ انهن حصن کي ڊيڪوڊ نه ڪن جيڪي انهن جي عوامي ڪنجي سان انڪريپٽ ٿيل آهن. اهڙيء طرح، بي ترتيب نمبر مقرر ڪيو ويو آهي ان کان اڳ جو معلومات ان کي ٻيهر ترتيب ڏيڻ لاء ڪافي آهي.

ڇا ٿيندو جيڪڏهن قدم ۾ (1) شرڪت ڪندڙن مان هڪ انڪوڊ ٿيل شيئر ٻين شرڪت ڪندڙن ڏانهن موڪليا جيڪي ڪجهه اسٽرنگ لاءِ درست ايريچر ڪوڊ نه آهن؟ اضافي تبديلين کان سواء، مختلف شرڪت ڪندڙ يا ته مڪمل طور تي اسٽرنگ کي بحال ڪرڻ جي قابل نه هوندا، يا اهي مختلف اسٽرنگ کي بحال ڪندا، جنهن جي نتيجي ۾ مختلف شرڪت ڪندڙن کي مختلف بي ترتيب نمبر حاصل ڪندا. ھن کي روڪڻ لاءِ، توھان ھيٺيان ڪري سگھو ٿا: ھر حصو وٺندڙ، انڪوڊ ٿيل شيئرز کان علاوه، پڻ حساب ڪري ٿو مرڪل جو وڻ اهڙا سڀئي حصا، ۽ هر شرڪت ڪندڙ کي موڪلي ٿو انڪوڊ ٿيل شيئر پاڻ ۽ مرڪل وڻ جي روٽ، ۽ مرڪل وڻ ۾ شيئر جي شموليت جو ثبوت. قدم (2) ۾ اتفاق راءِ ۾، شرڪت ڪندڙ نه رڳو سيٽن جي هڪ سيٽ تي، پر اهڙن وڻن جي مخصوص پاڙن جي هڪ سيٽ تي (جيڪڏهن ڪجهه شرڪت ڪندڙ پروٽوڪول کان انحراف ڪيو، ۽ مختلف شرڪت ڪندڙن ڏانهن مختلف مرڪل وڻ جي پاڙن کي موڪليو، ۽ اهڙيون ٻه پاڙون اتفاق راءِ ۾ ڏيکاريل آهن، ان جي قطار نتيجن جي سيٽ ۾ شامل نه آهي). اتفاق راءِ جي نتيجي ۾، اسان وٽ 67 انڪوڊ ٿيل لائينون هونديون ۽ مرڪل جي وڻ جون لاڳاپيل پاڙون اهڙيون هونديون ته گهٽ ۾ گهٽ 67 شرڪت ڪندڙ هجن (ضروري ناهي ته اهي ساڳيا هجن جن لاڳاپيل لائينون تجويز ڪيون)، جن وٽ هر هڪ لاءِ 67 لائينون هونديون. ميسيج سان گڏ هڪ شيئر ايريچر ڪوڊ، ۽ هڪ ثبوت اهو آهي ته انهن جي حصيداري جي لاڳاپيل وڻ ۾ ڦهلجي وئي آهي.

جڏهن قدم (4) ۾ حصو وٺندڙ هڪ خاص اسٽرنگ لاءِ 67 بيٽس کي بيان ڪري ٿو ۽ انهن مان اصل اسٽرنگ کي ٻيهر ٺاهڻ جي ڪوشش ڪري ٿو، اختيارن مان هڪ ممڪن آهي:

  1. اسٽرنگ کي بحال ڪيو ويندو آهي، ۽ جيڪڏهن ان کي ٻيهر ختم ڪيو ويندو آهي-انڪوڊ ڪيو ويندو آهي، ۽ مرڪل وڻ کي مقامي طور تي حصص جي حساب سان حساب ڪيو ويندو آهي، روٽ ان سان ٺهڪي اچي ٿو جنهن تي اتفاق ڪيو ويو هو.

  2. قطار بحال ڪئي وئي، پر مقامي طور تي ڳڻپيو ويو روٽ ان سان نه ملندو آهي جنهن تي اتفاق ڪيو ويو هو.

  3. قطار بحال نه ڪئي وئي آهي.

اهو ڏيکارڻ آسان آهي ته جيڪڏهن اختيار (1) مٿي گهٽ ۾ گهٽ هڪ شرڪت ڪندڙ لاء ٿيو، پوء اختيار (1) سڀني شرڪت ڪندڙن لاء ٿيو، ۽ ان جي برعڪس، جيڪڏهن اختيار (2) يا (3) گهٽ ۾ گهٽ هڪ شرڪت لاء ٿيو، پوء سڀني شرڪت ڪندڙن لاء اختيار (2) يا (3) ٿيندو. اهڙيء طرح، سيٽ ۾ هر قطار لاء، يا ته سڀئي شرڪت ڪاميابيء سان ان کي بحال ڪندا، يا سڀ شرڪت ان کي بحال ڪرڻ ۾ ناڪام ٿيندا. نتيجو بي ترتيب نمبر وري صرف قطارن جو هڪ XOR آهي جنهن ۾ شرڪت ڪندڙن کي بحال ڪرڻ جي قابل هئا.

حد جي دستخط

بي ترتيب ٿيڻ جو هڪ ٻيو طريقو استعمال ڪرڻ آهي جنهن کي BLS حد جي دستخط سڏيو وڃي ٿو. حد جي نشانين تي ٻڌل بي ترتيب نمبر جنريٽر وٽ بلڪل ساڳيون ئي ضمانتون هونديون آهن جيئن مٿي بيان ڪيل erasure ڪوڊ تي ٻڌل الگورٿم، پر نيٽ ورڪ تي هر ٺاهيل نمبر لاءِ موڪليل پيغامن جو خاص طور تي گهٽ اسيمپٽوٽڪ نمبر آهي.

BLS دستخط هڪ ڊزائن آهي جيڪا ڪيترن ئي شرڪت ڪندڙن کي اجازت ڏئي ٿي هڪ پيغام لاءِ هڪ عام دستخط ٺاهي. اهي دستخط اڪثر ڪري خلا ۽ بينڊوڊٿ کي بچائڻ لاءِ استعمال ڪيا ويندا آهن جن جي ضرورت نه هوندي ڪيترن ئي دستخطن کي موڪلڻ لاءِ. 

بلاڪچين پروٽوڪول ۾ BLS دستخطن لاءِ هڪ عام درخواست، بي ترتيب نمبر پيدا ڪرڻ کان علاوه، BFT پروٽوڪول ۾ بلاڪ سائننگ آهي. اچو ته 100 شرڪت ڪندڙ بلاڪ ٺاهي، ۽ هڪ بلاڪ کي حتمي سمجهيو ويندو جيڪڏهن انهن مان 67 ان تي دستخط ڪن. اهي سڀئي BLS دستخط جا پنهنجا حصا جمع ڪري سگهن ٿا ۽ انهن مان 67 تي متفق ٿيڻ لاءِ ڪجهه اتفاق راءِ الگورٿم استعمال ڪري سگهن ٿا ۽ پوءِ انهن کي هڪ BLS دستخط ۾ ضم ڪري سگهن ٿا. حتمي دستخط ٺاهڻ لاءِ ڪو به 67 (يا وڌيڪ) حصا استعمال ڪري سگهجن ٿا، جنهن تي منحصر هوندو ته 67 دستخط گڏ ڪيا ويا هئا ۽ ان ڪري مختلف ٿي سگهن ٿا، جيتوڻيڪ 67 شرڪت ڪندڙن طرفان مختلف چونڊون هڪ مختلف دستخط ٺاهي سگهندا، اهڙي ڪا به دستخط صحيح هوندي. بلاڪ لاء دستخط. باقي شرڪت ڪندڙن کي صرف وصول ڪرڻ ۽ تصديق ڪرڻ جي ضرورت آهي صرف هڪ دستخط في بلاڪ تي، 67 جي بدران، نيٽ ورڪ تي، جيڪو خاص طور تي نيٽ ورڪ تي لوڊ گھٽائي ٿو.

اهو ظاهر ٿئي ٿو ته جيڪڏهن نجي چابيون جيڪي حصو وٺندڙ استعمال ڪن ٿا هڪ خاص طريقي سان ٺاهيل آهن، پوء ڪابه ڳالهه ناهي ته 67 دستخط (يا وڌيڪ، پر گهٽ نه) مجموعي طور تي، نتيجو دستخط ساڳيو هوندو. اهو استعمال ڪري سگهجي ٿو بي ترتيبيءَ جي ذريعن جي طور تي: شرڪت ڪندڙ پهريان ڪجهه پيغام تي متفق ٿين ٿا ته اهي سائن ڪندا (اهو ٿي سگهي ٿو RANDAO جو آئوٽ پٽ يا صرف آخري بلاڪ جو هيش، اهو واقعي اهميت نٿو رکي جيستائين اهو هر وقت تبديل ٿئي ٿو. ۽ برابر آهي) ۽ ان لاءِ هڪ BLS دستخط ٺاهيو. نسل جو نتيجو ناقابل اعتبار ٿيندو جيستائين 67 شرڪت ڪندڙ پنهنجا حصا مهيا ڪن، ۽ ان کان پوء پيداوار اڳ ۾ ئي طئي ٿيل آهي ۽ ڪنهن به شرڪت ڪندڙن جي عملن تي ڀاڙي نٿو سگهي.

بي ترتيبيءَ جو اهو طريقو ان وقت تائين قابل عمل آهي جيستائين گهٽ ۾ گهٽ ⅔ شرڪت ڪندڙ آن لائن ٻئي پروٽوڪول جي پيروي ڪن، ۽ غير جانبداري ۽ غير متوقع آهي جيستائين گهٽ ۾ گهٽ ⅓ شرڪت ڪندڙ پروٽوڪول جي پيروي ڪن. اهو نوٽ ڪرڻ ضروري آهي ته هڪ حملو ڪندڙ جيڪو ڪنٽرول ڪري ٿو ⅓ کان وڌيڪ پر ⅔ شرڪت ڪندڙن کان گهٽ پروٽوڪول کي روڪي سگهي ٿو، پر ان جي پيداوار جي اڳڪٿي يا اثر انداز نٿو ڪري سگهي.

حد جي دستخط پاڻ هڪ تمام دلچسپ موضوع آهن. مضمون جي ٻئي حصي ۾، اسان تفصيل سان تجزيو ڪنداسين ته اهي ڪيئن ڪم ڪن ٿا، ۽ اهو ڪيئن ضروري آهي ته حصو وٺندڙ چابيون ٺاهي ته جيئن حد جي نشانين کي بي ترتيب نمبر جنريٽر طور استعمال ڪري سگهجي.

نتيجو

هي آرٽيڪل ٽيڪنيڪل بلاگ آرٽيڪلز جي سلسلي ۾ پهريون آهي ويجھو. NEAR هڪ بلاڪچين پروٽوڪول ۽ پليٽ فارم آهي ترقي يافته ايپليڪيشنن کي ترقي ڪرڻ لاءِ جنهن تي زور ڏنو ويو آهي ترقي جي آسانيءَ تي ۽ آخري استعمال ڪندڙن لاءِ استعمال جي آسانيءَ تي.

پروٽوڪول ڪوڊ کليل آهي، اسان جي عملدرآمد Rust ۾ لکيل آهي، اهو ڳولي سگهجي ٿو هتي.

توهان ڏسي سگهو ٿا ته NEAR لاءِ ڪهڙي ترقي نظر اچي ٿي ۽ آن لائن IDE ۾ تجربو ڪريو هتي.

توهان روسي ۾ سڀني خبرن جي پيروي ڪري سگهو ٿا ٽيليگرام گروپ ۽ اندر VKontakte تي گروپ، ۽ سرڪاري ۾ انگريزيءَ ۾ twitter.

جلد ئي ملون ٿا!

جو ذريعو: www.habr.com

تبصرو شامل ڪريو