எத்திரியம் பற்றி புரிந்துகொள்ள விரும்புகிறீர்களா?
இந்த வெள்ளை அறிக்கை எத்திரியம் தொடங்கப்படுவதற்கு முன்பு, 2014 இல் வெளியிடப்பட்டது. 10+ ஆண்டுகால மேம்பாடு, முக்கிய மேம்படுத்தல்கள் மற்றும் சுற்றுச்சூழல் வளர்ச்சிக்குப் பிறகு, அசல் வெள்ளை அறிக்கை இன்றைய எத்திரியம் என்ன என்பதை இனி பிரதிபலிக்காது.
பல ஆண்டுகள் பழமையானதாக இருந்தாலும், இது தொடர்ந்து ஒரு பயனுள்ள குறிப்பாகவும், எத்திரியம் மற்றும் அதன் தொலைநோக்குப் பார்வையின் துல்லியமான பிரதிநிதித்துவமாகவும் செயல்படுவதால், அசல் அறிக்கையை நாங்கள் கீழே பராமரிக்கிறோம்.
அடுத்த தலைமுறை திறன் ஒப்பந்தம் மற்றும் பரவலாக்கப்பட்ட செயலி தளம்
2009 இல் சடோஷி நகமோட்டோ பிட்காயினை உருவாக்கியது, பணம் மற்றும் நாணயத் துறையில் ஒரு தீவிரமான வளர்ச்சியாக அடிக்கடி போற்றப்படுகிறது. எந்தவொரு ஆதரவோ அல்லது "உள்ளார்ந்த மதிப்போ (opens in a new tab)" இல்லாத, அதே நேரத்தில் மையப்படுத்தப்பட்ட வழங்குநரோ அல்லது கட்டுப்படுத்தியோ இல்லாத ஒரு டிஜிட்டல் சொத்தின் முதல் உதாரணமாக இது விளங்குகிறது. இருப்பினும், பிட்காயின் பரிசோதனையின் மற்றொரு, விவாதத்திற்குரிய வகையில் மிகவும் முக்கியமான பகுதி, விநியோகிக்கப்பட்ட ஒருமித்த கருத்தின் கருவியாக செயல்படும் அதன் அடிப்படையான தொகுதிச்சங்கிலி தொழில்நுட்பமாகும். மேலும் பிட்காயினின் இந்த மற்றொரு அம்சத்தின் மீது கவனம் வேகமாகத் திரும்பத் தொடங்கியுள்ளது. தொகுதிச்சங்கிலி தொழில்நுட்பத்தின் பொதுவாகக் குறிப்பிடப்படும் மாற்றுப் பயன்பாடுகளில், தனிப்பயன் நாணயங்கள் மற்றும் நிதி ஆவணங்களைப் பிரதிநிதித்துவப்படுத்த தொகுதிச்சங்கிலி சார்ந்த டிஜிட்டல் சொத்துகளைப் பயன்படுத்துதல் ("வண்ண நாணயங்கள் (opens in a new tab)"), அடிப்படையான பௌதீக சாதனத்தின் உரிமை ("திறன் சொத்து (opens in a new tab)"), டொமைன் பெயர்கள் போன்ற பூஞ்சையற்ற சொத்துகள் ("Namecoin (opens in a new tab)"), அத்துடன் தன்னிச்சையான விதிகளைச் செயல்படுத்தும் ஒரு குறியீட்டின் மூலம் டிஜிட்டல் சொத்துகளை நேரடியாகக் கட்டுப்படுத்தும் மிகவும் சிக்கலான பயன்பாடுகள் ("திறன் ஒப்பந்தங்கள் (opens in a new tab)") அல்லது தொகுதிச்சங்கிலி அடிப்படையிலான "பரவலாக்கப்பட்ட தன்னாட்சி அமைப்புகள் (opens in a new tab)" (DAOs) ஆகியவை அடங்கும். எத்திரியம் வழங்க உத்தேசித்துள்ளது என்னவென்றால், உள்ளமைக்கப்பட்ட முழுமையான ட்யூரிங்-முழுமையான நிரலாக்க மொழியைக் கொண்ட ஒரு தொகுதிச்சங்கிலியை ஆகும்; தன்னிச்சையான நிலை மாற்றச் செயல்பாடுகளை குறியாக்கம் செய்யப் பயன்படும் "ஒப்பந்தங்களை" உருவாக்க இது அனுமதிக்கிறது, இதன் மூலம் பயனர்கள் மேலே விவரிக்கப்பட்ட எந்தவொரு அமைப்புகளையும், அத்துடன் நாம் இதுவரை கற்பனை செய்திராத பல அமைப்புகளையும், சில வரிக் குறியீடுகளில் தர்க்கத்தை எழுதுவதன் மூலம் எளிதாக உருவாக்க முடியும்.
பிட்காயின் மற்றும் தற்போதுள்ள கருத்துகளுக்கான அறிமுகம்
வரலாறு
பரவலாக்கப்பட்ட டிஜிட்டல் நாணயத்தின் கருத்தும், சொத்துப் பதிவேடுகள் போன்ற மாற்றுப் பயன்பாடுகளும் பல தசாப்தங்களாக இருந்து வருகின்றன. 1980கள் மற்றும் 1990களின் அநாமதேய இ-கேஷ் நெறிமுறைகள், பெரும்பாலும் Chaumian blinding எனப்படும் குறியாக்கவியல் அடிப்படையை நம்பியிருந்தன, அவை அதிக அளவிலான தனியுரிமையுடன் கூடிய நாணயத்தை வழங்கின, ஆனால் மையப்படுத்தப்பட்ட இடைத்தரகரை நம்பியிருந்ததால் இந்த நெறிமுறைகள் பெருமளவில் கவனத்தை ஈர்க்கத் தவறின. 1998 இல், வெய் டாய்-இன் b-money (opens in a new tab) கணக்கீட்டுப் புதிர்களைத் தீர்ப்பதன் மூலமும் பரவலாக்கப்பட்ட ஒருமித்த கருத்தின் மூலமும் பணத்தை உருவாக்கும் யோசனையை அறிமுகப்படுத்திய முதல் முன்மொழிவாக அமைந்தது, ஆனால் பரவலாக்கப்பட்ட ஒருமித்த கருத்தை உண்மையில் எவ்வாறு செயல்படுத்தலாம் என்பது குறித்த விவரங்கள் அந்த முன்மொழிவில் குறைவாகவே இருந்தன. 2005 இல், ஹால் ஃபின்னி "மறுபயன்பாட்டுப் பணிச் சான்றுகள் (opens in a new tab)" என்ற கருத்தை அறிமுகப்படுத்தினார், இது b-money-இன் யோசனைகளுடன் ஆடம் பேக்கின் கணக்கீட்டு ரீதியாக கடினமான Hashcash புதிர்களைப் பயன்படுத்தி ஒரு மறைக்குறியீட்டு நாணயத்திற்கான கருத்தை உருவாக்குகிறது, ஆனால் மீண்டும் நம்பகமான கணினிப் பின்னணியை நம்பியிருந்ததால் இது இலட்சியத்தை அடையத் தவறியது. 2009 இல், சடோஷி நகமோட்டோவால் முதல் முறையாக ஒரு பரவலாக்கப்பட்ட நாணயம் நடைமுறையில் செயல்படுத்தப்பட்டது, இது பொது விசை குறியாக்கவியல் மூலம் உரிமையை நிர்வகிப்பதற்கான நிறுவப்பட்ட அடிப்படைகளை, நாணயங்களை யார் வைத்திருக்கிறார்கள் என்பதைக் கண்காணிப்பதற்கான "பணிச் சான்று (PoW)" எனப்படும் ஒருமித்த கருத்து அல்காரிதத்துடன் இணைத்தது.
பணிச் சான்றுக்குப் பின்னணியில் உள்ள வழிமுறை இந்தத் துறையில் ஒரு திருப்புமுனையாக அமைந்தது, ஏனெனில் அது ஒரே நேரத்தில் இரண்டு சிக்கல்களைத் தீர்த்தது. முதலாவதாக, இது எளிமையான மற்றும் மிதமான பயனுள்ள ஒருமித்த கருத்து அல்காரிதத்தை வழங்கியது, இது பிணையத்தில் உள்ள கணுக்கள் பிட்காயின் பேரேட்டின் நிலைக்கான நியமனப் புதுப்பிப்புகளின் தொகுப்பை கூட்டாக ஏற்க அனுமதித்தது. இரண்டாவதாக, இது ஒருமித்த கருத்துச் செயல்பாட்டில் இலவச நுழைவை அனுமதிப்பதற்கான ஒரு வழிமுறையை வழங்கியது, ஒருமித்த கருத்தில் யார் செல்வாக்கு செலுத்த வேண்டும் என்பதைத் தீர்மானிக்கும் அரசியல் சிக்கலைத் தீர்த்தது, அதே நேரத்தில் சிபில் தாக்குதல்களையும் தடுத்தது. ஒரு குறிப்பிட்ட பட்டியலில் தனித்துவமான நிறுவனமாகப் பதிவு செய்யப்பட வேண்டும் என்பது போன்ற பங்கேற்பதற்கான முறையான தடையை, பொருளாதாரத் தடையுடன் மாற்றுவதன் மூலம் இது இதைச் செய்கிறது - ஒருமித்த கருத்து வாக்களிப்புச் செயல்பாட்டில் ஒரு கணுவின் எடை, அந்தக் கணு கொண்டு வரும் கணினித் திறனுக்கு நேர் விகிதாசாரமாக இருக்கும். அதன்பிறகு, உரிமைச் சான்று (PoS) எனப்படும் மாற்று அணுகுமுறை முன்மொழியப்பட்டது, இது ஒரு கணுவின் எடையை அதன் கணக்கீட்டு வளங்களுக்கு அல்லாமல் அதன் நாணய இருப்புகளுக்கு விகிதாசாரமாகக் கணக்கிடுகிறது; இரண்டு அணுகுமுறைகளின் ஒப்பீட்டுத் தகுதிகள் பற்றிய விவாதம் இந்தக் கட்டுரையின் வரம்பிற்கு அப்பாற்பட்டது, ஆனால் இரண்டு அணுகுமுறைகளும் ஒரு மறைக்குறியீட்டு நாணயத்தின் முதுகெலும்பாகச் செயல்படப் பயன்படுத்தப்படலாம் என்பதைக் கவனத்தில் கொள்ள வேண்டும்.
ஒரு நிலை மாற்ற அமைப்பாக பிட்காயின்
தொழில்நுட்பக் கண்ணோட்டத்தில், பிட்காயின் போன்ற மறைக்குறியீட்டு நாணயத்தின் பேரேட்டை ஒரு நிலை மாற்ற அமைப்பாகக் கருதலாம், இதில் தற்போதுள்ள அனைத்து பிட்காயின்களின் உரிமை நிலையைக் கொண்ட ஒரு "நிலை" மற்றும் ஒரு நிலையையும் பரிவர்த்தனையையும் எடுத்துக்கொண்டு அதன் விளைவாக ஒரு புதிய நிலையை வெளியிடும் "நிலை மாற்றச் செயல்பாடு" ஆகியவை உள்ளன. எடுத்துக்காட்டாக, ஒரு நிலையான வங்கி அமைப்பில், நிலை என்பது இருப்புநிலைக் குறிப்பு, பரிவர்த்தனை என்பது A இலிருந்து B க்கு $X ஐ மாற்றுவதற்கான கோரிக்கை, மற்றும் நிலை மாற்றச் செயல்பாடு A இன் கணக்கில் உள்ள மதிப்பை $X குறைத்து B இன் கணக்கில் உள்ள மதிப்பை $X அதிகரிக்கிறது. A இன் கணக்கில் ஆரம்பத்திலேயே $X க்கும் குறைவாக இருந்தால், நிலை மாற்றச் செயல்பாடு ஒரு பிழையை வழங்கும். எனவே, ஒருவர் இதை முறையாக இவ்வாறு வரையறுக்கலாம்:
APPLY(S,TX) -> S' or ERROR
மேலே வரையறுக்கப்பட்ட வங்கி அமைப்பில்:
APPLY({ Alice: $50, Bob: $50 },"send $20 from Alice to Bob") = { Alice: $30, Bob: $70 }
ஆனால்:
APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR
பிட்காயினில் உள்ள "நிலை" என்பது அச்சிடப்பட்டு இன்னும் செலவழிக்கப்படாத அனைத்து நாணயங்களின் (தொழில்நுட்ப ரீதியாக, "செலவழிக்கப்படாத பரிவர்த்தனை வெளியீடுகள்" அல்லது UTXO) தொகுப்பாகும், ஒவ்வொரு UTXO-வும் ஒரு மதிப்பையும் உரிமையாளரையும் (அடிப்படையில் ஒரு குறியாக்கவியல் பொது விசையான 20-பைட் முகவரியால் வரையறுக்கப்படுகிறதுfn1) கொண்டிருக்கும். ஒரு பரிவர்த்தனை ஒன்று அல்லது அதற்கு மேற்பட்ட உள்ளீடுகளைக் கொண்டுள்ளது, ஒவ்வொரு உள்ளீடும் ஏற்கனவே உள்ள UTXO-க்கான குறிப்பு மற்றும் உரிமையாளரின் முகவரியுடன் தொடர்புடைய தனிப்பட்ட திறவுகோலால் உருவாக்கப்பட்ட குறியாக்கவியல் கையொப்பத்தைக் கொண்டிருக்கும், மேலும் ஒன்று அல்லது அதற்கு மேற்பட்ட வெளியீடுகளைக் கொண்டிருக்கும், ஒவ்வொரு வெளியீடும் நிலையில் சேர்க்கப்பட வேண்டிய புதிய UTXO-வைக் கொண்டிருக்கும்.
நிலை மாற்றச் செயல்பாடு APPLY(S,TX) -> S' என்பதை தோராயமாகப் பின்வருமாறு வரையறுக்கலாம்:
TXஇல் உள்ள ஒவ்வொரு உள்ளீட்டிற்கும்:- குறிப்பிடப்பட்ட UTXO
Sஇல் இல்லை என்றால், பிழையை வழங்கவும். - வழங்கப்பட்ட கையொப்பம் UTXO-இன் உரிமையாளருடன் பொருந்தவில்லை என்றால், பிழையை வழங்கவும்.
- குறிப்பிடப்பட்ட UTXO
- அனைத்து உள்ளீட்டு UTXO-களின் மதிப்புகளின் கூட்டுத்தொகை அனைத்து வெளியீட்டு UTXO-களின் மதிப்புகளின் கூட்டுத்தொகையை விடக் குறைவாக இருந்தால், பிழையை வழங்கவும்.
- அனைத்து உள்ளீட்டு UTXO-களும் அகற்றப்பட்டு அனைத்து வெளியீட்டு UTXO-களும் சேர்க்கப்பட்ட நிலையில்
Sஐ வழங்கவும்.
முதல் படியின் முதல் பாதி, பரிவர்த்தனை அனுப்புநர்கள் இல்லாத நாணயங்களைச் செலவிடுவதைத் தடுக்கிறது, முதல் படியின் இரண்டாம் பாதி, பரிவர்த்தனை அனுப்புநர்கள் மற்றவர்களின் நாணயங்களைச் செலவிடுவதைத் தடுக்கிறது, மேலும் இரண்டாவது படி மதிப்பின் பாதுகாப்பைச் செயல்படுத்துகிறது. பணம் செலுத்துவதற்கு இதைப் பயன்படுத்த, நெறிமுறை பின்வருமாறு. ஆலிஸ் பாப்பிற்கு 11.7 BTC அனுப்ப விரும்புகிறார் என்று வைத்துக்கொள்வோம். முதலில், ஆலிஸ் தனக்குச் சொந்தமான, குறைந்தபட்சம் 11.7 BTC வரை இருக்கும் கிடைக்கக்கூடிய UTXO-களின் தொகுப்பைத் தேடுவார். யதார்த்தமாக, ஆலிஸால் சரியாக 11.7 BTC ஐப் பெற முடியாது; அவர் பெறக்கூடிய மிகச்சிறிய அளவு 6+4+2=12 என்று வைத்துக்கொள்வோம். பின்னர் அவர் அந்த மூன்று உள்ளீடுகள் மற்றும் இரண்டு வெளியீடுகளுடன் ஒரு பரிவர்த்தனையை உருவாக்குகிறார். முதல் வெளியீடு பாப்பின் முகவரியை உரிமையாளராகக் கொண்ட 11.7 BTC ஆக இருக்கும், மேலும் இரண்டாவது வெளியீடு மீதமுள்ள 0.3 BTC "சில்லறையாக" இருக்கும், அதன் உரிமையாளர் ஆலிஸாகவே இருப்பார்.
சுரங்கப்பணி
நம்பகமான மையப்படுத்தப்பட்ட சேவையை நாம் அணுக முடிந்தால், இந்த அமைப்பைச் செயல்படுத்துவது மிகவும் எளிதாக இருக்கும்; நிலையைத் தொடர்ந்து கண்காணிக்க மையப்படுத்தப்பட்ட சேவையகத்தின் வன்வட்டைப் பயன்படுத்தி, விவரிக்கப்பட்டுள்ளபடியே இதை எளிதாகக் குறியிடலாம். இருப்பினும், பிட்காயின் மூலம் நாம் ஒரு பரவலாக்கப்பட்ட நாணய அமைப்பை உருவாக்க முயற்சிக்கிறோம், எனவே பரிவர்த்தனைகளின் வரிசையை அனைவரும் ஏற்றுக்கொள்வதை உறுதிசெய்ய, நிலை பரிவர்த்தனை அமைப்பை ஒருமித்த கருத்து அமைப்புடன் இணைக்க வேண்டும். பிட்காயினின் பரவலாக்கப்பட்ட ஒருமித்த கருத்துச் செயல்பாட்டிற்கு, பிணையத்தில் உள்ள கணுக்கள் "தொகுதிகள்" எனப்படும் பரிவர்த்தனைகளின் தொகுப்புகளைத் தொடர்ந்து உருவாக்க முயற்சிக்க வேண்டும். பிணையம் தோராயமாக ஒவ்வொரு பத்து நிமிடங்களுக்கும் ஒரு தொகுதியை உருவாக்கும் வகையில் வடிவமைக்கப்பட்டுள்ளது, ஒவ்வொரு தொகுதியிலும் நேரமுத்திரை, ஒரு நான்ஸ், முந்தைய தொகுதிக்கான குறிப்பு (அதாவது, ஹாஷ்) மற்றும் முந்தைய தொகுதிக்குப் பிறகு நடந்த அனைத்து பரிவர்த்தனைகளின் பட்டியல் ஆகியவை இருக்கும். காலப்போக்கில், இது பிட்காயின் பேரேட்டின் சமீபத்திய நிலையைக் குறிக்கும் வகையில் தொடர்ந்து புதுப்பிக்கப்படும் ஒரு நிலையான, எப்போதும் வளரும் "தொகுதிச்சங்கிலியை" உருவாக்குகிறது.
ஒரு தொகுதி செல்லுபடியாகுமா என்பதைச் சரிபார்க்கும் அல்காரிதம், இந்த முன்னுதாரணத்தில் பின்வருமாறு வெளிப்படுத்தப்படுகிறது:
- தொகுதியால் குறிப்பிடப்பட்ட முந்தைய தொகுதி உள்ளதா மற்றும் செல்லுபடியாகுமா என்பதைச் சரிபார்க்கவும்.
- தொகுதியின் நேரமுத்திரை முந்தைய தொகுதியின் நேரமுத்திரையை விட அதிகமாக உள்ளதாfn2 மற்றும் எதிர்காலத்தில் 2 மணிநேரத்திற்கும் குறைவாக உள்ளதா என்பதைச் சரிபார்க்கவும்.
- தொகுதியில் உள்ள பணிச் சான்று (PoW) செல்லுபடியாகுமா என்பதைச் சரிபார்க்கவும்.
- முந்தைய தொகுதியின் முடிவில் உள்ள நிலை
S[0]ஆக இருக்கட்டும். nபரிவர்த்தனைகளைக் கொண்ட தொகுதியின் பரிவர்த்தனைப் பட்டியல்TXஎன்று வைத்துக்கொள்வோம்.0...n-1இல் உள்ள அனைத்துiக்கும்,S[i+1] = APPLY(S[i],TX[i])என அமைக்கவும். ஏதேனும் பயன்பாடு பிழையை வழங்கினால், வெளியேறி false என்பதை வழங்கவும்.- true என்பதை வழங்கி, இந்தத் தொகுதியின் முடிவில் உள்ள நிலையாக
S[n]ஐப் பதிவு செய்யவும்.
அடிப்படையில், தொகுதியில் உள்ள ஒவ்வொரு பரிவர்த்தனையும், பரிவர்த்தனை செயல்படுத்தப்படுவதற்கு முன்பு இருந்த நியமன நிலையிலிருந்து சில புதிய நிலைக்குச் செல்லுபடியாகும் நிலை மாற்றத்தை வழங்க வேண்டும். நிலை எந்த வகையிலும் தொகுதியில் குறியாக்கம் செய்யப்படவில்லை என்பதைக் கவனத்தில் கொள்ளவும்; இது சரிபார்க்கும் கணுவால் நினைவில் கொள்ளப்பட வேண்டிய ஒரு சுருக்கமாகும், மேலும் தொடக்க நிலையிலிருந்து தொடங்கி ஒவ்வொரு தொகுதியிலும் உள்ள ஒவ்வொரு பரிவர்த்தனையையும் வரிசையாகப் பயன்படுத்துவதன் மூலம் மட்டுமே எந்தவொரு தொகுதிக்கும் (பாதுகாப்பாக) கணக்கிட முடியும். கூடுதலாக, சுரங்கர் பரிவர்த்தனைகளைத் தொகுதியில் சேர்க்கும் வரிசை முக்கியமானது என்பதைக் கவனத்தில் கொள்ளவும்; ஒரு தொகுதியில் A மற்றும் B ஆகிய இரண்டு பரிவர்த்தனைகள் இருந்து, A உருவாக்கிய UTXO-ஐ B செலவழித்தால், A ஆனது B-க்கு முன் வந்தால் தொகுதி செல்லுபடியாகும், இல்லையெனில் செல்லுபடியாகாது.
மற்ற அமைப்புகளில் காணப்படாத, மேலே உள்ள பட்டியலில் உள்ள ஒரு செல்லுபடியாகும் நிபந்தனை "பணிச் சான்று (PoW)" தேவைப்படுவதாகும். துல்லியமான நிபந்தனை என்னவென்றால், 256-பிட் எண்ணாகக் கருதப்படும் ஒவ்வொரு தொகுதியின் இரட்டை-SHA256 ஹாஷ், மாறும் வகையில் சரிசெய்யப்பட்ட இலக்கை விடக் குறைவாக இருக்க வேண்டும், இது எழுதும் நேரத்தில் தோராயமாக 2187 ஆக உள்ளது. இதன் நோக்கம் தொகுதி உருவாக்கத்தைக் கணக்கீட்டு ரீதியாக "கடினமாக்குவது", இதன் மூலம் சிபில் தாக்குதல்காரர்கள் முழு தொகுதிச்சங்கிலியையும் தங்களுக்குச் சாதகமாக மாற்றுவதைத் தடுப்பதாகும். SHA256 முற்றிலும் கணிக்க முடியாத போலி-சீரற்ற செயல்பாடாக வடிவமைக்கப்பட்டுள்ளதால், செல்லுபடியாகும் தொகுதியை உருவாக்குவதற்கான ஒரே வழி, நான்ஸைத் திரும்பத் திரும்ப அதிகரித்து, புதிய ஹாஷ் பொருந்துகிறதா என்று பார்க்கும் சோதனை மற்றும் பிழை முறை மட்டுமே.
~2187 என்ற தற்போதைய இலக்கில், செல்லுபடியாகும் தொகுதி கண்டறியப்படுவதற்கு முன்பு பிணையம் சராசரியாக ~269 முயற்சிகளை மேற்கொள்ள வேண்டும்; பொதுவாக, ஒவ்வொரு 2016 தொகுதிகளுக்கும் பிணையத்தால் இலக்கு மறுசீரமைக்கப்படுகிறது, இதனால் சராசரியாக ஒவ்வொரு பத்து நிமிடங்களுக்கும் பிணையத்தில் உள்ள சில கணுக்களால் புதிய தொகுதி உருவாக்கப்படும். இந்தக் கணக்கீட்டுப் பணிக்காகச் சுரங்கர்களுக்கு ஈடுசெய்ய, ஒவ்வொரு தொகுதியின் சுரங்கரும் தங்களுக்குத் தாங்களே 25 BTC-ஐ வழங்கும் பரிவர்த்தனையைச் சேர்க்க உரிமை உண்டு. கூடுதலாக, ஏதேனும் பரிவர்த்தனை அதன் வெளியீடுகளை விட அதன் உள்ளீடுகளில் அதிக மொத்த மதிப்பைக் கொண்டிருந்தால், அந்த வித்தியாசமும் "பரிவர்த்தனை கட்டணமாக" சுரங்கருக்குச் செல்லும். தற்செயலாக, BTC வெளியிடப்படும் ஒரே வழிமுறையும் இதுதான்; தொடக்க நிலையில் எந்த நாணயங்களும் இல்லை.
சுரங்கப்பணியின் நோக்கத்தை நன்கு புரிந்துகொள்ள, தீங்கிழைக்கும் தாக்குதல்காரர் வரும் நிகழ்வில் என்ன நடக்கிறது என்பதை ஆராய்வோம். பிட்காயினின் அடிப்படை குறியாக்கவியல் பாதுகாப்பானது என்று அறியப்படுவதால், தாக்குதல்காரர் குறியாக்கவியலால் நேரடியாகப் பாதுகாக்கப்படாத பிட்காயின் அமைப்பின் ஒரு பகுதியை இலக்காகக் கொள்வார்: பரிவர்த்தனைகளின் வரிசை. தாக்குதல்காரரின் உத்தி எளிமையானது:
- சில தயாரிப்புகளுக்கு (முன்னுரிமையாக விரைவாக வழங்கப்படும் டிஜிட்டல் பொருள்) ஈடாக ஒரு வணிகருக்கு 100 BTC அனுப்பவும்
- தயாரிப்பு வழங்கப்படும் வரை காத்திருக்கவும்
- அதே 100 BTC-ஐ தனக்கே அனுப்பும் மற்றொரு பரிவர்த்தனையை உருவாக்கவும்
- தனக்குத்தானே செய்த பரிவர்த்தனைதான் முதலில் வந்தது என்று பிணையத்தை நம்பவைக்க முயற்சிக்கவும்.
படி (1) நடந்தவுடன், சில நிமிடங்களுக்குப் பிறகு சில சுரங்கர்கள் பரிவர்த்தனையை ஒரு தொகுதியில் சேர்ப்பார்கள், தொகுதி எண் 270000 என்று வைத்துக்கொள்வோம். சுமார் ஒரு மணி நேரத்திற்குப் பிறகு, அந்தத் தொகுதிக்குப் பிறகு சங்கிலியில் மேலும் ஐந்து தொகுதிகள் சேர்க்கப்பட்டிருக்கும், அந்தத் தொகுதிகள் ஒவ்வொன்றும் மறைமுகமாகப் பரிவர்த்தனையைக் குறிக்கும், இதனால் அது "உறுதிப்படுத்தப்படும்". இந்த கட்டத்தில், வணிகர் பணம் செலுத்துதலை இறுதியாக்கப்பட்டது என ஏற்றுக்கொண்டு தயாரிப்பை வழங்குவார்; இது ஒரு டிஜிட்டல் பொருள் என்று நாம் கருதுவதால், விநியோகம் உடனடியாக நடக்கும். இப்போது, தாக்குதல்காரர் 100 BTC-ஐ தனக்கே அனுப்பும் மற்றொரு பரிவர்த்தனையை உருவாக்குகிறார். தாக்குதல்காரர் அதை வெறுமனே நடைமுறைப் பயன்பாட்டிற்கு வெளியிட்டால், பரிவர்த்தனை செயலாக்கப்படாது; சுரங்கர்கள் APPLY(S,TX) ஐ இயக்க முயற்சிப்பார்கள், மேலும் TX இனி நிலையில் இல்லாத UTXO-ஐப் பயன்படுத்துவதைக் கவனிப்பார்கள். எனவே அதற்குப் பதிலாக, தாக்குதல்காரர் தொகுதிச்சங்கிலியின் ஒரு "கவையை" உருவாக்குகிறார், அதே தொகுதி 269999 ஐப் பெற்றோர் தொகுதியாகக் காட்டும் தொகுதி 270000 இன் மற்றொரு பதிப்பைச் சுரங்கம் செய்வதன் மூலம் தொடங்குகிறார், ஆனால் பழைய பரிவர்த்தனைக்குப் பதிலாகப் புதிய பரிவர்த்தனையுடன். தொகுதித் தரவு வேறுபட்டிருப்பதால், இதற்குப் பணிச் சான்றை மீண்டும் செய்ய வேண்டும். மேலும், தாக்குதல்காரரின் தொகுதி 270000 இன் புதிய பதிப்பு வேறுபட்ட ஹாஷைக் கொண்டுள்ளது, எனவே அசல் தொகுதிகள் 270001 முதல் 270005 வரை அதைக் "குறிக்காது"; இதனால், அசல் சங்கிலியும் தாக்குதல்காரரின் புதிய சங்கிலியும் முற்றிலும் தனித்தனியானவை. ஒரு கவையில் நீளமான தொகுதிச்சங்கிலியே உண்மையாக எடுத்துக்கொள்ளப்படும் என்பது விதி, எனவே முறையான சுரங்கர்கள் 270005 சங்கிலியில் வேலை செய்வார்கள், அதே நேரத்தில் தாக்குதல்காரர் மட்டும் 270000 சங்கிலியில் வேலை செய்வார். தாக்குதல்காரர் தனது தொகுதிச்சங்கிலியை நீளமானதாக மாற்ற, பிணையத்தின் மற்ற பகுதிகளை விட அதிகக் கணக்கீட்டுத் திறனை அவர் கொண்டிருக்க வேண்டும் (எனவே, "51% தாக்குதல்").
மெர்க்கல் மரங்கள்
இடது: ஒரு கிளையின் செல்லுபடியாகும் தன்மைக்கான சான்றை வழங்க, மெர்க்கல் மரத்தில் குறைந்த எண்ணிக்கையிலான கணுக்களை மட்டும் வழங்கினால் போதுமானது.
வலது: மெர்க்கல் மரத்தின் எந்தப் பகுதியையும் மாற்றுவதற்கான எந்தவொரு முயற்சியும் இறுதியில் சங்கிலியில் எங்காவது ஒரு முரண்பாட்டிற்கு வழிவகுக்கும்.
பிட்காயினின் ஒரு முக்கியமான அளவிடுதல் அம்சம் என்னவென்றால், தொகுதி பல-நிலை தரவுக் கட்டமைப்பில் சேமிக்கப்படுகிறது. ஒரு தொகுதியின் "ஹாஷ்" என்பது உண்மையில் தொகுதித் தலைப்பின் ஹாஷ் மட்டுமே, இது தோராயமாக 200-பைட் தரவுப் பகுதியாகும், இதில் நேரமுத்திரை, நான்ஸ், முந்தைய தொகுதி ஹாஷ் மற்றும் தொகுதியில் உள்ள அனைத்து பரிவர்த்தனைகளையும் சேமிக்கும் மெர்க்கல் மரம் எனப்படும் தரவுக் கட்டமைப்பின் ரூட் ஹாஷ் ஆகியவை உள்ளன. மெர்க்கல் மரம் என்பது ஒரு வகையான பைனரி மரமாகும், இது அடிப்படைத் தரவைக் கொண்ட மரத்தின் அடிப்பகுதியில் அதிக எண்ணிக்கையிலான இலைக் கணுக்களைக் கொண்ட கணுக்களின் தொகுப்பைக் கொண்டுள்ளது, ஒவ்வொரு கணுவும் அதன் இரண்டு குழந்தைகளின் ஹாஷாக இருக்கும் இடைநிலைக் கணுக்களின் தொகுப்பு, இறுதியாக மரத்தின் "மேல்" பகுதியைக் குறிக்கும் அதன் இரண்டு குழந்தைகளின் ஹாஷிலிருந்து உருவாக்கப்பட்ட ஒற்றை ரூட் கணு ஆகியவற்றைக் கொண்டுள்ளது. மெர்க்கல் மரத்தின் நோக்கம், ஒரு தொகுதியில் உள்ள தரவைச் சிறுகச் சிறுக வழங்க அனுமதிப்பதாகும்: ஒரு கணு ஒரு மூலத்திலிருந்து தொகுதியின் தலைப்பை மட்டுமே பதிவிறக்கம் செய்யலாம், மற்றொரு மூலத்திலிருந்து அவர்களுக்குத் தொடர்புடைய மரத்தின் சிறிய பகுதியைப் பதிவிறக்கம் செய்யலாம், ஆனாலும் எல்லாத் தரவும் சரியானது என்பதை உறுதிப்படுத்திக் கொள்ளலாம். இது வேலை செய்வதற்கான காரணம் ஹாஷ்கள் மேல்நோக்கிப் பரவுகின்றன: தீங்கிழைக்கும் பயனர் மெர்க்கல் மரத்தின் அடிப்பகுதியில் ஒரு போலிப் பரிவர்த்தனையை மாற்ற முயற்சித்தால், இந்த மாற்றம் மேலே உள்ள கணுவில் மாற்றத்தை ஏற்படுத்தும், பின்னர் அதற்கு மேலே உள்ள கணுவில் மாற்றத்தை ஏற்படுத்தும், இறுதியாக மரத்தின் ரூட்டை மாற்றி, தொகுதியின் ஹாஷை மாற்றும், இதனால் நெறிமுறை அதை முற்றிலும் வேறுபட்ட தொகுதியாகப் பதிவு செய்யும் (கிட்டத்தட்ட நிச்சயமாகச் செல்லுபடியாகாத பணிச் சான்றுடன்).
மெர்க்கல் மர நெறிமுறை நீண்ட கால நிலைத்தன்மைக்கு இன்றியமையாதது என்று வாதிடலாம். பிட்காயின் பிணையத்தில் உள்ள ஒரு "முழு முனையம்", ஒவ்வொரு தொகுதியின் முழுமையையும் சேமித்துச் செயலாக்குகிறது, ஏப்ரல் 2014 நிலவரப்படி பிட்காயின் பிணையத்தில் சுமார் 15 GB வட்டு இடத்தைப் பிடித்துள்ளது, மேலும் மாதத்திற்கு ஒரு ஜிகாபைட்டிற்கும் மேலாக வளர்ந்து வருகிறது. தற்போது, இது சில டெஸ்க்டாப் கணினிகளுக்குச் சாத்தியமானது, தொலைபேசிகளுக்கு அல்ல, எதிர்காலத்தில் வணிகங்கள் மற்றும் பொழுதுபோக்காளர்கள் மட்டுமே பங்கேற்க முடியும். "எளிமைப்படுத்தப்பட்ட கட்டணச் சரிபார்ப்பு" (SPV) எனப்படும் நெறிமுறை, "இலகு முனைகள்" எனப்படும் மற்றொரு வகை கணுக்கள் இருக்க அனுமதிக்கிறது, அவை தொகுதித் தலைப்புகளைப் பதிவிறக்கம் செய்து, தொகுதித் தலைப்புகளில் உள்ள பணிச் சான்றைச் சரிபார்த்து, பின்னர் தங்களுக்குத் தொடர்புடைய பரிவர்த்தனைகளுடன் தொடர்புடைய "கிளைகளை" மட்டுமே பதிவிறக்கம் செய்கின்றன. முழு தொகுதிச்சங்கிலியின் மிகச் சிறிய பகுதியை மட்டுமே பதிவிறக்கம் செய்யும் அதே வேளையில், எந்தவொரு பிட்காயின் பரிவர்த்தனையின் நிலை மற்றும் அவற்றின் தற்போதைய இருப்பு என்ன என்பதை வலுவான பாதுகாப்பு உத்தரவாதத்துடன் தீர்மானிக்க இது இலகு முனைகளை அனுமதிக்கிறது.
மாற்றுத் தொகுதிச்சங்கிலி பயன்பாடுகள்
அடிப்படைத் தொகுதிச்சங்கிலி யோசனையை எடுத்து மற்ற கருத்துகளுக்குப் பயன்படுத்துவதற்கான யோசனையும் நீண்ட வரலாற்றைக் கொண்டுள்ளது. 2005 இல், நிக் சபோ "உரிமையாளர் அதிகாரத்துடன் பாதுகாப்பான சொத்துத் தலைப்புகள் (opens in a new tab)" என்ற கருத்தைக் கொண்டு வந்தார், இது "பிரதி எடுக்கப்பட்ட தரவுத்தளத் தொழில்நுட்பத்தில் புதிய முன்னேற்றங்கள்" எந்த நிலத்தை யார் வைத்திருக்கிறார்கள் என்பதற்கான பதிவேட்டைச் சேமிப்பதற்கான தொகுதிச்சங்கிலி அடிப்படையிலான அமைப்பை எவ்வாறு அனுமதிக்கும் என்பதை விவரிக்கும் ஆவணமாகும், இது ஹோம்ஸ்டெடிங், பாதகமான உடைமை மற்றும் ஜார்ஜிய நில வரி போன்ற கருத்துகளை உள்ளடக்கிய விரிவான கட்டமைப்பை உருவாக்குகிறது. இருப்பினும், துரதிர்ஷ்டவசமாக அந்த நேரத்தில் பயனுள்ள பிரதி எடுக்கப்பட்ட தரவுத்தள அமைப்பு எதுவும் கிடைக்கவில்லை, எனவே நெறிமுறை நடைமுறையில் செயல்படுத்தப்படவில்லை. இருப்பினும், 2009 க்குப் பிறகு, பிட்காயினின் பரவலாக்கப்பட்ட ஒருமித்த கருத்து உருவாக்கப்பட்டவுடன் பல மாற்றுப் பயன்பாடுகள் வேகமாக வெளிவரத் தொடங்கின.
- Namecoin - 2010 இல் உருவாக்கப்பட்டது, Namecoin (opens in a new tab) ஒரு பரவலாக்கப்பட்ட பெயர் பதிவுத் தரவுத்தளமாகச் சிறப்பாக விவரிக்கப்படுகிறது. Tor, பிட்காயின் மற்றும் BitMessage போன்ற பரவலாக்கப்பட்ட நெறிமுறைகளில், கணக்குகளை அடையாளம் காண சில வழிகள் இருக்க வேண்டும், இதனால் மற்றவர்கள் அவர்களுடன் தொடர்பு கொள்ள முடியும், ஆனால் தற்போதுள்ள அனைத்து தீர்வுகளிலும்
1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWyபோன்ற போலி-சீரற்ற ஹாஷ் மட்டுமே அடையாளங்காட்டியாகக் கிடைக்கிறது. வெறுமனே, ஒருவர் "george" போன்ற பெயருடன் ஒரு கணக்கை வைத்திருக்க விரும்புவார். இருப்பினும், சிக்கல் என்னவென்றால், ஒரு நபர் "george" என்ற பெயரில் ஒரு கணக்கை உருவாக்க முடிந்தால், வேறொருவர் அதே செயல்முறையைப் பயன்படுத்தி "george" என்பதைத் தங்களுக்காகப் பதிவுசெய்து அவர்களைப் போல ஆள்மாறாட்டம் செய்யலாம். இதற்கு ஒரே தீர்வு முதலில் தாக்கல் செய்யும் முன்னுதாரணம் மட்டுமே, இதில் முதலில் பதிவு செய்பவர் வெற்றிபெறுவார் மற்றும் இரண்டாமவர் தோல்வியடைவார் - இது பிட்காயின் ஒருமித்த கருத்து நெறிமுறைக்குச் சரியாகப் பொருந்தக்கூடிய ஒரு சிக்கலாகும். Namecoin என்பது அத்தகைய யோசனையைப் பயன்படுத்தும் பெயர் பதிவு அமைப்பின் பழமையான மற்றும் மிகவும் வெற்றிகரமான செயலாக்கமாகும். - வண்ண நாணயங்கள் (Colored coins) - வண்ண நாணயங்களின் (opens in a new tab) நோக்கம், மக்கள் தங்கள் சொந்த டிஜிட்டல் நாணயங்களை உருவாக்க அனுமதிக்கும் நெறிமுறையாகச் செயல்படுவதாகும் - அல்லது, ஒரு யூனிட்டைக் கொண்ட நாணயத்தின் முக்கியமான அற்பமான விஷயத்தில், பிட்காயின் தொகுதிச்சங்கிலியில் டிஜிட்டல் வில்லைகளை உருவாக்க அனுமதிப்பதாகும். வண்ண நாணயங்கள் நெறிமுறையில், ஒரு குறிப்பிட்ட பிட்காயின் UTXO-க்கு பகிரங்கமாக ஒரு வண்ணத்தை ஒதுக்குவதன் மூலம் ஒருவர் புதிய நாணயத்தை "வெளியிடுகிறார்", மேலும் நெறிமுறையானது மற்ற UTXO-களின் வண்ணத்தை அவற்றை உருவாக்கிய பரிவர்த்தனை செலவழித்த உள்ளீடுகளின் வண்ணத்திற்குச் சமமாக இருக்கும்படி சுழல்நிலையாக வரையறுக்கிறது (கலப்பு-வண்ண உள்ளீடுகளின் விஷயத்தில் சில சிறப்பு விதிகள் பொருந்தும்). இது பயனர்கள் ஒரு குறிப்பிட்ட வண்ணத்தின் UTXO-ஐ மட்டுமே கொண்ட பணப்பைகளைப் பராமரிக்கவும், வழக்கமான பிட்காயின்களைப் போலவே அவற்றை அனுப்பவும் அனுமதிக்கிறது, அவர்கள் பெறும் எந்தவொரு UTXO-இன் வண்ணத்தையும் தீர்மானிக்கத் தொகுதிச்சங்கிலி வழியாகப் பின்னோக்கிச் செல்கிறது.
- மெட்டாகாயின்கள் (Metacoins) - மெட்டாகாயினுக்குப் பின்னணியில் உள்ள யோசனை என்னவென்றால், பிட்காயினின் மேல் வாழும் ஒரு நெறிமுறையைக் கொண்டிருப்பது, மெட்டாகாயின் பரிவர்த்தனைகளைச் சேமிக்கப் பிட்காயின் பரிவர்த்தனைகளைப் பயன்படுத்துவது, ஆனால் வேறுபட்ட நிலை மாற்றச் செயல்பாட்டைக் கொண்டிருப்பது,
APPLY'. செல்லுபடியாகாத மெட்டாகாயின் பரிவர்த்தனைகள் பிட்காயின் தொகுதிச்சங்கிலியில் தோன்றுவதை மெட்டாகாயின் நெறிமுறையால் தடுக்க முடியாது என்பதால்,APPLY'(S,TX)பிழையை வழங்கினால், நெறிமுறை இயல்புநிலையாகAPPLY'(S,TX) = Sக்கு மாறும் என்ற விதி சேர்க்கப்பட்டுள்ளது. இது ஒரு தன்னிச்சையான மறைக்குறியீட்டு நாணய நெறிமுறையை உருவாக்குவதற்கான எளிதான வழிமுறையை வழங்குகிறது, பிட்காயினுக்குள் செயல்படுத்த முடியாத மேம்பட்ட அம்சங்களுடன், ஆனால் சுரங்கப்பணி மற்றும் பிணையத்தின் சிக்கல்கள் ஏற்கனவே பிட்காயின் நெறிமுறையால் கையாளப்படுவதால் மிகக் குறைந்த மேம்பாட்டுச் செலவுடன். சில வகையான நிதி ஒப்பந்தங்கள், பெயர் பதிவு மற்றும் பரவலாக்கப்பட்ட பரிமாற்றம் ஆகியவற்றைச் செயல்படுத்த மெட்டாகாயின்கள் பயன்படுத்தப்பட்டுள்ளன.
எனவே, பொதுவாக, ஒருமித்த கருத்து நெறிமுறையை உருவாக்குவதற்கு இரண்டு அணுகுமுறைகள் உள்ளன: ஒரு சுயாதீன பிணையத்தை உருவாக்குவது மற்றும் பிட்காயினின் மேல் ஒரு நெறிமுறையை உருவாக்குவது. முந்தைய அணுகுமுறை, Namecoin போன்ற பயன்பாடுகளின் விஷயத்தில் நியாயமான வெற்றியைப் பெற்றாலும், செயல்படுத்துவது கடினம்; ஒவ்வொரு தனிப்பட்ட செயலாக்கமும் ஒரு சுயாதீன தொகுதிச்சங்கிலியைத் துவக்க வேண்டும், அத்துடன் தேவையான அனைத்து நிலை மாற்றம் மற்றும் பிணையக் குறியீட்டை உருவாக்கிச் சோதிக்க வேண்டும். கூடுதலாக, பரவலாக்கப்பட்ட ஒருமித்த கருத்துத் தொழில்நுட்பத்திற்கான பயன்பாடுகளின் தொகுப்பு ஒரு சக்தி விதிப் பரவலைப் பின்பற்றும் என்று நாங்கள் கணிக்கிறோம், அங்குப் பெரும்பாலான பயன்பாடுகள் அவற்றின் சொந்த தொகுதிச்சங்கிலியை நியாயப்படுத்த முடியாத அளவுக்குச் சிறியதாக இருக்கும், மேலும் பரவலாக்கப்பட்ட பயன்பாடுகளின் பெரிய வகுப்புகள் உள்ளன என்பதை நாங்கள் கவனிக்கிறோம், குறிப்பாகப் பரவலாக்கப்பட்ட தன்னாட்சி அமைப்புகள், அவை ஒன்றுக்கொன்று தொடர்பு கொள்ள வேண்டும்.
மறுபுறம், பிட்காயின் அடிப்படையிலான அணுகுமுறை, பிட்காயினின் எளிமைப்படுத்தப்பட்ட கட்டணச் சரிபார்ப்பு அம்சங்களைப் பெறவில்லை என்ற குறைபாட்டைக் கொண்டுள்ளது. SPV பிட்காயினுக்கு வேலை செய்கிறது, ஏனெனில் அது தொகுதிச்சங்கிலி ஆழத்தைச் செல்லுபடியாகும் தன்மைக்கான பதிலியாகப் பயன்படுத்தலாம்; ஒரு கட்டத்தில், ஒரு பரிவர்த்தனையின் மூதாதையர்கள் போதுமான அளவு பின்னோக்கிச் சென்றவுடன், அவை சட்டப்பூர்வமாக நிலையின் ஒரு பகுதியாக இருந்தன என்று சொல்வது பாதுகாப்பானது. மறுபுறம், தொகுதிச்சங்கிலி அடிப்படையிலான மெட்டா-நெறிமுறைகள், அவற்றின் சொந்த நெறிமுறைகளின் சூழலில் செல்லுபடியாகாத பரிவர்த்தனைகளைச் சேர்க்க வேண்டாம் என்று தொகுதிச்சங்கிலியைக் கட்டாயப்படுத்த முடியாது. எனவே, முழுமையாகப் பாதுகாப்பான SPV மெட்டா-நெறிமுறை செயலாக்கமானது, சில பரிவர்த்தனைகள் செல்லுபடியாகுமா இல்லையா என்பதைத் தீர்மானிக்கப் பிட்காயின் தொகுதிச்சங்கிலியின் தொடக்கம் வரை பின்னோக்கி ஸ்கேன் செய்ய வேண்டும். தற்போது, பிட்காயின் அடிப்படையிலான மெட்டா-நெறிமுறைகளின் அனைத்து "இலகு" செயலாக்கங்களும் தரவை வழங்க நம்பகமான சேவையகத்தை நம்பியுள்ளன, இது ஒரு மறைக்குறியீட்டு நாணயத்தின் முதன்மை நோக்கங்களில் ஒன்று நம்பிக்கையின் தேவையை அகற்றுவதாக இருக்கும்போது இது மிகவும் உகந்ததல்லாத முடிவாகும்.
ஸ்கிரிப்டிங்
எந்த நீட்டிப்புகளும் இல்லாவிட்டாலும், பிட்காயின் நெறிமுறை உண்மையில் "திறன் ஒப்பந்தங்கள்" என்ற கருத்தின் பலவீனமான பதிப்பை எளிதாக்குகிறது. பிட்காயினில் உள்ள UTXO-ஐ ஒரு பொது விசை மூலம் மட்டுமல்லாமல், எளிமையான ஸ்டாக் அடிப்படையிலான நிரலாக்க மொழியில் வெளிப்படுத்தப்பட்ட மிகவும் சிக்கலான ஸ்கிரிப்ட் மூலமாகவும் சொந்தமாகக் கொண்டிருக்கலாம். இந்த முன்னுதாரணத்தில், அந்த UTXO-ஐச் செலவழிக்கும் பரிவர்த்தனை ஸ்கிரிப்டைத் திருப்திப்படுத்தும் தரவை வழங்க வேண்டும். உண்மையில், அடிப்படைப் பொது விசை உரிமை வழிமுறை கூட ஒரு ஸ்கிரிப்ட் மூலம் செயல்படுத்தப்படுகிறது: ஸ்கிரிப்ட் ஒரு நீள்வட்ட வளைவு கையொப்பத்தை உள்ளீடாக எடுத்துக்கொள்கிறது, பரிவர்த்தனை மற்றும் UTXO-ஐ வைத்திருக்கும் முகவரிக்கு எதிராக அதைச் சரிபார்க்கிறது, மேலும் சரிபார்ப்பு வெற்றிகரமாக இருந்தால் 1 ஐயும் இல்லையெனில் 0 ஐயும் வழங்குகிறது. பல்வேறு கூடுதல் பயன்பாட்டு நிகழ்வுகளுக்கு மற்ற, மிகவும் சிக்கலான ஸ்கிரிப்டுகள் உள்ளன. எடுத்துக்காட்டாக, சரிபார்க்கக் கொடுக்கப்பட்ட மூன்று தனிப்பட்ட திறவுகோல்களில் இரண்டிலிருந்து கையொப்பங்கள் தேவைப்படும் ஒரு ஸ்கிரிப்டை ஒருவர் உருவாக்கலாம் ("பல்கையெழுத்து"), இது கார்ப்பரேட் கணக்குகள், பாதுகாப்பான சேமிப்புக் கணக்குகள் மற்றும் சில வணிக எஸ்க்ரோ சூழ்நிலைகளுக்குப் பயனுள்ள அமைப்பாகும். கணக்கீட்டுச் சிக்கல்களுக்கான தீர்வுகளுக்குப் பரிசுகளை வழங்கவும் ஸ்கிரிப்டுகள் பயன்படுத்தப்படலாம், மேலும் "இந்த மதிப்பின் Dogecoin பரிவர்த்தனையை நீங்கள் எனக்கு அனுப்பினீர்கள் என்பதற்கான SPV சான்றை உங்களால் வழங்க முடிந்தால் இந்த பிட்காயின் UTXO உங்களுடையது" என்று கூறும் ஸ்கிரிப்டைக் கூட ஒருவர் உருவாக்கலாம், இது அடிப்படையில் பரவலாக்கப்பட்ட குறுக்கு-மறைக்குறியீட்டு நாணயப் பரிமாற்றத்தை அனுமதிக்கிறது.
இருப்பினும், பிட்காயினில் செயல்படுத்தப்பட்டுள்ள ஸ்கிரிப்டிங் மொழி பல முக்கியமான வரம்புகளைக் கொண்டுள்ளது:
- டூரிங்-முழுமையின்மை (Lack of Turing-completeness) - அதாவது, பிட்காயின் ஸ்கிரிப்டிங் மொழி ஆதரிக்கும் கணக்கீட்டின் பெரிய துணைக்குழு இருந்தாலும், அது எல்லாவற்றையும் ஆதரிக்காது. விடுபட்ட முக்கிய வகை சுழல்கள் (loops) ஆகும். பரிவர்த்தனை சரிபார்ப்பின் போது முடிவற்ற சுழல்களைத் தவிர்ப்பதற்காக இது செய்யப்படுகிறது; கோட்பாட்டளவில் இது ஸ்கிரிப்ட் புரோகிராமர்களுக்குச் சமாளிக்கக்கூடிய ஒரு தடையாகும், ஏனெனில் எந்தவொரு சுழலையும் if அறிக்கையுடன் அடிப்படைக் குறியீட்டைப் பலமுறை திரும்பத் திரும்பச் செய்வதன் மூலம் உருவகப்படுத்த முடியும், ஆனால் இது மிகவும் இட-திறனற்ற ஸ்கிரிப்டுகளுக்கு வழிவகுக்கிறது. எடுத்துக்காட்டாக, மாற்று நீள்வட்ட வளைவு கையொப்ப அல்காரிதத்தைச் செயல்படுத்துவதற்கு 256 மீண்டும் மீண்டும் பெருக்கல் சுற்றுகள் தேவைப்படும், அவை அனைத்தும் தனித்தனியாகக் குறியீட்டில் சேர்க்கப்படும்.
- மதிப்பு-குருட்டுத்தன்மை (Value-blindness) - திரும்பப் பெறக்கூடிய தொகையின் மீது நுணுக்கமான கட்டுப்பாட்டை வழங்க UTXO ஸ்கிரிப்ட்டுக்கு எந்த வழியும் இல்லை. எடுத்துக்காட்டாக, தரவு வழங்கி ஒப்பந்தத்தின் ஒரு சக்திவாய்ந்த பயன்பாட்டு நிகழ்வு ஒரு ஹெட்ஜிங் ஒப்பந்தமாக இருக்கும், இதில் A மற்றும் B ஆகியோர் $1000 மதிப்புள்ள BTC-ஐ வைக்கிறார்கள், 30 நாட்களுக்குப் பிறகு ஸ்கிரிப்ட் $1000 மதிப்புள்ள BTC-ஐ A-க்கும் மீதமுள்ளதை B-க்கும் அனுப்புகிறது. இதற்கு 1 BTC-இன் மதிப்பை USD-இல் தீர்மானிக்க ஒரு தரவு வழங்கி தேவைப்படும், ஆனால் அப்போதும் கூட இது இப்போது கிடைக்கும் முழு மையப்படுத்தப்பட்ட தீர்வுகளை விட நம்பிக்கை மற்றும் உள்கட்டமைப்புத் தேவையின் அடிப்படையில் ஒரு பெரிய முன்னேற்றமாகும். இருப்பினும், UTXO-கள் அனைத்தும்-அல்லது-எதுவுமில்லை என்பதால், இதை அடைவதற்கான ஒரே வழி, மாறுபட்ட மதிப்புகளின் பல UTXO-களைக் கொண்டிருப்பதன் (எ.கா., 30 வரையிலான ஒவ்வொரு k-க்கும் 2k இன் ஒரு UTXO) மிகவும் திறனற்ற ஹேக் மூலம், எந்த UTXO-ஐ A-க்கும் எதை B-க்கும் அனுப்ப வேண்டும் என்பதைத் தரவு வழங்கி தேர்ந்தெடுக்கச் செய்வதாகும்.
- நிலையின்மை (Lack of state) - UTXO-ஐச் செலவழிக்கலாம் அல்லது செலவழிக்காமல் இருக்கலாம்; பல-கட்ட ஒப்பந்தங்கள் அல்லது அதற்கு அப்பால் வேறு எந்த உள் நிலையையும் வைத்திருக்கும் ஸ்கிரிப்டுகளுக்கு வாய்ப்பில்லை. இது பல-கட்ட விருப்ப ஒப்பந்தங்கள், பரவலாக்கப்பட்ட பரிமாற்றச் சலுகைகள் அல்லது இரண்டு-கட்ட குறியாக்கவியல் உறுதிப்பாடு நெறிமுறைகளை (பாதுகாப்பான கணக்கீட்டுப் பரிசுகளுக்குத் தேவையானது) உருவாக்குவதைக் கடினமாக்குகிறது. UTXO-ஐ எளிமையான, ஒரு முறை ஒப்பந்தங்களை உருவாக்க மட்டுமே பயன்படுத்த முடியும், பரவலாக்கப்பட்ட அமைப்புகள் போன்ற சிக்கலான "நிலைத்தன்மை கொண்ட" ஒப்பந்தங்களை அல்ல என்பதையும் இது குறிக்கிறது, மேலும் மெட்டா-நெறிமுறைகளைச் செயல்படுத்துவதைக் கடினமாக்குகிறது. மதிப்பு-குருட்டுத்தன்மையுடன் இணைந்த பைனரி நிலை, திரும்பப் பெறுதல் வரம்புகள் என்ற மற்றொரு முக்கியமான பயன்பாடு சாத்தியமற்றது என்பதையும் குறிக்கிறது.
- தொகுதிச்சங்கிலி-குருட்டுத்தன்மை (Blockchain-blindness) - நான்ஸ், நேரமுத்திரை மற்றும் முந்தைய தொகுதி ஹாஷ் போன்ற தொகுதிச்சங்கிலி தரவுகளுக்கு UTXO-கள் குருடானவை. இது ஸ்கிரிப்டிங் மொழிக்குச் சாத்தியமான மதிப்புமிக்கச் சீரற்றதன்மையின் மூலத்தை இழக்கச் செய்வதன் மூலம் சூதாட்டம் மற்றும் பல வகைகளில் பயன்பாடுகளைக் கடுமையாகக் கட்டுப்படுத்துகிறது.
எனவே, மறைக்குறியீட்டு நாணயத்தின் மேல் மேம்பட்ட பயன்பாடுகளை உருவாக்குவதற்கு மூன்று அணுகுமுறைகளை நாம் காண்கிறோம்: புதிய தொகுதிச்சங்கிலியை உருவாக்குவது, பிட்காயினின் மேல் ஸ்கிரிப்டிங்கைப் பயன்படுத்துவது மற்றும் பிட்காயினின் மேல் மெட்டா-நெறிமுறையை உருவாக்குவது. புதிய தொகுதிச்சங்கிலியை உருவாக்குவது அம்சத் தொகுப்பை உருவாக்குவதில் வரம்பற்ற சுதந்திரத்தை அனுமதிக்கிறது, ஆனால் மேம்பாட்டு நேரம், துவக்க முயற்சி மற்றும் பாதுகாப்பு ஆகியவற்றின் விலையில். ஸ்கிரிப்டிங்கைப் பயன்படுத்துவது செயல்படுத்தவும் தரப்படுத்தவும் எளிதானது, ஆனால் அதன் திறன்களில் மிகவும் வரம்புக்குட்பட்டது, மேலும் மெட்டா-நெறிமுறைகள் எளிதானவை என்றாலும், அளவிடுதலில் உள்ள குறைபாடுகளால் பாதிக்கப்படுகின்றன. எத்திரியம் மூலம், மேம்பாட்டின் எளிமையிலும், இன்னும் வலுவான இலகுரக கிளையண்ட் பண்புகளிலும் இன்னும் பெரிய லாபங்களை வழங்கும் மாற்று அமைப்பை உருவாக்க நாங்கள் உத்தேசித்துள்ளோம், அதே நேரத்தில் பயன்பாடுகள் பொருளாதாரச் சூழலையும் தொகுதிச்சங்கிலி பாதுகாப்பையும் பகிர்ந்து கொள்ள அனுமதிக்கிறோம்.
எத்திரியம்
பரவலாக்கப்பட்ட செயலிகளை (dapps) உருவாக்குவதற்கான ஒரு மாற்று நெறிமுறையை உருவாக்குவதே எத்திரியத்தின் நோக்கமாகும். விரைவான மேம்பாட்டு நேரம், சிறிய மற்றும் அரிதாகப் பயன்படுத்தப்படும் செயலிகளுக்கான பாதுகாப்பு, மற்றும் வெவ்வேறு செயலிகள் மிகவும் திறமையாக தொடர்பு கொள்ளும் திறன் ஆகியவை முக்கியமானதாக இருக்கும் சூழ்நிலைகளுக்கு அதிக முக்கியத்துவம் அளித்து, பரவலான பரவலாக்கப்பட்ட செயலிகளுக்கு மிகவும் பயனுள்ளதாக இருக்கும் என்று நாங்கள் நம்பும் வெவ்வேறு பரிமாற்றங்களை இது வழங்குகிறது. எத்திரியம் அடிப்படையில் ஒரு இறுதி சுருக்கமான அடிப்படை அடுக்கை உருவாக்குவதன் மூலம் இதைச் செய்கிறது: உள்ளமைக்கப்பட்ட ட்யூரிங்-முழுமையான (Turing-complete) நிரலாக்க மொழியைக் கொண்ட ஒரு தொகுதிச்சங்கிலி, இது எவரும் திறன் ஒப்பந்தங்கள் மற்றும் பரவலாக்கப்பட்ட செயலிகளை எழுத அனுமதிக்கிறது, அங்கு அவர்கள் உரிமை, பரிவர்த்தனை வடிவங்கள் மற்றும் நிலை மாற்றச் செயல்பாடுகளுக்கான தங்களது சொந்த தன்னிச்சையான விதிகளை உருவாக்க முடியும். Namecoin இன் அடிப்படை பதிப்பை இரண்டு வரி குறியீட்டில் எழுதலாம், மேலும் நாணயங்கள் மற்றும் நற்பெயர் அமைப்புகள் போன்ற பிற நெறிமுறைகளை இருபது வரிகளுக்குள் உருவாக்கலாம். திறன் ஒப்பந்தங்கள், அதாவது மதிப்பைக் கொண்டிருக்கும் மற்றும் குறிப்பிட்ட நிபந்தனைகள் பூர்த்தி செய்யப்பட்டால் மட்டுமே அதைத் திறக்கும் குறியாக்கவியல் "பெட்டிகள்", இந்த தளத்தின் மேல் கட்டமைக்கப்படலாம். ட்யூரிங்-முழுமை, மதிப்பு-விழிப்புணர்வு, தொகுதிச்சங்கிலி-விழிப்புணர்வு மற்றும் நிலை ஆகியவற்றின் கூடுதல் திறன்களால் பிட்காயின் ஸ்கிரிப்டிங் வழங்குவதை விட இது மிகவும் அதிக சக்தி வாய்ந்தது.
எத்திரியம் கணக்குகள்
எத்திரியத்தில், நிலையானது "கணக்குகள்" எனப்படும் பொருள்களால் ஆனது, ஒவ்வொரு கணக்கும் 20-பைட் முகவரியைக் கொண்டுள்ளது மற்றும் நிலை மாற்றங்கள் என்பவை கணக்குகளுக்கு இடையிலான மதிப்பு மற்றும் தகவல்களின் நேரடி பரிமாற்றங்களாகும். ஒரு எத்திரியம் கணக்கு நான்கு புலங்களைக் கொண்டுள்ளது:
- நான்ஸ் (nonce), ஒவ்வொரு பரிவர்த்தனையும் ஒரு முறை மட்டுமே செயல்படுத்தப்படுவதை உறுதிசெய்யப் பயன்படும் ஒரு கவுண்டர்
- கணக்கின் தற்போதைய ஈதர் இருப்பு
- கணக்கின் ஒப்பந்தக் குறியீடு, இருந்தால்
- கணக்கின் சேமிப்பகம் (இயல்புநிலையாக காலியாக இருக்கும்)
"ஈதர்" என்பது எத்திரியத்தின் முக்கிய உள் கிரிப்டோ-எரிபொருளாகும், மேலும் இது பரிவர்த்தனை கட்டணங்களைச் செலுத்தப் பயன்படுகிறது. பொதுவாக, இரண்டு வகையான கணக்குகள் உள்ளன: தனிப்பட்ட திறவுகோல்களால் கட்டுப்படுத்தப்படும் வெளிப்புறமாகச் சொந்தமான கணக்குகள் (externally owned accounts), மற்றும் அவற்றின் ஒப்பந்தக் குறியீட்டால் கட்டுப்படுத்தப்படும் ஒப்பந்தக் கணக்குகள். வெளிப்புறமாகச் சொந்தமான கணக்கில் எந்தக் குறியீடும் இல்லை, மேலும் ஒரு பரிவர்த்தனையை உருவாக்கி கையொப்பமிடுவதன் மூலம் வெளிப்புறமாகச் சொந்தமான கணக்கிலிருந்து செய்திகளை அனுப்பலாம்; ஒரு ஒப்பந்தக் கணக்கில், ஒவ்வொரு முறையும் ஒப்பந்தக் கணக்கு ஒரு செய்தியைப் பெறும்போது அதன் குறியீடு செயல்படுகிறது, இது உள் சேமிப்பகத்தைப் படிக்கவும் எழுதவும் மற்றும் பிற செய்திகளை அனுப்பவும் அல்லது ஒப்பந்தங்களை உருவாக்கவும் அனுமதிக்கிறது.
எத்திரியத்தில் உள்ள "ஒப்பந்தங்கள்" என்பவை "நிறைவேற்றப்பட வேண்டிய" அல்லது "இணங்க வேண்டிய" ஒன்றாகப் பார்க்கப்படக் கூடாது என்பதை நினைவில் கொள்க; மாறாக, அவை எத்திரியம் செயலாக்கச் சூழலுக்குள் வாழும் "தன்னாட்சி முகவர்கள்" (autonomous agents) போன்றவை, ஒரு செய்தி அல்லது பரிவர்த்தனையால் "தூண்டப்படும்போது" எப்போதும் ஒரு குறிப்பிட்ட குறியீட்டைச் செயல்படுத்துகின்றன, மேலும் நிலையான மாறிகளைக் கண்காணிக்க அவற்றின் சொந்த ஈதர் இருப்பு மற்றும் அவற்றின் சொந்த விசை/மதிப்பு (key/value) சேமிப்பகத்தின் மீது நேரடி கட்டுப்பாட்டைக் கொண்டுள்ளன.
செய்திகள் மற்றும் பரிவர்த்தனைகள்
வெளிப்புறமாகச் சொந்தமான கணக்கிலிருந்து அனுப்பப்பட வேண்டிய செய்தியைச் சேமிக்கும் கையொப்பமிடப்பட்ட தரவுத் தொகுப்பைக் குறிக்க எத்திரியத்தில் "பரிவர்த்தனை" என்ற சொல் பயன்படுத்தப்படுகிறது. பரிவர்த்தனைகள் பின்வருவனவற்றைக் கொண்டுள்ளன:
- செய்தியைப் பெறுபவர்
- அனுப்புநரை அடையாளம் காணும் கையொப்பம்
- அனுப்புநரிடமிருந்து பெறுநருக்கு மாற்ற வேண்டிய ஈதரின் அளவு
- ஒரு விருப்பத் தரவுப் புலம்
- பரிவர்த்தனை செயலாக்கம் எடுக்க அனுமதிக்கப்படும் அதிகபட்ச கணக்கீட்டு படிகளின் எண்ணிக்கையைக் குறிக்கும்
STARTGASமதிப்பு - ஒவ்வொரு கணக்கீட்டு படிக்கும் அனுப்புநர் செலுத்தும் கட்டணத்தைக் குறிக்கும்
GASPRICEமதிப்பு
முதல் மூன்றும் எந்தவொரு மறைக்குறியீட்டு நாணயத்திலும் எதிர்பார்க்கப்படும் நிலையான புலங்களாகும். தரவுப் புலம் இயல்புநிலையாக எந்தச் செயல்பாட்டையும் கொண்டிருக்கவில்லை, ஆனால் மெய்நிகர் இயந்திரம் ஒரு செயல்பாட்டுக் குறியீட்டைக் (opcode) கொண்டுள்ளது, இதைப் பயன்படுத்தி ஒரு ஒப்பந்தம் தரவை அணுக முடியும்; ஒரு எடுத்துக்காட்டு பயன்பாட்டு நிகழ்வாக, ஒரு ஒப்பந்தம் தொகுதிச்சங்கிலிசார் டொமைன் பதிவு சேவையாகச் செயல்பட்டால், அதற்கு அனுப்பப்படும் தரவை இரண்டு "புலங்களைக்" கொண்டிருப்பதாக அது விளக்க விரும்பலாம், முதல் புலம் பதிவு செய்ய வேண்டிய டொமைன் மற்றும் இரண்டாவது புலம் அதைப் பதிவு செய்ய வேண்டிய IP முகவரி. ஒப்பந்தம் செய்தித் தரவிலிருந்து இந்த மதிப்புகளைப் படித்து அவற்றைச் சேமிப்பகத்தில் சரியான முறையில் வைக்கும்.
எத்திரியத்தின் சேவை மறுப்பு எதிர்ப்பு (anti-denial of service) மாதிரிக்கு STARTGAS மற்றும் GASPRICE புலங்கள் முக்கியமானவை. குறியீட்டில் தற்செயலான அல்லது விரோதமான முடிவற்ற சுழல்கள் (infinite loops) அல்லது பிற கணக்கீட்டு விரயங்களைத் தடுக்க, ஒவ்வொரு பரிவர்த்தனையும் குறியீடு செயலாக்கத்தின் எத்தனை கணக்கீட்டு படிகளைப் பயன்படுத்தலாம் என்பதற்கு ஒரு வரம்பை அமைக்க வேண்டும். கணக்கீட்டின் அடிப்படை அலகு "எரிவாயு" (gas) ஆகும்; வழக்கமாக, ஒரு கணக்கீட்டு படிக்கு 1 எரிவாயு செலவாகும், ஆனால் சில செயல்பாடுகளுக்கு அதிக அளவு எரிவாயு செலவாகும், ஏனெனில் அவை கணக்கீட்டு ரீதியாக அதிக செலவு பிடிக்கும், அல்லது நிலையின் ஒரு பகுதியாகச் சேமிக்கப்பட வேண்டிய தரவின் அளவை அதிகரிக்கின்றன. பரிவர்த்தனை தரவில் உள்ள ஒவ்வொரு பைட்டிற்கும் 5 எரிவாயு கட்டணமும் உள்ளது. கணக்கீடு, அலைவரிசை மற்றும் சேமிப்பகம் உட்பட அவர்கள் பயன்படுத்தும் ஒவ்வொரு வளத்திற்கும் விகிதாசாரமாக பணம் செலுத்த தாக்குபவரைக் கோருவதே கட்டண முறையின் நோக்கமாகும்; எனவே, பிணையம் இந்த வளங்களில் ஏதேனும் ஒன்றை அதிக அளவில் பயன்படுத்த வழிவகுக்கும் எந்தவொரு பரிவர்த்தனையும், அந்த அதிகரிப்புக்கு தோராயமாக விகிதாசாரமான எரிவாயு கட்டணத்தைக் கொண்டிருக்க வேண்டும்.
செய்திகள்
ஒப்பந்தங்கள் மற்ற ஒப்பந்தங்களுக்கு "செய்திகளை" அனுப்பும் திறனைக் கொண்டுள்ளன. செய்திகள் என்பவை மெய்நிகர் பொருள்களாகும், அவை ஒருபோதும் வரிசைப்படுத்தப்படுவதில்லை (serialized) மற்றும் எத்திரியம் செயலாக்கச் சூழலில் மட்டுமே உள்ளன. ஒரு செய்தி பின்வருவனவற்றைக் கொண்டுள்ளது:
- செய்தியை அனுப்புபவர் (மறைமுகமானது)
- செய்தியைப் பெறுபவர்
- செய்தியுடன் மாற்ற வேண்டிய ஈதரின் அளவு
- ஒரு விருப்பத் தரவுப் புலம்
- ஒரு
STARTGASமதிப்பு
அடிப்படையில், ஒரு செய்தி என்பது ஒரு பரிவர்த்தனை போன்றது, ஆனால் இது ஒரு வெளிப்புற நடிகரால் (external actor) அல்லாமல் ஒரு ஒப்பந்தத்தால் உருவாக்கப்படுகிறது. தற்போது குறியீட்டைச் செயல்படுத்தும் ஒரு ஒப்பந்தம் CALL செயல்பாட்டுக் குறியீட்டைச் செயல்படுத்தும்போது ஒரு செய்தி உருவாக்கப்படுகிறது, இது ஒரு செய்தியை உருவாக்கி செயல்படுத்துகிறது. ஒரு பரிவர்த்தனையைப் போலவே, ஒரு செய்தியும் பெறுநரின் கணக்கு அதன் குறியீட்டை இயக்க வழிவகுக்கிறது. எனவே, வெளிப்புற நடிகர்கள் எவ்வாறு மற்ற ஒப்பந்தங்களுடன் உறவுகளைக் கொண்டிருக்க முடியுமோ அதே வழியில் ஒப்பந்தங்களும் மற்ற ஒப்பந்தங்களுடன் உறவுகளைக் கொண்டிருக்க முடியும்.
ஒரு பரிவர்த்தனை அல்லது ஒப்பந்தத்தால் ஒதுக்கப்பட்ட எரிவாயு அனுமதித்தொகை, அந்தப் பரிவர்த்தனை மற்றும் அனைத்து துணைச் செயலாக்கங்களாலும் பயன்படுத்தப்படும் மொத்த எரிவாயுவிற்கும் பொருந்தும் என்பதை நினைவில் கொள்க. எடுத்துக்காட்டாக, வெளிப்புற நடிகர் A என்பவர் B க்கு 1000 எரிவாயுவுடன் ஒரு பரிவர்த்தனையை அனுப்பினால், மற்றும் B ஆனது C க்கு ஒரு செய்தியை அனுப்புவதற்கு முன்பு 600 எரிவாயுவைப் பயன்படுத்தினால், மற்றும் C இன் உள் செயலாக்கம் திரும்புவதற்கு முன்பு 300 எரிவாயுவைப் பயன்படுத்தினால், B ஆனது எரிவாயு தீர்ந்துபோவதற்கு முன்பு மேலும் 100 எரிவாயுவைச் செலவிடலாம்.
எத்திரியம் நிலை மாற்றச் செயல்பாடு
எத்திரியம் நிலை மாற்றச் செயல்பாடு, APPLY(S,TX) -> S' பின்வருமாறு வரையறுக்கப்படலாம்:
- பரிவர்த்தனை சரியாக உள்ளதா (அதாவது, சரியான எண்ணிக்கையிலான மதிப்புகளைக் கொண்டுள்ளது), கையொப்பம் செல்லுபடியாகுமா, மற்றும் நான்ஸ் அனுப்புநரின் கணக்கில் உள்ள நான்ஸுடன் பொருந்துகிறதா என்பதைச் சரிபார்க்கவும். இல்லையெனில், பிழையை வழங்கவும்.
- பரிவர்த்தனை கட்டணத்தை
STARTGAS * GASPRICEஎனக் கணக்கிட்டு, கையொப்பத்திலிருந்து அனுப்பும் முகவரியைத் தீர்மானிக்கவும். அனுப்புநரின் கணக்கு இருப்பிலிருந்து கட்டணத்தைக் கழித்து, அனுப்புநரின் நான்ஸை அதிகரிக்கவும். செலவழிக்கப் போதுமான இருப்பு இல்லையெனில், பிழையை வழங்கவும். GAS = STARTGASஐத் துவக்கி, பரிவர்த்தனையில் உள்ள பைட்டுகளுக்குச் பணம் செலுத்த ஒரு பைட்டுக்கு ஒரு குறிப்பிட்ட அளவு எரிவாயுவை எடுக்கவும்.- பரிவர்த்தனை மதிப்பை அனுப்புநரின் கணக்கிலிருந்து பெறும் கணக்கிற்கு மாற்றவும். பெறும் கணக்கு இன்னும் இல்லை என்றால், அதை உருவாக்கவும். பெறும் கணக்கு ஒரு ஒப்பந்தமாக இருந்தால், ஒப்பந்தத்தின் குறியீட்டை முழுமையாகவோ அல்லது செயலாக்கத்திற்கு எரிவாயு தீர்ந்துபோகும் வரையோ இயக்கவும்.
- அனுப்புநரிடம் போதுமான பணம் இல்லாததால் மதிப்பு பரிமாற்றம் தோல்வியுற்றால், அல்லது குறியீடு செயலாக்கத்திற்கு எரிவாயு தீர்ந்துவிட்டால், கட்டணம் செலுத்துவதைத் தவிர மற்ற அனைத்து நிலை மாற்றங்களையும் மீளமைத்து, கட்டணத்தைச் சுரங்கரின் கணக்கில் சேர்க்கவும்.
- இல்லையெனில், மீதமுள்ள அனைத்து எரிவாயுவிற்கான கட்டணத்தையும் அனுப்புநருக்குத் திருப்பி அளித்து, பயன்படுத்தப்பட்ட எரிவாயுவிற்காகச் செலுத்தப்பட்ட கட்டணத்தைச் சுரங்கருக்கு அனுப்பவும்.
எடுத்துக்காட்டாக, ஒப்பந்தத்தின் குறியீடு பின்வருமாறு இருப்பதாகக் கொள்வோம்:
if !self.storage[calldataload(0)]:
self.storage[calldataload(0)] = calldataload(32)
உண்மையில் ஒப்பந்தக் குறியீடு குறைந்த-நிலை EVM குறியீட்டில் எழுதப்பட்டுள்ளது என்பதை நினைவில் கொள்க; தெளிவுக்காக இந்த எடுத்துக்காட்டு எங்களின் உயர்-நிலை மொழிகளில் ஒன்றான Serpent இல் எழுதப்பட்டுள்ளது, மேலும் இதை EVM குறியீட்டிற்குத் தொகுக்கலாம் (compile). ஒப்பந்தத்தின் சேமிப்பகம் காலியாகத் தொடங்குகிறது என்றும், 10 ஈதர் மதிப்பு, 2000 எரிவாயு, 0.001 ஈதர் எரிவாயு விலை (gasprice), மற்றும் 64 பைட்டுகள் தரவுடன் ஒரு பரிவர்த்தனை அனுப்பப்படுகிறது என்றும் கொள்வோம், இதில் 0-31 பைட்டுகள் 2 என்ற எண்ணையும், 32-63 பைட்டுகள் CHARLIEfn3 என்ற சரத்தையும் (string) குறிக்கின்றன. இந்த நிலையில் நிலை மாற்றச் செயல்பாட்டிற்கான செயல்முறை பின்வருமாறு:
- பரிவர்த்தனை செல்லுபடியாகும் மற்றும் சரியாக உள்ளதா என்பதைச் சரிபார்க்கவும்.
- பரிவர்த்தனை அனுப்புநரிடம் குறைந்தது 2000 * 0.001 = 2 ஈதர் உள்ளதா என்பதைச் சரிபார்க்கவும். இருந்தால், அனுப்புநரின் கணக்கிலிருந்து 2 ஈதரைக் கழிக்கவும்.
- எரிவாயு = 2000 எனத் துவக்கவும்; பரிவர்த்தனை 170 பைட்டுகள் நீளம் மற்றும் பைட்-கட்டணம் 5 எனக் கருதி, 850 ஐக் கழிக்கவும், இதனால் 1150 எரிவாயு மீதமிருக்கும்.
- அனுப்புநரின் கணக்கிலிருந்து மேலும் 10 ஈதரைக் கழித்து, அதை ஒப்பந்தத்தின் கணக்கில் சேர்க்கவும்.
- குறியீட்டை இயக்கவும். இந்த நிலையில், இது எளிமையானது:
2குறியீட்டில் (index) ஒப்பந்தத்தின் சேமிப்பகம் பயன்படுத்தப்படுகிறதா என்பதை இது சரிபார்க்கிறது, இல்லை என்பதைக் கவனிக்கிறது, எனவே இது2குறியீட்டில் உள்ள சேமிப்பகத்தைCHARLIEமதிப்பிற்கு அமைக்கிறது. இதற்கு 187 எரிவாயு தேவைப்படுகிறது என்று கொள்வோம், எனவே மீதமுள்ள எரிவாயு அளவு 1150 - 187 = 963 ஆகும். - 963 * 0.001 = 0.963 ஈதரை மீண்டும் அனுப்புநரின் கணக்கில் சேர்த்து, அதன் விளைவாக வரும் நிலையை வழங்கவும்.
பரிவர்த்தனையெப் பெறும் முனையில் எந்த ஒப்பந்தமும் இல்லை என்றால், மொத்த பரிவர்த்தனை கட்டணம் வழங்கப்பட்ட GASPRICE ஐ பரிவர்த்தனையின் நீளத்தால் (பைட்டுகளில்) பெருக்கினால் கிடைக்கும் மதிப்பிற்குச் சமமாக இருக்கும், மேலும் பரிவர்த்தனையுடன் அனுப்பப்பட்ட தரவு பொருத்தமற்றதாக இருக்கும்.
மீளமைப்புகளின் (reverts) அடிப்படையில் செய்திகள் பரிவர்த்தனைகளுக்குச் சமமாகச் செயல்படுகின்றன என்பதை நினைவில் கொள்க: ஒரு செய்தி செயலாக்கத்திற்கு எரிவாயு தீர்ந்துவிட்டால், அந்தச் செய்தியின் செயலாக்கம் மற்றும் அந்தச் செயலாக்கத்தால் தூண்டப்பட்ட பிற அனைத்துச் செயலாக்கங்களும் மீளமைக்கப்படும், ஆனால் மூலச் செயலாக்கங்கள் (parent executions) மீளமைக்கப்பட வேண்டியதில்லை. இதன் பொருள் ஒரு ஒப்பந்தம் மற்றொரு ஒப்பந்தத்தை அழைப்பது "பாதுகாப்பானது", அதாவது A ஆனது B ஐ G எரிவாயுவுடன் அழைத்தால், A இன் செயலாக்கம் அதிகபட்சமாக G எரிவாயுவை மட்டுமே இழக்கும் என்பது உறுதி. இறுதியாக, ஒரு ஒப்பந்தத்தை உருவாக்கும் CREATE என்ற செயல்பாட்டுக் குறியீடு உள்ளது என்பதை நினைவில் கொள்க; இதன் செயலாக்க இயக்கவியல் பொதுவாக CALL ஐப் போலவே இருக்கும், ஆனால் செயலாக்கத்தின் வெளியீடு புதிதாக உருவாக்கப்பட்ட ஒப்பந்தத்தின் குறியீட்டைத் தீர்மானிக்கிறது என்பது மட்டுமே விதிவிலக்கு.
குறியீடு செயலாக்கம்
எத்திரியம் ஒப்பந்தங்களில் உள்ள குறியீடு குறைந்த-நிலை, அடுக்கு-அடிப்படையிலான (stack-based) பைட் குறியீடு மொழியில் எழுதப்பட்டுள்ளது, இது "எத்திரியம் மெய்நிகர் இயந்திரக் குறியீடு" (Ethereum virtual machine code) அல்லது "EVM குறியீடு" என்று குறிப்பிடப்படுகிறது. குறியீடு தொடர்ச்சியான பைட்டுகளைக் கொண்டுள்ளது, இதில் ஒவ்வொரு பைட்டும் ஒரு செயல்பாட்டைக் குறிக்கிறது. பொதுவாக, குறியீடு செயலாக்கம் என்பது ஒரு முடிவற்ற சுழலாகும், இது தற்போதைய நிரல் கவுண்டரில் (இது பூஜ்ஜியத்தில் தொடங்குகிறது) செயல்பாட்டை மீண்டும் மீண்டும் மேற்கொள்வதையும், பின்னர் குறியீட்டின் முடிவை அடையும் வரை அல்லது பிழை அல்லது STOP அல்லது RETURN அறிவுறுத்தல் கண்டறியப்படும் வரை நிரல் கவுண்டரை ஒன்றால் அதிகரிப்பதையும் கொண்டுள்ளது. தரவைச் சேமிக்கச் செயல்பாடுகளுக்கு மூன்று வகையான இடங்களுக்கான அணுகல் உள்ளது:
- அடுக்கு (stack), மதிப்புகளை உள்ளே தள்ளவும் (push) வெளியே எடுக்கவும் (pop) கூடிய கடைசியாக-உள்ளே-முதலில்-வெளியே (last-in-first-out) கொள்கலன்
- நினைவகம் (Memory), முடிவில்லாமல் விரிவாக்கக்கூடிய பைட் வரிசை
- ஒப்பந்தத்தின் நீண்ட கால சேமிப்பகம் (storage), ஒரு விசை/மதிப்பு சேமிப்பகம். கணக்கீடு முடிந்ததும் மீட்டமைக்கப்படும் அடுக்கு மற்றும் நினைவகத்தைப் போலல்லாமல், சேமிப்பகம் நீண்ட காலத்திற்கு நிலைத்திருக்கும்.
குறியீடு உள்வரும் செய்தியின் மதிப்பு, அனுப்புநர் மற்றும் தரவு, அத்துடன் தொகுதித் தலைப்புத் தரவு ஆகியவற்றையும் அணுக முடியும், மேலும் குறியீடு தரவின் பைட் வரிசையை வெளியீடாகவும் வழங்க முடியும்.
EVM குறியீட்டின் முறையான செயலாக்க மாதிரி ஆச்சரியப்படும் விதமாக எளிமையானது. எத்திரியம் மெய்நிகர் இயந்திரம் இயங்கும்போது, அதன் முழு கணக்கீட்டு நிலையை (block_state, transaction, message, code, memory, stack, pc, gas) என்ற டியூப்பிள் (tuple) மூலம் வரையறுக்கலாம், இதில் block_state என்பது அனைத்து கணக்குகளையும் கொண்ட உலகளாவிய நிலையாகும், மேலும் இது இருப்புகள் மற்றும் சேமிப்பகத்தை உள்ளடக்கியது. ஒவ்வொரு சுற்று செயலாக்கத்தின் தொடக்கத்திலும், code இன் pc ஆவது பைட்டை எடுப்பதன் மூலம் தற்போதைய அறிவுறுத்தல் கண்டறியப்படுகிறது (அல்லது pc >= len(code) ஆக இருந்தால் 0), மேலும் ஒவ்வொரு அறிவுறுத்தலும் டியூப்பிளை எவ்வாறு பாதிக்கிறது என்பதன் அடிப்படையில் அதன் சொந்த வரையறையைக் கொண்டுள்ளது. எடுத்துக்காட்டாக, ADD அடுக்கிலிருந்து இரண்டு உருப்படிகளை வெளியே எடுத்து அவற்றின் கூட்டுத்தொகையை உள்ளே தள்ளுகிறது, gas ஐ 1 ஆல் குறைக்கிறது மற்றும் pc ஐ 1 ஆல் அதிகரிக்கிறது, மேலும் SSTORE அடுக்கிலிருந்து முதல் இரண்டு உருப்படிகளை வெளியே எடுத்து, முதல் உருப்படியால் குறிப்பிடப்பட்ட குறியீட்டில் ஒப்பந்தத்தின் சேமிப்பகத்தில் இரண்டாவது உருப்படியைச் செருகுகிறது. ஜஸ்ட்-இன்-டைம் (just-in-time) தொகுப்பு மூலம் எத்திரியம் மெய்நிகர் இயந்திரச் செயலாக்கத்தை மேம்படுத்த பல வழிகள் இருந்தாலும், எத்திரியத்தின் அடிப்படைச் செயலாக்கத்தைச் சில நூறு வரி குறியீடுகளில் செய்துவிடலாம்.
தொகுதிச்சங்கிலி மற்றும் சுரங்கப்பணி
எத்திரியம் தொகுதிச்சங்கிலி பல வழிகளில் பிட்காயின் தொகுதிச்சங்கிலியைப் போன்றது, இருப்பினும் இது சில வேறுபாடுகளைக் கொண்டுள்ளது. தொகுதிச்சங்கிலி கட்டமைப்பைப் பொறுத்தவரை எத்திரியம் மற்றும் பிட்காயின் இடையேயான முக்கிய வேறுபாடு என்னவென்றால், பிட்காயினைப் போலல்லாமல், எத்திரியம் தொகுதிகள் பரிவர்த்தனை பட்டியல் மற்றும் மிகச் சமீபத்திய நிலை ஆகிய இரண்டின் நகலையும் கொண்டுள்ளன. அது தவிர, தொகுதி எண் மற்றும் கடினத்தன்மை ஆகிய வேறு இரண்டு மதிப்புகளும் தொகுதியில் சேமிக்கப்படுகின்றன. எத்திரியத்தில் அடிப்படைத் தொகுதி சரிபார்ப்பு அல்காரிதம் பின்வருமாறு:
- குறிப்பிடப்பட்ட முந்தைய தொகுதி உள்ளதா மற்றும் செல்லுபடியாகுமா என்பதைச் சரிபார்க்கவும்.
- தொகுதியின் நேரமுத்திரை (timestamp) குறிப்பிடப்பட்ட முந்தைய தொகுதியை விட அதிகமாகவும், எதிர்காலத்தில் 15 நிமிடங்களுக்குக் குறைவாகவும் உள்ளதா என்பதைச் சரிபார்க்கவும்.
- தொகுதி எண், கடினத்தன்மை, பரிவர்த்தனை வேர் (transaction root), அங்கிள் வேர் (uncle root) மற்றும் எரிவாயு வரம்பு (பல்வேறு குறைந்த-நிலை எத்திரியம்-குறிப்பிட்ட கருத்துகள்) ஆகியவை செல்லுபடியாகுமா என்பதைச் சரிபார்க்கவும்.
- தொகுதியில் உள்ள பணிச் சான்று (PoW) செல்லுபடியாகுமா என்பதைச் சரிபார்க்கவும்.
- முந்தைய தொகுதியின் முடிவில் உள்ள நிலை
S[0]ஆக இருக்கட்டும். nபரிவர்த்தனைகளுடன், தொகுதியின் பரிவர்த்தனை பட்டியல்TXஆக இருக்கட்டும்.0...n-1இல் உள்ள அனைத்துiக்கும்,S[i+1] = APPLY(S[i],TX[i])ஐ அமைக்கவும். ஏதேனும் பயன்பாடுகள் பிழையை வழங்கினால், அல்லது இதுவரையிலான தொகுதியில் பயன்படுத்தப்பட்ட மொத்த எரிவாயுGASLIMITஐத் தாண்டினால், பிழையை வழங்கவும்.S_FINALஎன்பதுS[n]ஆக இருக்கட்டும், ஆனால் சுரங்கருக்குச் செலுத்தப்பட்ட தொகுதி வெகுமதியைச் சேர்க்கவும்.S_FINALநிலையின் மெர்க்கல் மர வேர் (Merkle tree root) தொகுதித் தலைப்பில் வழங்கப்பட்ட இறுதி நிலை வேருக்குச் சமமாக உள்ளதா என்பதைச் சரிபார்க்கவும். சமமாக இருந்தால், தொகுதி செல்லுபடியாகும்; இல்லையெனில், அது செல்லுபடியாகாது.
ஒவ்வொரு தொகுதியுடனும் முழு நிலையையும் சேமிக்க வேண்டியிருப்பதால், இந்த அணுகுமுறை முதல் பார்வையில் மிகவும் திறமையற்றதாகத் தோன்றலாம், ஆனால் உண்மையில் இதன் திறன் பிட்காயினுடன் ஒப்பிடக்கூடியதாக இருக்க வேண்டும். இதற்குக் காரணம், நிலை மர அமைப்பில் சேமிக்கப்படுகிறது, மேலும் ஒவ்வொரு தொகுதிக்குப் பிறகும் மரத்தின் ஒரு சிறிய பகுதியை மட்டுமே மாற்ற வேண்டும். எனவே, பொதுவாக, இரண்டு அடுத்தடுத்த தொகுதிகளுக்கு இடையில் மரத்தின் பெரும்பகுதி ஒரே மாதிரியாக இருக்க வேண்டும், எனவே தரவை ஒரு முறை சேமித்து, சுட்டிகளைப் (pointers) பயன்படுத்தி (அதாவது, துணை மரங்களின் ஹாஷ்கள்) இரண்டு முறை குறிப்பிடலாம். இதைச் சாதிக்க "பாட்ரிசியா மரம்" (Patricia tree) எனப்படும் ஒரு சிறப்பு வகையான மரம் பயன்படுத்தப்படுகிறது, இதில் மெர்க்கல் மரக் கருத்தாக்கத்தில் ஒரு மாற்றமும் அடங்கும், இது முனைகளை (nodes) மாற்றுவதற்கு மட்டுமின்றி, திறமையாகச் செருகவும் நீக்கவும் அனுமதிக்கிறது. கூடுதலாக, அனைத்து நிலைத் தகவல்களும் கடைசி தொகுதியின் ஒரு பகுதியாக இருப்பதால், முழு தொகுதிச்சங்கிலி வரலாற்றையும் சேமிக்க வேண்டிய அவசியமில்லை - இந்த உத்தியைப் பிட்காயினுக்குப் பயன்படுத்த முடிந்தால், அது 5-20 மடங்கு இடத்தைச் சேமிக்கும் எனக் கணக்கிடலாம்.
இயற்பியல் வன்பொருளைப் பொறுத்தவரை, ஒப்பந்தக் குறியீடு "எங்கே" செயல்படுத்தப்படுகிறது என்பது பொதுவாகக் கேட்கப்படும் கேள்வியாகும். இதற்கு ஒரு எளிய பதில் உள்ளது: ஒப்பந்தக் குறியீட்டைச் செயல்படுத்தும் செயல்முறை நிலை மாற்றச் செயல்பாட்டின் வரையறையின் ஒரு பகுதியாகும், இது தொகுதி சரிபார்ப்பு அல்காரிதத்தின் ஒரு பகுதியாகும், எனவே ஒரு பரிவர்த்தனை B தொகுதியில் சேர்க்கப்பட்டால், அந்தப் பரிவர்த்தனையால் உருவாக்கப்பட்ட குறியீடு செயலாக்கம், B தொகுதியைப் பதிவிறக்கம் செய்து சரிபார்க்கும் அனைத்து கணுக்களாலும் (nodes), இப்போதும் எதிர்காலத்திலும் செயல்படுத்தப்படும்.
பயன்பாடுகள்
பொதுவாக, எத்திரியத்தின் மீது மூன்று வகையான பயன்பாடுகள் உள்ளன. முதல் வகை நிதிப் பயன்பாடுகள், பயனர்கள் தங்கள் பணத்தைப் பயன்படுத்தி நிர்வகிப்பதற்கும் ஒப்பந்தங்களில் நுழைவதற்கும் மிகவும் சக்திவாய்ந்த வழிகளை வழங்குகின்றன. இதில் துணை நாணயங்கள், நிதி வழித்தோன்றல்கள், ஹெட்ஜிங் ஒப்பந்தங்கள், சேமிப்பு பணப்பைகள், உயில்கள் மற்றும் இறுதியில் சில வகையான முழு அளவிலான வேலைவாய்ப்பு ஒப்பந்தங்களும் அடங்கும். இரண்டாவது வகை அரை-நிதிப் பயன்பாடுகள், இதில் பணம் சம்பந்தப்பட்டிருந்தாலும், செய்யப்படும் செயலில் பணமில்லாத பக்கமும் அதிக அளவில் உள்ளது; கணக்கீட்டு சிக்கல்களுக்கான தீர்வுகளுக்கு சுய-செயலாக்க வெகுமதிகள் இதற்கு ஒரு சிறந்த எடுத்துக்காட்டு. இறுதியாக, ஆன்லைன் வாக்குப்பதிவு மற்றும் பரவலாக்கப்பட்ட ஆளுகை போன்ற பயன்பாடுகள் உள்ளன, அவை முற்றிலும் நிதி சார்ந்தவை அல்ல.
வில்லை அமைப்புகள்
தொகுதிச்சங்கிலிசார் வில்லை அமைப்புகள் USD அல்லது தங்கம் போன்ற சொத்துக்களைக் குறிக்கும் துணை நாணயங்கள் முதல் நிறுவனப் பங்குகள், திறன் சொத்துக்களைக் குறிக்கும் தனிப்பட்ட வில்லைகள், பாதுகாப்பான போலியாக்க முடியாத கூப்பன்கள் மற்றும் வழக்கமான மதிப்புடன் எந்தத் தொடர்பும் இல்லாத, ஊக்கமளிப்பதற்கான புள்ளி அமைப்புகளாகப் பயன்படுத்தப்படும் வில்லை அமைப்புகள் வரை பல பயன்பாடுகளைக் கொண்டுள்ளன. எத்திரியத்தில் வில்லை அமைப்புகளைச் செயல்படுத்துவது ஆச்சரியப்படும் வகையில் எளிதானது. புரிந்துகொள்ள வேண்டிய முக்கிய அம்சம் என்னவென்றால், ஒரு நாணயம் அல்லது வில்லை அமைப்பு என்பது அடிப்படையில் ஒரு செயல்பாட்டைக் கொண்ட தரவுத்தளமாகும்: A இலிருந்து X அலகுகளைக் கழித்து B க்கு X அலகுகளைக் கொடுப்பது, இதற்கான நிபந்தனைகள் (i) பரிவர்த்தனைக்கு முன் A இடம் குறைந்தது X அலகுகள் இருந்திருக்க வேண்டும் மற்றும் (2) பரிவர்த்தனை A ஆல் அங்கீகரிக்கப்பட வேண்டும். ஒரு வில்லை அமைப்பைச் செயல்படுத்த, இந்த தர்க்கத்தை ஒரு ஒப்பந்தத்தில் செயல்படுத்துவது மட்டுமே தேவை.
Serpent-இல் ஒரு வில்லை அமைப்பைச் செயல்படுத்துவதற்கான அடிப்படை குறியீடு பின்வருமாறு:
def send(to, value):
if self.storage[msg.sender] >= value:
self.storage[msg.sender] = self.storage[msg.sender] - value
self.storage[to] = self.storage[to] + value
இது அடிப்படையில் இந்த ஆவணத்தில் மேலே விவரிக்கப்பட்டுள்ள "வங்கி அமைப்பு" நிலை மாற்றச் செயல்பாட்டின் நேரடிச் செயலாக்கமாகும். நாணய அலகுகளை முதலில் விநியோகிப்பதற்கான ஆரம்பப் படி மற்றும் வேறு சில விளிம்பு நிலைகளை வழங்குவதற்குச் சில கூடுதல் குறியீட்டு வரிகளைச் சேர்க்க வேண்டும், மேலும் ஒரு முகவரியின் இருப்பை மற்ற ஒப்பந்தங்கள் வினவ அனுமதிக்கும் ஒரு செயல்பாடு சேர்க்கப்படுவது சிறந்தது. ஆனால் அவ்வளவுதான். கோட்பாட்டளவில், துணை நாணயங்களாகச் செயல்படும் எத்திரியம் அடிப்படையிலான வில்லை அமைப்புகள், சங்கிலிசார் பிட்காயின் அடிப்படையிலான மெட்டா-நாணயங்களில் இல்லாத மற்றொரு முக்கியமான அம்சத்தை உள்ளடக்கியிருக்கலாம்: பரிவர்த்தனை கட்டணங்களை நேரடியாக அந்த நாணயத்திலேயே செலுத்தும் திறன். இது எவ்வாறு செயல்படுத்தப்படும் என்றால், ஒப்பந்தம் ஒரு ஈதர் இருப்பைப் பராமரிக்கும், அதைக் கொண்டு அனுப்புநருக்குக் கட்டணம் செலுத்தப் பயன்படுத்தப்பட்ட ஈதரைத் திருப்பித் தரும், மேலும் அது கட்டணமாக எடுக்கும் உள் நாணய அலகுகளைச் சேகரித்து, தொடர்ந்து நடைபெறும் ஏலத்தில் அவற்றை மறுவிற்பனை செய்வதன் மூலம் இந்த இருப்பை நிரப்பும். எனவே பயனர்கள் தங்கள் கணக்குகளை ஈதர் மூலம் "செயல்படுத்த" வேண்டும், ஆனால் ஈதர் அங்கு வந்தவுடன் அது மீண்டும் பயன்படுத்தக்கூடியதாக இருக்கும், ஏனெனில் ஒப்பந்தம் ஒவ்வொரு முறையும் அதைத் திருப்பித் தரும்.
நிதி வழித்தோன்றல்கள் மற்றும் நிலையான-மதிப்பு நாணயங்கள்
நிதி வழித்தோன்றல்கள் ஒரு "திறன் ஒப்பந்தம்" என்பதன் மிகவும் பொதுவான பயன்பாடாகும், மேலும் குறியீட்டில் செயல்படுத்த எளிமையானவற்றில் ஒன்றாகும். நிதி ஒப்பந்தங்களைச் செயல்படுத்துவதில் உள்ள முக்கிய சவால் என்னவென்றால், அவற்றில் பெரும்பாலானவை வெளிப்புற விலை டிக்கரைக் குறிப்பிட வேண்டும்; எடுத்துக்காட்டாக, அமெரிக்க டாலரைப் பொறுத்து ஈதரின் (அல்லது மற்றொரு மறைக்குறியீட்டு நாணயம்) ஏற்ற இறக்கத்திற்கு எதிராக ஹெட்ஜ் செய்யும் ஒரு திறன் ஒப்பந்தம் மிகவும் விரும்பத்தக்க பயன்பாடாகும், ஆனால் இதைச் செய்வதற்கு ETH/USD மதிப்பு என்ன என்பதை ஒப்பந்தம் அறிந்திருக்க வேண்டும். இதைச் செய்வதற்கான எளிமையான வழி, ஒரு குறிப்பிட்ட தரப்பினரால் (எ.கா., NASDAQ) பராமரிக்கப்படும் "தரவு ஊட்ட" ஒப்பந்தத்தின் மூலமாகும், அந்தத் தரப்பினர் தேவைக்கேற்ப ஒப்பந்தத்தைப் புதுப்பிக்கும் திறனைக் கொண்டிருக்கும் வகையில் வடிவமைக்கப்பட்டுள்ளது, மேலும் பிற ஒப்பந்தங்கள் அந்த ஒப்பந்தத்திற்கு ஒரு செய்தியை அனுப்பி விலையை வழங்கும் பதிலைப் பெற அனுமதிக்கும் இடைமுகத்தை வழங்குகிறது.
அந்த முக்கியமான கூறு கொடுக்கப்பட்டால், ஹெட்ஜிங் ஒப்பந்தம் பின்வருமாறு இருக்கும்:
- தரப்பு A 1000 ஈதரை உள்ளிடும் வரை காத்திருக்கவும்.
- தரப்பு B 1000 ஈதரை உள்ளிடும் வரை காத்திருக்கவும்.
- தரவு ஊட்ட ஒப்பந்தத்தை வினவுவதன் மூலம் கணக்கிடப்பட்ட 1000 ஈதரின் USD மதிப்பை சேமிப்பகத்தில் பதிவு செய்யவும், இது $x என்று வைத்துக்கொள்வோம்.
- 30 நாட்களுக்குப் பிறகு, A க்கு $x மதிப்புள்ள ஈதரையும் (புதிய விலையைப் பெற தரவு ஊட்ட ஒப்பந்தத்தை மீண்டும் வினவுவதன் மூலம் கணக்கிடப்படுகிறது) மீதமுள்ளதை B க்கும் அனுப்ப ஒப்பந்தத்தை "மீண்டும் செயல்படுத்த" A அல்லது B ஐ அனுமதிக்கவும்.
இத்தகைய ஒப்பந்தம் கிரிப்டோ-வர்த்தகத்தில் குறிப்பிடத்தக்க ஆற்றலைக் கொண்டிருக்கும். மறைக்குறியீட்டு நாணயம் பற்றி மேற்கோள் காட்டப்படும் முக்கிய பிரச்சனைகளில் ஒன்று அது ஏற்ற இறக்கமானது என்பதே; பல பயனர்கள் மற்றும் வணிகர்கள் குறியாக்கவியல் சொத்துக்களைக் கையாள்வதன் பாதுகாப்பையும் வசதியையும் விரும்பினாலும், ஒரே நாளில் தங்கள் நிதியின் மதிப்பில் 23% ஐ இழக்கும் வாய்ப்பை எதிர்கொள்ள அவர்கள் விரும்பாமல் இருக்கலாம். இதுவரை, மிகவும் பொதுவாக முன்மொழியப்பட்ட தீர்வு வழங்குநரால் ஆதரிக்கப்படும் சொத்துக்கள் ஆகும்; இதன் யோசனை என்னவென்றால், ஒரு வழங்குநர் ஒரு துணை நாணயத்தை உருவாக்குகிறார், அதில் அலகுகளை வெளியிடவும் திரும்பப் பெறவும் அவர்களுக்கு உரிமை உள்ளது, மேலும் ஒரு குறிப்பிட்ட அடிப்படைச் சொத்தின் (எ.கா., தங்கம், USD) ஒரு அலகை அவர்களுக்கு (ஆஃப்லைனில்) வழங்கும் எவருக்கும் நாணயத்தின் ஒரு அலகை வழங்குகிறார்கள். கிரிப்டோ-சொத்தின் ஒரு அலகைத் திருப்பி அனுப்பும் எவருக்கும் அடிப்படைச் சொத்தின் ஒரு அலகை வழங்குவதாக வழங்குநர் உறுதியளிக்கிறார். வழங்குநரை நம்ப முடியும் என்ற நிபந்தனையின் பேரில், எந்தவொரு குறியாக்கவியல் அல்லாத சொத்தையும் குறியாக்கவியல் சொத்தாக "உயர்த்த" இந்த வழிமுறை அனுமதிக்கிறது.
இருப்பினும், நடைமுறையில், வழங்குநர்கள் எப்போதும் நம்பகமானவர்கள் அல்ல, மேலும் சில சந்தர்ப்பங்களில் இத்தகைய சேவைகள் இருப்பதற்கு வங்கி உள்கட்டமைப்பு மிகவும் பலவீனமாகவோ அல்லது மிகவும் விரோதமாகவோ உள்ளது. நிதி வழித்தோன்றல்கள் ஒரு மாற்றீட்டை வழங்குகின்றன. இங்கே, ஒரு சொத்தை ஆதரிக்க நிதியை வழங்கும் ஒற்றை வழங்குநருக்குப் பதிலாக, ஒரு குறியாக்கவியல் குறிப்புச் சொத்தின் (எ.கா., ETH) விலை உயரும் என்று பந்தயம் கட்டும் ஊக வணிகர்களின் பரவலாக்கப்பட்ட சந்தை அந்தப் பாத்திரத்தை வகிக்கிறது. வழங்குநர்களைப் போலல்லாமல், ஊக வணிகர்கள் தங்கள் பேரம் பேசும் பக்கத்தில் தவறத் தங்களுக்கு எந்த விருப்பமும் இல்லை, ஏனெனில் ஹெட்ஜிங் ஒப்பந்தம் அவர்களின் நிதியை எஸ்க்ரோவில் வைத்திருக்கிறது. இந்த அணுகுமுறை முழுமையாகப் பரவலாக்கப்படவில்லை என்பதை நினைவில் கொள்க, ஏனெனில் விலை டிக்கரை வழங்க நம்பகமான ஆதாரம் இன்னும் தேவைப்படுகிறது, இருப்பினும் உள்கட்டமைப்புத் தேவைகளைக் குறைப்பதிலும் (ஒரு வழங்குநராக இருப்பதைப் போலல்லாமல், விலை ஊட்டத்தை வழங்குவதற்கு உரிமங்கள் எதுவும் தேவையில்லை மற்றும் இது பேச்சு சுதந்திரமாக வகைப்படுத்தப்படலாம்) மற்றும் மோசடிக்கான சாத்தியக்கூறுகளைக் குறைப்பதிலும் இது ஒரு பெரிய முன்னேற்றமாகும்.
அடையாளம் மற்றும் நற்பெயர் அமைப்புகள்
அனைத்திலும் ஆரம்பகால மாற்று மறைக்குறியீட்டு நாணயமான, Namecoin (opens in a new tab), பெயர் பதிவு அமைப்பை வழங்க பிட்காயின் போன்ற தொகுதிச்சங்கிலியைப் பயன்படுத்த முயன்றது, அங்கு பயனர்கள் தங்கள் பெயர்களை மற்ற தரவுகளுடன் பொதுத் தரவுத்தளத்தில் பதிவு செய்யலாம். மேற்கோள் காட்டப்பட்ட முக்கிய பயன்பாட்டு நிகழ்வு ஒரு DNS (opens in a new tab) அமைப்பிற்கானது, இது "bitcoin.org" (அல்லது, Namecoin-இன் விஷயத்தில், "bitcoin.bit") போன்ற டொமைன் பெயர்களை IP முகவரிக்கு வரைபடமாக்குகிறது. பிற பயன்பாட்டு நிகழ்வுகளில் மின்னஞ்சல் அங்கீகாரம் மற்றும் சாத்தியமான மேம்பட்ட நற்பெயர் அமைப்புகள் அடங்கும். எத்திரியத்தில் Namecoin போன்ற பெயர் பதிவு அமைப்பை வழங்குவதற்கான அடிப்படை ஒப்பந்தம் இங்கே:
def register(name, value):
if !self.storage[name]:
self.storage[name] = value
ஒப்பந்தம் மிகவும் எளிமையானது; இது எத்திரியம் பிணையத்திற்குள் உள்ள ஒரு தரவுத்தளமாகும், இதில் சேர்க்கலாம், ஆனால் மாற்றவோ அல்லது அகற்றவோ முடியாது. யார் வேண்டுமானாலும் சில மதிப்புடன் ஒரு பெயரைப் பதிவு செய்யலாம், அந்தப் பதிவு பின்னர் என்றென்றும் நிலைத்திருக்கும். மிகவும் அதிநவீன பெயர் பதிவு ஒப்பந்தம் மற்ற ஒப்பந்தங்களை வினவ அனுமதிக்கும் "செயல்பாட்டு விதியையும்", அத்துடன் ஒரு பெயரின் "உரிமையாளர்" (அதாவது, முதல் பதிவாளர்) தரவை மாற்ற அல்லது உரிமையை மாற்றுவதற்கான வழிமுறையையும் கொண்டிருக்கும். இதன் மேல் நற்பெயர் மற்றும் நம்பிக்கை-வலை செயல்பாட்டைக் கூட சேர்க்கலாம்.
பரவலாக்கப்பட்ட கோப்பு சேமிப்பகம்
கடந்த சில ஆண்டுகளில், பல பிரபலமான ஆன்லைன் கோப்பு சேமிப்பக ஸ்டார்ட்அப்கள் உருவாகியுள்ளன, அவற்றில் மிகவும் முக்கியமானது டிராப்பாக்ஸ், பயனர்கள் தங்கள் வன்வட்டின் காப்புப்பிரதியைப் பதிவேற்ற அனுமதிக்கவும், மாதாந்திர கட்டணத்திற்குப் பதிலாகச் சேவையானது காப்புப்பிரதியைச் சேமித்து பயனரை அணுக அனுமதிக்கவும் முற்படுகிறது. இருப்பினும், இந்த கட்டத்தில் கோப்பு சேமிப்பக சந்தை சில நேரங்களில் ஒப்பீட்டளவில் திறனற்றதாக உள்ளது; தற்போதுள்ள பல்வேறு தீர்வுகளை மேலோட்டமாகப் பார்த்தால், குறிப்பாக இலவச ஒதுக்கீடுகளோ அல்லது நிறுவன அளவிலான தள்ளுபடிகளோ கிடைக்காத "அன்கேனி வேலி" 20-200 GB அளவில், பிரதான கோப்பு சேமிப்பகச் செலவுகளுக்கான மாதாந்திர விலைகள் ஒரே மாதத்தில் முழு வன்வட்டின் விலையை விட அதிகமாகச் செலுத்தும் வகையில் உள்ளன. எத்திரியம் ஒப்பந்தங்கள் பரவலாக்கப்பட்ட கோப்பு சேமிப்பக சுற்றுச்சூழல் அமைப்பை உருவாக்க அனுமதிக்கலாம், அங்கு தனிப்பட்ட பயனர்கள் தங்கள் சொந்த வன்வட்டுகளை வாடகைக்கு விடுவதன் மூலம் சிறிய அளவிலான பணத்தை சம்பாதிக்கலாம் மற்றும் பயன்படுத்தப்படாத இடத்தைக் கோப்பு சேமிப்பகத்தின் செலவுகளை மேலும் குறைக்கப் பயன்படுத்தலாம்.
இத்தகைய சாதனத்தின் முக்கிய அடிப்படைப் பகுதி நாம் "பரவலாக்கப்பட்ட டிராப்பாக்ஸ் ஒப்பந்தம்" என்று அழைப்பதாக இருக்கும். இந்த ஒப்பந்தம் பின்வருமாறு செயல்படுகிறது. முதலில், ஒருவர் விரும்பிய தரவைத் தொகுதிகளாகப் பிரிக்கிறார், தனியுரிமைக்காக ஒவ்வொரு தொகுதியையும் குறியாக்கம் செய்கிறார், மேலும் அதிலிருந்து ஒரு மெர்க்கல் மரத்தை உருவாக்குகிறார். பின்னர் ஒருவர் ஒரு விதியுடன் ஒரு ஒப்பந்தத்தை உருவாக்குகிறார், ஒவ்வொரு N தொகுதிகளுக்கும், ஒப்பந்தம் மெர்க்கல் மரத்தில் ஒரு சீரற்ற குறியீட்டைத் தேர்ந்தெடுக்கும் (ஒப்பந்தக் குறியீட்டிலிருந்து அணுகக்கூடிய முந்தைய தொகுதி ஹாஷை, சீரற்றதன்மையின் ஆதாரமாகப் பயன்படுத்தி), மரத்தில் அந்த குறிப்பிட்ட குறியீட்டில் உள்ள தொகுதியின் உரிமையின் எளிமைப்படுத்தப்பட்ட கட்டண சரிபார்ப்பு போன்ற சான்றுடன் ஒரு பரிவர்த்தனையை வழங்கும் முதல் நிறுவனத்திற்கு X ஈதரை வழங்கும். ஒரு பயனர் தங்கள் கோப்பை மீண்டும் பதிவிறக்க விரும்பும் போது, கோப்பை மீட்டெடுக்க அவர்கள் ஒரு நுண்கட்டண சேனல் நெறிமுறையைப் பயன்படுத்தலாம் (எ.கா., 32 கிலோபைட்டுகளுக்கு 1 சபோ செலுத்தவும்); மிகவும் கட்டண-திறனுள்ள அணுகுமுறை என்னவென்றால், பணம் செலுத்துபவர் இறுதி வரை பரிவர்த்தனையை வெளியிடாமல் இருப்பது, அதற்குப் பதிலாக ஒவ்வொரு 32 கிலோபைட்டுகளுக்குப் பிறகும் அதே நான்ஸ் உடன் சற்று அதிக லாபகரமான பரிவர்த்தனையுடன் பரிவர்த்தனையை மாற்றுவது.
நெறிமுறையின் ஒரு முக்கியமான அம்சம் என்னவென்றால், கோப்பை மறக்க முடிவு செய்யாத பல சீரற்ற கணுக்களை ஒருவர் நம்புவது போல் தோன்றினாலும், ரகசியப் பகிர்வு மூலம் கோப்பைப் பல துண்டுகளாகப் பிரிப்பதன் மூலமும், ஒவ்வொரு துண்டும் இன்னும் சில கணுக்களின் வசம் உள்ளதா என்பதைப் பார்க்க ஒப்பந்தங்களைக் கண்காணிப்பதன் மூலமும் அந்த அபாயத்தை ஒருவர் பூஜ்ஜியத்திற்குக் குறைக்கலாம். ஒரு ஒப்பந்தம் இன்னும் பணத்தைச் செலுத்துகிறது என்றால், யாரோ ஒருவர் இன்னும் கோப்பைச் சேமித்து வைத்திருக்கிறார் என்பதற்கான குறியாக்கவியல் சான்றை அது வழங்குகிறது.
பரவலாக்கப்பட்ட தன்னாட்சி அமைப்புகள்
ஒரு "பரவலாக்கப்பட்ட தன்னாட்சி அமைப்பு" என்பதன் பொதுவான கருத்து என்னவென்றால், ஒரு குறிப்பிட்ட உறுப்பினர்கள் அல்லது பங்குதாரர்களைக் கொண்ட ஒரு மெய்நிகர் நிறுவனம், ஒருவேளை 67% பெரும்பான்மையுடன், நிறுவனத்தின் நிதியைச் செலவழிக்கவும் அதன் குறியீட்டை மாற்றவும் உரிமை உள்ளது. நிறுவனம் தனது நிதியை எவ்வாறு ஒதுக்க வேண்டும் என்பதை உறுப்பினர்கள் கூட்டாக முடிவு செய்வார்கள். ஒரு DAO-இன் நிதியை ஒதுக்குவதற்கான முறைகள் வெகுமதிகள், சம்பளங்கள் முதல் வேலைக்கு வெகுமதி அளிக்க உள் நாணயம் போன்ற இன்னும் கவர்ச்சியான வழிமுறைகள் வரை இருக்கலாம். இது அடிப்படையில் ஒரு பாரம்பரிய நிறுவனம் அல்லது இலாப நோக்கற்ற நிறுவனத்தின் சட்டப்பூர்வ பொறிகளைப் பிரதிபலிக்கிறது, ஆனால் அமலாக்கத்திற்குக் குறியாக்கவியல் தொகுதிச்சங்கிலி தொழில்நுட்பத்தை மட்டுமே பயன்படுத்துகிறது. இதுவரை DAO-களைச் சுற்றியுள்ள பெரும்பாலான பேச்சுகள் ஈவுத்தொகை பெறும் பங்குதாரர்கள் மற்றும் வர்த்தகம் செய்யக்கூடிய பங்குகளைக் கொண்ட "பரவலாக்கப்பட்ட தன்னாட்சி நிறுவனத்தின்" (DAC) "முதலாளித்துவ" மாதிரியைச் சுற்றியே உள்ளன; ஒரு மாற்று, ஒருவேளை "பரவலாக்கப்பட்ட தன்னாட்சி சமூகம்" என்று விவரிக்கப்படலாம், அனைத்து உறுப்பினர்களும் முடிவெடுப்பதில் சமமான பங்கைக் கொண்டிருப்பார்கள் மற்றும் ஒரு உறுப்பினரைச் சேர்க்க அல்லது நீக்க இருக்கும் உறுப்பினர்களில் 67% பேர் ஒப்புக்கொள்ள வேண்டும். ஒரு நபர் ஒரு உறுப்பினரை மட்டுமே கொண்டிருக்க முடியும் என்ற தேவை பின்னர் குழுவால் கூட்டாகச் செயல்படுத்தப்பட வேண்டும்.
ஒரு DAO-ஐ எவ்வாறு குறியீடு செய்வது என்பதற்கான பொதுவான রূপরেখা பின்வருமாறு. எளிமையான வடிவமைப்பு என்பது மூன்றில் இரண்டு பங்கு உறுப்பினர்கள் ஒரு மாற்றத்திற்கு ஒப்புக்கொண்டால் மாறும் சுய-மாற்றியமைக்கும் குறியீட்டின் ஒரு பகுதியாகும். குறியீடு கோட்பாட்டளவில் மாற்றவியலாதது என்றாலும், குறியீட்டின் துண்டுகளைத் தனித்தனி ஒப்பந்தங்களில் வைத்திருப்பதன் மூலமும், எந்த ஒப்பந்தங்களை அழைக்க வேண்டும் என்பதற்கான முகவரியை மாற்றக்கூடிய சேமிப்பகத்தில் சேமித்து வைப்பதன் மூலமும் ஒருவர் இதை எளிதாகத் தவிர்த்து, நடைமுறையில் மாறும் தன்மையைக் கொண்டிருக்கலாம். இத்தகைய DAO ஒப்பந்தத்தின் எளிய செயலாக்கத்தில், பரிவர்த்தனையில் வழங்கப்பட்ட தரவுகளால் வேறுபடும் மூன்று பரிவர்த்தனை வகைகள் இருக்கும்:
- சேமிப்பக குறியீடு
Kஇல் உள்ள முகவரியைVமதிப்பிற்கு மாற்ற, குறியீடுiஉடன் ஒரு முன்மொழிவைப் பதிவு செய்ய[0,i,K,V] - முன்மொழிவு
iக்கு ஆதரவாக ஒரு வாக்கைப் பதிவு செய்ய[1,i] - போதுமான வாக்குகள் அளிக்கப்பட்டிருந்தால், முன்மொழிவு
iஐ இறுதியாக்க[2,i]
ஒப்பந்தம் பின்னர் இவை ஒவ்வொன்றிற்கும் விதிகளைக் கொண்டிருக்கும். இது அனைத்து திறந்த சேமிப்பக மாற்றங்களின் பதிவையும், அவற்றுக்கு யார் வாக்களித்தார்கள் என்ற பட்டியலையும் பராமரிக்கும். இது அனைத்து உறுப்பினர்களின் பட்டியலையும் கொண்டிருக்கும். எந்தவொரு சேமிப்பக மாற்றமும் மூன்றில் இரண்டு பங்கு உறுப்பினர்கள் வாக்களிக்கும் போது, ஒரு இறுதியாக்கும் பரிவர்த்தனை மாற்றத்தைச் செயல்படுத்த முடியும். மிகவும் அதிநவீன கட்டமைப்பு, பரிவர்த்தனையை அனுப்புதல், உறுப்பினர்களைச் சேர்த்தல் மற்றும் உறுப்பினர்களை நீக்குதல் போன்ற அம்சங்களுக்கான உள்ளமைக்கப்பட்ட வாக்களிக்கும் திறனையும் கொண்டிருக்கும், மேலும் லிக்விட் டெமாக்ரசி (opens in a new tab) பாணியிலான வாக்கு பிரதிநிதித்துவத்தையும் வழங்கக்கூடும் (அதாவது, யார் வேண்டுமானாலும் தங்களுக்கு வாக்களிக்க ஒருவரை நியமிக்கலாம், மேலும் பணி நியமனம் மாறுபட்டது, எனவே A, B ஐ நியமித்து, B, C ஐ நியமித்தால், C, A இன் வாக்கை தீர்மானிக்கிறார்). இந்த வடிவமைப்பு DAO ஒரு பரவலாக்கப்பட்ட சமூகமாக இயல்பாக வளர அனுமதிக்கும், யார் உறுப்பினர் என்பதை வடிகட்டும் பணியை மக்கள் இறுதியில் நிபுணர்களிடம் ஒப்படைக்க அனுமதிக்கும், இருப்பினும் "தற்போதைய அமைப்பில்" உள்ளதைப் போலல்லாமல், தனிப்பட்ட சமூக உறுப்பினர்கள் தங்கள் சீரமைப்புகளை மாற்றும்போது நிபுணர்கள் காலப்போக்கில் எளிதாகத் தோன்றி மறையலாம்.
ஒரு மாற்று மாதிரி ஒரு பரவலாக்கப்பட்ட நிறுவனத்திற்கானதாகும், அங்கு எந்தவொரு கணக்கும் பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட பங்குகளைக் கொண்டிருக்கலாம், மேலும் முடிவெடுக்க மூன்றில் இரண்டு பங்கு பங்குகள் தேவை. ஒரு முழுமையான கட்டமைப்பு சொத்து மேலாண்மை செயல்பாடு, பங்குகளை வாங்க அல்லது விற்க சலுகை வழங்கும் திறன் மற்றும் சலுகைகளை ஏற்கும் திறன் (முன்னுரிமையாக ஒப்பந்தத்திற்குள் ஒரு ஆர்டர்-பொருந்தும் வழிமுறையுடன்) ஆகியவற்றை உள்ளடக்கியிருக்கும். பிரதிநிதித்துவம் லிக்விட் டெமாக்ரசி பாணியிலும் இருக்கும், இது "இயக்குநர்கள் குழு" என்ற கருத்தைப் பொதுமைப்படுத்துகிறது.
மேலும் பயன்பாடுகள்
1. சேமிப்பு பணப்பைகள். ஆலிஸ் தனது நிதியைப் பாதுகாப்பாக வைத்திருக்க விரும்புகிறார் என்று வைத்துக்கொள்வோம், ஆனால் அவர் தனது தனிப்பட்ட திறவுகோலை இழந்துவிடுவார் அல்லது யாராவது ஹேக் செய்துவிடுவார்கள் என்று கவலைப்படுகிறார். அவர் பாப் என்ற வங்கியுடன் பின்வருமாறு ஒரு ஒப்பந்தத்தில் ஈதரை வைக்கிறார்:
- ஆலிஸ் மட்டுமே ஒரு நாளைக்கு அதிகபட்சமாக 1% நிதியைத் திரும்பப் பெற முடியும்.
- பாப் மட்டுமே ஒரு நாளைக்கு அதிகபட்சமாக 1% நிதியைத் திரும்பப் பெற முடியும், ஆனால் ஆலிஸ் தனது திறவுகோல் மூலம் இந்தத் திறனை முடக்கும் பரிவர்த்தனையைச் செய்யும் திறனைக் கொண்டுள்ளார்.
- ஆலிஸும் பாபும் சேர்ந்து எதையும் திரும்பப் பெறலாம்.
பொதுவாக, ஆலிஸுக்கு ஒரு நாளைக்கு 1% போதுமானது, மேலும் ஆலிஸ் அதிகமாகத் திரும்பப் பெற விரும்பினால் உதவிக்கு பாப்பைத் தொடர்பு கொள்ளலாம். ஆலிஸின் திறவுகோல் ஹேக் செய்யப்பட்டால், நிதியைப் புதிய ஒப்பந்தத்திற்கு மாற்ற அவர் பாப்பிடம் ஓடுகிறார். அவர் தனது திறவுகோலை இழந்தால், பாப் இறுதியில் நிதியை வெளியே எடுப்பார். பாப் தீங்கிழைப்பவராக மாறினால், அவர் திரும்பப் பெறும் திறனை அவர் முடக்கலாம்.
2. பயிர் காப்பீடு. எந்தவொரு விலை குறியீட்டிற்கும் பதிலாக வானிலையின் தரவு ஊட்டத்தைப் பயன்படுத்தி ஒருவர் எளிதாக நிதி வழித்தோன்றல்கள் ஒப்பந்தத்தை உருவாக்கலாம். அயோவாவில் உள்ள ஒரு விவசாயி அயோவாவில் உள்ள மழைப்பொழிவின் அடிப்படையில் நேர்மாறாகச் செலுத்தும் ஒரு வழித்தோன்றலை வாங்கினால், வறட்சி ஏற்பட்டால், விவசாயி தானாகவே பணத்தைப் பெறுவார், போதுமான மழை பெய்தால் விவசாயி மகிழ்ச்சியடைவார், ஏனெனில் அவர்களின் பயிர்கள் நன்றாக வளரும். இதை பொதுவாக இயற்கை பேரிடர் காப்பீட்டிற்கு விரிவுபடுத்தலாம்.
3. பரவலாக்கப்பட்ட தரவு ஊட்டம். வித்தியாசத்திற்கான நிதி ஒப்பந்தங்களுக்கு, "SchellingCoin (opens in a new tab)" எனப்படும் நெறிமுறை மூலம் தரவு ஊட்டத்தைப் பரவலாக்குவது உண்மையில் சாத்தியமாகலாம். SchellingCoin அடிப்படையில் பின்வருமாறு செயல்படுகிறது: N தரப்பினர் அனைவரும் கொடுக்கப்பட்ட தரவின் மதிப்பை (எ.கா., ETH/USD விலை) அமைப்பில் வைக்கிறார்கள், மதிப்புகள் வரிசைப்படுத்தப்படுகின்றன, மேலும் 25 மற்றும் 75 வது சதவீதத்திற்கு இடையில் உள்ள அனைவருக்கும் ஒரு வில்லை வெகுமதியாகக் கிடைக்கும். மற்ற அனைவரும் வழங்கும் பதிலை வழங்க அனைவருக்கும் ஊக்கம் உள்ளது, மேலும் அதிக எண்ணிக்கையிலான வீரர்கள் யதார்த்தமாக ஒப்புக்கொள்ளக்கூடிய ஒரே மதிப்பு வெளிப்படையான இயல்புநிலை: உண்மை. இது கோட்பாட்டளவில் ETH/USD விலை, பெர்லின் வெப்பநிலை அல்லது ஒரு குறிப்பிட்ட கடினமான கணக்கீட்டின் முடிவு உட்பட எந்த எண்ணிக்கையிலான மதிப்புகளையும் வழங்கக்கூடிய பரவலாக்கப்பட்ட நெறிமுறையை உருவாக்குகிறது.
4. திறன் பல்கையெழுத்து எஸ்க்ரோ. பிட்காயின் பல்கையெழுத்து பரிவர்த்தனை ஒப்பந்தங்களை அனுமதிக்கிறது, எடுத்துக்காட்டாக, கொடுக்கப்பட்ட ஐந்து திறவுகோல்களில் மூன்று நிதியைச் செலவிடலாம். எத்திரியம் அதிக நுணுக்கத்தை அனுமதிக்கிறது; எடுத்துக்காட்டாக, ஐந்தில் நான்கு பேர் அனைத்தையும் செலவிடலாம், ஐந்தில் மூன்று பேர் ஒரு நாளைக்கு 10% வரை செலவிடலாம், மற்றும் ஐந்தில் இரண்டு பேர் ஒரு நாளைக்கு 0.5% வரை செலவிடலாம். கூடுதலாக, எத்திரியம் பல்கையெழுத்து ஒத்திசைவற்றது - இரண்டு தரப்பினர் வெவ்வேறு நேரங்களில் தொகுதிச்சங்கிலியில் தங்கள் கையொப்பங்களைப் பதிவு செய்யலாம் மற்றும் கடைசி கையொப்பம் தானாகவே பரிவர்த்தனையை அனுப்பும்.
5. கிளவுட் கம்ப்யூட்டிங். EVM தொழில்நுட்பம் சரிபார்க்கக்கூடிய கணினி சூழலை உருவாக்கவும் பயன்படுத்தப்படலாம், பயனர்கள் மற்றவர்களைக் கணக்கீடுகளைச் செய்யும்படி கேட்க அனுமதிக்கிறது, பின்னர் சில சீரற்ற முறையில் தேர்ந்தெடுக்கப்பட்ட சோதனைச் சாவடிகளில் கணக்கீடுகள் சரியாகச் செய்யப்பட்டன என்பதற்கான சான்றுகளை விருப்பப்படி கேட்கலாம். எந்தவொரு பயனரும் தங்கள் டெஸ்க்டாப், லேப்டாப் அல்லது சிறப்பு சேவையகத்துடன் பங்கேற்கக்கூடிய கிளவுட் கம்ப்யூட்டிங் சந்தையை உருவாக்க இது அனுமதிக்கிறது, மேலும் பாதுகாப்பு வைப்புகளுடன் ஸ்பாட்-செக்கிங் அமைப்பு நம்பகமானது என்பதை உறுதிப்படுத்தப் பயன்படுத்தப்படலாம் (அதாவது, கணுக்கள் லாபகரமாக ஏமாற்ற முடியாது). இத்தகைய அமைப்பு அனைத்து பணிகளுக்கும் ஏற்றதாக இருக்காது என்றாலும்; எடுத்துக்காட்டாக, அதிக அளவிலான செயல்முறைக்கு இடையேயான தொடர்பு தேவைப்படும் பணிகளை, கணுக்களின் பெரிய கிளவுட்டில் எளிதாகச் செய்ய முடியாது. இருப்பினும், பிற பணிகளை இணையாக்குவது மிகவும் எளிதானது; SETI@home, folding@home மற்றும் மரபணு வழிமுறைகள் போன்ற திட்டங்களை இத்தகைய தளத்தின் மேல் எளிதாகச் செயல்படுத்தலாம்.
6. சக-முனைய சூதாட்டம். ஃபிராங்க் ஸ்டாஜானோ மற்றும் ரிச்சர்ட் கிளேட்டனின் Cyberdice (opens in a new tab) போன்ற எந்த எண்ணிக்கையிலான சக-முனைய சூதாட்ட நெறிமுறைகளையும் எத்திரியம் தொகுதிச்சங்கிலியில் செயல்படுத்தலாம். எளிமையான சூதாட்ட நெறிமுறை உண்மையில் அடுத்த தொகுதி ஹாஷில் வித்தியாசத்திற்கான ஒரு ஒப்பந்தமாகும், மேலும் அங்கிருந்து மேம்பட்ட நெறிமுறைகளை உருவாக்கலாம், ஏமாற்றும் திறன் இல்லாத பூஜ்ஜியத்திற்கு அருகிலுள்ள கட்டணங்களுடன் சூதாட்ட சேவைகளை உருவாக்கலாம்.
7. கணிப்பு சந்தைகள். ஒரு தரவு வழங்கி அல்லது SchellingCoin வழங்கப்பட்டால், கணிப்பு சந்தைகளைச் செயல்படுத்துவதும் எளிதானது, மேலும் SchellingCoin உடன் கணிப்பு சந்தைகள் பரவலாக்கப்பட்ட அமைப்புகளுக்கான ஆளுகை நெறிமுறையாக futarchy (opens in a new tab) இன் முதல் பிரதான பயன்பாடாக நிரூபிக்கப்படலாம்.
8. சங்கிலிசார் பரவலாக்கப்பட்ட சந்தைகள், அடையாளம் மற்றும் நற்பெயர் அமைப்பை அடிப்படையாகப் பயன்படுத்துகின்றன.
இதர விஷயங்கள் மற்றும் கவலைகள்
மாற்றியமைக்கப்பட்ட GHOST செயலாக்கம்
"Greedy Heaviest Observed Subtree" (GHOST) நெறிமுறை என்பது யோனதன் சோம்போலின்ஸ்கி (Yonatan Sompolinsky) மற்றும் அவிவ் ஜோஹர் (Aviv Zohar) ஆகியோரால் டிசம்பர் 2013 (opens in a new tab) இல் முதன்முதலில் அறிமுகப்படுத்தப்பட்ட ஒரு கண்டுபிடிப்பாகும். GHOST-இன் பின்னணியில் உள்ள நோக்கம் என்னவென்றால், விரைவான உறுதிப்படுத்தல் நேரங்களைக் கொண்ட தொகுதிச்சங்கிலிகள் தற்போது அதிக ஸ்டேல் (stale) விகிதத்தால் குறைக்கப்பட்ட பாதுகாப்பால் பாதிக்கப்படுகின்றன - ஏனெனில் தொகுதிகள் பிணையம் முழுவதும் பரவுவதற்கு ஒரு குறிப்பிட்ட நேரம் எடுக்கும், சுரங்கர் A ஒரு தொகுதியைச் சுரங்கப்பணி செய்து, பின்னர் சுரங்கர் A-இன் தொகுதி B-க்கு பரவுவதற்கு முன்பு சுரங்கர் B மற்றொரு தொகுதியைச் சுரங்கப்பணி செய்தால், சுரங்கர் B-இன் தொகுதி வீணாகிவிடும், மேலும் இது பிணையத்தின் பாதுகாப்பிற்குப் பங்களிக்காது. மேலும், இதில் ஒரு மையப்படுத்தல் சிக்கல் உள்ளது: சுரங்கர் A என்பது 30% ஹாஷ்பவருடன் (hashpower) உள்ள ஒரு சுரங்கக் குழுவாகவும், B 10% ஹாஷ்பவரைக் கொண்டிருந்தாலும், A 70% நேரங்களில் ஒரு ஸ்டேல் தொகுதியை உருவாக்கும் அபாயத்தைக் கொண்டிருக்கும் (ஏனெனில் மீதமுள்ள 30% நேரங்களில் A முந்தைய தொகுதியை உருவாக்கியதால் சுரங்கத் தரவை உடனடியாகப் பெறும்), அதேசமயம் B 90% நேரங்களில் ஒரு ஸ்டேல் தொகுதியை உருவாக்கும் அபாயத்தைக் கொண்டிருக்கும். எனவே, ஸ்டேல் விகிதம் அதிகமாக இருக்கும் அளவுக்கு தொகுதி இடைவெளி குறுகியதாக இருந்தால், A அதன் அளவின் காரணமாகவே கணிசமாக அதிக செயல்திறன் கொண்டதாக இருக்கும். இந்த இரண்டு விளைவுகளும் இணைந்தால், தொகுதிகளை விரைவாக உருவாக்கும் தொகுதிச்சங்கிலிகள், சுரங்கப்பணி செயல்முறையின் மீது நடைமுறைக் கட்டுப்பாட்டைக் கொண்டிருக்க பிணைய ஹாஷ்பவரில் ஒரு பெரிய சதவீதத்தை ஒரு சுரங்கக் குழு கொண்டிருப்பதற்கு வழிவகுக்கும்.
சோம்போலின்ஸ்கி மற்றும் ஜோஹர் விவரித்தபடி, எந்தச் சங்கிலி "மிக நீளமானது" என்பதைக் கணக்கிடுவதில் ஸ்டேல் தொகுதிகளைச் சேர்ப்பதன் மூலம் பிணையப் பாதுகாப்பு இழப்பு என்ற முதல் சிக்கலை GHOST தீர்க்கிறது; அதாவது, ஒரு தொகுதியின் பெற்றோர் மற்றும் முந்தைய மூதாதையர்கள் மட்டுமல்லாமல், தொகுதியின் மூதாதையரின் ஸ்டேல் சந்ததியினரும் (எத்திரியம் வழக்கில், "அங்கிள்கள்" (uncles)) எந்தத் தொகுதிக்கு மிகப்பெரிய மொத்த பணிச் சான்று (PoW) ஆதரவு உள்ளது என்பதைக் கணக்கிடுவதில் சேர்க்கப்படுகிறார்கள். மையப்படுத்தல் சார்பு என்ற இரண்டாவது சிக்கலைத் தீர்க்க, சோம்போலின்ஸ்கி மற்றும் ஜோஹர் விவரித்த நெறிமுறைக்கு அப்பால் சென்று, ஸ்டேல்களுக்கும் தொகுதி வெகுமதிகளை வழங்குகிறோம்: ஒரு ஸ்டேல் தொகுதி அதன் அடிப்படை வெகுமதியில் 87.5%-ஐப் பெறுகிறது, மேலும் ஸ்டேல் தொகுதியை உள்ளடக்கிய நெப்யூ (nephew) மீதமுள்ள 12.5%-ஐப் பெறுகிறது. இருப்பினும், பரிவர்த்தனை கட்டணம் அங்கிள்களுக்கு வழங்கப்படுவதில்லை.
எத்திரியம் GHOST-இன் எளிமைப்படுத்தப்பட்ட பதிப்பைச் செயல்படுத்துகிறது, இது ஏழு நிலைகள் மட்டுமே கீழே செல்கிறது. குறிப்பாக, இது பின்வருமாறு வரையறுக்கப்படுகிறது:
- ஒரு தொகுதி ஒரு பெற்றோரை குறிப்பிட வேண்டும், மேலும் அது 0 அல்லது அதற்கு மேற்பட்ட அங்கிள்களைக் குறிப்பிட வேண்டும்
- தொகுதி B-இல் சேர்க்கப்பட்டுள்ள ஒரு அங்கிள் பின்வரும் பண்புகளைக் கொண்டிருக்க வேண்டும்:
- இது B-இன் k-ஆவது தலைமுறை மூதாதையரின் நேரடி குழந்தையாக இருக்க வேண்டும், இங்கு
2 <= k <= 7. - இது B-இன் மூதாதையராக இருக்க முடியாது
- ஒரு அங்கிள் செல்லுபடியாகும் தொகுதித் தலைப்பாக இருக்க வேண்டும், ஆனால் அது முன்பு சரிபார்க்கப்பட்ட அல்லது செல்லுபடியாகும் தொகுதியாக இருக்க வேண்டிய அவசியமில்லை
- முந்தைய தொகுதிகளில் சேர்க்கப்பட்டுள்ள அனைத்து அங்கிள்களிலிருந்தும் மற்றும் அதே தொகுதியில் சேர்க்கப்பட்டுள்ள மற்ற அனைத்து அங்கிள்களிலிருந்தும் ஒரு அங்கிள் வேறுபட்டிருக்க வேண்டும் (இரட்டைச் சேர்க்கை அல்லாதது)
- இது B-இன் k-ஆவது தலைமுறை மூதாதையரின் நேரடி குழந்தையாக இருக்க வேண்டும், இங்கு
- தொகுதி B-இல் உள்ள ஒவ்வொரு அங்கிள் U-க்கும், B-இன் சுரங்கர் அதன் காயின்பேஸ் (coinbase) வெகுமதியுடன் கூடுதலாக 3.125%-ஐப் பெறுகிறார், மேலும் U-இன் சுரங்கர் நிலையான காயின்பேஸ் வெகுமதியில் 93.75%-ஐப் பெறுகிறார்.
7 தலைமுறைகள் வரை மட்டுமே அங்கிள்களைச் சேர்க்கக்கூடிய GHOST-இன் இந்த வரையறுக்கப்பட்ட பதிப்பு இரண்டு காரணங்களுக்காகப் பயன்படுத்தப்பட்டது. முதலாவதாக, வரம்பற்ற GHOST ஒரு குறிப்பிட்ட தொகுதிக்கு எந்த அங்கிள்கள் செல்லுபடியாகும் என்பதைக் கணக்கிடுவதில் பல சிக்கல்களை உள்ளடக்கும். இரண்டாவதாக, எத்திரியத்தில் பயன்படுத்தப்படுவது போன்ற இழப்பீட்டுடன் கூடிய வரம்பற்ற GHOST, ஒரு பொதுத் தாக்குபவரின் சங்கிலியில் அல்லாமல் பிரதான சங்கிலியில் சுரங்கப்பணி செய்வதற்கான சுரங்கரின் ஊக்கத்தை நீக்குகிறது.
கட்டணங்கள்
தொகுதிச்சங்கிலியில் வெளியிடப்படும் ஒவ்வொரு பரிவர்த்தனையும் அதைப் பதிவிறக்கம் செய்து சரிபார்க்க வேண்டிய செலவை பிணையத்தின் மீது சுமத்துவதால், துஷ்பிரயோகத்தைத் தடுக்க, பொதுவாகப் பரிவர்த்தனை கட்டணங்களை உள்ளடக்கிய சில ஒழுங்குமுறை வழிமுறைகள் தேவைப்படுகின்றன. பிட்காயினில் பயன்படுத்தப்படும் இயல்புநிலை அணுகுமுறை, முற்றிலும் தன்னார்வக் கட்டணங்களைக் கொண்டிருப்பதாகும், இது சுரங்கர்களைக் காப்பாளர்களாகச் செயல்படவும், மாறும் குறைந்தபட்சங்களை அமைக்கவும் நம்பியுள்ளது. இந்த அணுகுமுறை பிட்காயின் சமூகத்தில் மிகவும் சாதகமாகப் பெறப்பட்டுள்ளது, குறிப்பாக இது "சந்தை அடிப்படையிலானது" என்பதால், சுரங்கர்களுக்கும் பரிவர்த்தனை அனுப்புநர்களுக்கும் இடையிலான வழங்கல் மற்றும் தேவை விலையைத் தீர்மானிக்க அனுமதிக்கிறது. இருப்பினும், இந்த பகுத்தறிவில் உள்ள சிக்கல் என்னவென்றால், பரிவர்த்தனை செயலாக்கம் ஒரு சந்தை அல்ல; பரிவர்த்தனை செயலாக்கத்தை அனுப்புநருக்குச் சுரங்கர் வழங்கும் ஒரு சேவையாகக் கருதுவது உள்ளுணர்வாக ஈர்க்கக்கூடியதாக இருந்தாலும், உண்மையில் ஒரு சுரங்கர் சேர்க்கும் ஒவ்வொரு பரிவர்த்தனையும் பிணையத்தில் உள்ள ஒவ்வொரு கணுவாலும் செயலாக்கப்பட வேண்டும், எனவே பரிவர்த்தனை செயலாக்கச் செலவின் பெரும்பகுதி மூன்றாம் தரப்பினரால் ஏற்கப்படுகிறது, அதைச் சேர்க்கலாமா வேண்டாமா என்று முடிவெடுக்கும் சுரங்கரால் அல்ல. எனவே, பொதுச் சொத்துக்களின் துயரம் (tragedy-of-the-commons) போன்ற சிக்கல்கள் ஏற்பட வாய்ப்புகள் அதிகம்.
இருப்பினும், சந்தை அடிப்படையிலான பொறிமுறையில் உள்ள இந்தக் குறைபாடு, ஒரு குறிப்பிட்ட துல்லியமற்ற எளிமைப்படுத்தும் அனுமானம் வழங்கப்படும்போது, மாயாஜாலமாகத் தன்னைத்தானே ரத்து செய்கிறது. அதற்கான வாதம் பின்வருமாறு. இதை இவ்வாறு வைத்துக்கொள்வோம்:
- ஒரு பரிவர்த்தனை
kசெயல்பாடுகளுக்கு வழிவகுக்கிறது, அதை உள்ளடக்கிய எந்தவொரு சுரங்கருக்கும்kRவெகுமதியை வழங்குகிறது, இங்குRஅனுப்புநரால் அமைக்கப்படுகிறது மற்றும்kமற்றும்Rஆகியவை சுரங்கருக்கு முன்கூட்டியே (தோராயமாக) தெரியும். - ஒரு செயல்பாடு எந்தவொரு கணுவுக்கும்
Cசெயலாக்கச் செலவைக் கொண்டுள்ளது (அதாவது, அனைத்து கணுக்களும் சமமான செயல்திறனைக் கொண்டுள்ளன) Nசுரங்கக் கணுக்கள் உள்ளன, ஒவ்வொன்றும் சரியாகச் சமமான செயலாக்கத் திறனைக் கொண்டுள்ளன (அதாவது, மொத்தத்தில்1/N)- சுரங்கப்பணி அல்லாத முழு முனையங்கள் எதுவும் இல்லை.
எதிர்பார்க்கப்படும் வெகுமதி செலவை விட அதிகமாக இருந்தால், ஒரு சுரங்கர் பரிவர்த்தனையைச் செயலாக்கத் தயாராக இருப்பார். எனவே, சுரங்கர் அடுத்த தொகுதியைச் செயலாக்குவதற்கான 1/N வாய்ப்பைக் கொண்டிருப்பதால், எதிர்பார்க்கப்படும் வெகுமதி kR/N ஆகும், மேலும் சுரங்கருக்கான செயலாக்கச் செலவு வெறுமனே kC ஆகும். எனவே, சுரங்கர்கள் kR/N > kC அல்லது R > NC உள்ள பரிவர்த்தனைகளைச் சேர்ப்பார்கள். R என்பது அனுப்புநரால் வழங்கப்படும் ஒரு செயல்பாட்டிற்கான கட்டணம் என்பதை நினைவில் கொள்க, எனவே இது பரிவர்த்தனையிலிருந்து அனுப்புநர் பெறும் நன்மையின் குறைந்த வரம்பாகும், மேலும் NC என்பது ஒரு செயல்பாட்டைச் செயலாக்குவதற்கு முழு பிணையத்திற்கும் ஆகும் செலவாகும். எனவே, மொத்தப் பயன்பாட்டு நன்மை செலவை விட அதிகமாக இருக்கும் பரிவர்த்தனைகளை மட்டுமே சேர்ப்பதற்கான ஊக்கத்தை சுரங்கர்கள் கொண்டுள்ளனர்.
இருப்பினும், உண்மையில் அந்த அனுமானங்களிலிருந்து பல முக்கியமான விலகல்கள் உள்ளன:
- மற்ற சரிபார்க்கும் கணுக்களை விடப் பரிவர்த்தனையைச் செயலாக்கச் சுரங்கர் அதிகச் செலவைச் செலுத்துகிறார், ஏனெனில் கூடுதல் சரிபார்ப்பு நேரம் தொகுதிப் பரவலைத் தாமதப்படுத்துகிறது, இதனால் தொகுதி ஸ்டேல் ஆவதற்கான வாய்ப்பை அதிகரிக்கிறது.
- சுரங்கப்பணி அல்லாத முழு முனையங்கள் உள்ளன.
- சுரங்கப்பணித் திறன் விநியோகம் நடைமுறையில் தீவிர சமத்துவமற்றதாக முடிவடையலாம்.
- பிணையத்திற்குத் தீங்கு விளைவிப்பதைத் தங்கள் பயன்பாட்டுச் செயல்பாடாகக் கொண்ட ஊக வணிகர்கள், அரசியல் எதிரிகள் மற்றும் பைத்தியக்காரர்கள் இருக்கிறார்கள், மேலும் அவர்கள் மற்ற சரிபார்க்கும் கணுக்கள் செலுத்தும் செலவை விடத் தங்கள் செலவு மிகக் குறைவாக இருக்கும் வகையில் ஒப்பந்தங்களைச் புத்திசாலித்தனமாக அமைக்க முடியும்.
(1) சுரங்கர் குறைவான பரிவர்த்தனைகளைச் சேர்ப்பதற்கான போக்கை வழங்குகிறது, மேலும்
(2) NC-ஐ அதிகரிக்கிறது; எனவே, இந்த இரண்டு விளைவுகளும் குறைந்தபட்சம் பகுதியளவாவது ஒன்றையொன்று
ரத்து செய்கின்றன.எப்படி? (opens in a new tab)
(3) மற்றும் (4) ஆகியவை முக்கியச் சிக்கலாகும்; அவற்றைத் தீர்க்க நாங்கள் ஒரு மிதக்கும் வரம்பை (floating cap) நிறுவுகிறோம்: எந்தவொரு தொகுதியும் நீண்ட கால அதிவேக நகரும் சராசரியை விட
BLK_LIMIT_FACTOR மடங்குக்கு அதிகமான செயல்பாடுகளைக் கொண்டிருக்க முடியாது.
குறிப்பாக:
blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) +
floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR)
BLK_LIMIT_FACTOR மற்றும் EMA_FACTOR ஆகியவை மாறிலிகளாகும், அவை தற்போதைக்கு 65536 மற்றும் 1.5 என அமைக்கப்படும், ஆனால் மேலதிகப் பகுப்பாய்விற்குப் பிறகு மாற்றப்பட வாய்ப்புள்ளது.
பிட்காயினில் பெரிய தொகுதி அளவுகளை ஊக்கமிழக்கச் செய்யும் மற்றொரு காரணி உள்ளது: பெரிய தொகுதிகள் பரவுவதற்கு அதிக நேரம் எடுக்கும், இதனால் அவை ஸ்டேல் ஆவதற்கான அதிக நிகழ்தகவைக் கொண்டுள்ளன. எத்திரியத்தில், அதிக எரிவாயுவை உட்கொள்ளும் தொகுதிகள் பரவுவதற்கும் அதிக நேரம் எடுக்கலாம், ஏனெனில் அவை இயற்பியல் ரீதியாகப் பெரியவை என்பதாலும், சரிபார்க்கப் பரிவர்த்தனை நிலை மாற்றங்களைச் செயலாக்க அதிக நேரம் எடுக்கும் என்பதாலும் ஆகும். இந்தத் தாமத ஊக்கமின்மை பிட்காயினில் ஒரு குறிப்பிடத்தக்கக் கருத்தாகும், ஆனால் GHOST நெறிமுறையின் காரணமாக எத்திரியத்தில் இது குறைவு; எனவே, ஒழுங்குபடுத்தப்பட்ட தொகுதி வரம்புகளை நம்பியிருப்பது மிகவும் நிலையான அடிப்படையை வழங்குகிறது.
கணக்கீடு மற்றும் டூரிங்-முழுமை (Turing-Completeness)
ஒரு முக்கியமான குறிப்பு என்னவென்றால், எத்திரியம் மெய்நிகர் இயந்திரம் (EVM) டூரிங்-முழுமையானது; அதாவது EVM குறியீடு முடிவிலி சுழல்கள் (infinite loops) உட்பட, கற்பனை செய்யக்கூடிய எந்தவொரு கணக்கீட்டையும் குறியாக்கம் செய்ய முடியும். EVM குறியீடு இரண்டு வழிகளில் சுழற்சியை அனுமதிக்கிறது. முதலாவதாக, குறியீட்டில் முந்தைய இடத்திற்குத் திரும்ப நிரலை அனுமதிக்கும் JUMP அறிவுறுத்தல் உள்ளது, மேலும் நிபந்தனைக்குட்பட்ட தாவலைச் செய்ய JUMPI அறிவுறுத்தல் உள்ளது, இது while x < 27: x = x * 2 போன்ற அறிக்கைகளை அனுமதிக்கிறது. இரண்டாவதாக, ஒப்பந்தங்கள் மற்ற ஒப்பந்தங்களை அழைக்கலாம், இது சுழல்நிலை (recursion) மூலம் சுழற்சியை அனுமதிக்கக்கூடும். இது இயற்கையாகவே ஒரு சிக்கலுக்கு வழிவகுக்கிறது: தீங்கிழைக்கும் பயனர்கள் சுரங்கர்களையும் முழு முனையங்களையும் முடிவிலி சுழலில் நுழையக் கட்டாயப்படுத்துவதன் மூலம் அடிப்படையில் அவற்றை மூட முடியுமா? கணினி அறிவியலில் ஹால்டிங் சிக்கல் (halting problem) எனப்படும் ஒரு சிக்கலால் இந்தப் பிரச்சினை எழுகிறது: பொதுவான வழக்கில், கொடுக்கப்பட்ட நிரல் எப்போதாவது நிற்குமா இல்லையா என்பதைச் சொல்ல வழி இல்லை.
நிலை மாற்றப் பிரிவில் விவரிக்கப்பட்டுள்ளபடி, ஒரு பரிவர்த்தனை எடுக்க அனுமதிக்கப்படும் அதிகபட்சக் கணக்கீட்டுப் படிகளை அமைக்கக் கோருவதன் மூலம் எங்கள் தீர்வு செயல்படுகிறது, மேலும் செயலாக்கம் அதிக நேரம் எடுத்தால் கணக்கீடு மீளமைக்கப்படும், ஆனால் கட்டணங்கள் இன்னும் செலுத்தப்படும். செய்திகளும் இதே வழியில் செயல்படுகின்றன. எங்கள் தீர்வின் பின்னணியில் உள்ள நோக்கத்தைக் காட்ட, பின்வரும் எடுத்துக்காட்டுகளைக் கவனியுங்கள்:
- தாக்குபவர் முடிவிலி சுழலை இயக்கும் ஒரு ஒப்பந்தத்தை உருவாக்குகிறார், பின்னர் அந்தச் சுழலைச் செயல்படுத்தும் பரிவர்த்தனையைச் சுரங்கருக்கு அனுப்புகிறார். சுரங்கர் பரிவர்த்தனையைச் செயலாக்குவார், முடிவிலி சுழலை இயக்குவார், மேலும் எரிவாயு தீர்ந்துபோகும் வரை காத்திருப்பார். செயலாக்கம் எரிவாயு தீர்ந்து பாதியிலேயே நின்றாலும், பரிவர்த்தனை இன்னும் செல்லுபடியாகும், மேலும் ஒவ்வொரு கணக்கீட்டுப் படிக்கும் தாக்குபவரிடமிருந்து சுரங்கர் கட்டணத்தைக் கோருகிறார்.
- கணக்கீடு முடிவடையும் நேரத்திற்குள் இன்னும் சில தொகுதிகள் வெளிவரும், மேலும் கட்டணத்தைக் கோரப் பரிவர்த்தனையைச் சுரங்கரால் சேர்க்க முடியாது என்ற அளவுக்குச் சுரங்கரை நீண்ட நேரம் கணக்கிடக் கட்டாயப்படுத்தும் நோக்கத்துடன் தாக்குபவர் மிக நீண்ட முடிவிலி சுழலை உருவாக்குகிறார். இருப்பினும், செயலாக்கம் எடுக்கக்கூடிய கணக்கீட்டுப் படிகளின் எண்ணிக்கையைக் கட்டுப்படுத்தும்
STARTGAS-க்கான மதிப்பைத் தாக்குபவர் சமர்ப்பிக்க வேண்டும், எனவே கணக்கீடு அதிக எண்ணிக்கையிலான படிகளை எடுக்கும் என்பதைச் சுரங்கர் முன்கூட்டியே அறிந்துகொள்வார். - தாக்குபவர்
send(A,contract.storage[A]); contract.storage[A] = 0போன்ற சில வடிவங்களின் குறியீட்டைக் கொண்ட ஒப்பந்தத்தைப் பார்க்கிறார், மேலும் முதல் படியை இயக்கப் போதுமான எரிவாயுவுடன் பரிவர்த்தனையை அனுப்புகிறார், ஆனால் இரண்டாவது படிக்கு அல்ல (அதாவது, திரும்பப் பெறுதல் செய்கிறார், ஆனால் இருப்பு குறைய அனுமதிக்கவில்லை). ஒப்பந்த ஆசிரியர் இது போன்ற தாக்குதல்களிலிருந்து பாதுகாப்பது பற்றி கவலைப்படத் தேவையில்லை, ஏனெனில் செயலாக்கம் பாதியிலேயே நின்றால் மாற்றங்கள் மீளமைக்கப்படும். - அபாயத்தைக் குறைப்பதற்காக ஒன்பது தனியுரிமத் தரவு ஊட்டங்களின் இடைநிலையை எடுத்துக்கொள்வதன் மூலம் ஒரு நிதி ஒப்பந்தம் செயல்படுகிறது. DAO-கள் பற்றிய பிரிவில் விவரிக்கப்பட்டுள்ள மாறி-முகவரி-அழைப்பு (variable-address-call) பொறிமுறையின் மூலம் மாற்றியமைக்கக்கூடிய வகையில் வடிவமைக்கப்பட்டுள்ள தரவு ஊட்டங்களில் ஒன்றைத் தாக்குபவர் கையகப்படுத்துகிறார், மேலும் அதை முடிவிலி சுழலை இயக்க மாற்றுகிறார், இதன் மூலம் நிதி ஒப்பந்தத்திலிருந்து நிதியைக் கோரும் எந்தவொரு முயற்சிகளையும் எரிவாயு தீர்ந்துபோகச் செய்ய முயற்சிக்கிறார். இருப்பினும், இந்தச் சிக்கலைத் தடுக்க நிதி ஒப்பந்தம் செய்தியில் எரிவாயு வரம்பை அமைக்கலாம்.
டூரிங்-முழுமைக்கு மாற்றாக டூரிங்-முழுமையின்மை (Turing-incompleteness) உள்ளது, இதில் JUMP மற்றும் JUMPI ஆகியவை இல்லை, மேலும் எந்தவொரு நேரத்திலும் அழைப்பு அடுக்கில் (call stack) ஒவ்வொரு ஒப்பந்தத்தின் ஒரு நகல் மட்டுமே இருக்க அனுமதிக்கப்படுகிறது. இந்த அமைப்பின் மூலம், விவரிக்கப்பட்ட கட்டண முறை மற்றும் எங்கள் தீர்வின் செயல்திறனைச் சுற்றியுள்ள நிச்சயமற்ற தன்மைகள் அவசியமாக இருக்காது, ஏனெனில் ஒரு ஒப்பந்தத்தை இயக்குவதற்கான செலவு அதன் அளவால் கட்டுப்படுத்தப்படும். கூடுதலாக, டூரிங்-முழுமையின்மை அவ்வளவு பெரிய வரம்பு கூட இல்லை; நாங்கள் உள்நாட்டில் கருத்தரித்த அனைத்து ஒப்பந்த எடுத்துக்காட்டுகளிலும், இதுவரை ஒன்றுக்கு மட்டுமே சுழல் தேவைப்பட்டது, மேலும் ஒரு வரி குறியீட்டை 26 முறை திரும்பத் திரும்பச் செய்வதன் மூலம் அந்தச் சுழலைக் கூட அகற்றலாம். டூரிங்-முழுமையின் தீவிரமான தாக்கங்கள் மற்றும் வரையறுக்கப்பட்ட நன்மையைக் கருத்தில் கொண்டு, ஏன் வெறுமனே டூரிங்-முழுமையற்ற மொழியைக் கொண்டிருக்கக்கூடாது? இருப்பினும், உண்மையில், டூரிங்-முழுமையின்மை என்பது சிக்கலுக்குச் சரியான தீர்விலிருந்து வெகு தொலைவில் உள்ளது. ஏன் என்பதைப் பார்க்க, பின்வரும் ஒப்பந்தங்களைக் கவனியுங்கள்:
C0: call(C1); call(C1);
C1: call(C2); call(C2);
C2: call(C3); call(C3);
...
C49: call(C50); call(C50);
C50: (run one step of a program and record the change in storage)
இப்போது, A-க்கு ஒரு பரிவர்த்தனையை அனுப்பவும். எனவே, 51 பரிவர்த்தனைகளில், 250 கணக்கீட்டுப் படிகளை எடுக்கும் ஒரு ஒப்பந்தம் எங்களிடம் உள்ளது. ஒவ்வொரு ஒப்பந்தத்துடனும் அது எடுக்கக்கூடிய அதிகபட்சக் கணக்கீட்டுப் படிகளைக் குறிப்பிடும் மதிப்பைத் தொடர்ந்து பராமரிப்பதன் மூலமும், மற்ற ஒப்பந்தங்களைச் சுழல்நிலையாக அழைக்கும் ஒப்பந்தங்களுக்கு இதைக் கணக்கிடுவதன் மூலமும் சுரங்கர்கள் இத்தகைய லாஜிக் பாம்களை (logic bombs) முன்கூட்டியே கண்டறிய முயற்சிக்கலாம், ஆனால் அதற்கு மற்ற ஒப்பந்தங்களை உருவாக்கும் ஒப்பந்தங்களைச் சுரங்கர்கள் தடை செய்ய வேண்டும் (ஏனெனில் மேலே உள்ள 26 ஒப்பந்தங்களின் உருவாக்கம் மற்றும் செயலாக்கத்தை எளிதாக ஒரே ஒப்பந்தமாக மாற்றலாம்). மற்றொரு சிக்கலான புள்ளி என்னவென்றால், ஒரு செய்தியின் முகவரிப் புலம் ஒரு மாறியாகும், எனவே பொதுவாக ஒரு குறிப்பிட்ட ஒப்பந்தம் எந்தெந்த ஒப்பந்தங்களை முன்கூட்டியே அழைக்கும் என்று சொல்லக்கூட முடியாது. எனவே, ஒட்டுமொத்தமாக, எங்களிடம் ஒரு ஆச்சரியமான முடிவு உள்ளது: டூரிங்-முழுமையை நிர்வகிப்பது வியக்கத்தக்க வகையில் எளிதானது, மேலும் அதே கட்டுப்பாடுகள் நடைமுறையில் இல்லாவிட்டால் டூரிங்-முழுமையின்மையை நிர்வகிப்பது சமமாக வியக்கத்தக்க வகையில் கடினம் - ஆனால் அந்த விஷயத்தில் நெறிமுறையை ஏன் டூரிங்-முழுமையாக இருக்க அனுமதிக்கக்கூடாது?
நாணயம் மற்றும் வெளியீடு
எத்திரியம் பிணையம் அதன் சொந்த உள்ளமைக்கப்பட்ட நாணயமான ஈதரை (ether) உள்ளடக்கியது, இது பல்வேறு வகையான டிஜிட்டல் சொத்துக்களுக்கு இடையே திறமையான பரிமாற்றத்தை அனுமதிக்க முதன்மை நீர்மைத்தன்மை அடுக்கை வழங்கும் இரட்டை நோக்கத்திற்கும், மிக முக்கியமாக, பரிவர்த்தனை கட்டணங்களைச் செலுத்துவதற்கான ஒரு பொறிமுறையை வழங்குவதற்கும் உதவுகிறது. வசதிக்காகவும் எதிர்கால வாதத்தைத் தவிர்க்கவும் (பிட்காயினில் தற்போதைய mBTC/uBTC/satoshi விவாதத்தைப் பார்க்கவும்), மதிப்புகள் முன்கூட்டியே பெயரிடப்படும்:
- 1: Wei
- 1012: சபோ
- 1015: ஃபின்னி
- 1018: ஈதர்
இது "டாலர்கள்" மற்றும் "சென்ட்கள்" அல்லது "BTC" மற்றும் "சடோஷி" என்ற கருத்தின் விரிவாக்கப்பட்ட பதிப்பாக எடுத்துக்கொள்ளப்பட வேண்டும். எதிர்காலத்தில், சாதாரணப் பரிவர்த்தனைகளுக்கு "ஈதர்", நுண்பரிவர்த்தனைகளுக்கு "ஃபின்னி" மற்றும் கட்டணங்கள் மற்றும் நெறிமுறைச் செயலாக்கம் பற்றிய தொழில்நுட்ப விவாதங்களுக்கு "சபோ" மற்றும் "Wei" ஆகியவை பயன்படுத்தப்படும் என்று நாங்கள் எதிர்பார்க்கிறோம்; மீதமுள்ள மதிப்புகள் பின்னர் பயனுள்ளதாக மாறக்கூடும், மேலும் இந்த நேரத்தில் கிளையண்ட்களில் சேர்க்கப்படக்கூடாது.
வெளியீட்டு மாதிரி பின்வருமாறு இருக்கும்:
- ஒரு BTC-க்கு 1000-2000 ஈதர் என்ற விலையில் நாணய விற்பனையில் ஈதர் வெளியிடப்படும், இது எத்திரியம் நிறுவனத்திற்கு நிதியளிப்பதற்கும், Mastercoin மற்றும் NXT போன்ற பிற தளங்களால் வெற்றிகரமாகப் பயன்படுத்தப்பட்ட மேம்பாட்டிற்குச் பணம் செலுத்துவதற்கும் நோக்கமாகக் கொண்ட ஒரு பொறிமுறையாகும். முந்தைய வாங்குபவர்கள் பெரிய தள்ளுபடிகளால் பயனடைவார்கள். விற்பனையிலிருந்து பெறப்பட்ட BTC முழுவதுமாக டெவலப்பர்களுக்குச் சம்பளம் மற்றும் வெகுமதிகளைச் செலுத்தப் பயன்படுத்தப்படும், மேலும் எத்திரியம் மற்றும் மறைக்குறியீட்டு நாணயச் சூழலமைப்பில் உள்ள பல்வேறு இலாப நோக்கற்ற மற்றும் இலாப நோக்கற்ற திட்டங்களில் முதலீடு செய்யப்படும்.
- விற்கப்பட்ட மொத்தத் தொகையில் 0.099x (60102216 ETH) ஆரம்பப் பங்களிப்பாளர்களுக்கு இழப்பீடு வழங்கவும், தொடக்கத் தொகுதிக்கு முன் ETH-மதிப்பிலான செலவுகளைச் செலுத்தவும் நிறுவனத்திற்கு ஒதுக்கப்படும்.
- விற்கப்பட்ட மொத்தத் தொகையில் 0.099x நீண்ட கால இருப்பாகப் பராமரிக்கப்படும்.
- விற்கப்பட்ட மொத்தத் தொகையில் 0.26x அந்தப் புள்ளிக்குப் பிறகு என்றென்றும் வருடத்திற்குச் சுரங்கர்களுக்கு ஒதுக்கப்படும்.
| குழு | தொடக்கத்தில் | 1 வருடத்திற்குப் பிறகு | 5 வருடங்களுக்குப் பிறகு |
|---|---|---|---|
| நாணய அலகுகள் | 1.198X | 1.458X | 2.498X |
| வாங்குபவர்கள் | 83.5% | 68.6% | 40.0% |
| விற்பனைக்கு முன் செலவிடப்பட்ட இருப்பு | 8.26% | 6.79% | 3.96% |
| விற்பனைக்குப் பின் பயன்படுத்தப்பட்ட இருப்பு | 8.26% | 6.79% | 3.96% |
| சுரங்கர்கள் | 0% | 17.8% | 52.0% |
நீண்ட கால வழங்கல் வளர்ச்சி விகிதம் (சதவீதம்)
நேரியல் நாணய வெளியீடு இருந்தபோதிலும், பிட்காயினைப் போலவே காலப்போக்கில் வழங்கல் வளர்ச்சி விகிதம் பூஜ்ஜியத்தை நோக்கிச் செல்கிறது.
மேற்கண்ட மாதிரியில் உள்ள இரண்டு முக்கியத் தேர்வுகள் (1) அறக்கட்டளைக் குழுவின் (endowment pool) இருப்பு மற்றும் அளவு, மற்றும் (2) பிட்காயினில் உள்ளதைப் போல வரம்பிடப்பட்ட வழங்கலுக்கு மாறாக, நிரந்தரமாக வளரும் நேரியல் வழங்கலின் இருப்பு. அறக்கட்டளைக் குழுவின் நியாயம் பின்வருமாறு. அறக்கட்டளைக் குழு இல்லாவிட்டால், அதே பணவீக்க விகிதத்தை வழங்க நேரியல் வெளியீடு 0.217x ஆகக் குறைந்தால், ஈதரின் மொத்த அளவு 16.5% குறைவாக இருக்கும், எனவே ஒவ்வொரு அலகும் 19.8% அதிக மதிப்புடையதாக இருக்கும். எனவே, சமநிலையில் 19.8% அதிக ஈதர் விற்பனையில் வாங்கப்படும், எனவே ஒவ்வொரு அலகும் மீண்டும் முன்பு போலவே சரியாக மதிப்புமிக்கதாக இருக்கும். நிறுவனம் 1.198x அளவு BTC-ஐக் கொண்டிருக்கும், இது இரண்டு துண்டுகளாகப் பிரிக்கப்பட்டதாகக் கருதலாம்: அசல் BTC மற்றும் கூடுதல் 0.198x. எனவே, இந்த நிலைமை அறக்கட்டளைக்கு சரியாகச் சமமானதாகும், ஆனால் ஒரு முக்கியமான வித்தியாசத்துடன்: நிறுவனம் முற்றிலும் BTC-ஐ வைத்திருக்கிறது, எனவே ஈதர் அலகின் மதிப்பை ஆதரிக்க ஊக்கமளிக்கப்படவில்லை.
நிரந்தர நேரியல் வழங்கல் வளர்ச்சி மாதிரியானது பிட்காயினில் அதிகப்படியான செல்வச் செறிவு என்று சிலர் கருதும் அபாயத்தைக் குறைக்கிறது, மேலும் நிகழ்கால மற்றும் எதிர்காலக் காலங்களில் வாழும் தனிநபர்களுக்கு நாணய அலகுகளைப் பெறுவதற்கான நியாயமான வாய்ப்பை அளிக்கிறது, அதே நேரத்தில் ஈதரைப் பெறுவதற்கும் வைத்திருப்பதற்கும் வலுவான ஊக்கத்தைத் தக்க வைத்துக் கொள்கிறது, ஏனெனில் சதவீதமாக "வழங்கல் வளர்ச்சி விகிதம்" காலப்போக்கில் பூஜ்ஜியத்தை நோக்கிச் செல்கிறது. கவனக்குறைவு, இறப்பு போன்றவற்றால் நாணயங்கள் காலப்போக்கில் எப்போதும் இழக்கப்படுவதால், நாணய இழப்பை வருடத்திற்கு மொத்த வழங்கலின் சதவீதமாக மாதிரியாக்க முடியும் என்பதால், புழக்கத்தில் உள்ள மொத்த நாணய வழங்கல் உண்மையில் வருடாந்திர வெளியீட்டை இழப்பு விகிதத்தால் வகுக்கப்படும் மதிப்பிற்குச் சமமான மதிப்பில் இறுதியில் நிலைபெறும் என்று நாங்கள் கருதுகிறோம் (எ.கா., 1% இழப்பு விகிதத்தில், வழங்கல் 26X-ஐ அடைந்தவுடன் 0.26X சுரங்கப்பணி செய்யப்படும் மற்றும் ஒவ்வொரு ஆண்டும் 0.26X இழக்கப்படும், இது ஒரு சமநிலையை உருவாக்கும்).
எதிர்காலத்தில், பாதுகாப்பிற்காக எத்திரியம் உரிமைச் சான்று (PoS) மாதிரிக்கு மாற வாய்ப்புள்ளது என்பதை நினைவில் கொள்க, இது வெளியீட்டுத் தேவையை வருடத்திற்குப் பூஜ்ஜியத்திற்கும் 0.05X-க்கும் இடையில் குறைக்கும். எத்திரியம் நிறுவனம் நிதியை இழந்தால் அல்லது வேறு எந்தக் காரணத்திற்காகவும் மறைந்துவிட்டால், நாங்கள் ஒரு "சமூக ஒப்பந்தத்தை" (social contract) திறந்து விடுகிறோம்: எத்திரியத்தின் எதிர்கால வேட்பாளர் பதிப்பை உருவாக்க எவருக்கும் உரிமை உண்டு, ஒரே நிபந்தனை என்னவென்றால், ஈதரின் அளவு அதிகபட்சம் 60102216 * (1.198 + 0.26 * n)-க்குச் சமமாக இருக்க வேண்டும், இங்கு n என்பது தொடக்கத் தொகுதிக்குப் பிந்தைய ஆண்டுகளின் எண்ணிக்கையாகும். PoS-உந்துதல் வழங்கல் விரிவாக்கத்திற்கும் அதிகபட்ச அனுமதிக்கப்பட்ட வழங்கல் விரிவாக்கத்திற்கும் இடையிலான வேறுபாட்டின் சில அல்லது அனைத்தையும் மேம்பாட்டிற்குச் செலுத்த உருவாக்குநர்கள் கூட்டமாக விற்கவோ அல்லது ஒதுக்கவோ சுதந்திரமாக உள்ளனர். சமூக ஒப்பந்தத்திற்கு இணங்காத வேட்பாளர் மேம்படுத்தல்கள் நியாயமான முறையில் இணக்கமான பதிப்புகளாகக் கவை (fork) செய்யப்படலாம்.
சுரங்கப்பணி மையப்படுத்தல்
பிட்காயின் சுரங்கப்பணி அல்காரிதம், தொகுதித் தலைப்பின் சற்று மாற்றியமைக்கப்பட்ட பதிப்புகளில் SHA256-ஐ மில்லியன் கணக்கான முறை மீண்டும் மீண்டும் கணக்கிடுவதன் மூலம் செயல்படுகிறது, இறுதியில் ஒரு கணு இலக்கை விடக் குறைவான ஹாஷைக் கொண்ட ஒரு பதிப்பைக் கொண்டு வரும் வரை (தற்போது சுமார் 2192). இருப்பினும், இந்தச் சுரங்கப்பணி அல்காரிதம் இரண்டு வகையான மையப்படுத்தலுக்கு ஆளாகக்கூடியது. முதலாவதாக, சுரங்கச் சூழலமைப்பு ASIC-களால் (பயன்பாடு சார்ந்த ஒருங்கிணைந்த சுற்றுகள்) ஆதிக்கம் செலுத்தப்படுகிறது, கணினி சில்லுகள் பிட்காயின் சுரங்கப்பணியின் குறிப்பிட்ட பணிக்காக வடிவமைக்கப்பட்டுள்ளன, எனவே ஆயிரக்கணக்கான மடங்கு அதிகச் செயல்திறன் கொண்டவை. இதன் பொருள் பிட்காயின் சுரங்கப்பணி இனி மிகவும் பரவலாக்கப்பட்ட மற்றும் சமத்துவமான நாட்டம் அல்ல, இதில் திறம்படப் பங்கேற்க மில்லியன் கணக்கான டாலர்கள் மூலதனம் தேவைப்படுகிறது. இரண்டாவதாக, பெரும்பாலான பிட்காயின் சுரங்கர்கள் உண்மையில் தொகுதி சரிபார்ப்பை உள்ளூரில் செய்வதில்லை; அதற்குப் பதிலாக, தொகுதித் தலைப்புகளை வழங்க அவர்கள் ஒரு மையப்படுத்தப்பட்ட சுரங்கக் குழுவை நம்பியிருக்கிறார்கள். இந்தச் சிக்கல் விவாதிக்கக்கூடிய வகையில் மோசமானது: இதை எழுதும் நேரத்தில், முதல் மூன்று சுரங்கக் குழுக்கள் பிட்காயின் பிணையத்தில் தோராயமாக 50% செயலாக்கத் திறனை மறைமுகமாகக் கட்டுப்படுத்துகின்றன, இருப்பினும் ஒரு குழு அல்லது கூட்டணி 51% தாக்குதலுக்கு முயற்சித்தால் சுரங்கர்கள் மற்ற சுரங்கக் குழுக்களுக்கு மாறலாம் என்ற உண்மையால் இது தணிக்கப்படுகிறது.
எத்திரியத்தில் தற்போதைய நோக்கம் என்னவென்றால், சுரங்கர்கள் நிலையிலிருந்து சீரற்ற தரவைப் பெறவும், தொகுதிச்சங்கிலியில் உள்ள கடைசி N தொகுதிகளிலிருந்து தோராயமாகத் தேர்ந்தெடுக்கப்பட்ட சில பரிவர்த்தனைகளைக் கணக்கிடவும், முடிவின் ஹாஷைத் திருப்பித் தரவும் தேவைப்படும் ஒரு சுரங்கப்பணி அல்காரிதத்தைப் பயன்படுத்துவதாகும். இது இரண்டு முக்கியமான நன்மைகளைக் கொண்டுள்ளது. முதலாவதாக, எத்திரியம் ஒப்பந்தங்கள் எந்த வகையான கணக்கீட்டையும் உள்ளடக்கலாம், எனவே எத்திரியம் ASIC அடிப்படையில் பொதுவான கணக்கீட்டிற்கான ASIC ஆக இருக்கும் - அதாவது, ஒரு சிறந்த CPU. இரண்டாவதாக, சுரங்கப்பணிக்கு முழுத் தொகுதிச்சங்கிலிக்கான அணுகல் தேவைப்படுகிறது, இது சுரங்கர்களை முழுத் தொகுதிச்சங்கிலியையும் சேமிக்கக் கட்டாயப்படுத்துகிறது மற்றும் குறைந்தபட்சம் ஒவ்வொரு பரிவர்த்தனையையும் சரிபார்க்கும் திறன் கொண்டதாக இருக்க வேண்டும். இது மையப்படுத்தப்பட்ட சுரங்கக் குழுக்களின் தேவையை நீக்குகிறது; சுரங்கக் குழுக்கள் வெகுமதி விநியோகத்தின் சீரற்ற தன்மையைச் சமன் செய்யும் நியாயமான பங்கை இன்னும் செய்ய முடியும் என்றாலும், இந்தச் செயல்பாட்டை மையக் கட்டுப்பாடு இல்லாத சக-முனையக் குழுக்களால் சமமாகச் சிறப்பாகச் செய்ய முடியும்.
இந்த மாதிரி சோதிக்கப்படாதது, மேலும் ஒப்பந்தச் செயலாக்கத்தைச் சுரங்கப்பணி அல்காரிதமாகப் பயன்படுத்தும்போது சில புத்திசாலித்தனமான மேம்படுத்தல்களைத் தவிர்ப்பதில் வழியில் சிரமங்கள் இருக்கலாம். இருப்பினும், இந்த அல்காரிதத்தின் குறிப்பிடத்தக்க சுவாரஸ்யமான அம்சம் என்னவென்றால், சில ASIC-களைத் தடுப்பதற்காகவே வடிவமைக்கப்பட்ட அதிக எண்ணிக்கையிலான ஒப்பந்தங்களைத் தொகுதிச்சங்கிலியில் அறிமுகப்படுத்துவதன் மூலம், "கிணற்றில் விஷம் கலக்க" (poison the well) இது யாரையும் அனுமதிக்கிறது. ASIC உற்பத்தியாளர்கள் ஒருவரையொருவர் தாக்கிக் கொள்ள இத்தகைய தந்திரத்தைப் பயன்படுத்துவதற்கான பொருளாதார ஊக்கத்தொகைகள் உள்ளன. எனவே, நாங்கள் உருவாக்கும் தீர்வு இறுதியில் முற்றிலும் தொழில்நுட்ப ரீதியான தீர்வாக இல்லாமல் ஒரு தகவமைப்புப் பொருளாதார மனிதத் தீர்வாகும்.
அளவிடுதல் (Scalability)
எத்திரியம் பற்றிய ஒரு பொதுவான கவலை அளவிடுதல் சிக்கலாகும். பிட்காயினைப் போலவே, ஒவ்வொரு பரிவர்த்தனையும் பிணையத்தில் உள்ள ஒவ்வொரு கணுவாலும் செயலாக்கப்பட வேண்டும் என்ற குறைபாட்டால் எத்திரியமும் பாதிக்கப்படுகிறது. பிட்காயினுடன், தற்போதைய தொகுதிச்சங்கிலியின் அளவு சுமார் 15 GB-இல் உள்ளது, இது மணிக்கு 1 MB வீதம் வளர்கிறது. பிட்காயின் பிணையம் விசா-வின் (Visa) வினாடிக்கு 2000 பரிவர்த்தனைகளைச் செயலாக்கினால், அது மூன்று வினாடிகளுக்கு 1 MB வீதம் வளரும் (மணிக்கு 1 GB, வருடத்திற்கு 8 TB). எத்திரியம் இதேபோன்ற வளர்ச்சி முறையால் பாதிக்கப்பட வாய்ப்புள்ளது, பிட்காயினில் உள்ளதைப் போல ஒரு நாணயத்திற்குப் பதிலாக எத்திரியம் தொகுதிச்சங்கிலியின் மேல் பல பயன்பாடுகள் இருக்கும் என்ற உண்மையால் இது மோசமடைகிறது, ஆனால் எத்திரியம் முழு முனையங்கள் முழுத் தொகுதிச்சங்கிலி வரலாற்றிற்குப் பதிலாக நிலையை மட்டுமே சேமிக்க வேண்டும் என்ற உண்மையால் இது மேம்படுத்தப்படுகிறது.
இவ்வளவு பெரிய தொகுதிச்சங்கிலி அளவின் சிக்கல் மையப்படுத்தல் அபாயமாகும். தொகுதிச்சங்கிலியின் அளவு, 100 TB ஆக அதிகரித்தால், மிகச் சிறிய எண்ணிக்கையிலான பெரிய வணிகங்கள் மட்டுமே முழு முனையங்களை இயக்கும், அனைத்து வழக்கமான பயனர்களும் இலகுரக SPV கணுக்களைப் பயன்படுத்துவார்கள். அத்தகைய சூழ்நிலையில், முழு முனையங்கள் ஒன்றிணைந்து லாபகரமான முறையில் ஏமாற்ற ஒப்புக்கொள்ளலாம் (எ.கா., தொகுதி வெகுமதியை மாற்றுவது, தங்களுக்கு BTC-ஐ வழங்குவது) என்ற சாத்தியமான கவலை எழுகிறது. இலகு முனைகளுக்கு இதை உடனடியாகக் கண்டறிய எந்த வழியும் இருக்காது. நிச்சயமாக, குறைந்தபட்சம் ஒரு நேர்மையான முழு முனையமாவது இருக்க வாய்ப்புள்ளது, மேலும் சில மணிநேரங்களுக்குப் பிறகு மோசடி பற்றிய தகவல்கள் ரெட்டிட் (Reddit) போன்ற சேனல்கள் மூலம் கசியும், ஆனால் அந்த நேரத்தில் அது மிகவும் தாமதமாகிவிடும்: கொடுக்கப்பட்ட தொகுதிகளைக் கருப்புப் பட்டியலில் சேர்ப்பதற்கான முயற்சியை ஏற்பாடு செய்வது சாதாரணப் பயனர்களின் பொறுப்பாகும், இது வெற்றிகரமான 51% தாக்குதலை நடத்துவதைப் போன்ற அளவிலான ஒரு பெரிய மற்றும் சாத்தியமற்ற ஒருங்கிணைப்புச் சிக்கலாகும். பிட்காயினைப் பொறுத்தவரை, இது தற்போது ஒரு சிக்கலாக உள்ளது, ஆனால் இந்தச் சிக்கலைத் தணிக்கும் பீட்டர் டோட் (Peter Todd) பரிந்துரைத்த (opens in a new tab) தொகுதிச்சங்கிலி மாற்றம் உள்ளது.
சமீப காலங்களில், இந்தச் சிக்கலைச் சமாளிக்க எத்திரியம் இரண்டு கூடுதல் உத்திகளைப் பயன்படுத்தும். முதலாவதாக, தொகுதிச்சங்கிலி அடிப்படையிலான சுரங்கப்பணி அல்காரிதம்கள் காரணமாக, குறைந்தபட்சம் ஒவ்வொரு சுரங்கரும் முழு முனையமாக இருக்கக் கட்டாயப்படுத்தப்படுவார்கள், இது முழு முனையங்களின் எண்ணிக்கையில் குறைந்த வரம்பை உருவாக்குகிறது. இரண்டாவதாக மற்றும் மிக முக்கியமாக, ஒவ்வொரு பரிவர்த்தனையையும் செயலாக்கிய பிறகுத் தொகுதிச்சங்கிலியில் ஒரு இடைநிலை நிலை மர வேரை (intermediate state tree root) சேர்ப்போம். தொகுதி சரிபார்ப்பு மையப்படுத்தப்பட்டிருந்தாலும், ஒரு நேர்மையான சரிபார்க்கும் கணு இருக்கும் வரை, சரிபார்ப்பு நெறிமுறை மூலம் மையப்படுத்தல் சிக்கலைத் தவிர்க்கலாம். ஒரு சுரங்கர் செல்லுபடியற்ற தொகுதியை வெளியிட்டால், அந்தத் தொகுதி மோசமாக வடிவமைக்கப்பட்டிருக்க வேண்டும் அல்லது நிலை S[n] தவறாக இருக்க வேண்டும். S[0] சரியானது என்று அறியப்படுவதால், S[i-1] சரியாக இருக்கும் இடத்தில் தவறான சில முதல் நிலை S[i] இருக்க வேண்டும். சரிபார்க்கும் கணு APPLY(S[i-1],TX[i]) -> S[i]-ஐச் செயலாக்கத் தேவையான பாட்ரிசியா (Patricia) மரக் கணுக்களின் துணைக்குழுவைக் கொண்ட "செல்லுபடியற்றதற்கான சான்றுடன்" குறியீடு i-ஐ வழங்கும். கணக்கீட்டின் அந்தப் பகுதியை இயக்கக் கணுக்கள் அந்தக் கணுக்களைப் பயன்படுத்த முடியும், மேலும் உருவாக்கப்பட்ட S[i] வழங்கப்பட்ட S[i]-உடன் பொருந்தவில்லை என்பதைக் காண முடியும்.
மற்றொரு, மிகவும் அதிநவீன தாக்குதல், தீங்கிழைக்கும் சுரங்கர்கள் முழுமையற்ற தொகுதிகளை வெளியிடுவதை உள்ளடக்கும், எனவே தொகுதிகள் செல்லுபடியாகுமா இல்லையா என்பதைத் தீர்மானிக்க முழுத் தகவலும் கூட இல்லை. இதற்கான தீர்வு ஒரு சவால்-பதில் (challenge-response) நெறிமுறையாகும்: சரிபார்ப்புக் கணுக்கள் இலக்குப் பரிவர்த்தனைக் குறியீடுகளின் வடிவத்தில் "சவால்களை" வெளியிடுகின்றன, மேலும் ஒரு கணுவைப் பெற்றவுடன், சுரங்கர் அல்லது மற்றொரு சரிபார்ப்பி என மற்றொரு கணு செல்லுபடியாகும் சான்றாகப் பாட்ரிசியா கணுக்களின் துணைக்குழுவை வழங்கும் வரை இலகு முனை தொகுதியை நம்பத்தகாததாகக் கருதுகிறது.
முடிவுரை
எத்திரியம் நெறிமுறை ஆரம்பத்தில் ஒரு மறைக்குறியீட்டு நாணயத்தின் மேம்படுத்தப்பட்ட பதிப்பாக உருவகப்படுத்தப்பட்டது, இது மிகவும் பொதுமைப்படுத்தப்பட்ட நிரலாக்க மொழி மூலம் தொகுதிச்சங்கிலிசார் எஸ்க்ரோ, திரும்பப் பெறுதல் வரம்புகள், நிதி ஒப்பந்தங்கள், சூதாட்ட சந்தைகள் மற்றும் இது போன்ற மேம்பட்ட அம்சங்களை வழங்குகிறது. எத்திரியம் நெறிமுறை எந்தவொரு செயலிகளையும் நேரடியாக "ஆதரிக்காது", ஆனால் டியூரிங்-முழுமையான (Turing-complete) நிரலாக்க மொழியின் இருப்பு, எந்தவொரு பரிவர்த்தனை வகை அல்லது செயலிக்கும் தன்னிச்சையான ஒப்பந்தங்களை கோட்பாட்டளவில் உருவாக்க முடியும் என்பதைக் குறிக்கிறது. இருப்பினும், எத்திரியம் பற்றிய மிகவும் சுவாரஸ்யமான விஷயம் என்னவென்றால், எத்திரியம் நெறிமுறை வெறும் நாணயம் என்பதைத் தாண்டி வெகுதூரம் செல்கிறது. பரவலாக்கப்பட்ட கோப்பு சேமிப்பகம், பரவலாக்கப்பட்ட கணக்கீடு மற்றும் பரவலாக்கப்பட்ட கணிப்பு சந்தைகள் போன்றவற்றைச் சுற்றியுள்ள நெறிமுறைகள், டஜன் கணக்கான பிற ஒத்த கருத்துகளுடன், கணக்கீட்டுத் துறையின் செயல்திறனை கணிசமாக அதிகரிக்கும் திறனைக் கொண்டுள்ளன, மேலும் முதல் முறையாக ஒரு பொருளாதார அடுக்கைச் சேர்ப்பதன் மூலம் பிற சக-முனைய நெறிமுறைகளுக்கு மிகப்பெரிய ஊக்கத்தை வழங்குகின்றன. இறுதியாக, பணத்துடன் எந்த தொடர்பும் இல்லாத கணிசமான அளவிலான செயலிகளும் உள்ளன.
எத்திரியம் நெறிமுறையால் செயல்படுத்தப்பட்ட தன்னிச்சையான நிலை மாற்றச் செயல்பாட்டின் கருத்து, தனித்துவமான திறனைக் கொண்ட ஒரு தளத்தை வழங்குகிறது; தரவு சேமிப்பகம், சூதாட்டம் அல்லது நிதியியலில் உள்ள குறிப்பிட்ட செயலிகளின் தொகுப்பிற்காக வடிவமைக்கப்பட்ட ஒரு மூடிய-முடிவுடைய, ஒற்றை-நோக்க நெறிமுறையாக இருப்பதற்குப் பதிலாக, எத்திரியம் வடிவமைப்பிலேயே திறந்த-முடிவுடையது, மேலும் வரும் ஆண்டுகளில் மிக அதிக எண்ணிக்கையிலான நிதி மற்றும் நிதி அல்லாத நெறிமுறைகளுக்கு ஒரு அடிப்படை அடுக்காக செயல்படுவதற்கு இது மிகவும் பொருத்தமானது என்று நாங்கள் நம்புகிறோம்.
குறிப்புகள் மற்றும் மேலதிக வாசிப்பு
குறிப்புகள்
- ஒரு பிட்காயின் முகவரி என்பது நீள்வட்ட வளைவு பொது விசையின் ஹாஷ் ஆகும், அது பொது விசை அல்ல என்பதை ஒரு நுட்பமான வாசகர் கவனிக்கலாம். இருப்பினும், பொது விசை ஹாஷை ஒரு பொது விசை என்று குறிப்பிடுவது முற்றிலும் சரியான குறியாக்கவியல் சொற்பிரயோகமாகும். ஏனெனில் பிட்காயினின் குறியாக்கவியலை ஒரு தனிப்பயன் டிஜிட்டல் கையொப்ப அல்காரிதமாகக் கருதலாம், இதில் பொது விசை என்பது ECC பொது விசையின் ஹாஷைக் கொண்டுள்ளது, கையொப்பம் என்பது ECC கையொப்பத்துடன் இணைக்கப்பட்ட ECC பொது விசையைக் கொண்டுள்ளது, மேலும் சரிபார்ப்பு அல்காரிதம் என்பது கையொப்பத்தில் உள்ள ECC பொது விசையை பொது விசையாக வழங்கப்பட்ட ECC பொது விசை ஹாஷுடன் சரிபார்த்து, பின்னர் ECC பொது விசைக்கு எதிராக ECC கையொப்பத்தை சரிபார்ப்பதை உள்ளடக்கியது.
- தொழில்நுட்ப ரீதியாக, முந்தைய 11 தொகுதிகளின் இடைநிலை.
- உட்புறமாக, 2 மற்றும் "CHARLIE" ஆகிய இரண்டும் எண்களாகும், பிந்தையது பிக்-எண்டியன் பேஸ் 256 பிரதிநிதித்துவத்தில் உள்ளது. எண்கள் குறைந்தபட்சம் 0 ஆகவும் அதிகபட்சம் 2256-1 ஆகவும் இருக்கலாம்.
மேலதிக வாசிப்பு
- உள்ளார்ந்த மதிப்பு (opens in a new tab)
- திறன் சொத்து (opens in a new tab)
- திறன் ஒப்பந்தங்கள் (opens in a new tab)
- B-money (opens in a new tab)
- மறுபயன்பாட்டு பணிச் சான்றுகள் (opens in a new tab)
- உரிமையாளர் அதிகாரத்துடன் பாதுகாப்பான சொத்து உரிமைகள் (opens in a new tab)
- பிட்காயின் வெள்ளை அறிக்கை (opens in a new tab)
- Namecoin (opens in a new tab)
- Zooko-வின் முக்கோணம் (opens in a new tab)
- கலர்டு காயின்ஸ் வெள்ளை அறிக்கை (opens in a new tab)
- மாஸ்டர்காயின் வெள்ளை அறிக்கை (opens in a new tab)
- பரவலாக்கப்பட்ட தன்னாட்சி நிறுவனங்கள், பிட்காயின் மேகசின் (opens in a new tab)
- எளிமைப்படுத்தப்பட்ட கட்டண சரிபார்ப்பு (opens in a new tab)
- மெர்க்கல் மரங்கள் (opens in a new tab)
- பாட்ரிசியா மரங்கள் (opens in a new tab)
- GHOST (opens in a new tab)
- StorJ மற்றும் தன்னாட்சி முகவர்கள், ஜெஃப் கார்சிக் (opens in a new tab)
- டியூரிங் திருவிழாவில் திறன் சொத்து குறித்து மைக் ஹியர்ன் (opens in a new tab)
- எத்திரியம் RLP
- எத்திரியம் மெர்க்கல் பாட்ரிசியா மரங்கள்
- மெர்க்கல் கூட்டு மரங்கள் குறித்து பீட்டர் டாட் (opens in a new tab)
வெள்ளை அறிக்கையின் வரலாற்றுக்கு, இந்த விக்கியைப் (opens in a new tab) பார்க்கவும்.
எத்திரியம், சமூகம் சார்ந்த பல திறந்த மூல மென்பொருள் திட்டங்களைப் போலவே, அதன் தொடக்கத்திலிருந்தே பரிணாம வளர்ச்சியடைந்துள்ளது. எத்திரியத்தின் சமீபத்திய மேம்பாடுகள் மற்றும் நெறிமுறையில் மாற்றங்கள் எவ்வாறு செய்யப்படுகின்றன என்பதைப் பற்றி அறிய, இந்த வழிகாட்டியைப் பரிந்துரைக்கிறோம்.





