முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்

தொகுதிச்சங்கிலி 101: ஒரு காட்சி விளக்கம்

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

Date published: 13 நவம்பர், 2016

தொகுதிச்சங்கிலி தொழில்நுட்பம் எவ்வாறு செயல்படுகிறது என்பதற்கான ஆண்டர்ஸ் பிரவுன்வொர்த்தின் காட்சி விளக்கம், இதில் SHA-256 ஹாஷ் செய்தல், தொகுதிகள், சுரங்கப்பணி, தொகுதிச்சங்கிலிகள், பகிரப்பட்ட பேரேடுகள், வில்லைகள் மற்றும் பலவற்றை உள்ளடக்கிய ஒரு வழிகாட்டுதல் அடங்கும்.

இந்த உரைவடிவம் ஆண்டர்ஸ் பிரவுன்வொர்த் வெளியிட்ட அசல் வீடியோ உரைவடிவத்தின் (opens in a new tab) அணுகக்கூடிய நகலாகும். இது வாசிப்புத்திறனுக்காகச் சிறிதளவு திருத்தப்பட்டுள்ளது.

SHA-256 ஹாஷ் (0:01)

இது ஒரு தொகுதிச்சங்கிலி விளக்கமாகும். இதை நாம் மிகவும் காட்சிப்பூர்வமான முறையில் செய்யப்போகிறோம் — ஒரு தொகுதிச்சங்கிலி என்றால் என்ன என்பதன் முக்கியப் பகுதிகளைப் படிப்படியாகப் பார்ப்பதன் மூலம் இதைப் புரிந்துகொள்வதற்கு மிகவும் எளிதாக்கப் போகிறோம்.

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

எனவே இது "Anders" என்ற பெயரின் ஹாஷ் ஆகும், அனைத்தும் சிறிய எழுத்துக்களில் உள்ளன — இது 19ea உடன் தொடங்குகிறது. நான் அதை அழித்துவிட்டு மீண்டும் "Anders" என்று தட்டச்சு செய்தால், அது 19ea உடன் தொடங்குவதை நீங்கள் காணலாம் — அதே சரியான ஹாஷ். அந்த வகையில் இது இந்தத் தரவின் டிஜிட்டல் கைரேகையாகும். இங்கு என்ன தரவு இருந்தாலும், ஒவ்வொரு முறையும் நீங்கள் அதே தரவைச் சரியாகத் தட்டச்சு செய்யும்போதும் அதே ஹாஷை நீங்கள் பெறுவீர்கள்.

நான் விரும்பும் எதையும் தட்டச்சு செய்யலாம். நீங்கள் எதையும் தட்டச்சு செய்யாமலும் இருக்கலாம் — e3b0 — அது ஒன்றுமில்லாததற்கான ஹாஷ் ஆகும். அல்லது நீங்கள் ஏராளமான விஷயங்களைத் தட்டச்சு செய்யலாம். சொல்லப்போனால், நீங்கள் லைப்ரரி ஆஃப் காங்கிரஸை (Library of Congress) இங்கு உள்ளீடு செய்தாலும் உங்களுக்கு ஒரு ஹாஷ் கிடைக்கும். சுவாரஸ்யமான விஷயம் என்னவென்றால், மிகக் குறைந்த அளவிலான தகவல் இருந்தாலும், தகவல் இல்லாவிட்டாலும் அல்லது முழு லைப்ரரி ஆஃப் காங்கிரஸ் இருந்தாலும், நீங்கள் எப்போதும் இவ்வளவு நீளமான ஒரு ஹாஷையே பெறுவீர்கள். இது என்னவாக இருக்கும் என்பதை உங்களால் முன்கூட்டியே கணிக்க முடியாது — ஹாஷ் என்ன என்பதைக் கண்டறிய நீங்கள் தரவை உள்ளீடு செய்ய வேண்டும், ஆனால் நீங்கள் எத்தனை முறை அதே தகவலைச் சரியாக உள்ளீடு செய்தாலும் எப்போதும் அதே ஹாஷையே பெறுவீர்கள்.

தொகுதி (2:10)

நான் என்ன செய்யப் போகிறேன் என்றால், ஹாஷ் என்ற இந்தக் கருத்தை நாம் தொகுதி என்று அழைக்கப்போகும் ஒன்றாக விரிவுபடுத்தப் போகிறேன். ஒரு தொகுதி என்பது ஹாஷைப் போலவே இருக்கும், ஆனால் தரவுப் பகுதி மூன்று பிரிவுகளாகப் பிரிக்கப்பட்டுள்ளது: ஒன்று "தொகுதி" என்று அழைக்கப்படுகிறது — இது வெறும் ஒரு எண், இது தொகுதி எண் 1 — ஒரு "நான்ஸ்", இது மற்றொரு எண், பின்னர் நாம் முன்பு பார்த்ததைப் போலவே சில தரவுகள்.

இந்த அனைத்து தகவல்களின் ஹாஷ் கீழே உள்ளது, மேலும் இது நான்கு பூஜ்ஜியங்களுடன் தொடங்குகிறது. அது ஒப்பீட்டளவில் ஒரு அசாதாரண ஹாஷ் ஆகும் — அவற்றில் பெரும்பாலானவை அதுபோல நான்கு பூஜ்ஜியங்களுடன் தொடங்கப்போவதில்லை. ஆனால் இது அவ்வாறு தொடங்குகிறது, மேலும் அவ்வாறு தொடங்குவதால், முற்றிலும் தன்னிச்சையாக, இந்தத் தொகுதி "கையொப்பமிடப்பட்டுள்ளது" (signed) என்று நான் கூறப்போகிறேன்.

இந்தத் தகவலின் எந்தவொரு பகுதியையும் நான் மாற்றினால் என்ன நடக்கும்? நான் இங்கு ஏதேனும் தட்டச்சு செய்கிறேன் என்று வைத்துக்கொள்வோம் — ஹாஷ் மாறப்போகிறது, மேலும் அது நான்கு பூஜ்ஜியங்களுடன் தொடங்குவதற்கான வாய்ப்பு என்ன? மிகவும் குறைவு. நான் "hi" என்று மட்டும் தட்டச்சு செய்கிறேன் — அதைப் பாருங்கள், இந்த ஹாஷ் நான்கு பூஜ்ஜியங்களுடன் தொடங்கவில்லை, மேலும் பின்னணி சிவப்பு நிறமாக மாறிவிட்டது. எனவே இந்தத் தகவலைக் கொண்ட இந்தத் தொகுதி செல்லுபடியாகும் அல்லது கையொப்பமிடப்பட்ட தொகுதி அல்ல என்பதை இப்போது நீங்கள் அறிவீர்கள்.

இங்குதான் நான்ஸ் வருகிறது. நான்ஸ் என்பது ஹாஷை மீண்டும் நான்கு பூஜ்ஜியங்களுடன் தொடங்கச் செய்யும் ஒரு மதிப்பைக் கண்டறிய நீங்கள் அமைக்கக்கூடிய ஒரு எண் மட்டுமே. நான் நாள் முழுவதும் இங்கு அமர்ந்து எண்களைத் தட்டச்சு செய்யலாம், ஆனால் என்னிடம் இந்தச் சிறிய "Mine" (சுரங்கப்பணி செய்) பொத்தான் உள்ளது. நான் அதை அழுத்தும்போது என்ன நடக்கும் என்றால், ஹாஷ் நான்கு பூஜ்ஜியங்களுடன் தொடங்கும் ஒன்றைக் கண்டறிய அது 1 முதல் மேலதிகமாக உள்ள அனைத்து எண்களையும் இயக்கிப் பார்க்கும். இந்தச் செயல்முறை சுரங்கப்பணி என்று அழைக்கப்படுகிறது.

இது 59,396 இல் நின்றுவிட்டது — மேலும் அது நான்கு பூஜ்ஜியங்களுடன் தொடங்கும் ஒன்றாக ஹாஷ் செய்யப்படுகிறது. கையொப்பமிடப்பட்ட தொகுதி என்றால் என்ன என்பதற்கான எனது வரையறையை இது பூர்த்தி செய்கிறது.

தொகுதிச்சங்கிலி (5:16)

எனவே தொகுதிச்சங்கிலி என்றால் என்ன என்று உங்களால் கூற முடியுமா? இது அநேகமாக இந்தத் தொகுதிகளின் சங்கிலியாக மட்டுமே இருக்கும். இதோ எனது தொகுதிச்சங்கிலி — தொகுதி எண் ஒன்றில் முன்பைப் போலவே ஒரு நான்ஸ், ஒரு தரவுப் பகுதி உள்ளது, ஆனால் பின்னர் அது பல பூஜ்ஜியங்களைக் கொண்ட இந்த "முந்தைய" (previous) புலத்தைக் கொண்டுள்ளது. முன்னோக்கிச் செல்லும்போது, இது தொகுதி இரண்டு, தொகுதி மூன்று, தொகுதி நான்கு — இந்தத் தொகுதிச்சங்கிலியில் ஐந்து தொகுதிகள் உள்ளன.

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

நான் இங்கு சில தகவல்களை மாற்றினால் என்ன நடக்கும்? இது இந்தத் தொகுதியின் ஹாஷை மாற்றி அதைச் செல்லாததாக்கும். ஆனால் முந்தைய தொகுதியில் நான் ஏதேனும் மாற்றினால் என்ன நடக்கும்? அது அந்த ஹாஷை மாற்றும், ஆனால் அந்த ஹாஷ் அடுத்த தொகுதியின் "முந்தைய" புலத்திற்கு நகலெடுக்கப்படுகிறது, எனவே அது இரண்டு தொகுதிகளையும் உடைக்கிறது. நாம் கடந்த காலத்தில் எந்தப் புள்ளிக்கு வேண்டுமானாலும் பின்னோக்கிச் சென்று அந்தத் தொகுதியை உடைக்கலாம், மேலும் அது முதற்கொண்டு அனைத்துத் தொகுதிகளையும் உடைக்கும். அதற்கு முந்தைய அனைத்தும் இன்னும் பச்சை நிறத்தில் இருக்கும், ஆனால் அதற்குப் பிந்தைய அனைத்தும் சிவப்பு நிறமாக மாறும்.

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

பகிரப்பட்ட தொகுதிச்சங்கிலி (9:18)

எனவே எனது தொகுதிச்சங்கிலி மீண்டும் சுரங்கப்பணி செய்யப்பட்டுள்ளதா என்பதை நான் எப்படி அறிவது? இப்போது நம்மிடம் ஒரு பகிரப்பட்ட தொகுதிச்சங்கிலி உள்ளது. இது முந்தைய தொகுதிச்சங்கிலியைப் போலவே காட்சியளிக்கிறது, ஆனால் இது சகக்கணு A (Peer A). நீங்கள் கீழே சென்றால், சகக்கணு B-ஐக் (Peer B) காணலாம், மேலும் அது தொகுதிச்சங்கிலியின் சரியான நகலைக் கொண்டுள்ளது. சகக்கணு C-யும் (Peer C) உள்ளது — இது முடிவில்லாமல் தொடரலாம். இணையத்தில் பல சகக்கணுக்கள் உள்ளன, மேலும் அவை அனைத்தும் தொகுதிச்சங்கிலியின் முழுமையான நகலைக் கொண்டுள்ளன.

நான் இந்த ஹாஷைப் பார்த்தால், அது e4b ஆக உள்ளது. நான் அடுத்ததற்குக் கீழே சென்றால், அதிலும் e4b உள்ளது. அவை ஒரே மாதிரியாக இருக்க வேண்டும். இப்போது நான் இங்கு சென்று ஏதேனும் தட்டச்சு செய்து, இந்தத் தொகுதியை மீண்டும் சுரங்கப்பணி செய்து, பின்னர் அடுத்த தொகுதிகளைச் சுரங்கப்பணி செய்தால் — அனைத்துச் சங்கிலிகளும் பச்சை நிறத்தில் இருக்கும். இருப்பினும், இந்தச் சங்கிலி கடைசி ஹாஷ் e4b என்று கூறுகிறது, கீழேயுள்ளதும் e4b என்று கூறுகிறது, மேலும் இந்த நடுவில் உள்ளது 4cae என்று கூறுகிறது.

எனவே இந்த ஒரு சிறிய ஹாஷைப் பார்ப்பதன் மூலமே இந்தத் தொகுதிச்சங்கிலியில் ஏதோ தவறு இருப்பதை நான் அறிந்துகொள்கிறேன். அனைத்து ஹாஷ்களும் நான்கு பூஜ்ஜியங்களுடன் தொடங்கினாலும், இது வேறுபட்டது. இது அடிப்படையில் ஒன்றுக்கு எதிராக இரண்டு என்ற நிலையில் உள்ளது — நாம் இங்கு ஒரு சிறிய ஜனநாயக அமைப்பாக இருக்கிறோம். எனவே e4b வெற்றி பெறுகிறது. பல வெவ்வேறு கணினிகளில் முற்றிலும் பகிரப்பட்ட நகலைக் கொண்டிருப்பது, அனைத்துத் தொகுதிகளும் ஒரே மாதிரியாக உள்ளதா என்பதை விரைவாகப் பார்க்க உங்களை அனுமதிக்கிறது.

தொகுதிச்சங்கிலிகள் மிக எளிதாக 400,000 அல்லது 500,000 தொகுதிகளைக் கொண்டிருக்கலாம். அவை அனைத்தையும் சரிபார்ப்பதற்குப் பதிலாக, நீங்கள் செய்ய வேண்டியதெல்லாம் மிகச் சமீபத்திய ஒன்றின் ஹாஷைப் பார்ப்பது மட்டுமே, மேலும் கடந்த காலத்தில் ஏதேனும் மாற்றப்பட்டுள்ளதா என்பதை நீங்கள் காணலாம்.

வில்லைகள் (12:17)

இதுதான் முழுமையான விஷயம் — இதில் இதைவிட வேறு எதுவும் இல்லை. ஆனால் இது உண்மையில் பயனுள்ளதாக இல்லை, ஏனென்றால் தரவுப் பகுதியில் அர்த்தமுள்ள எதுவும் நம்மிடம் இல்லை. நமக்கு உண்மையாகத் தேவையானது ஒரு வில்லை.

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

இங்குதான் மாற்றவியலாத தன்மை முக்கியமானது. நான் இங்கு ஏதேனும் மாற்றினால், மற்ற நகல்களில் உள்ளதை விட ஹாஷ் வேறுபட்டதாக இருக்கும். நீங்கள் காலப்போக்கில் பின்னோக்கிச் சென்று சில மதிப்பை மாற்றினால், நாங்கள் அதைக் கவனிப்போம் என்பது மிகவும் முக்கியம். பணத்தைப் பொறுத்தவரை நீங்கள் தடத்தை இழக்காமல் இருப்பது மிகவும் முக்கியம், மேலும் அதுவே ஒரு தொகுதிச்சங்கிலியைப் பயன்படுத்துவதன் முழு நோக்கமாகும் — கடந்த காலத்தில் நடந்த விஷயங்களில் எந்த வகையான மாற்றங்களையும் எதிர்ப்பது.

நான் குறிப்பிட விரும்பும் ஒரு விஷயம்: "டார்சியிடம் நூறு டாலர்கள் உள்ளன, அவர் பிங்லிக்கு 25 கொடுக்கிறார்" என்று நாம் பட்டியலிடவில்லை. நாம் பணப் பரிமாற்றங்களை மட்டுமே நினைவில் கொள்கிறோம், வங்கி கணக்கு நிலுவைகளை அல்ல. இது ஒரு கேள்வியை எழுப்புகிறது — டார்சியிடம் $25 உள்ளதா?

காயின்பேஸ் பரிவர்த்தனை (14:34)

தொகுதிச்சங்கிலியின் இந்தப் பதிப்பில் நமக்கு ஒரு சிக்கல் உள்ளது: டார்சியிடம் $25 உள்ளதா என்பது நமக்கு உண்மையில் தெரியாது. எனவே ஒரு காயின்பேஸ் (Coinbase) பரிவர்த்தனையைப் பார்ப்போம். நமது தொகுதிகளில் ஒரு காயின்பேஸ் பரிவர்த்தனையைச் சேர்க்கிறோம் — நாம் காற்றில் இருந்து நூறு டாலர்களை உருவாக்கி அதை ஆண்டர்ஸுக்குக் கொடுக்கப் போகிறோம் என்று அது கூறுகிறது. இதற்கு முன்பு யாரிடமும் பணம் இல்லாததால் இந்தத் தொகுதியில் வேறு எந்தப் பரிவர்த்தனைகளும் இல்லை.

அடுத்த தொகுதியில், எங்கிருந்தோ மேலும் நூறு டாலர்கள் வந்து ஆண்டர்ஸுக்குச் செல்கிறது. இப்போது நம்மிடம் சில பரிவர்த்தனைகள் உள்ளன — அவை அனைத்தும் ஆண்டர்ஸிடமிருந்து வந்தவை, ஏனென்றால் இந்த நேரத்தில் என்னிடம் மட்டுமே பணம் உள்ளது. நான் எனது பத்து டாலர்களை சோஃபிக்கு அனுப்புகிறேன். என்னிடம் பத்து டாலர்கள் உள்ளதா? ஆம் — நான் பின்னோக்கிப் பார்க்கும்போது காயின்பேஸ் பரிவர்த்தனை எனக்கு நூறு கொடுத்ததைக் காண்கிறேன், எனவே என்னிடம் குறைந்தது பத்து உள்ளது.

நீங்கள் இவை அனைத்தையும் கூட்டினால் அவை நூறைத் தாண்டாது. இது நாணயத்தின் அடிப்படை விதியைப் பின்பற்றுகிறது: உங்களால் காற்றில் இருந்து பணத்தை உருவாக்க முடியாது, மேலும் அதன் பரவல் கட்டுப்படுத்தப்படுகிறது.

நாம் காலப்போக்கில் முன்னோக்கிச் சென்றால், ஜாக்சன் அலெக்சாவுக்கு இரண்டு டாலர்கள் கொடுப்பதைக் காண்கிறோம். ஜாக்சனிடம் உண்மையில் இரண்டு டாலர்கள் உள்ளதா? நாம் ஒரு தொகுதி பின்னோக்கிச் சென்று பார்க்கும்போது, எமிலி ஆண்டர்ஸிடமிருந்து பத்து டாலர்களைப் பெற்று, பத்தை ஜாக்சனுக்குக் கொடுத்ததைக் காண்கிறோம். எனவே ஜாக்சனிடம் பணம் உள்ளது. நாம் பின்னோக்கிச் சென்று அதைக் கண்டறியலாம் — "முந்தைய" புலத்தைக் கொண்டிருப்பதன் நன்மைகளில் இதுவும் ஒன்றாகும்.

முடிவுரை (16:30)

இது ஒரு நாணயத்தை அதன் மேல் இயக்கும் ஒரு அடிப்படைத் தொகுதிச்சங்கிலியாகும். உங்களுக்குத் தெரிந்தபடி, தொகுதிச்சங்கிலிகள் பல நகல்களைக் கொண்டுள்ளன — அனைவரிடமும் ஒரு நகல் உள்ளது. நாம் ஏதேனும் ஒன்றை மாற்றி அதை ஆறு டாலர்களாக ஆக்கினால், தொகுதிகள் செல்லாததாகிவிடும், மேலும் மற்ற நகல்களுடன் ஒத்துப்போகாது. இது சேதப்படுத்துவதை எதிர்க்கிறது, இதுவே ஒரு நாணயத்திற்கு நீங்கள் விரும்புவதாகும். சிறிய மற்றும் பரிவர்த்தனை சார்ந்த விஷயங்களுக்கு இது மிகச் சிறப்பாகச் செயல்படுகிறது.

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

இந்தப் பக்கம் பயனுள்ளதாக இருந்ததா?