අපි එකිනෙකා විශ්වාස නොකරන්නේ නම් අහඹු සංඛ්යා උත්පාදනය කළ හැකිද? 1 කොටස

හෙලෝ, හබ්ර්!

මෙම ලිපියෙන් මම එකිනෙකා විශ්වාස නොකරන සහභාගිවන්නන් විසින් ව්යාජ අහඹු සංඛ්යා උත්පාදනය ගැන කතා කරමි. අපි පහත දකින පරිදි, "පාහේ" හොඳ උත්පාදක යන්ත්රයක් ක්රියාත්මක කිරීම තරමක් සරල ය, නමුත් ඉතා හොඳ එකක් අපහසු වේ.

එකිනෙකා විශ්වාස නොකරන සහභාගිවන්නන් අතර අහඹු සංඛ්යා උත්පාදනය කිරීම අවශ්ය වන්නේ ඇයි? එක් යෙදුම් ක්ෂේත්‍රයක් විමධ්‍යගත යෙදුම් වේ. උදාහරණයක් ලෙස, සහභාගිවන්නෙකුගෙන් ඔට්ටුවක් පිළිගෙන 49% සම්භාවිතාවක් සමඟ මුදල දෙගුණයක් කරන හෝ 51% සම්භාවිතාවක් සමඟින් ඉවත් කරන යෙදුමක් ක්‍රියා කරන්නේ එයට අපක්ෂපාතීව අහඹු අංකයක් ලැබිය හැකි නම් පමණි. ප්‍රහාරකයෙකුට සසම්භාවී සංඛ්‍යා උත්පාදකයේ ප්‍රතිඵලයට බලපෑම් කළ හැකි නම් සහ අයදුම්පතෙහි ගෙවීමක් ලැබීමේ අවස්ථාව තරමක් වැඩි කළහොත්, ඔහු එය පහසුවෙන් විනාශ කරනු ඇත.

අපි බෙදා හරින ලද අහඹු සංඛ්‍යා උත්පාදන ප්‍රොටෝකෝලයක් සැලසුම් කරන විට, අපට එයට ගුණාංග තුනක් තිබිය යුතුය:

  1. ඔහු අපක්ෂපාතී විය යුතුය. වෙනත් වචන වලින් කිවහොත්, සසම්භාවී සංඛ්‍යා උත්පාදකයේ ප්‍රතිඵලයට කිසිදු සහභාගිවන්නෙකු කිසිදු ආකාරයකින් බලපෑම් නොකළ යුතුය.

  2. ඔහු අනපේක්ෂිත විය යුතුය. වෙනත් වචන වලින් කිවහොත්, එය උත්පාදනය කිරීමට පෙර කුමන අංකයක් ජනනය වේදැයි (හෝ එහි කිසියම් ගුණයක් අනුමාන කරන්න) පුරෝකථනය කිරීමට කිසිදු සහභාගිවන්නෙකුට නොහැකි විය යුතුය.

  3. ප්‍රොටෝකෝලය ශක්‍ය විය යුතුය, එනම් සහභාගිවන්නන්ගෙන් යම් ප්‍රතිශතයක් ජාලයෙන් විසන්ධි වීම හෝ හිතාමතාම ප්‍රොටෝකෝලය නැවැත්වීමට උත්සාහ කිරීමට ප්‍රතිරෝධී විය යුතුය.

මෙම ලිපියෙන් අපි ප්‍රවේශයන් දෙකක් දෙස බලමු: RANDAO + VDF සහ මකන කේත ප්‍රවේශය. ඊළඟ කොටසේදී, අපි එළිපත්ත අත්සන් මත පදනම් වූ ප්රවේශය විස්තරාත්මකව විමසා බලමු.

නමුත් පළමුව, ශක්‍ය, අනපේක්ෂිත, නමුත් පක්ෂග්‍රාහී සරල සහ බහුලව භාවිතා වන ඇල්ගොරිතමයක් දෙස බලමු.

RANDAO

RANDAO යනු ඉතා සරල වන අතර එබැවින් අහඹු බව ජනනය කිරීම සඳහා බහුලව භාවිතා වන ප්‍රවේශයකි. සියලුම ජාල සහභාගිවන්නන් ප්‍රථමයෙන් දේශීයව ව්‍යාජ අංකයක් තෝරන්න, ඉන්පසු සෑම සහභාගිවන්නෙක්ම තෝරාගත් අංකයේ හැෂ් එකක් යවයි. ඊළඟට, සහභාගිවන්නන් මාරුවෙන් මාරුවට තම තෝරාගත් අංක හෙළිදරව් කිරීම සහ හෙළිදරව් කරන ලද සංඛ්යා මත 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 දිගුකාලීනව අහඹු සංඛ්‍යා මූලාශ්‍රයක් ලෙස VDF සමඟ RANDAO භාවිතා කිරීමට සැලසුම් කරයි. මෙම ප්‍රවේශය අනපේක්ෂිත සහ අපක්ෂපාතී බව හැරුණු විට, අවම වශයෙන් සහභාගිවන්නන් දෙදෙනෙකු ජාලයේ සිටී නම් එයට ශක්‍ය වීමේ අමතර ප්‍රතිලාභයක් ඇත (මෙතරම් කුඩා සහභාගිවන්නන් සමඟ ගනුදෙනු කිරීමේදී භාවිතා කරන එකඟතා ප්‍රොටෝකෝලය ශක්‍ය යැයි උපකල්පනය කරයි).

මෙම ප්‍රවේශයේ ඇති ලොකුම අභියෝගය වන්නේ ඉතා මිල අධික විශේෂිත දෘඩාංග සහිත සහභාගිවන්නෙකුට පවා සොයාගැනීමේ අදියර අවසන් වීමට පෙර VDF ගණනය කිරීමට නොහැකි වන පරිදි VDF සැකසීමයි. ඉතා මැනවින්, ඇල්ගොරිතමයට සැලකිය යුතු ආරක්ෂිත ආන්තිකයක් තිබිය යුතුය, 10x කියන්න. පහත රූපයේ දැක්වෙන්නේ විශේෂිත ASIC ඇති නළුවෙකු විසින් ඔහුට RANDAO තහවුරු කිරීම හෙළි කිරීමට වෙන් කර ඇති කාලයට වඩා වේගයෙන් VDF ධාවනය කිරීමට ඉඩ සලසන ප්‍රහාරයකි. එවැනි සහභාගිවන්නෙකුට තවමත් ඔහුගේ අංකය භාවිතා කිරීම හෝ නොකිරීම අවසන් ප්රතිඵලය ගණනය කළ හැකි අතර, පසුව, ගණනය කිරීම මත පදනම්ව, එය පෙන්විය යුතුද නැද්ද යන්න තෝරන්න.

අපි එකිනෙකා විශ්වාස නොකරන්නේ නම් අහඹු සංඛ්යා උත්පාදනය කළ හැකිද? 1 කොටස

ඉහත සඳහන් කළ VDF පවුල සඳහා, කැපවූ ASIC කාර්ය සාධනය සාම්ප්‍රදායික දෘඩාංගවලට වඩා 100+ ගුණයකින් වැඩි විය හැක. එබැවින් අනාවරණය කිරීමේ අදියර තත්පර 10 ක් පවතී නම්, එවැනි ASIC මත ගණනය කරන ලද VDF 100x ආරක්ෂිත ආන්තිකයක් ලබා ගැනීමට තත්පර 10 කට වඩා ගත විය යුතු අතර, භාණ්ඩ දෘඪාංග මත ගණනය කරන ලද එම VDF තත්පර 100x 100 තත්පර = ~3 පැය ගත යුතුය.

Ethereum පදනම තමන්ගේම ප්‍රසිද්ධියේ ලබා ගත හැකි, නොමිලේ ASIC නිර්මාණය කිරීමෙන් මෙම ගැටළුව විසඳීමට සැලසුම් කරයි. මෙය සිදු වූ පසු, අනෙකුත් සියලුම ප්‍රොටෝකෝලවලට ද මෙම තාක්‍ෂණයෙන් ප්‍රයෝජන ගත හැකිය, නමුත් එතෙක් RANDAO+VDF ප්‍රවේශය තමන්ගේම ASIC සංවර්ධනය කිරීමට ආයෝජනය කළ නොහැකි ප්‍රොටෝකෝල සඳහා ශක්‍ය නොවනු ඇත.

VDF පිළිබඳ බොහෝ ලිපි, වීඩියෝ සහ වෙනත් තොරතුරු රැස් කර ඇත මෙම වෙබ් අඩවිය.

අපි මකන කේත භාවිතා කරමු

මෙම කොටසේදී, අපි භාවිතා කරන අහඹු සංඛ්‍යා උත්පාදන ප්‍රොටෝකෝලයක් දෙස බලමු කේත මකා දැමීම. එය ශක්‍යව පවතින අතර ප්‍රහාරකයින් ⅓ දක්වා ඉවසා සිටිය හැකි අතර, ප්‍රතිඵලය පුරෝකථනය කිරීමට හෝ බලපෑම් කිරීමට පෙර ප්‍රහාරකයන්ට ⅔ දක්වා සිටීමට ඉඩ සලසයි.

ප්රොටෝකෝලයේ ප්රධාන අදහස පහත පරිදි වේ. සරල බව සඳහා, හරියටම 100 සහභාගිවන්නන් සිටින බව උපකල්පනය කරමු. සියලුම සහභාගිවන්නන්ට දේශීයව යම් පුද්ගලික යතුරක් ඇති බවත්, සියලුම සහභාගිවන්නන්ගේ පොදු යතුරු සියලුම සහභාගිවන්නන් දන්නා බවත් අපි උපකල්පනය කරමු:

  1. සෑම සහභාගිවන්නෙකුම දේශීයව දිගු තන්තුවක් ඉදිරිපත් කරයි, එය කොටස් 67කට කඩා, කොටස් 100ක් ලබා ගැනීම සඳහා මකාදැමීමේ කේත නිර්මාණය කරයි, එනම් තන්තුව ප්‍රතිසාධනය කිරීමට ඕනෑම 67ක් ප්‍රමාණවත් වන පරිදි, එක් එක් කොටස් 100 බැගින් සහභාගිවන්නන්ගෙන් එක් අයෙකුට පවරා ඒවා සංකේතනය කරයි. එකම සහභාගිවන්නාගේ පොදු යතුර. සියලුම කේතනය කළ කොටස් පසුව ප්‍රකාශයට පත් කෙරේ.

  2. සහභාගිවන්නන් නිශ්චිත සහභාගිවන්නන් 67 දෙනෙකුගෙන් කේතගත කට්ටල පිළිබඳ එකඟතාවයකට පැමිණීමට යම් ආකාරයක සම්මුතියක් භාවිතා කරයි.

  3. සම්මුතියකට පැමිණි පසු, එක් එක් සහභාගිවන්නන් ඔවුන්ගේ පොදු යතුර සමඟ සංකේතනය කර ඇති කට්ටල 67 න් එක් එක් කේතනය කළ කොටස් ලබා ගනී, එවැනි සියලු කොටස් විකේතනය කරයි, සහ එවැනි විකේතනය කළ කොටස් සියල්ල ප්‍රකාශයට පත් කරයි.

  4. සහභාගිවන්නන් 67 දෙනෙකු පියවර (3) සම්පූර්ණ කළ පසු, මකාදැමීමේ කේතවල ගුණාංග හේතුවෙන් සියලුම එකඟ වූ කට්ටල සම්පූර්ණයෙන්ම විකේතනය කර ප්‍රතිනිර්මාණය කළ හැකි අතර, සහභාගිවන්නන් (1) ආරම්භ කළ ආරම්භක පේළිවල XOR ලෙස අවසාන අංකය ලබා ගත හැක. .

අපි එකිනෙකා විශ්වාස නොකරන්නේ නම් අහඹු සංඛ්යා උත්පාදනය කළ හැකිද? 1 කොටස

මෙම ප්‍රොටෝකෝලය අපක්ෂපාතී සහ අනපේක්ෂිත බව පෙන්විය හැක. ප්‍රතිඵලයක් ලෙස ලැබෙන අහඹු සංඛ්‍යාව තීරණය වන්නේ සම්මුතියකට පැමිණීමෙන් පසුවය, නමුත් සහභාගිවන්නන්ගෙන් ⅔ ඔවුන්ගේ පොදු යතුර සමඟ සංකේතනය කර ඇති කොටස් විකේතනය කරන තෙක් කිසිවෙකු දැන නොසිටිති. මේ අනුව, එය ප්‍රතිනිර්මාණය කිරීමට ප්‍රමාණවත් තොරතුරු ප්‍රකාශයට පත් කිරීමට පෙර අහඹු අංකය තීරණය කරනු ලැබේ.

පියවරේදී (1) සහභාගිවන්නන්ගෙන් එක් අයෙකු යම් තන්තුවක් සඳහා නිවැරදි මකාදැමීමේ කේතය නොවන අනෙකුත් සහභාගිවන්නන්ට කේතනය කළ කොටස් යවා ඇත්නම් කුමක් සිදුවේද? අමතර වෙනස්කම් නොමැතිව, විවිධ සහභාගිවන්නන්ට තන්තුව කිසිසේත් ප්‍රතිසාධනය කිරීමට නොහැකි වනු ඇත, නැතහොත් ඔවුන් විවිධ තන්තු ප්‍රතිසාධනය කරනු ඇත, එමඟින් විවිධ සහභාගිවන්නන්ට වෙනස් අහඹු අංකයක් ලැබෙනු ඇත. මෙය වලක්වා ගැනීම සඳහා, ඔබට පහත සඳහන් දෑ කළ හැකිය: එක් එක් සහභාගිවන්නන්, කේතනය කළ කොටස් වලට අමතරව, ගණනය කරයි. මර්ක්ලා ගස එවැනි සියලුම කොටස්, සහ එක් එක් සහභාගිවන්නෙකුට කේතනය කළ කොටස සහ මර්කල් ගසේ මුල යන දෙකම යවයි, සහ මර්කල් ගසෙහි කොටස ඇතුළත් කිරීමේ සාක්ෂිය. පියවර (2) හි එකඟතාවයේ දී, සහභාගිවන්නන් පසුව කට්ටල කට්ටලයකට පමණක් නොව, එවැනි ගස්වල නිශ්චිත මූලයන් සඳහා එකඟ වේ (සමහර සහභාගිවන්නන් ප්‍රොටෝකෝලයෙන් බැහැරව, විවිධ මර්කල් ගස් මුල් විවිධ සහභාගිවන්නන්ට යවා ඇත්නම්, සහ සම්මුතිය අතරතුර එවැනි මූලයන් දෙකක් පෙන්වනු ලැබේ, ඔහුගේ පේළිය ප්රතිඵල කට්ටලයට ඇතුළත් නොවේ). සම්මුතියේ ප්‍රතිඵලයක් ලෙස, අපට කේතනය කරන ලද රේඛා 67 ක් සහ මර්කල් ගසේ අනුරූප මූලයන් ඇත, එනම් අවම වශයෙන් සහභාගිවන්නන් 67 ක් (අවශ්‍යයෙන්ම අනුරූප රේඛා යෝජනා කළ අයම නොවේ), එක් එක් පේළි 67 සඳහා ඇති මකාදැමීමේ කේතයේ කොටසක් සහිත පණිවිඩයක් සහ අනුරූප ගසෙහි ඔවුන්ගේ කොටස මැකී ගිය බවට සාක්ෂියක්.

(4) පියවරේදී, සහභාගිවන්නා යම් තන්තුවක් සඳහා 67 බීට් කර ඒවායින් මුල් තන්තුව ප්‍රතිනිර්මාණය කිරීමට උත්සාහ කරන විට, එක් විකල්පයක් හැකි ය:

  1. තන්තුව ප්‍රතිෂ්ඨාපනය කර, එය නැවත මකාදැමීම-කේතනය කර, දේශීයව ගණනය කරන ලද කොටස් සඳහා මර්කල් ගස ගණනය කරනු ලැබුවහොත්, මූලය සම්මුතියට පැමිණි එක සමග සමපාත වේ.

  2. පේළිය ප්‍රතිසාධනය කර ඇත, නමුත් දේශීයව ගණනය කරන ලද මූලය සම්මුතියට පැමිණි එකට නොගැලපේ.

  3. පේළිය ප්රතිෂ්ඨාපනය කර නැත.

ඉහත විකල්පය (1) අවම වශයෙන් එක් සහභාගිවන්නෙකු සඳහා සිදු වූයේ නම්, විකල්පය (1) සියලුම සහභාගිවන්නන් සඳහා සිදු වූ අතර, අනෙක් අතට, විකල්පය (2) හෝ (3) අවම වශයෙන් එක් සහභාගිවන්නෙකු සඳහා සිදු වූයේ නම්, පසුව සියලුම සහභාගිවන්නන් සඳහා විකල්පය (2) හෝ (3) සිදුවනු ඇත. මේ අනුව, කට්ටලයේ එක් එක් පේළිය සඳහා, එක්කෝ සියලුම සහභාගිවන්නන් එය සාර්ථකව ප්රතිසාධනය කරනු ඇත, නැතහොත් සියලුම සහභාගිවන්නන් එය ප්රතිසාධනය කිරීමට අසමත් වනු ඇත. එවිට ලැබෙන අහඹු අංකය, සහභාගිවන්නන්ට ප්‍රතිසාධනය කිරීමට හැකි වූ පේළිවල පමණක් XOR වේ.

එළිපත්ත අත්සන්

අහඹු බව සඳහා තවත් ප්‍රවේශයක් වන්නේ BLS threshold අත්සන් ලෙස හඳුන්වන දේ භාවිතා කිරීමයි. එළිපත්ත අත්සන් මත පදනම් වූ අහඹු සංඛ්‍යා උත්පාදක යන්ත්‍රයකට ඉහත විස්තර කර ඇති මකාදැමීමේ කේත පදනම් වූ ඇල්ගොරිතමයට හරියටම සමාන සහතික ඇත, නමුත් ජනනය කරන ලද සෑම අංකයක් සඳහාම ජාලය හරහා යවන ලද සැලකිය යුතු අඩු අසමමිතික පණිවිඩ සංඛ්‍යාවක් ඇත.

BLS අත්සන් යනු පණිවිඩයක් සඳහා එක් පොදු අත්සනක් සෑදීමට බහු සහභාගිවන්නන්ට ඉඩ සලසන නිර්මාණයකි. මෙම අත්සන් බොහෝ විට බහු අත්සන් යැවීමට අවශ්‍ය නොවී ඉඩ සහ කලාප පළල ඉතිරි කර ගැනීමට භාවිතා කරයි. 

බ්ලොක්චේන් ප්‍රොටෝකෝලවල BLS අත්සන් සඳහා වන පොදු යෙදුමක්, අහඹු සංඛ්‍යා ජනනය කිරීමට අමතරව, BFT ප්‍රොටෝකෝලවල අවහිර කිරීම් අත්සන් කිරීමයි. අපි කියමු සහභාගිවන්නන් 100 ක් කුට්ටි නිර්මාණය කරන අතර, ඔවුන්ගෙන් 67 දෙනෙකු අත්සන් කළහොත් බ්ලොක් එකක් අවසාන වශයෙන් සලකනු ලැබේ. ඔවුන් සියල්ලන්ටම BLS අත්සනෙහි ඔවුන්ගේ කොටස් ඉදිරිපත් කළ හැකි අතර ඒවායින් 67කට එකඟ වීමට යම් සම්මුති ඇල්ගොරිතමයක් භාවිත කර ඒවා එක් BLS අත්සනකට ඒකාබද්ධ කළ හැකිය. අවසාන අත්සන නිර්මාණය කිරීම සඳහා ඕනෑම කොටස් 67ක් (හෝ ඊට වැඩි) භාවිතා කළ හැකි අතර, එය කුමන අත්සන් 67ක් ඒකාබද්ධ කළේද යන්න මත රඳා පවතින අතර එම නිසා වෙනස් විය හැක, සහභාගිවන්නන් 67 දෙනාගේ විවිධ තේරීම් වෙනස් අත්සනක් සාදනු ඇතත්, එවැනි ඕනෑම අත්සනක් වලංගු වේ. බ්ලොක් සඳහා අත්සන. ඉතිරි සහභාගිවන්නන්ට අවශ්‍ය වන්නේ ජාලය හරහා 67 වෙනුවට බ්ලොක් එකකට එක් අත්සනක් පමණක් ලබා ගැනීම සහ සත්‍යාපනය කිරීම පමණි, එමඟින් ජාලයේ බර සැලකිය යුතු ලෙස අඩු කරයි.

සහභාගිවන්නන් භාවිතා කරන පුද්ගලික යතුරු නිශ්චිත ආකාරයකින් ජනනය කරන්නේ නම්, කුමන අත්සන් 67 ක් (හෝ ඊට වැඩි, නමුත් අඩු නොවේ) එකතු කළත්, ලැබෙන අත්සන සමාන වනු ඇත. මෙය අහඹු ප්‍රභවයක් ලෙස භාවිතා කළ හැක: සහභාගිවන්නන් තමන් අත්සන් කරන යම් පණිවිඩයකට පළමුව එකඟ වේ (මෙය RANDAO හි ප්‍රතිදානය හෝ අවසාන කොටසේ හැෂ් පමණක් විය හැකිය, එය සෑම අවස්ථාවකම වෙනස් වන තාක් කල් එය වැදගත් නොවේ සහ අනුකූල වේ) සහ ඒ සඳහා BLS අත්සනක් සාදන්න. 67 සහභාගීවන්නන් ඔවුන්ගේ කොටස් ලබා දෙන තෙක් පරම්පරාවේ ප්රතිඵලය අනපේක්ෂිත වනු ඇත, සහ ඉන් පසුව ප්රතිදානය දැනටමත් කලින් තීරණය කර ඇති අතර ඕනෑම සහභාගිවන්නෙකුගේ ක්රියාවන් මත රඳා නොපවතී.

සසම්භාවීත්වය සඳහා මෙම ප්‍රවේශය අවම වශයෙන් ⅔ සබැඳි සහභාගිවන්නන් දෙදෙනාම ප්‍රොටෝකෝලය අනුගමනය කරන තාක් කල් ශක්‍ය වන අතර අවම වශයෙන් සහභාගිවන්නන් ⅓ ප්‍රොටෝකෝලය අනුගමනය කරන තාක් කල් අපක්ෂපාතී සහ අනපේක්ෂිත වේ. සහභාගිවන්නන්ගෙන් ⅓ට වඩා වැඩි නමුත් ⅔ ට වඩා අඩු ප්‍රහාරකයෙකුට ප්‍රොටෝකෝලය නැවැත්විය හැකි නමුත් එහි ප්‍රතිදානය පුරෝකථනය කිරීමට හෝ බලපෑම් කිරීමට නොහැකි බව සැලකිල්ලට ගැනීම වැදගත්ය.

එළිපත්ත අත්සන් ඉතා සිත්ගන්නා මාතෘකාවකි. ලිපියේ දෙවන කොටසේදී, අපි ඒවා ක්‍රියා කරන ආකාරය විස්තරාත්මකව විශ්ලේෂණය කරන්නෙමු, සහ අහඹු සංඛ්‍යා උත්පාදකයක් ලෙස එළිපත්ත අත්සන් භාවිතා කළ හැකි වන පරිදි සහභාගිවන්නන්ගේ යතුරු උත්පාදනය කිරීම හරියටම අවශ්‍ය වන්නේ කෙසේද?

අවසාන වශයෙන්

මෙම ලිපිය තාක්ෂණික බ්ලොග් ලිපි මාලාවක පළමු ලිපියයි අසල. NEAR යනු අවසාන පරිශීලකයින් සඳහා සංවර්ධනයේ පහසුව සහ භාවිතයේ පහසුව අවධාරණය කරමින් විමධ්‍යගත යෙදුම් සංවර්ධනය කිරීම සඳහා වන blockchain ප්‍රොටෝකෝලයක් සහ වේදිකාවකි.

ප්රොටෝකෝල කේතය විවෘතව ඇත, අපගේ ක්රියාත්මක කිරීම රස්ට් වලින් ලියා ඇත, එය සොයාගත හැකිය මෙහි.

NEAR සඳහා වන සංවර්ධනය කෙබඳු දැයි බැලීමට සහ සබැඳි IDE හි අත්හදා බැලීමට ඔබට හැකිය මෙහි.

ඔබට රුසියානු භාෂාවෙන් සියලුම ප්‍රවෘත්ති අනුගමනය කළ හැකිය විදුලි පණිවුඩ කණ්ඩායම හා ඇතුළත VKontakte හි කණ්ඩායම, සහ ඉංග්රීසි භාෂාවෙන් නිල ට්විටර්.

До!

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න