கிரிப்டோகரன்சிகளில் பெயர் தெரியாத தலைப்பில் நாங்கள் நீண்ட காலமாக ஆர்வமாக உள்ளோம், மேலும் இந்த பகுதியில் தொழில்நுட்பங்களின் வளர்ச்சியைப் பின்பற்ற முயற்சிக்கிறோம். எங்கள் கட்டுரைகளில் செயல்பாட்டின் கொள்கைகளை நாங்கள் ஏற்கனவே விரிவாக விவாதித்தோம்
பிப்ரவரி 2019 இல், ஸ்டான்போர்ட் பல்கலைக்கழகம் மற்றும் விசா ஆராய்ச்சியின் ஆராய்ச்சியாளர்கள் குழு
இந்த தரவு மாதிரிகளின் அமைப்பு பற்றி
UTXO மாதிரியில், ஒரு பரிவர்த்தனை "உள்ளீடுகள்" மற்றும் "வெளியீடுகள்" ஆகியவற்றைக் கொண்டுள்ளது. "வெளியீடுகளின்" நேரடி அனலாக் என்பது உங்கள் பணப்பையில் உள்ள பில்களாகும்: ஒவ்வொரு "வெளியீடும்" சில வகைகளைக் கொண்டுள்ளது. நீங்கள் ஒருவருக்கு பணம் செலுத்தும்போது (ஒரு பரிவர்த்தனையை உருவாக்கும்போது) நீங்கள் ஒன்று அல்லது அதற்கு மேற்பட்ட "வெளியீடுகளை" செலவிடுகிறீர்கள், அப்போது அவை பரிவர்த்தனையின் "உள்ளீடுகளாக" மாறும், மேலும் பிளாக்செயின் அவற்றை செலவழித்ததாகக் குறிக்கும். இந்த வழக்கில், உங்கள் கட்டணத்தைப் பெறுபவர் (அல்லது நீங்களே, மாற்றம் தேவைப்பட்டால்) புதிதாக உருவாக்கப்பட்ட "வெளியீடுகளை" பெறுவார். இதை இவ்வாறு திட்டவட்டமாக குறிப்பிடலாம்:
கணக்கு அடிப்படையிலான பிளாக்செயின்கள் உங்கள் வங்கிக் கணக்கைப் போலவே கட்டமைக்கப்பட்டுள்ளன. அவர்கள் உங்கள் கணக்கில் உள்ள தொகை மற்றும் பரிமாற்றத் தொகையை மட்டுமே கையாள்கின்றனர். உங்கள் கணக்கிலிருந்து சில தொகையை நீங்கள் மாற்றும்போது, நீங்கள் எந்த "வெளியீடுகளையும்" எரிக்க மாட்டீர்கள், எந்த நாணயங்கள் செலவழிக்கப்பட்டன, எது செய்யப்படவில்லை என்பதை நெட்வொர்க் நினைவில் வைத்திருக்க வேண்டிய அவசியமில்லை. எளிமையான வழக்கில், பரிவர்த்தனை சரிபார்ப்பு என்பது அனுப்புநரின் கையொப்பத்தையும் அவரது இருப்புத் தொகையையும் சரிபார்ப்பதாகும்:
தொழில்நுட்பத்தின் பகுப்பாய்வு
அடுத்து, பரிவர்த்தனை தொகை, பெறுநர் மற்றும் அனுப்புநரை Zether எவ்வாறு மறைக்கிறது என்பதைப் பற்றி பேசுவோம். அதன் செயல்பாட்டின் கொள்கைகளை நாங்கள் விவரிக்கும்போது, இரகசிய மற்றும் அநாமதேய பதிப்புகளில் உள்ள வேறுபாடுகளை நாங்கள் கவனிப்போம். கணக்கு அடிப்படையிலான பிளாக்செயின்களில் ரகசியத்தன்மையை உறுதிப்படுத்துவது மிகவும் எளிதானது என்பதால், அநாமதேயத்தால் விதிக்கப்படும் சில கட்டுப்பாடுகள் தொழில்நுட்பத்தின் ரகசிய பதிப்பிற்கு பொருந்தாது.
நிலுவைகள் மற்றும் பரிமாற்றத் தொகைகளை மறைத்தல்
ஒரு குறியாக்க திட்டம் Zether இல் நிலுவைகளை குறியாக்க மற்றும் தொகைகளை மாற்ற பயன்படுகிறது
எங்கே C - மறைகுறியாக்கப்பட்ட தொகை, D - இந்த தொகையை புரிந்து கொள்ள தேவையான துணை மதிப்பு, G - நீள்வட்ட வளைவில் ஒரு நிலையான புள்ளி, இரகசிய விசையால் பெருக்கப்படும் போது, பொது விசை பெறப்படுகிறது.
பாப் இந்த மதிப்புகளைப் பெறும்போது, அவர் தனது மறைகுறியாக்கப்பட்ட சமநிலையில் அவற்றை அதே வழியில் சேர்க்கிறார், அதனால்தான் இந்தத் திட்டம் வசதியானது.
இதேபோல், ஆலிஸ் தனது சமநிலையிலிருந்து அதே மதிப்புகளைக் கழிக்கிறார் Y உங்கள் பொது விசையைப் பயன்படுத்துகிறது.
பெறுநரையும் அனுப்புநரையும் மறைத்தல்
UTXO இல் "வெளியீடுகளை" மாற்றுவது கிரிப்டோகரன்சிகளின் ஆரம்ப நாட்களில் இருந்து வருகிறது மற்றும் அனுப்புநரை மறைக்க உதவுகிறது. இதைச் செய்ய, அனுப்புநரே, இடமாற்றம் செய்யும் போது, பிளாக்செயினில் சீரற்ற "வெளியீடுகளை" சேகரித்து, அவற்றை அவருடன் கலக்கிறார். அடுத்து, அவர் "வெளியீடுகளில்" ஒரு மோதிர கையொப்பத்துடன் கையொப்பமிடுகிறார் - இது ஒரு கிரிப்டோகிராஃபிக் பொறிமுறையானது, அனுப்புநரின் நாணயங்கள் சம்பந்தப்பட்ட "வெளியீடுகளில்" இருப்பதை சரிபார்ப்பவரை நம்ப வைக்க அனுமதிக்கிறது. கலப்பு நாணயங்கள், நிச்சயமாக, செலவிடப்படவில்லை.
இருப்பினும், பெறுநரை மறைக்க எங்களால் போலி வெளியீடுகளை உருவாக்க முடியாது. எனவே, UTXO இல், ஒவ்வொரு "வெளியீடும்" அதன் தனித்துவமான முகவரியைக் கொண்டுள்ளது, மேலும் இது இந்த நாணயங்களைப் பெறுபவரின் முகவரியுடன் குறியாக்கவியல் ரீதியாக இணைக்கப்பட்டுள்ளது. இந்த நேரத்தில், தனித்துவமான வெளியீட்டு முகவரிக்கும் பெறுநரின் முகவரிக்கும் இடையிலான உறவை அதன் ரகசிய விசைகளை அறியாமல் அடையாளம் காண வழி இல்லை.
கணக்கு அடிப்படையிலான மாதிரியில், நாங்கள் ஒரு முறை முகவரிகளைப் பயன்படுத்த முடியாது (இல்லையெனில் அது ஏற்கனவே "வெளியேறும்" மாதிரியாக இருக்கும்). எனவே, பெறுநரும் அனுப்புநரும் பிளாக்செயினில் உள்ள மற்ற கணக்குகளுடன் கலக்கப்பட வேண்டும். இந்த வழக்கில், ஒரு மறைகுறியாக்கப்பட்ட 0 நாணயங்கள் கலப்பு கணக்குகளில் இருந்து பற்று வைக்கப்படும் (அல்லது பெறுநர் கலந்திருந்தால் 0 சேர்க்கப்படும்), உண்மையில் அவற்றின் உண்மையான இருப்பை மாற்றாமல்.
அனுப்புநரும் பெறுநரும் எப்போதும் நிரந்தர முகவரியைக் கொண்டிருப்பதால், ஒரே முகவரிக்கு மாற்றும் போது, ஒரே குழுக்களைப் பயன்படுத்த வேண்டியது அவசியம். இதை ஒரு உதாரணத்துடன் பார்ப்பது எளிது.
ஆலிஸ் பாபின் தொண்டு நிறுவனத்தில் பங்களிக்க முடிவு செய்கிறாள் என்று வைத்துக் கொள்வோம், ஆனால் அந்த இடமாற்றம் வெளியில் இருந்து பார்வையாளருக்கு அநாமதேயமாக இருக்க விரும்புகிறது. பின்னர், அனுப்புநர் துறையில் தன்னை மாறுவேடமிடுவதற்காக, அவள் ஆடம் மற்றும் அடீலின் கணக்குகளிலும் நுழைகிறாள். மேலும் பாப்பை மறைக்க, பெறுநர் துறையில் பென் மற்றும் பில் கணக்குகளைச் சேர்க்கவும். அடுத்த பங்களிப்பைச் செய்து, ஆலிஸ் தனக்கு அடுத்தபடியாக அலெக்ஸ் மற்றும் அமண்டாவையும், பாப்பிற்கு அடுத்தபடியாக புரூஸ் மற்றும் பென்ஜெனையும் எழுத முடிவு செய்தார். இந்த வழக்கில், பிளாக்செயினை பகுப்பாய்வு செய்யும் போது, இந்த இரண்டு பரிவர்த்தனைகளிலும் ஒரே ஒரு ஜோடி பங்கேற்பாளர்கள் மட்டுமே உள்ளனர் - ஆலிஸ் மற்றும் பாப், இது இந்த பரிவர்த்தனைகளை அநாமதேயமாக்குகிறது.
பரிவர்த்தனை இனங்கள்
நாங்கள் ஏற்கனவே குறிப்பிட்டுள்ளபடி, கணக்கு அடிப்படையிலான அமைப்புகளில் உங்கள் இருப்பை மறைக்க, பயனர் தனது இருப்பு மற்றும் பரிமாற்றத் தொகையை குறியாக்கம் செய்கிறார். அதே நேரத்தில், அவர் தனது கணக்கில் இருப்பு எதிர்மறையாக இல்லை என்பதை நிரூபிக்க வேண்டும். பிரச்சனை என்னவென்றால், ஒரு பரிவர்த்தனையை உருவாக்கும் போது, பயனர் தனது நடப்புக் கணக்கு நிலையைப் பற்றிய ஆதாரத்தை உருவாக்குகிறார். பாப் ஆலிஸுக்கு ஒரு பரிவர்த்தனையை அனுப்பினால் என்ன நடக்கும்? ஆலிஸின் பரிவர்த்தனை செல்லாததாகக் கருதப்படும், ஏனெனில் பாபின் பரிவர்த்தனை ஏற்றுக்கொள்ளப்படுவதற்கு முன்பே இருப்புக்கான ஆதாரம் கட்டப்பட்டது.
அத்தகைய சூழ்நிலையில் வரும் முதல் முடிவு, பரிவர்த்தனை மேற்கொள்ளப்படும் வரை கணக்கை முடக்குவதாகும். ஆனால் இந்த அணுகுமுறை பொருத்தமானது அல்ல, ஏனென்றால் விநியோகிக்கப்பட்ட அமைப்பில் இதுபோன்ற சிக்கலைத் தீர்ப்பதில் சிக்கலானது தவிர, ஒரு அநாமதேய திட்டத்தில் யாருடைய கணக்கைத் தடுக்க வேண்டும் என்பது தெளிவாகத் தெரியவில்லை.
இந்த சிக்கலை தீர்க்க, தொழில்நுட்பம் உள்வரும் மற்றும் வெளிச்செல்லும் பரிவர்த்தனைகளை பிரிக்கிறது: செலவினம் இருப்புநிலைக் குறிப்பில் உடனடி விளைவைக் கொண்டிருக்கிறது, அதே நேரத்தில் ரசீதுகள் தாமதமான விளைவைக் கொண்டிருக்கும். இதைச் செய்ய, "சகாப்தம்" என்ற கருத்து அறிமுகப்படுத்தப்பட்டது - ஒரு நிலையான அளவிலான தொகுதிகளின் குழு. தற்போதைய "சகாப்தம்" தொகுதி உயரத்தை குழு அளவு மூலம் வகுப்பதன் மூலம் தீர்மானிக்கப்படுகிறது. ஒரு பரிவர்த்தனையைச் செயல்படுத்தும்போது, நெட்வொர்க் உடனடியாக அனுப்புநரின் இருப்பை புதுப்பித்து, பெறுநரின் நிதியை ஒரு சேமிப்பு தொட்டியில் சேமிக்கிறது. ஒரு புதிய "சகாப்தம்" தொடங்கும் போது மட்டுமே திரட்டப்பட்ட நிதி பணம் பெறுபவருக்குக் கிடைக்கும்.
இதன் விளைவாக, எவ்வளவு அடிக்கடி நிதி பெறப்படுகிறது என்பதைப் பொருட்படுத்தாமல் பயனர் பரிவர்த்தனைகளை அனுப்ப முடியும் (நிச்சயமாக அவரது இருப்பு அனுமதிக்கும் வரை). நெட்வொர்க் மூலம் தொகுதிகள் எவ்வளவு விரைவாகப் பரவுகின்றன மற்றும் ஒரு பரிவர்த்தனை எவ்வளவு விரைவாக ஒரு தொகுதிக்குள் நுழைகிறது என்பதன் அடிப்படையில் சகாப்தத்தின் அளவு தீர்மானிக்கப்படுகிறது.
இந்த தீர்வு இரகசிய இடமாற்றங்களுக்கு நன்றாக வேலை செய்கிறது, ஆனால் அநாமதேய பரிவர்த்தனைகளுடன், நாம் பின்னர் பார்ப்போம், இது கடுமையான சிக்கல்களை உருவாக்குகிறது.
ரீப்ளே தாக்குதல்களுக்கு எதிரான பாதுகாப்பு
கணக்கு அடிப்படையிலான பிளாக்செயின்களில், ஒவ்வொரு பரிவர்த்தனையும் அனுப்புநரின் தனிப்பட்ட விசையால் கையொப்பமிடப்படுகிறது, இது பரிவர்த்தனை மாற்றப்படவில்லை மற்றும் இந்த விசையின் உரிமையாளரால் உருவாக்கப்பட்டது என்பதை சரிபார்ப்பவரை நம்ப வைக்கிறது. ஆனால் டிரான்ஸ்மிஷன் சேனலைக் கேட்டுக்கொண்டிருந்த தாக்குபவர் இந்தச் செய்தியை இடைமறித்து அதே இரண்டாவது செய்தியை அனுப்பினால் என்ன செய்வது? சரிபார்ப்பவர் பரிவர்த்தனையின் கையொப்பத்தை சரிபார்த்து, அதன் ஆசிரியரை நம்புவார், மேலும் நெட்வொர்க் அனுப்புநரின் இருப்பிலிருந்து அதே தொகையை மீண்டும் எழுதும்.
இந்த தாக்குதல் ரீப்ளே அட்டாக் என்று அழைக்கப்படுகிறது. UTXO மாதிரியில், அத்தகைய தாக்குதல்கள் பொருத்தமானவை அல்ல, ஏனெனில் தாக்குபவர் செலவழித்த வெளியீடுகளைப் பயன்படுத்த முயற்சிப்பார், அது செல்லுபடியாகாது மற்றும் பிணையத்தால் நிராகரிக்கப்படுகிறது.
இது நிகழாமல் தடுக்க, பரிவர்த்தனையில் சீரற்ற தரவுகளுடன் ஒரு புலம் கட்டமைக்கப்பட்டுள்ளது, இது ஒரு நான்ஸ் அல்லது வெறுமனே "உப்பு" என்று அழைக்கப்படுகிறது. உப்புடன் ஒரு பரிவர்த்தனையை மீண்டும் சமர்ப்பிக்கும் போது, சரிபார்ப்பவர் இதற்கு முன் பயன்படுத்தப்பட்டதா என்று பார்க்கிறார், இல்லையெனில், பரிவர்த்தனை செல்லுபடியாகும் என்று கருதுகிறார். பயனர் நான்ஸின் முழு வரலாற்றையும் பிளாக்செயினில் சேமிக்காமல் இருப்பதற்காக, வழக்கமாக முதல் பரிவர்த்தனையில் அது பூஜ்ஜியத்திற்கு சமமாக அமைக்கப்பட்டு, பின்னர் ஒன்று அதிகரிக்கப்படும். புதிய பரிவர்த்தனை இல்லாதது முந்தைய பரிவர்த்தனையிலிருந்து வேறுபட்டதா என்பதை மட்டுமே நெட்வொர்க் சரிபார்க்க முடியும்.
அநாமதேய பரிமாற்ற திட்டத்தில், பரிவர்த்தனை அல்லாதவற்றை சரிபார்ப்பதில் சிக்கல் எழுகிறது. அனுப்புநரின் முகவரியுடன் நாம் வெளிப்படையாக இணைக்க முடியாது, ஏனெனில், வெளிப்படையாக, இது பரிமாற்றத்தை அநாமதேயமாக்குகிறது. பங்கேற்கும் அனைத்து கணக்குகளிலும் ஒன்றைச் சேர்க்க முடியாது, ஏனெனில் இது செயலாக்கப்படும் பிற இடமாற்றங்களுடன் முரண்படலாம்.
Zether இன் ஆசிரியர்கள் "சகாப்தம்" சார்ந்து, குறியாக்கவியல் முறையில் அல்லாதவற்றை உருவாக்க முன்மொழிகின்றனர். உதாரணத்திற்கு:
இது x அனுப்புநரின் ரகசிய விசை, மற்றும் கெபோச் - சகாப்தத்திற்கான கூடுதல் ஜெனரேட்டர், 'Zether +' வடிவத்தின் சரத்தை ஹாஷ் செய்வதன் மூலம் பெறப்பட்டது. இப்போது சிக்கல் தீர்க்கப்பட்டதாகத் தெரிகிறது - அனுப்புநரின் தவறான தகவலை நாங்கள் வெளிப்படுத்த மாட்டோம் மற்றும் பங்கேற்காத பங்கேற்பாளர்களின் கவனக்குறைவுகளில் தலையிட மாட்டோம். ஆனால் இந்த அணுகுமுறை ஒரு தீவிர வரம்பை விதிக்கிறது: ஒரு கணக்கு "சகாப்தத்திற்கு" ஒன்றுக்கு மேற்பட்ட பரிவர்த்தனைகளை அனுப்ப முடியாது. இந்த சிக்கல், துரதிர்ஷ்டவசமாக, தீர்க்கப்படாமல் உள்ளது, மேலும் தற்போது Zether இன் அநாமதேய பதிப்பைப் பயன்படுத்துவதற்கு ஏற்றதாக இல்லை என்பது எங்கள் கருத்து.
பூஜ்ஜிய அறிவுச் சான்றுகளின் சிக்கலானது
UTXO இல், அனுப்புநர் அவர் எதிர்மறையான தொகையை செலவழிக்கவில்லை என்பதை நெட்வொர்க்கிற்கு நிரூபிக்க வேண்டும், இல்லையெனில் மெல்லிய காற்றில் இருந்து புதிய நாணயங்களை உருவாக்குவது சாத்தியமாகும் (இது ஏன் சாத்தியம், முந்தைய ஒன்றில் நாங்கள் எழுதினோம்.
கணக்கு அடிப்படையிலான பிளாக்செயினின் அநாமதேய பதிப்பில், ஆதாரத்திற்கான வெளிப்பாடுகள் மிகவும் சிக்கலானவை. அனுப்புநர் அதை நிரூபிக்கிறார்:
- அனுப்பிய தொகை நேர்மறை;
- இருப்பு எதிர்மறையாக இல்லை;
- அனுப்புநர் பரிமாற்றத் தொகைகளை (பூஜ்ஜியம் உட்பட) சரியாக குறியாக்கம் செய்தார்;
- அனுப்புநருக்கும் பெறுநருக்கும் மட்டுமே இருப்புத்தொகை மாறுகிறது;
- அனுப்புநர் தனது கணக்கிற்கான தனிப்பட்ட விசையை வைத்திருக்கிறார் மேலும் அவர் உண்மையில் அனுப்புநர்களின் பட்டியலில் (சம்பந்தப்பட்டவர்களில்) இருக்கிறார்;
- பரிவர்த்தனையில் பயன்படுத்தப்படும் Nonce சரியாக உருவாக்கப்பட்டுள்ளது.
அத்தகைய சிக்கலான ஆதாரத்திற்கு, ஆசிரியர்கள் ஒரு கலவையைப் பயன்படுத்துகின்றனர்
இறுதியில் என்ன?
எங்கள் கருத்துப்படி, கணக்கு அடிப்படையிலான பிளாக்செயின்களுக்கு தனியுரிமையைக் கொண்டுவரும் Zether இன் பகுதியை இப்போது பயன்படுத்தலாம். ஆனால் இந்த நேரத்தில், தொழில்நுட்பத்தின் அநாமதேய பதிப்பு அதன் பயன்பாட்டிற்கு கடுமையான கட்டுப்பாடுகளை விதிக்கிறது, மேலும் அதன் செயலாக்கத்தில் அதன் சிக்கலானது. இருப்பினும், ஆசிரியர்கள் அதை சில மாதங்களுக்கு முன்புதான் வெளியிட்டார்கள் என்று தள்ளுபடி செய்யக்கூடாது, ஒருவேளை இன்று இருக்கும் பிரச்சினைகளுக்கு வேறு யாராவது தீர்வு காண்பார்கள். எல்லாவற்றிற்கும் மேலாக, விஞ்ஞானம் இப்படித்தான் செய்யப்படுகிறது.
ஆதாரம்: www.habr.com