நாம் ஒருவரையொருவர் நம்பவில்லை என்றால் சீரற்ற எண்களை உருவாக்க முடியுமா? பகுதி 1

ஹே ஹப்ர்!

இந்த கட்டுரையில் நான் ஒருவருக்கொருவர் நம்பாத பங்கேற்பாளர்களால் போலி-சீரற்ற எண்களின் தலைமுறை பற்றி பேசுவேன். நாம் கீழே பார்ப்பது போல், ஒரு "கிட்டத்தட்ட" நல்ல ஜெனரேட்டரை செயல்படுத்துவது மிகவும் எளிமையானது, ஆனால் மிகவும் நல்லது கடினம்.

ஒருவரையொருவர் நம்பாத பங்கேற்பாளர்களிடையே சீரற்ற எண்களை உருவாக்குவது ஏன் அவசியம்? ஒரு பயன்பாட்டுப் பகுதி பரவலாக்கப்பட்ட பயன்பாடுகள் ஆகும். எடுத்துக்காட்டாக, பங்கேற்பாளரிடமிருந்து ஒரு பந்தயத்தை ஏற்றுக்கொண்டு, 49% நிகழ்தகவுடன் தொகையை இரட்டிப்பாக்கும் அல்லது 51% நிகழ்தகவுடன் எடுத்துச் செல்லும் விண்ணப்பமானது, பாரபட்சமின்றி சீரற்ற எண்ணைப் பெற முடிந்தால் மட்டுமே செயல்படும். ஒரு தாக்குபவர் ரேண்டம் எண் ஜெனரேட்டரின் முடிவைப் பாதிக்கலாம், மேலும் விண்ணப்பத்தில் பணம் செலுத்துவதற்கான வாய்ப்பை சிறிது கூட அதிகரித்தால், அவர் அதை எளிதில் அழித்துவிடுவார்.

விநியோகிக்கப்பட்ட ரேண்டம் எண் உருவாக்க நெறிமுறையை வடிவமைக்கும்போது, ​​அதற்கு மூன்று பண்புகள் இருக்க வேண்டும் என்று விரும்புகிறோம்:

  1. அவர் பாரபட்சமற்றவராக இருக்க வேண்டும். வேறு வார்த்தைகளில் கூறுவதானால், எந்தவொரு பங்கேற்பாளரும் சீரற்ற எண் ஜெனரேட்டரின் முடிவை எந்த வகையிலும் பாதிக்கக்கூடாது.

  2. அவர் கணிக்க முடியாதவராக இருக்க வேண்டும். வேறு வார்த்தைகளில் கூறுவதானால், எந்த ஒரு பங்கேற்பாளரும் எந்த எண் உருவாக்கப்படும் என்பதை (அல்லது அதன் பண்புகளில் ஏதேனும் ஒன்றை) உருவாக்குவதற்கு முன் கணிக்க முடியாது.

  3. நெறிமுறை சாத்தியமானதாக இருக்க வேண்டும், அதாவது, ஒரு குறிப்பிட்ட சதவீத பங்கேற்பாளர்கள் நெட்வொர்க்கிலிருந்து துண்டிக்கப்படுகிறார்கள் அல்லது வேண்டுமென்றே நெறிமுறையை நிறுத்த முயற்சிக்கிறார்கள்.

இந்தக் கட்டுரையில் நாம் இரண்டு அணுகுமுறைகளைப் பார்ப்போம்: RANDAO + VDF மற்றும் அழிக்கும் குறியீடுகள் அணுகுமுறை. அடுத்த பகுதியில், வாசல் கையொப்பங்களின் அடிப்படையில் அணுகுமுறையை விரிவாக ஆராய்வோம்.

ஆனால் முதலில், எளிமையான மற்றும் பொதுவாகப் பயன்படுத்தப்படும் வழிமுறையைப் பார்ப்போம், அது சாத்தியமான, கணிக்க முடியாத, ஆனால் சார்புடையது.

ராண்டாவோ

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 என்று அழைக்கப்படுகிறது. இறுதி முடிவைக் கணக்கிடுவதற்கு எண் வெளிப்படுத்தும் கட்டத்தை விட அதிக நேரம் எடுத்தால், தாக்குபவர் தனது எண்ணைக் காண்பிப்பதன் அல்லது மறைப்பதன் விளைவைக் கணிக்க முடியாது, எனவே அவர் முடிவை பாதிக்கும் வாய்ப்பை இழப்பார்.

நல்ல VDFகளை உருவாக்குவது மிகவும் கடினம். சமீபத்தில் பல முன்னேற்றங்கள் ஏற்பட்டுள்ளன, எ.கா. இந்த и இது, இது VDFஐ நடைமுறையில் மிகவும் நடைமுறைப்படுத்தியது, மேலும் Ethereum 2.0 ஆனது RANDAO ஐ VDF உடன் நீண்ட காலத்திற்கு சீரற்ற எண் மூலமாகப் பயன்படுத்த திட்டமிட்டுள்ளது. இந்த அணுகுமுறை கணிக்க முடியாதது மற்றும் பக்கச்சார்பற்றது என்பதைத் தவிர, குறைந்தபட்சம் இரண்டு பங்கேற்பாளர்கள் நெட்வொர்க்கில் இருந்தால் (இவ்வளவு சிறிய எண்ணிக்கையிலான பங்கேற்பாளர்களைக் கையாளும் போது பயன்படுத்தப்படும் ஒருமித்த நெறிமுறை சாத்தியமானதாக இருந்தால்) இது சாத்தியமானதாக இருக்கும்.

இந்த அணுகுமுறையின் மிகப்பெரிய சவாலானது VDFஐ அமைப்பதே ஆகும், அதாவது மிகவும் விலையுயர்ந்த சிறப்பு வன்பொருள் கொண்ட ஒரு பங்கேற்பாளரால் கூட கண்டுபிடிப்பு கட்டம் முடிவதற்குள் VDF ஐ கணக்கிட முடியாது. வெறுமனே, அல்காரிதம் ஒரு குறிப்பிடத்தக்க பாதுகாப்பு விளிம்பைக் கொண்டிருக்க வேண்டும், 10x என்று சொல்லுங்கள். RANDAO உறுதிப்படுத்தலை வெளிப்படுத்த ஒதுக்கப்பட்ட நேரத்தை விட வேகமாக VDF ஐ இயக்க அனுமதிக்கும் ஒரு சிறப்பு ASIC உடைய நடிகரின் தாக்குதலை கீழே உள்ள படம் காட்டுகிறது. அத்தகைய பங்கேற்பாளர் தனது எண்ணைப் பயன்படுத்தி அல்லது பயன்படுத்தாமல் இறுதி முடிவைக் கணக்கிட முடியும், பின்னர், கணக்கீட்டின் அடிப்படையில், அதைக் காட்டலாமா வேண்டாமா என்பதைத் தேர்வுசெய்யவும்.

நாம் ஒருவரையொருவர் நம்பவில்லை என்றால் சீரற்ற எண்களை உருவாக்க முடியுமா? பகுதி 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. சரம் மீட்டமைக்கப்பட்டு, அது மீண்டும் அழிக்கப்பட்டு குறியாக்கம் செய்யப்பட்டு, உள்நாட்டில் கணக்கிடப்பட்ட பங்குகளுக்கு Merkle மரம் கணக்கிடப்பட்டால், வேர் ஒருமித்த கருத்துடன் ஒத்துப்போகிறது.

  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 என்பது ஒரு பிளாக்செயின் நெறிமுறை மற்றும் பரவலாக்கப்பட்ட பயன்பாடுகளை உருவாக்குவதற்கான தளமாகும்.

நெறிமுறை குறியீடு திறந்திருக்கும், எங்கள் செயல்படுத்தல் ரஸ்டில் எழுதப்பட்டுள்ளது, அதைக் காணலாம் இங்கே.

NEAR க்கான வளர்ச்சி எப்படி இருக்கும் என்பதை நீங்கள் பார்க்கலாம் மற்றும் ஆன்லைன் IDE இல் பரிசோதனை செய்யலாம் இங்கே.

நீங்கள் ரஷ்ய மொழியில் அனைத்து செய்திகளையும் பின்தொடரலாம் தந்தி குழு மற்றும் உள்ளே VKontakte இல் குழு, மற்றும் அதிகாரப்பூர்வ ஆங்கிலத்தில் ட்விட்டர்.

До!

ஆதாரம்: www.habr.com

கருத்தைச் சேர்