တစ်ယောက်နဲ့တစ်ယောက် မယုံကြည်ရင် ကျပန်းနံပါတ်တွေကို ထုတ်ပေးနိုင်မလား။ အပိုင်း 1

ဟေး ဟာဘ!

ဒီဆောင်းပါးမှာ တစ်ယောက်နဲ့တစ်ယောက် မယုံကြည်တဲ့ ပါဝင်သူတွေရဲ့ pseudo-random နံပါတ်တွေရဲ့ မျိုးဆက်အကြောင်းကို ပြောပြပါမယ်။ အောက်တွင်ကျွန်ုပ်တို့တွေ့မြင်ရမည့်အတိုင်း "နီးပါး" ကောင်းသောမီးစက်ကိုအကောင်အထည်ဖော်ခြင်းသည်အတော်လေးရိုးရှင်းသော်လည်းအလွန်ကောင်းသောစက်သည်ခက်ခဲသည်။

တစ်ယောက်နဲ့တစ်ယောက် မယုံကြည်တဲ့ ပါဝင်သူတွေကြား ကျပန်းနံပါတ်တွေကို ထုတ်ပေးဖို့ ဘာကြောင့် လိုအပ်တာလဲ။ လျှောက်လွှာဧရိယာတစ်ခုသည် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော လျှောက်လွှာများဖြစ်သည်။ ဥပမာအားဖြင့်၊ ပါဝင်သူတစ်ဦးထံမှ အလောင်းအစားကို လက်ခံပြီး 49% ဖြစ်နိုင်ခြေနှင့် ပမာဏကို နှစ်ဆတိုးစေသော သို့မဟုတ် 51% ဖြစ်နိုင်ခြေကို ဘက်မလိုက်ဘဲ ကျပန်းနံပါတ်ကို လက်ခံရရှိမှသာ အလုပ်ဖြစ်ပါမည်။ အကယ်၍ တိုက်ခိုက်သူတစ်ဦးသည် ကျပန်းနံပါတ်ထုတ်ပေးခြင်း၏ရလဒ်ကို လွှမ်းမိုးနိုင်ပြီး အပလီကေးရှင်းတွင် ပေးချေရမည့်အခွင့်အရေးကို အနည်းငယ်တိုးလာပါက ၎င်းကို အလွယ်တကူဖျက်ဆီးပစ်မည်ဖြစ်သည်။

ကျွန်ုပ်တို့သည် ဖြန့်ဝေထားသော ကျပန်းနံပါတ် မျိုးဆက်ပရိုတိုကောကို ဒီဇိုင်းဆွဲသည့်အခါ၊ ၎င်းကို ဂုဏ်သတ္တိသုံးခုရှိစေလိုသည်-

  1. ဘက်မလိုက်သူဖြစ်ရမည်။ တစ်နည်းဆိုရသော် မည်သည့်နည်းဖြင့်မဆို ပါဝင်သူသည် ကျပန်းနံပါတ် ဂျင်နရေတာ၏ ရလဒ်အပေါ် လွှမ်းမိုးမှုမဖြစ်သင့်ပါ။

  2. အစိုးမရသူဖြစ်ရမည်။ တစ်နည်းအားဖြင့်ဆိုရသော် ၎င်းကို မထုတ်လုပ်မီ မည်သည့်နံပါတ်ကို ထုတ်ပေးမည် (သို့မဟုတ် ၎င်း၏ ဂုဏ်သတ္တိများ တစ်ခုခုကို ခန့်မှန်းနိုင်သည်) ကို မည်သူမျှ မခန့်မှန်းနိုင်သင့်ပါ။

  3. ပရိုတိုကောသည် ပါဝင်သူအချို့၏ ရာခိုင်နှုန်းအချို့သည် ကွန်ရက်မှချိတ်ဆက်မှုဖြတ်တောက်ခြင်း သို့မဟုတ် ပရိုတိုကောကို ရပ်တန့်ရန် တမင်ကြိုးစားခြင်းဟူသောအချက်ကို ခံနိုင်ရည်ရှိရပါမည်။

ဤဆောင်းပါးတွင် RANDAO + VDF နှင့် erasure codes ချဉ်းကပ်နည်းနှစ်ခုကို လေ့လာပါမည်။ နောက်အပိုင်းတွင်၊ အဆင့်သတ်မှတ်ထားသော လက်မှတ်များကို အခြေခံ၍ ချဉ်းကပ်ပုံ အသေးစိတ်ကို လေ့လာပါမည်။

သို့သော် ဦးစွာ၊ ရိုးရှင်းပြီး အသုံးများသော အယ်လဂိုရီသမ်ကို ကြည့်ကြပါစို့။

RANDAO

RANDAO သည် အလွန်ရိုးရှင်းပြီး ကျပန်းလုပ်ဆောင်ခြင်းအတွက် အလွန်အသုံးများသော ချဉ်းကပ်မှုတစ်ခုဖြစ်သည်။ ကွန်ရက်ပါဝင်သူအားလုံးသည် စက်တွင်းရှိ ယောင်ယောင်နံပါတ်တစ်ခုကို ဦးစွာရွေးချယ်ပြီးနောက် ပါဝင်သူတစ်ဦးစီသည် ရွေးချယ်ထားသောနံပါတ်၏ hash တစ်ခုကို ပေးပို့သည်။ ထို့နောက် ပါဝင်သူများသည် ၎င်းတို့၏ ရွေးချယ်ထားသော နံပါတ်များကို ထုတ်ဖော်ပြသကာ ထုတ်ဖော်ထားသော နံပါတ်များပေါ်တွင် XOR လုပ်ဆောင်ချက်ကို လုပ်ဆောင်ကြပြီး၊ ဤလုပ်ဆောင်ချက်၏ ရလဒ်သည် ပရိုတိုကော၏ ရလဒ်ဖြစ်လာသည်။

နံပါတ်များကိုမဖော်ပြမီ hashe များထုတ်ဝေခြင်းအဆင့်သည် လိုအပ်သောကြောင့် တိုက်ခိုက်သူသည် အခြားပါဝင်သူများ၏နံပါတ်များကိုမြင်ပြီးနောက်တွင် ၎င်း၏နံပါတ်ကိုရွေးချယ်၍မရပါ။ ၎င်းသည် ကျပန်းနံပါတ်ဂျင်နရေတာ၏ output ကို လက်တစ်ကမ်းတည်းဖြင့် ဆုံးဖြတ်နိုင်စေမည်ဖြစ်သည်။

ပရိုတိုကော၏သင်တန်းကာလအတွင်း၊ သင်တန်းသားများသည် ဘုံဆုံးဖြတ်ချက် (သဘောတူညီမှုဟုခေါ်သည်) ကို နှစ်ကြိမ်ပြုလုပ်ရန် လိုအပ်သည်- ရွေးချယ်ထားသောနံပါတ်များကို စတင်ဖော်ပြရန် မည်သည့်အချိန်တွင်၊ ထို့ကြောင့် hashes လက်ခံခြင်းကို ရပ်ရန်နှင့် ရွေးချယ်ထားသောနံပါတ်များကို လက်ခံခြင်းအား ရပ်ပြီး မည်သည့်အချိန်တွင် ရလဒ်ကို ကျပန်းတွက်ချက်ရမည်နည်း။ နံပါတ် တစ်ဦးနှင့်တစ်ဦးယုံကြည်မှုမရှိသောပါဝင်သူများကြားတွင် ထိုသို့သောဆုံးဖြတ်ချက်များချခြင်းသည် လွယ်ကူသောအလုပ်မဟုတ်ပေ၊ ၎င်းကိုကျွန်ုပ်တို့သည်နောင်လာမည့်ဆောင်းပါးများတွင်ပြန်လည်ဖော်ပြပါမည်။ ဤဆောင်းပါးတွင်ထိုကဲ့သို့သောသဘောတူညီမှုစနစ်တစ်ခုရရှိနိုင်သည်ဟုကျွန်ုပ်တို့ယူဆပါမည်။

အထက်တွင်ဖော်ပြထားသော ကျွန်ုပ်တို့ RANDAO တွင် မည်သည့်ဂုဏ်သတ္တိများ ရှိသနည်း။ ၎င်းသည် ကြိုတင်မှန်းဆ၍မရသော၊ အခြေခံသဘောတူထားသော ပရိုတိုကောကဲ့သို့ပင် တက်ကြွမှုရှိသည်၊ သို့သော် ဘက်လိုက်ပါသည်။ အထူးသဖြင့်၊ တိုက်ခိုက်သူသည် ကွန်ရက်ကို စောင့်ကြည့်နိုင်ပြီး အခြားပါဝင်သူများသည် ၎င်းတို့၏ နံပါတ်များကို ထုတ်ပြပြီးနောက်၊ သူသည် ၎င်းတို့၏ XOR ကို တွက်ချက်နိုင်ပြီး ရလဒ်ကို လွှမ်းမိုးရန် ၎င်း၏နံပါတ်ကို ဖော်ပြခြင်း ရှိ၊ မရှိ ဆုံးဖြတ်နိုင်သည် ။ ၎င်းသည် တိုက်ခိုက်သူအား ကျပန်းနံပါတ် ဂျင်နရေတာ၏ အထွက်ကို လက်တစ်ကမ်းတည်းဖြင့် ဆုံးဖြတ်ခြင်းမှ တားဆီးထားသော်လည်း ၎င်းသည် သူ့အား ဩဇာသက်ရောက်မှု 1 bit ပေးနေဆဲဖြစ်သည်။ အကယ်၍ တိုက်ခိုက်သူများသည် ပါဝင်သူအများအပြားကို ထိန်းချုပ်ပါက၊ ၎င်းတို့ထိန်းချုပ်သည့် ဘစ်အရေအတွက်သည် ၎င်းတို့၏ထိန်းချုပ်မှုအောက်တွင် ပါဝင်သူအရေအတွက်နှင့် ညီမျှမည်ဖြစ်သည်။

တစ်ယောက်နဲ့တစ်ယောက် မယုံကြည်ရင် ကျပန်းနံပါတ်တွေကို ထုတ်ပေးနိုင်မလား။ အပိုင်း 1

ပါဝင်သူများ၏ နံပါတ်များကို အစဉ်လိုက်ဖော်ပြရန် လိုအပ်ခြင်းဖြင့် တိုက်ခိုက်သူများ၏ လွှမ်းမိုးမှုကို အလွန်လျှော့ချနိုင်သည်။ ထို့နောက် နောက်ဆုံးဖွင့်ထားမှသာ တိုက်ခိုက်သူသည် ရလဒ်ကို လွှမ်းမိုးနိုင်မည်ဖြစ်သည်။ သြဇာလွှမ်းမိုးမှု သိသိသာသာနည်းသော်လည်း algorithm သည် ဘက်လိုက်နေဆဲဖြစ်သည်။

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 ကို ရှာဖွေတွေ့ရှိမှုအဆင့်မပြီးဆုံးမီတွင်ပင် တွက်ချက်နိုင်မည်မဟုတ်ပါ။ အကောင်းဆုံးကတော့၊ algorithm မှာ 10x လို့ဆိုရမယ့် သိသိသာသာဘေးကင်းရေးအနားသတ်တစ်ခုတောင် ရှိသင့်ပါတယ်။ အောက်ဖော်ပြပါပုံသည် RANDAO အတည်ပြုချက်ကိုဖော်ပြရန်ခွဲဝေပေးထားသည့်အချိန်ထက်ပိုမိုမြန်ဆန်စွာ VDF ကို run နိုင်စေသော အထူးပြု ASIC ရှိသည့်သရုပ်ဆောင်တစ်ဦး၏တိုက်ခိုက်မှုကိုပြသထားသည်။ ထိုသို့ပါဝင်သူတစ်ဦးသည် ၎င်း၏နံပါတ်ကိုအသုံးပြု၍ နောက်ဆုံးရလဒ်ကို တွက်ချက်နိုင်ဆဲဖြစ်ပြီး၊ ထို့နောက် တွက်ချက်မှုအပေါ်အခြေခံ၍ ၎င်းကိုပြသရန်ရှိ၊မရှိကို ရွေးချယ်ပါ။

တစ်ယောက်နဲ့တစ်ယောက် မယုံကြည်ရင် ကျပန်းနံပါတ်တွေကို ထုတ်ပေးနိုင်မလား။ အပိုင်း 1

အထက်တွင်ဖော်ပြထားသော VDF မိသားစုအတွက်၊ သီးခြား ASIC ၏စွမ်းဆောင်ရည်သည် သမားရိုးကျ hardware များထက် အဆ 100+ မြင့်မားနိုင်သည်။ ထို့ကြောင့် ဖြန့်ကျက်မှုအဆင့်သည် 10 စက္ကန့်ကြာပါက၊ ထိုသို့သော ASIC ပေါ်တွင်တွက်ချက်ထားသော VDF သည် 100x ဘေးကင်းသောအနားသတ်တစ်ခုရရန် 10 စက္ကန့်ထက် ပိုယူရမည်ဖြစ်ပြီး ထို့ကြောင့် ကုန်စည်ဟာ့ဒ်ဝဲပေါ်တွင်တွက်ချက်ထားသည့်တူညီသော VDF သည် 100x 100 စက္ကန့် = ~3 နာရီကြာမည်ဖြစ်သည်။

Ethereum ဖောင်ဒေးရှင်းသည် ၎င်း၏ကိုယ်ပိုင် လူသိရှင်ကြား ရရှိနိုင်သော အခမဲ့ ASIC များကို ဖန်တီးခြင်းဖြင့် ဤပြဿနာကို ဖြေရှင်းရန် စီစဉ်နေပါသည်။ ထိုသို့ဖြစ်လာသည်နှင့်တပြိုင်နက် အခြားသောပရိုတိုကောများအားလုံးသည်လည်း ဤနည်းပညာကို အခွင့်ကောင်းယူနိုင်သော်လည်း ထိုအချိန်အထိ RANDAO+VDF ချဉ်းကပ်မှုသည် ၎င်းတို့၏ကိုယ်ပိုင် ASICs များကို တီထွင်ဖန်တီးရာတွင် ရင်းနှီးမြှုပ်နှံ၍မရသော ပရိုတိုကောများအတွက် ဖြစ်နိုင်ချေရှိမည်မဟုတ်ပေ။

VDF နှင့်ပတ်သက်သော ဆောင်းပါးများ၊ ဗီဒီယိုများနှင့် အခြားသော အချက်အလက်များစွာကို စုဆောင်းထားသည်။ ဒီ site.

ကျွန်ုပ်တို့သည် ဖျက်ခြင်းကုဒ်များကို အသုံးပြုသည်။

ဤကဏ္ဍတွင်၊ ကျွန်ုပ်တို့အသုံးပြုသော ကျပန်းနံပါတ်မျိုးဆက်ပရိုတိုကောကို ကြည့်ရှုပါမည်။ ကုဒ်များကိုဖျက်ခြင်း။. ကျန်ရှိနေချိန်တွင် ⅓ တိုက်ခိုက်သူများအထိ ခံနိုင်ရည်ရှိပြီး ရလဒ်ကို ခန့်မှန်းခြင်း သို့မဟုတ် လွှမ်းမိုးခြင်းမပြုမီ ⅔ တိုက်ခိုက်သူများအထိ ရှိနေစေရန် ခွင့်ပြုပေးပါသည်။

ပရိုတိုကော၏ အဓိက အယူအဆမှာ အောက်ပါအတိုင်း ဖြစ်သည်။ ရိုးရိုးရှင်းရှင်းပြောရရင် ပါဝင်သူ 100 တိတိရှိတယ်လို့ ယူဆကြပါစို့။ ပြည်တွင်းတွင် ပါဝင်သူတိုင်းတွင် သီးသန့်သော့အချို့ရှိပြီး ပါဝင်သူအားလုံး၏ အများသူငှာသော့များကို ပါဝင်သူတိုင်းသိကြသည်-

  1. ပါဝင်သူတိုင်းသည် စက်တွင်းတွင် ကြိုးရှည်ရှည်ဖြင့် ထွက်လာပြီး 67 ပိုင်းခွဲကာ 100 shares ကိုရယူရန် ဖျက်ကုဒ်များဖန်တီးပေးကာ 67 string အား ပြန်လည်ရယူရန် လုံလောက်သည့် မျှဝေမှု 100 ကို ပါဝင်သူတစ်ဦးအား မျှဝေပေးကာ ၎င်းတို့အား ကုဒ်ဝှက်ထားသည်။ တူညီသောပါဝင်သူ၏ အများသူငှာသော့။ ထို့နောက် ကုဒ်ဝှက်ထားသော မျှဝေမှုများအားလုံးကို ထုတ်ဝေသည်။

  2. ပါဝင်သူများသည် သီးခြားပါဝင်သူ 67 ဦးထံမှ ကုဒ်နံပါတ်တွဲများဆိုင်ရာ သဘောတူညီချက်ရရှိရန် သဘောတူညီမှုအချို့ကို အသုံးပြုသည်။

  3. သဘောတူညီမှုရရှိပြီးသည်နှင့် ပါဝင်သူတိုင်းသည် ၎င်းတို့၏ အများသူငှာသော့ဖြင့် ကုဒ်ဝှက်ထားသော 67 အစုတစ်ခုစီရှိ ကုဒ်ရေးထားသော ရှယ်ယာများကို ရယူကာ၊ ယင်းရှယ်ယာများအားလုံးကို ကုဒ်ဝှက်ပြီး ထိုကဲ့သို့သော ကုဒ်ဝှက်ထားသော မျှဝေမှုများအားလုံးကို ထုတ်ဝေသည်။

  4. ပါဝင်သူ 67 ဦးသည် အဆင့် (3) ပြီးသည်နှင့်၊ သဘောတူထားသော set အားလုံးကို erasure codes များ၏ ဂုဏ်သတ္တိများကြောင့် လုံးလုံးလျားလျား ကုဒ်များဖြင့် ပြန်လည်တည်ဆောက်နိုင်ပြီး၊ နောက်ဆုံးနံပါတ်ကို (1) တွင် စတင်ခဲ့သော ကနဦးအတန်းများ၏ XOR အဖြစ် ရရှိနိုင်ပါသည်။ .

တစ်ယောက်နဲ့တစ်ယောက် မယုံကြည်ရင် ကျပန်းနံပါတ်တွေကို ထုတ်ပေးနိုင်မလား။ အပိုင်း 1

ဤပရိုတိုကောကို ဘက်မလိုက်ဘဲ မှန်းဆ၍မရဟု ပြနိုင်သည်။ သဘောတူညီမှုရရှိပြီးနောက် ရရှိလာသော ကျပန်းနံပါတ်ကို ဆုံးဖြတ်သည်၊ သို့သော် ပါဝင်သူများ၏ ⅔ ၎င်းတို့၏ အများသူငှာသော့ဖြင့် ကုဒ်ဝှက်ထားသော အစိတ်အပိုင်းများကို ကုဒ်မဖော်မချင်း မည်သူမှ မသိနိုင်ပါ။ ထို့ကြောင့် ၎င်းကို ပြန်လည်တည်ဆောက်ရန် အချက်အလက်လုံလောက်စွာ မထုတ်ဝေမီ ကျပန်းနံပါတ်ကို ဆုံးဖြတ်သည်။

အဆင့် (၁) တွင် ပါဝင်သူများထဲမှ တစ်ဦးသည် စာကြောင်းအချို့အတွက် မှန်ကန်သော ဖျက်ရေးကုဒ်မဟုတ်သော အခြားပါဝင်သူများထံ ကုဒ်ဝှက်ထားသော မျှဝေမှုများကို ပေးပို့ပါက မည်သို့ဖြစ်မည်နည်း။ ထပ်လောင်းပြောင်းလဲမှုများမရှိဘဲ၊ မတူညီသောပါဝင်သူများသည် string ကိုလုံးဝပြန်လည်ရယူနိုင်မည်မဟုတ်ပါ၊ သို့မဟုတ် မတူညီသောစာကြောင်းများကိုပြန်လည်ရယူမည်ဖြစ်ပြီး၊ မတူညီသောပါဝင်သူများသည် မတူညီသောကျပန်းနံပါတ်ကိုရရှိမည်ဖြစ်သည်။ ၎င်းကို ကာကွယ်ရန် အောက်ပါတို့ကို သင်လုပ်ဆောင်နိုင်သည်- ပါဝင်သူတိုင်း၊ ကုဒ်လုပ်ထားသော ရှယ်ယာများအပြင်၊ Merkla သစ်ပင် ထိုအစုရှယ်ယာများအားလုံး၊ ပါဝင်သူတိုင်းသည် ကုဒ်လုပ်ထားသော ရှယ်ယာကိုယ်တိုင်နှင့် Merkle သစ်ပင်၏ အမြစ်နှင့် Merkle သစ်ပင်တွင် အစုရှယ်ယာပါဝင်ကြောင်း အထောက်အထားတို့ကို ပေးပို့သည်။ အဆင့် (၂) တွင် အများဆန္ဒအရ ပါဝင်သူများသည် အစုအဖွဲ့တစ်ခုအား သဘောတူရုံသာမက ထိုကဲ့သို့သောသစ်ပင်များ၏ အမြစ်များပေါ်တွင် (ပါဝင်သူအချို့သည် ပရိုတိုကောမှ သွေဖည်သွားပါက မတူညီသော merkle tree root များကို မတူညီသောပါဝင်သူများထံ ပေးပို့ပါက၊ ထိုကဲ့သို့ အရင်းနှစ်ချောင်းကို အများဆန္ဒအရ ပြသသည်၊ ၎င်း၏ အတန်းသည် ရလဒ်အစုတွင် မပါဝင်ပါ)။ သဘောတူညီမှု၏ရလဒ်အနေဖြင့်၊ ကျွန်ုပ်တို့တွင် ကုဒ်နံပါတ် ၆၇ ကြောင်းနှင့် မာကယ်လ်သစ်ပင်၏ ဆက်စပ်အမြစ်များပါရှိမည်ဖြစ်ကာ အနည်းဆုံးပါဝင်သူ ၆၇ ဦး (သက်ဆိုင်ရာလိုင်းများကို အဆိုပြုထားသည့် တူညီသူများမဟုတ်ပါ) 2 လိုင်းတစ်ခုစီအတွက် ပါရှိသော၊ ဖျက်ကုဒ်၏ မျှဝေမှုနှင့်အတူ မက်ဆေ့ချ်တစ်ခုနှင့် သက်ဆိုင်ရာသစ်ပင်တွင် ၎င်းတို့၏ ရှယ်ယာများ ဖြစ်ပေါ်လာကြောင်း သက်သေပြသည်။

အဆင့် (၄) တွင် ပါဝင်သူသည် သတ်မှတ်ထားသော စာကြောင်းတစ်ကြောင်းအတွက် 4 စည်းချက်များကို ပုံဖော်ပြီး ၎င်းတို့ထံမှ မူရင်းစာကြောင်းကို ပြန်လည်တည်ဆောက်ရန် ကြိုးစားသောအခါ၊ ရွေးချယ်စရာများထဲမှ တစ်ခု ဖြစ်နိုင်သည်-

  1. စာကြောင်းကို ပြန်လည်ရယူထားပြီး၊ ထို့နောက် ဖျက်-ကုဒ်ဖြင့် ထပ်မံပြုလုပ်ပါက၊ Merkle သစ်ပင်ကို ဒေသအလိုက် တွက်ချက်ထားသော အစုရှယ်ယာများအတွက် တွက်ချက်ထားသည်၊ အမြစ်သည် သဘောတူညီမှုရရှိထားသည့်တစ်ခုနှင့် တိုက်ဆိုင်ပါသည်။

  2. အတန်းကို ပြန်လည်ရယူထားသော်လည်း စက်တွင်းတွက်ချက်ထားသော root သည် သဘောတူညီမှုရရှိထားသည့်တစ်ခုနှင့် မကိုက်ညီပါ။

  3. အတန်းကို ပြန်မပြင်ပါ။

အနည်းဆုံးပါဝင်သူ တစ်ဦးအတွက် ရွေးချယ်မှု (1) ဖြစ်ခဲ့ပါက ပါဝင်သူအားလုံးအတွက် ရွေးချယ်မှု (1) ဖြစ်ခဲ့ပါက၊ ရွေးချယ်မှု (2) သို့မဟုတ် (3) သည် အနည်းဆုံးပါဝင်သူ တစ်ဦးအတွက် ဖြစ်ပါက၊ ပါဝင်သူအားလုံးအတွက် ရွေးချယ်စရာ (၂) သို့မဟုတ် (၃) ဖြစ်သွားပါမည်။ ထို့ကြောင့်၊ သတ်မှတ်ထားသည့်အတန်းတစ်ခုစီအတွက် ပါဝင်သူအားလုံးက ၎င်းကို အောင်မြင်စွာ ပြန်လည်ရယူမည် သို့မဟုတ် ပါဝင်သူအားလုံးသည် ၎င်းကို ပြန်လည်ရယူရန် ပျက်ကွက်မည်ဖြစ်သည်။ ထို့နောက် ရရှိလာသော ကျပန်းနံပါတ်သည် ပါဝင်သူများ ပြန်လည်ရယူနိုင်သည့် အတန်းများထဲမှ XOR ဖြစ်သည်။

လက်မှတ်များ

ကျပန်းလုပ်ဆောင်ခြင်းအတွက် နောက်ထပ်ချဉ်းကပ်နည်းမှာ BLS threshold signatures ဟုခေါ်သည့်အရာကို အသုံးပြုခြင်းဖြစ်သည်။ ကန့်သတ်လက်မှတ်များကိုအခြေခံ၍ ကျပန်းနံပါတ်ထုတ်ပေးသည့်စနစ်သည် အထက်တွင်ဖော်ပြထားသော ဖျက်ပစ်သည့်ကုဒ်အခြေခံသည့် အယ်လဂိုရီသမ်ကဲ့သို့ အာမခံချက်တူညီသော်လည်း ထုတ်လုပ်လိုက်သည့်နံပါတ်တစ်ခုစီအတွက် ကွန်ရက်ပေါ်တွင် ပေးပို့သည့် asymptotic အရေအတွက် သိသိသာသာနည်းပါသည်။

BLS လက်မှတ်များသည် မက်ဆေ့ချ်တစ်ခုအတွက် ဘုံလက်မှတ်တစ်ခု ဖန်တီးနိုင်စေမည့် ဒီဇိုင်းတစ်ခုဖြစ်သည်။ လက်မှတ်များစွာကို ပေးပို့ရန်မလိုအပ်ဘဲ နေရာနှင့် လှိုင်းနှုန်းကို ချွေတာရန်အတွက် ဤလက်မှတ်များကို မကြာခဏအသုံးပြုပါသည်။ 

ကျပန်းနံပါတ်များထုတ်ပေးခြင်းအပြင် blockchain ပရိုတိုကောများတွင် BLS လက်မှတ်များအတွက် ဘုံအပလီကေးရှင်းတစ်ခုသည် BFT ပရိုတိုကောများတွင် လက်မှတ်ထိုးခြင်းကို ပိတ်ပင်ထားသည်။ ပါဝင်သူ 100 သည် ဘလောက်များဖန်တီးသည်ဆိုပါစို့၊ ၎င်းတို့အနက်မှ 67 ယောက်က လက်မှတ်ထိုးပါက ဘလောက်တစ်ခုအား အပြီးသတ်အဖြစ်သတ်မှတ်သည်။ ၎င်းတို့အားလုံးသည် BLS လက်မှတ်၏ အစိတ်အပိုင်းများကို တင်ပြနိုင်ပြီး ၎င်းတို့ထဲမှ 67 ခုကို သဘောတူရန် အချို့သော သဘောတူညီမှု အယ်လဂိုရီသမ်ကို အသုံးပြုကာ ၎င်းတို့အား BLS လက်မှတ်တစ်ခုအဖြစ် ပေါင်းစည်းနိုင်သည်။ 67 (သို့မဟုတ် ထို့ထက်ပို) အစိတ်အပိုင်းများကို နောက်ဆုံးလက်မှတ်ဖန်တီးရန် အသုံးပြုနိုင်ပြီး 67 လက်မှတ်ပေါင်းထားသည့်အပေါ် မူတည်ပြီး ကွဲပြားနိုင်သော်လည်း ပါဝင်သူ 67 မှ မတူညီသောရွေးချယ်မှုများက မတူညီသောလက်မှတ်ကို ဖန်တီးပေးမည်ဖြစ်သော်လည်း အဆိုပါလက်မှတ်သည် တရားဝင်ဖြစ်လိမ့်မည် block အတွက် လက်မှတ်။ ထို့နောက် ကျန်ပါဝင်သူများသည် ကွန်ရက်ပေါ်ရှိဝန်အား သိသိသာသာလျော့နည်းစေသည့် 67 အစား ဘလောက်တစ်ခုလျှင် လက်မှတ်တစ်ခုသာ လက်ခံအတည်ပြုရန် လိုအပ်ပါသည်။

ပါဝင်သူများအသုံးပြုသော သီးသန့်သော့များကို တိကျသောနည်းလမ်းဖြင့် ထုတ်ပေးပါက မည်သည့်လက်မှတ် 67 စောင် (သို့မဟုတ် ထို့ထက်နည်းသည်) ကို စုစည်းထားပါစေ ရလဒ်လက်မှတ်သည် အတူတူပင်ဖြစ်လိမ့်မည်။ ၎င်းကို ကျပန်း၏ရင်းမြစ်အဖြစ် သုံးနိုင်သည်- ပါဝင်သူများသည် လက်မှတ်ထိုးမည့် မက်ဆေ့ချ်အချို့ကို ဦးစွာသဘောတူသည် (၎င်းသည် RANDAO ၏ ထွက်ပေါက် သို့မဟုတ် နောက်ဆုံးဘလောက်၏ hash မျှသာ ဖြစ်နိုင်သည်၊ အကြိမ်တိုင်း ပြောင်းလဲနေသရွေ့ အရေးမကြီးပါ။ ကိုက်ညီသည်) နှင့် ၎င်းအတွက် BLS လက်မှတ်ကို ဖန်တီးပါ။ ပါဝင်သူ 67 ဦးသည် ၎င်းတို့၏ အစိတ်အပိုင်းများကို ပံ့ပိုးပေးသည့်တိုင်အောင် မျိုးဆက်၏ရလဒ်ကို ခန့်မှန်း၍မရနိုင်ဘဲ၊ ထို့နောက်တွင် ရလဒ်သည် ကြိုတင်သတ်မှတ်ထားပြီးဖြစ်ပြီး မည်သည့်ပါဝင်သူ၏လုပ်ဆောင်မှုအပေါ်တွင်မှမူတည်၍မရပါ။

အနည်းဆုံး ⅔ အွန်လိုင်းပါဝင်သူများ၏ ပရိုတိုကောကို လိုက်နာပြီး ပါဝင်သူ အနည်းဆုံး ⅓ ၏ ပရိုတိုကောကို လိုက်နာသရွေ့ ကြုံရာကျပန်းလုပ်ဆောင်ရန် ဤချဉ်းကပ်မှုသည် အကျုံးဝင်ပါသည်။ ပါဝင်သူများ၏ ⅓ထက်ပိုသော်လည်း ⅔ထက်နည်းသော တိုက်ခိုက်သူသည် ပရိုတိုကောကို ရပ်တန့်နိုင်သော်လည်း ၎င်း၏ထွက်ရှိမှုကို ခန့်မှန်းနိုင် သို့မဟုတ် လွှမ်းမိုးနိုင်မည်မဟုတ်ကြောင်း သတိပြုရန် အရေးကြီးပါသည်။

Threshold လက်မှတ်များသည် အလွန်စိတ်ဝင်စားစရာကောင်းသော အကြောင်းအရာတစ်ခုဖြစ်သည်။ ဆောင်းပါး၏ဒုတိယအပိုင်းတွင်၊ ၎င်းတို့မည်သို့အလုပ်လုပ်ပုံနှင့်ပါဝင်သူသော့များကိုထုတ်လုပ်ရန်မည်ကဲ့သို့အတိအကျလိုအပ်ကြောင်းအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာပြီး threshold signatures များကို ကျပန်းနံပါတ်ထုတ်လုပ်သူအဖြစ်အသုံးပြုနိုင်မည်ဖြစ်သည်။

နိဂုံးချုပ်

ဤဆောင်းပါးသည် နည်းပညာဆိုင်ရာ ဘလော့ဆောင်းပါးများ အတွဲလိုက်တွင် ပထမဆုံးဖြစ်သည်။ နီး. NEAR သည် သုံးစွဲသူများအတွက် ဖွံ့ဖြိုးတိုးတက်မှုနှင့် အသုံးပြုရလွယ်ကူမှုတို့ကို အလေးပေးကာ ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော အပလီကေးရှင်းများကို ဖော်ဆောင်ရန်အတွက် blockchain protocol နှင့် platform တစ်ခုဖြစ်သည်။

ပရိုတိုကောကုဒ်ကို ဖွင့်ထားပြီး၊ ကျွန်ုပ်တို့၏ အကောင်အထည်ဖော်မှုကို Rust ဖြင့် ရေးသားထားသည်ကို တွေ့ရှိနိုင်သည်။ ဒီမှာ.

NEAR အတွက် ဖွံ့ဖြိုးတိုးတက်မှုပုံစံကို သင်မြင်နိုင်ပြီး အွန်လိုင်း IDE တွင် စမ်းသပ်နိုင်သည်။ ဒီမှာ.

သတင်းအားလုံးကို ရုရှားဘာသာဖြင့် လိုက်ကြည့်နိုင်ပါသည်။ ကြေးနန်းအဖွဲ့ နှင့် VKontakte တွင်အုပ်စုအင်္ဂလိပ်ဘာသာဖြင့် မြန်မာဘာသာ၊ တွစ်တာ.

မကြာခင်ပြန်ဆုံကြမယ်!

source: www.habr.com

မှတ်ချက် Add