Blockchain එකක් Hack කළ හැකිද? (Early Stage Risk & Digital Signatures)
🤔 blockchain එකක් පටන්ගද්දි මුලින්ම තියෙන්නෙ එක node එකයිනෙ. ඊටපස්සෙ ඔන්න තව කෙනෙක් අවිත් transaction එකක් කරනො එයත් bitcoin core software එක දාගන්නව. එකකොට nodes 2යි. ඒ වෙලාවෙ දෙන්නගෙන් කවුරුහරි එකෙනෙක් මේ ledger එකක් වෙනස් කරොත් hack කරා වෙනවද?
එක්කෙනක් 10 btc එවනව ඒත් අනිත් කෙන 5ක් කියල වෙනස් කරොත්, අරය මොකක්ද කරන්නෙ. තව 5ක් එවන්න වෙනවද?
මේක blockchain එකක ආරම්භක අවධිය ගැන තියෙන ඉතාම තීරණාත්මක සහ වැදගත් ප්රශ්නයක්. 51% Attack සහ "Consensus" කියන දේවල් තේරුම් ගන්න මේ ප්රශ්නය හොඳම පදනමක්.
අපි මේක පියවරෙන් පියවර විග්රහ කරගමු.
ආරම්භක අවධියේ අවදානම (The Early Stage Risk).
Blockchain එකක් මුලින්ම පටන් ගන්නකොට (උදාහරණයක් විදිහට සතෝෂි නකමොටෝ විතරක් ඉන්න වෙලාවේ), ඒකේ ආරක්ෂාව ගොඩක් අඩුයි. Nodes 2ක් විතරක් තියෙන වෙලාවක, එක්කෙනෙක් හොරයක් කරන්න හැදුවොත් එතැන "බහුතරයකගේ එකඟතාවයක්" (Consensus) ගොඩනැගීම අසීරුයි.
නමුත් BITCOIN network එක නිර්මාණය කරද්දී මේකට විසඳුම් 2ක් දුන්නා:
- Proof of Work (Mining): ගනුදෙනුවක් ලේඛනයට ඇතුළත් කරන්න නම් නිකම්ම "ලියන්න" බැහැ. ඒ සඳහා පරිගණක බලය වැය කරලා ලොකු ගණිත ගැටලුවක් විසඳන්න ඕනේ. Nodes 2ක් ඉන්න වෙලාවක වුණත්, නීත්යානුකූලව වැඩ කරන කෙනාට වඩා වේගයෙන් හොරකම් කරන කෙනාට ඒ ගණිත ගැටලුව විසඳන්න බැරි වුණොත්, එයාගේ "හොර" ගනුදෙනුව ජාලය පිළිගන්නේ නැහැ.
- The Genesis Period: ඕනෑම බ්ලොක්චේන් එකක් මුල් කාලයේදී ඉතාම පරෙස්සමින් "පෝෂණය" කරනවා. BITCOIN වලදී සතෝෂි නකමොටෝ මුල් කාලයේදී තනියම Nodes කිහිපයක් පවත්වාගෙන යමින් ජාලයට අවශ්ය ආරක්ෂාව (Hash power) ලබා දුන්නා.
10 BTC වෙනුවට 5 BTC කළොත්?
අපි හිතමු Node A (ඔයා) සහ Node B (හොරා) ඉන්නවා කියලා. ඔයා 10 BTC එවනවා. හොරා ඒක 5 BTC කියලා වෙනස් කරන්න හදනවා.මෙන්න මෙතැනදී බ්ලොක්චේන් එකේ තියෙන Cryptography (Hashing) වැඩ කරන්න පටන් ගන්නවා:
- Digital Signature: ඔයා 10 BTC එවනකොට ඒ ගනුදෙනුව ඔයාගේ "Digital Signature" (Private Key) එකෙන් ලොක් කරලා තියෙන්නේ. හොරා ඒක 5 BTC කියලා වෙනස් කරන්න හැදුවොත්, ඔයාගේ අත්සන (Signature) එක ඒ ගනුදෙනුව එක්ක ගැලපෙන්නේ නැහැ.
- Validation: හොරා ඒ වැරදි ගනුදෙනුව (5 BTC) ඔයාට එවනවා. ඔයාගේ Node එක ඒක පරීක්ෂා කරලා බලනවා. "මේකේ අත්සන වැරදියි, මේක 10 වෙන්න ඕනේ" කියලා ඔයාගේ Node එක ඒක ප්රතික්ෂේප කරනවා.
- The Fork: දැන් Nodes දෙක ගාව ලේඛන දෙකක් තියෙන්නේ. ඔයා ගාව 10 තියෙන ලේඛනය, හොරා ගාව 5 තියෙන ලේඛනය. ජාලය හැමතිස්සෙම පිළිගන්නේ "වැඩිම ගණිතමය වැඩ කොටසක් (Work) කරපු දිගම Chain එක". හොරාට තනියම අලුත් බ්ලොක් හද හදා Chain එක දිගු කරගන්න බැරි වුණොත්, එයාගේ Chain එක අත්හැරලා දාලා ඔයාගේ නිවැරදි Chain එකට හැමෝම එකතු වෙනවා.
තව 5ක් එවන්න වෙනවද?" - නැත!
හොරා 5ක් කියලා වෙනස් කරාට ඔයාට ආයෙත් එවන්න වෙන්නේ නැහැ. මොකද,හොරා කරපු වෙනස ඔයාගේ Node එක පිළිගන්නේ නැහැ. අනෙක් Nodes (අනාගතයේ එකතු වෙන අය) මුල සිට අගට දත්ත පරීක්ෂා කරගෙන එද්දී, හොරා කරපු හොරකම Cryptography නීති වලට පටහැනි නිසා ඔවුන් ඒක ප්රතික්ෂේප කරනවා.
සරලවම කිව්වොත් හොරාට පුළුවන් එයාගේ පරිගණකයේ තියෙන ලේඛනය (Ledger) විතරක් වෙනස් කරගන්න. හැබැයි ඒකෙන් මුළු ලෝකෙටම "බල කරන්න" එයාට බැහැ.
"The Consensus War: How Crypto Prevents Cheating.
බ්ලොක්චේන් ජාලයක ආරක්ෂාව රඳා පවතින්නේ බහුතරයකගේ එකඟතාවය මතයි. ජාලයේ Nodes ප්රමාණය වැඩි වන තරමට එහි ආරක්ෂාව වැඩි වේ. කෙනෙකු ගනුදෙනුවක් වෙනස් කිරීමට උත්සාහ කළහොත්, Digital Signatures සහ Hashing තාක්ෂණය මගින් එම වංචාව ක්ෂණිකව හඳුනා ගනී. හොරෙකුට ජාලය පාලනය කිරීමට නම්, මුළු ජාලයේ ඇති පරිගණක බලයෙන් (Hash Power) 51% කට වඩා වැඩි ප්රමාණයක් අත්පත් කරගත යුතුය. මෙය ප්රායෝගිකව කළ නොහැකි තරම් මිල අධික සහ අසීරු කාර්යයකි."
🤔 එතකොට හොරාට btc 10 යන්නෙ නැද්ද? නැත්නම් එයා එයාගෙ එක 5 කියල වෙනස් කරපු නිසා එයාගව දැන් තියෙන්නෙ 5 btc ද?
මෙතනදී තමයි බ්ලොක්චේන් එකක තියෙන "Cryptography" හෙවත් ගණිතමය ආරක්ෂාව ලස්සනටම වැඩ කරන්නේ. මේකේ කෙටි උත්තරය තමයි, හොරාට BTC 10 ම ලැබෙනවා එයාට ඒක එපා කිව්වත්, එයාට ඒක 5 BTC කරගන්න බැහැ. ඒක වෙන්නේ ඇයි කියලා සරලව තේරුම් ගමු.
ගනුදෙනුව "Seal" කරලා ඉවරයි.
ඔයා BTC 10 යවනකොට ඒ ගනුදෙනුව ඇතුළේ මෙන්න මේ වගේ තොරතුරු ටිකක් තියෙනවා.
To : [හොරාගේ Address එක]
Amount : 10 BTC
Signature: [ඔයාගේ Private Key එකෙන් කරපු Digital අත්සන]
මේ ඔක්කොම data මුළු පණිවිඩයම එකට එකතු කරලා "Seal" කරලා තියෙන්නේ. හොරාට මේ පණිවිඩය ලැබුණාම එයාට පුළුවන් එයාගේ Computer එකේ (Node එකේ) තියෙන ලේඛනයේ 10 වෙනුවට 5 කියලා ලියාගන්න.
ජාලය ඒක පිළිගන්නේ නැත්තේ ඇයි?
හොරා 10 මකලා 5 කියලා ගැහුව ගමන්, ඔයා කරපු Digital Signature එක ඒ අලුත් අංකය (5) එක්ක ගැලපෙන්නේ නැතුව යනවා.
බ්ලොක්චේන් ජාලයේ නීතිය මෙහෙමයි.ගනුදෙනුවක තියෙන එකම එක තිතක් හෝ කොමාවක් වෙනස් වුණොත්, ඒක අත්සන් කරපු Signature එක අවලංගු වෙනවා. ඉතින් හොරා තමන්ගේ ලේඛනයේ 5 BTC කියලා ලියාගත්තත්, ජාලයේ ඉන්න අනෙක් Nodes (පරිගණක) ඒක බලලා මෙහෙම කියනවා. "මේකේ අත්සන (Signature) එක වැරදියි. මේක 10 BTC වෙන්න ඕන එකක්. හොරා තමන්ගේ ලේඛනය විකෘති කරලා."
හොරාට BTC 10 ලැබෙන්නේ කොහොමද?
හොරාට BTC 10 ලැබෙනවා කියලා තීරණය කරන්නේ හොරා නෙවෙයි, මුළු ජාලයමය. ලෝකේ වටේ තියෙන අනිත් හැම Node එකකම සටහන් වෙන්නේ ඔයාගෙන් හොරාට BTC 10 ක් ගියා කියල.හොරා දවසක ඒ BTC ටික වෙන කෙනෙක්ට යවන්න හැදුවොත්, එයාට BTC 10 ම යවන්න පුළුවන්. එයා "මම ගාව තියෙන්නේ 5යි" කිව්වට වැඩක් නැහැ, ජාලය දන්නවා එයා ගාව 10ක් තියෙනවා කියලා.
හොරාට වෙන්නේ මොකක්ද? (Isolation)
හොරා දිගින් දිගටම "නැහැ මට හම්බුණේ 5යි" කියලා බොරු දත්ත (Blocks) ජාලයට යවන්න හැදුවොත්, අනිත් Nodes කරන්නේ හොරාගේ Node එක ජාලයෙන් කපලා දාන එකයි (Ban/Isolate).එතකොට හොරා තනියම එයාගේ බොරු ලේඛනයත් එක්ක තනි වෙනවා. මුළු ලෝකයම පිළිගන්නා "සැබෑ Blockchain එකෙන්" එයා අයින් වෙනවා.
"The Immutable Truth: Why You Can't Edit the Ledger.
බ්ලොක්චේන් එකක දත්තයක් වෙනස් කිරීම යනු නිකම්ම අංකයක් මකා වෙනස් කිරීමක් නොවේ. සෑම ගනුදෙනුවක්ම Digital Signature එකකින් ආරක්ෂා කර ඇති අතර, එය ජාලයේ ඇති දහස් ගණනක් පරිගණක මගින් තප්පරයෙන් තප්පරයට පරීක්ෂා කරනු ලැබේ. යමෙකු තම පෞද්ගලික ලේඛනය (Ledger) වෙනස් කිරීමට උත්සාහ කළහොත්, ඔහුගේ දත්ත ජාලයේ අනෙක් දත්ත සමඟ නොගැලපෙන නිසා ඔහු ජාලයෙන් ස්වයංක්රීයවම බැහැර කරනු ලැබේ. මෙලෙස බහුතරයකගේ එකඟතාවය (Consensus) මගින් සත්යය ආරක්ෂා කරනු ලබයි."
🤔 එතකොට කලින් කිව්ව වගේ nodes 2ක් පවතින අවස්තාවක උනොත් දෙන්නගෙන් කවුද හරි කියල පිලිගන්න බෑරිද? කොහොමද නිවැරදි කෙනා දැන ගන්නෙ & මොකක්ද ඔය digital signature කියන්නෙ ?
මේ වගේ ප්රශ්නයක් ඔයාටත් හිතුනනම් ඔයා හරිම තර්කානුකූලයි. Nodes 2ක් විතරක් තියෙන වෙලාවක බහුතරයක් (Majority) නැති නිසා කවුද හරි කියලා තීරණය කරන්න බැහැ තමයි. ඒ නිසාම තමයි බ්ලොක්චේන් එකක් ආරක්ෂිත වෙන්න Nodes ප්රමාණය වැඩි වීම අත්යවශ්ය වෙන්නේ. Nodes 2ක් තියෙන වෙලාවක කෙනෙක් හොරයක් කළොත් ඒක "වචනයට වචනය" (Your word against theirs) වගේ සටනක්.
නමුත් මේ සටන දිනන්න උදව් වෙන තාක්ෂණික මෙවලම තමයි Digital Signature. අපි ඒක සරලව තේරුම් ගමු.
මොකක්ද මේ Digital Signature කියන්නේ
සාමාන්ය ලෝකයේදී අපි ලියුමක අන්තිමට අත්සනක් ගහන්නේ "මේක ලීවේ මමමයි" කියලා තහවුරු කරන්නනේ. හැබැයි ඕනෑම කෙනෙකුට ඒ අත්සන හොරට ගහන්න (Forge කරන්න) පුළුවන්.
Digital Signature එකක් කියන්නේ ඊට වඩා ගොඩක් දියුණු, හොරට ගහන්න බැරි ගණිතමය අත්සනක්. මේක හැදෙන්නේ කොටස් දෙකක එකතුවෙලා.
- Private Key(රහස් යතුර) : මේක හරියට ඔයාගේ ATM කාඩ් එකේ PIN අංකය වගේ. මේක දන්නේ ඔයා විතරයි. ගනුදෙනුවක් "අත්සන් කරන්න" (Sign කරන්න) පාවිච්චි කරන්නේ මෙන්න මේක.
- Public Key(පොදු යතුර) : මේක හරියට ඔයාගේ බැංකු ගිණුම් අංකය වගේ. ඕනෑම කෙනෙකුට මේක දකින්න පුළුවන්. ඔයා කරපු අත්සන නිවැරදිද කියලා "පරීක්ෂා කරන්න" (Verify කරගන්න) අනිත් අය පාවිච්චි කරන්නේ මේක.
Digital Signature එකක් වැඩ කරන්නේ කොහොමද?
ඔයා 10 BTC යවනකොට පියවර 3ක් සිද්ධ වෙනවා.
- Hashing: ඔයාගේ ගනුදෙනුවේ විස්තර (From, To, Amount) ඔක්කොම එකතු කරලා "Fingerprint" එකක් හදනවා.
- Signing: ඔයාගේ Private Key එක පාවිච්චි කරලා අර Fingerprint එක ලොක් කරනවා. දැන් ඒකට තමයි "Digital Signature" එක කියන්නේ.
- Verification: හොරාට මේ පණිවිඩය ලැබුණාම, එයා ගාව තියෙන ඔයාගේ Public Key එක දාලා බලනවා ඒ අත්සන ගැලපෙනවද කියලා.
හොරාට මේක වෙනස් කරන්න බැරි ඇයි?
අර Nodes 2කේ උදාහරණයටම යමු. ඔයා 10 BTC එවලා ඒක Digital Signature එකකින් ලොක් කරලා තියෙන්නේ. හොරා ඒක 5 BTC කියලා වෙනස් කළොත්, ඒ අලුත් දත්තය (5 BTC) ඔයා කරපු Signature එකත් එක්ක ගැලපෙන්නේ නැහැ. අත්සන ගැලපෙන්න නම් හොරා ගාව ඔයාගේ Private Key එක තියෙන්න ඕනේ. ඒක නැතිව හොරාට අලුත් අත්සනක් ගහන්න බැහැ.
Nodes 2ක් හිටියත් ජාලය මෙහෙම කියනවා.👇
මෙතැනදී කවුරුත් කතා කරලා තීරණය කරන්නේ නැහැ. පද්ධතියේ තියෙන ගණිතය (Cryptography) මගින් කවුද ඇත්ත කියන්නේ කියලා ඔප්පු කරනවා.
"Digital Signatures: The Mathematical Proof of Ownership.
බ්ලොක්චේන් තාක්ෂණයේදී විශ්වාසය (Trust) ගොඩනගන්නේ පුද්ගලයන් මත නොව ගණිතමය සත්යතාවයන් මතයි. Asymmetric Cryptography භාවිතා කරමින් නිපදවන Digital Signatures මගින් ගනුදෙනුවක අයිතිය සහ එහි අන්තර්ගතයේ නිවැරදිභාවය තහවුරු කරයි. යමෙකු ගනුදෙනුවක් විකෘති කිරීමට උත්සාහ කළහොත්, එම ගනුදෙනුවට අදාළ ඩිජිටල් අත්සන බිඳී යන අතර ජාලය විසින් එය වහාම ප්රතික්ෂේප කරනු ලබයි. මෙය මධ්යගත පාලකයෙකු නොමැතිව වුවද ආරක්ෂාව තහවුරු කරන ප්රධානම සාධකයයි."
Comments
Post a Comment