ඔබට ඕනෑම මොහොතක ඔබේම බිට්කොයින් ලිපිනයක් සාදා ගත හැකියිනෙ. ඉතිං, ඔබේ ජීවිත කාලය පුරාවට ඔබට ලැබෙන සියලු බිට්කොයින් මෙම ලිපිනයට ගෙන්වා ගත හැකියි. ඒ අනුව එම ලිපිනය ඔබේ සාම්ප්රදායික බැංකු ගිනුම මෙන් ක්රියා කරයි.
එහෙත් ප්රායෝගිකව එහෙම නොවෙයි බිට්කොයින් ඇඩ්රස් භාවිතා කරන්නේ. සාමාන්යයෙන් ඔබට බිට්කොයින් ලැබෙන සෑම වාරයකදීම අලුතින් බිට්කොයින් ලිපිනයක් සාදා එයටයි බිට්කොයින් ගෙන්වා ගන්නේ. බිට්කොයින් ලිපින ඉතාම ඉතා දිගු නිසා, ඔබට අවශ්ය නම් දහස් හෝ ලක්ෂ ගනනක් වුවද අලුතින් අලුතින් ඇඩ්රස් සෑදිය හැකියි; කවුරුත් ඔබව නවතන්නේ නැහැ.
සෑම ගනුදෙනුවකදීම බිට්කොයින් ලබා ගැනීමට අලුත්ම ඇඩ්රස් එකක් භාවිතා කිරීම තුලින් ඔබේ අනන්යතාව තවදුරටත් හෙලි නොවී ආරක්ෂා වේ; නිර්නාමිකබව (anonimity) රැකේ.
ඒ කියන්නේ ඔබට කොච්චර බිට්කොයින් ලැබී ඇත්දැයි පිටත සිට කෙනෙකුට සොයා බැලීමට දැන් අපහසුයි. සිතන්න ඔබ එක ලිපිනයක් විතරක් භාවිතා කලේ නම්, ඔබගෙන් තොරතුරු හෙලි නොවුනත්, නිකමට හෝ ඔබට බිට්කොයින් එවපු කෙනෙකුව හෙලි වුනොත්, ඔබගේ ලිපිනයත් ඉන් හෙලි වී, එම ලිපිනයට ලැබුනු මුලු බිට්කොයින් ගනන දන්න නිසා ඔබ සතුව ඇති මුලු බිට්කොයින් ගනන හෙලි වේ. ඒ විතරක් නොවෙයි, ඔබට බිට්කොයින් එවපු අනිත් හැමෝම ගැනත් හෝඩුවාවල් ඉන් සොයා ගෙන ඔවුන්වද හෙලි දරව් වේවි. පොලිසිය ෆෝන් කෝල්වල විස්තර මඟින් අපරාධකරුවන් ගැන සොයන්නෙත් මෙවැනි ක්රමයකටනෙ. මොකක් හෝ හෝඩුවාවක් මත යම් ෆෝන් අංකයක් ගැන සොයමින් එම අංකයෙන් ගත්තු හා එම අංකයට පැමිනි කෝල්වල අංකය සොයා අවසානයේ අපරාධකරුවන් සොයා ගන්නවා.
බිට්කොයින් මුදල් ක්රමය දෙදෙනෙකු අතර පරිගනක ඔස්සේ සිදුවන දෙයක් නිසා එය peer-to-peer payment ක්රමයක් ලෙසත් හැඳින් වෙනවා. එයම decentralized payment ක්රමයක් ලෙසද දක්වනවා.
පියර් ටු පියර් ක්රමවේදයකදී එක් එක් පරිගනකය/සර්වරය වගබලා ගත යුතුයි තමන් පද්ධතිය තුල සම්මුතියට හෙවත් ප්රොටොකෝලයට අනුව වැඩ කරන්න අනෙක් සර්වර් සමග. මෙහිදී තනි මධ්යම පරිගනකයක් නැහැ පද්ධතියේ තිබෙන පරිගනක සියල්ල එකට මෙහෙයවන. එනිසා සියලුම පරිගනක නීතියට/සම්මුතියට/ප්රොටොකෝලයට අනුවම වැඩ කල යුතුයි.
බිට්කොයින් එකට යම් සර්වරයක්/පියර් එකක්/නෝඩ් එකක් සම්බන්ද වෙනවා කියන්නේ එම ජාලයේ තිබෙන සියලුම සර්වර් එක්ක ඍජුව කනෙක්ට් වෙනවා කියන එක නොවෙයි. ඔබ සර්වරයක් සම්බන්ද කරන විට කරන්නේ ජාලයේ තිබෙන තවත් සර්වර් තුන හතරක් සමඟ ඍජුව සම්බන්ද වීම පමනයි. එලෙස ඔබ සම්බන්ද වෙන සර්වරුත් එලෙසම ජාලයේ තිබෙන තවත් සර්වර් කිහිපයකට සම්බන්දයි. මේ ආකාරයෙන් බලාගෙන යන කොට, හැමෝම ජාලය පුරා පවතින සර්වර් එක්ක එක් එක් ආකාරයෙන් කනෙක්ට් වී තිබීම නිසා, අවසානයේ සියලුම සර්වර් එම ජාලය තුල ඍජුව හා වක්රව එකිනෙකාට සම්බන්ද පවතිනවා. ඒකනේ මීට ජාලයක් (network) කියා කියන්නෙ.
peer යනු යම් පරිගනකයක් සමඟ කනෙක්ට් වන වෙනත් පරිගනකයකි. ඒ අනුව system, computer, node, peer යනු පරිගනක තාක්ෂණයේදී සමාන වචන වේ.
බිට්කොයින් භාවිතා කරන්නේ නීති විරෝධි වැඩවලට නොවෙයි නම්, ඔබට එතරම් ඔබේ අනන්යතාව සුරැකීම ගැන වද වීමටද දෙයක් නැත. එහෙත් අපරාධකරුවන්ද ජයටම බිට්කොයින් භාවිතා කරන බවද සිහිපත් කල යුතුයි. එය මිනිස් සමාජයට අයහපතක් ඇත්තටම. මා බිට්කොයින්වල ඇති ප්රධාන අවාසියක් ලෙස එය දකිනවා (යම් භාවිතාවක් අපරාධවලට වැඩි රුකුලක් ලබා දේ නම්, එය සමාජගත වීම එතරම් සුදුසු නොවන බව මගේ හැඟීමයි).
උදාහරනයක් ලෙස, අන්තර්ජාලයේ ඉතා යහපත් දේවල් මෙන්ම ඉතාම අයහපත් දේවල්ද තිබෙනවා. ඇත්තටම ඒ ගැන මා වචනයක්වත් නොලියන්නට වගා බලා ගන්නම් මොකද ඉන් වැරදි පෙලඹවීමක් ඇති විය හැකි නිසා. ඉතිං, බිට්කොයින් මෙවැනි අවස්ථාවල භාවිතා වෙනවා නීතිවිරෝදී දේවලට ගෙවීම් සඳහා. බිට්කොයින් ජාලයේ ආරම්භයේදී මෙවැනි “කලු“ වෙබ් සේවාවක් බිට්කොයින් තම සේවාවන් සඳහා ගෙවීම් මාධ්යයක් ලෙස භාවිතා කරන්නට පටන් ගත් විගස බිට්කොයින්වල අගය ඉතා විශාල ලෙස ඉහල ගියා. පසුකාලීනව මෙම සේවාව නීතියේ රැහැනට හසු වී මේ වන විට (එම නමින්) කටයුතු කරන්නේ නැහැ අන්තර්ජාලය තුල.
ඉතිං, එක් එක් ගනුදෙනුව සඳහා වෙන වෙනම බිට්කොයින් ඇඩ්රස් සාදා ගැනීම සම්ප්රදායක් ලෙස සිදු කරන්න. එතකොට ඔබ කියාවි ඇඩ්රස් ගොඩාක් තිබෙන එක කරදරයි නේද කියා. නැත. ඔබට එම කිසිදු ඇඩ්රස් එකක් කොහොමත් මතක තබා ගැනීමට වෙන්නේ නැහැනෙ. ඔබේ ඇප් එකේ එය ඉබේම ගබඩා වෙනවා. ඇප් එක විසින් එය බලා ගනීවි. ඇඩ්රස් (එනම් පබ්ලික් කී) විතරක් නොව, එම ඇඩ්රස්වල ප්රයිවට් කී පවා ගබඩා වී පවතින්නේ ඇප් එකේය. ඔබට කරන්නට තිබෙන්නේ ඇප් එක වෙනත් අය හොරෙන් භාවිතා කිරීම වැලැක් වීමට කටයුතු කිරීමයි (පාස්වර්ඩ් යෙදීමෙන් හෝ ඇඟිලි සලකුනු තැබීමෙන්).
වෙනත් කෙනෙකු ඔබේ බිට්කොයින් ඇඩ්රස්වලට අදාල ප්රයිවට් කී හොරෙන් ලබා ගත්තේ නම්, ඔබේ සියලු බිට්කොයින් ඔහුට වියදම් කල හැකියි. ඒ කියන්නේ ඔබේ බිට්කොයින් සියල්ල ඔහු ඔහුගේ ඇඩ්රස් එකකට යවාවි. එවිට ඔබට කල හැක්කක් නැත. පොලිසියට හෝ වෙනත් කිසිදු නීතිය ක්රියාත්මක කරන ආයතනයකට බැහැ ඔබට උදව් කරන්න මොකද බිට්කොයින් ජාලය ස්වභාවයෙන්ම අනන්යතා සඟවන ආකාරයටනෙ සාදා තිබෙන්නේ. ඉතිං හොරුන්ව අල්ලනව බොරු. ක්රිප්ටොවල තිබෙන තවත් අවාසියක් තමයි ඒක.
ඉහත විස්තර කල පරිදි ඇත්තටම පබ්ලික් කී එක බිට්කොයින් ඇඩ්රස් එක ලෙස භාවිතා කල හැකි වුවත්, ප්රායෝගික භාවිතයේදී පබ්ලික් කී එක ඒ ස්වරූපයෙන්ම භාවිතා වෙන්නේ නැත. ඒ වෙනුවට කරන්නේ, පබ්ලික් කී එක එක් වරක් SHA256 යන හෑෂිං ඇලේගොරිත්ම් එකෙන් හෑෂ් කර, ඉන් ලැබෙන හෑෂ් එක නැවත RIPEMD160 යන හෑෂිං ඇල්ගොරිත්ම් එකෙන් හෑෂ් කිරීමයි. ඉන් ලැබෙන හෑෂ් එක තමයි ඇත්තටම ප්රායෝගිකව බිට්කොයින් ඇඩ්රස් එක වන්නේ.
ඇත්තටම, මෙතැන පමනක් නොව, බිට්කොයින්වල හෑෂ් ක්රියාව සිදු කරන බොහෝ තැන්වල දෙපාරක් හෑෂ් කරන සම්ප්රදාය තිබෙනවා. එය සිදු කරන්නේ වැඩි ආරක්ෂාවට (ගනිතමය පැත්තෙන් බැලුවොත් ඉතිං එක වරක් හෑෂ් කිරීම වුවද ප්රමානවත්).
සෛද්ධාන්තිකව බැලුවොත් නිකංම පබ්ලික් කී එක භාවිතා කලත්, මෙලෙස දෙවරක් එම පබ්ලික් කී එක හෑෂ් කර ලබා ගත් ඩයිජෙස්ට් එක භාවිතා කලත් දල වශයෙන් එකම ප්රයෝජනයමයි ලැබෙන්නේ. එනිසා විස්තර කිරීමේ පහසුව පිනිස මා මෙම ලිපිවල දිගටම කියන්නේ පබ්ලික් කී එක තමයි බිට්කොයින් ඇඩ්රස් එක කියලා.
ඔබට බිට්කොයින් ඇඩ්රස් ගබඩා කරගෙන ගනුදෙනු කිරීමට ස්මාට් ෆෝන්වල හා පරිගනකවල ඉන්ස්ටෝල් කරන ඇප්වලට අමතරව තවත් ක්රම ඇත. ඒ අනුව ඇඩ්රස් ගබඩා කර ගැනීමට ක්රම 3ක් ඇත.
- ෆෝන් එක හෝ පරිගනකය මත රන් කරන ඇප් එකක් ඔස්සේ. ඉහත මෙතෙක් අප කතා කර තිබෙන්නේ මෙම ක්රමය ගැන තමයි. මෙහිදී අමුතුවෙන් වියදමක් නොවන අතර, ඉතා ඉක්මනින් හා පහසුවෙන් භාවිතා කල හැකියි. මෙම ඇප් එක bitcoin wallet ලෙසද පොදුවේ හැඳින්වෙනවා (වොලට් යනු ඉංග්රිසියෙන් පර්ස් එකට කියන වචනයයි). software wallet ලෙසද මෙය හැඳින්වෙනවා.
- ඔබට පුලුවන් ෆ්ලෑෂ් ඩ්රයිව් (පෙන් ඩ්රයිව්) එකක් ආකාරයට තැනූ උපකරනයක් මිල දී ගැනීමටත්. මෙහිදී එම ඩ්රයිව් එක පරිගනකයට කනෙක්ට් කල විට ඊට අදාල සොෆ්ට්වෙයාර් එකක් රන් වේ. තවද, ඔබේ සියලු බිට්කොයින් ඇඩ්රස් හා ඒවායේ ප්රයිවට් කී සේව් වී තිබෙන්නේද මෙම ඩ්රයිව් එක තුලයි. ඔබට අවශ්ය වෙලාවට පරිගනකයට කනෙක්ට් කර අදාල බිට්කොයින් ගනුදෙනුව සිදු කර, එය ගලවා ආරක්ෂිතව කොහේ හරි තැබිය හැකිය. එනිසා පැය 24 පුරාවටම එය අන්තර්ජාලයට කනෙක්ට් වී පවතින්නේ නැත. ඉන් ඔබේ බිට්කොයින් ලිපින හැකර්වරුන්ගෙන් ආරක්ෂිත වේ. මෙම ක්රමය hardware wallet ලෙසද හැඳින්විය හැකියි.
- මෙම ක්රමයේදී ඔබේ ඇඩ්රස් හා ප්රයිවට් කී සියල්ල ගබඩා වන්නේ අන්තර්ජාලයේ තිබෙන යම් සර්වර් එකකයි. එනම්, මෙම සේවාව සපයන පරිගනකය මතයි. මෙය හරියට පේපැල් සර්වර් එක කරන රාජකාරියට සමානයි. පේපැල්වලදිත් ඔබේ සියලු ලෙජර් තොරතුරු හා සියලු විස්තර ගබඩා වන්නේ ඇමරිකාවේ තිබෙන පේපැල්වල සර්වර් එක මතනෙ. ඔබ කරන්නේ යූසර්නේම් හා පාස්වර්ඩ් ඇතුලු කර ඊට සම්බන්ද වී ගනුදෙනු කිරීමයි. මෙම ක්රමයට බොහෝ දෙනා කැමති නැහැ මොකද ඔබේ කී සියල්ල ගබඩා වන්නේ අන්තර්ජාලයට පැය 24 පුරාම සම්බන්ද පරිගනකයක් මත නිසා. හැකර්වරුන්ට ඉඩකඩක් තිබෙනවා ඒවා හැක් කරන්නට. එහෙත් පේපැල් වුනත් මෙම ක්රමයටනෙ තිබෙන්නේ. ඉතිං අමුතුවෙන් බිය වන්නට දෙයකුත් නැහැ නේද?
බිට්කොයින් ගනුදෙනු සටහන් වන්නේ බ්ලොක් චේන් එකේය. ඔබේ ඇප් එකේ නොවේ. ඔබේ ඇප් එකේ ගබඩා වන්නේ ප්රයිවට් කී එකයි. ඉතිං, ඔබට ගනුදෙනුවක් කරන්නට උවමනා විට, වොලට් එකෙන් කරන්නේ බ්ලොක්චේන් එකේ ආරක්ෂිතව ගබඩා වී තිබෙන තමන්ට අයත් ගනුදෙනු රෙකෝඩ් වොලට් එකට ගෙන (ඩවුන්ලෝඩ් කර ගෙන), වොලට් එකේ ඇති ප්රයිවට් කී වලින් එම රෙකෝඩ් ඩික්රිප්ට් කර අවශ්ය අලුත් ගනුදෙනුවක් සිදු කිරීමයි.
මින් පෙනෙනවා නේද වොලට් එක (සොෆ්ට්වෙයාර් වුවත් හාඩ්වෙයාර් වුවත්) දිගටම ඉන්ටර්නෙට් එකට කනෙක්ට් වී තිබෙන්න ඕන නැහැ කියා. ගනුදෙනුව සිදු කරන වෙලාවට පමනයි වොලට් එක online විය යුත්තේ; අනෙක් වෙලාවලට එය offline තිබුනාට කමක් නැහැ; ඇත්තටම ඕෆ්ලයින් තිබීම හැකර්ලාගෙන් ආරක්ෂිත වීමට හොඳයි.
ඒසිමෙට්රික් එන්ක්රිප්ෂන්වලදී පබ්ලික් කී ප්රයිවට් කී යුගලයක් සාදන විට, ඇත්තටම සිදු වන්නේ ඔබ විසින් (ඔබේ පරිගනකය හෝ ෆෝන් එක විසින්) මුලින්ම අහඹු ඉතා දිගු ප්රයිවට් කී එකක් සාදා, එම ප්රයිවට් කී එක යම් ගනිතමය ගනනය කිරීමක් (ඇල්ගොරිත්ම් එකක්) මඟින් පබ්ලික් කී එක සෑදීමයි. ඒ කියන්නේ පබ්ලික් කී එක සාදා ගන්නේ ප්රයිවට් කී එකෙන්. එනිසා ඔබ ප්රයිවට් කී එක දන්නේ නම්, ඉන් පබ්ලික් කී එක සාදා ගන්න පුලුවන්. එහෙත් එහි විරුද්ධ පැත්ත (එනම්, පබ්ලික් කී එකෙන් එහි ප්රයිවට් කී එක සාදා ගැනීම) කිසිසේත් සිදු කල නොහැකිය.
සැබෑ ජීවිතයේදී අහඹු අංකයක් සාදා ගන්නා ක්රමයක් ඔබට කිව හැකිද පරිගනක හෝ වෙනත් ඉලෙක්ට්රොනික් උපකරනයක උදව්වක් නැතිව? එය කල හැකි ක්රම ඕන තරම් ඇත. සරල එක් අවස්ථාවක් බලමු; එතකොට එවැනි ක්රම සිය ගනනක් ඔබටත් සිතා ගත හැකි වේවි. මේ සඳහා කාසියක් ගන්න.
ඔබට ඕන කරන්නේ ඉලක්කම් 100ක් දිගු අහඹු ඩිජිටල් සංඛ්යාවක් නම් (1111000101000001010110101101.... වැනි), කාසිය 100 වරක් උඩ දමන්න. පලමු වර උඩ දැමීමෙදි වැටුනේ “නෝනා“ නම්, එය 0 ලෙසද, වැටුනේ “පොල්ල“ නම්, එය 1 ලෙසද සලකා කොලයක සටහන් කරගන්න. දෙවැනි වරත් කාසිය උඩ දමා 1 හෝ 0 ලෙස පලමු ඉලක්කමට පස සටහන් කරන්න. මෙලෙස 100 වරක් උඩදමා 1 හෝ 0 සටහන් කල විට ඔබට ලැබී ඇත්තේ ඉලක්කම් 100ක් දිගු අහඹු ඩිජිටල් සංඛ්යාවක් තමයි.
මෙය ලෝකයේ සිටින සියලු දෙනාම සිදු කලොත්, එකම අංකය දෙදෙනෙකුට නොලැබෙනු ඇත. සම්භාවිතා න්යාය අනුව එය ඔප්පු කල හැකියි. එය අපි දැන් ඔප්පු කර බලමු (ජොලියට වගේ).
අපි බිට් 8ක් ගමු; ඒ කියන්නේ ඉලක්කම් 8ක් දිග ඩිජිටල් සංඛ්යාවක්. ඔබ එය 10101010 යැයි ගනීවි; මා එය 11110000 යැයි ගනීවී. එලෙස විවිධ අය විවිධාකාරයෙන් ලෙස එය ලියාවි. එලෙස විවිධාකාරයෙන් ලිවිය හැකි වුවත් එහි සීමාවක් පවතී මොකද එය ලිවිය හැකි විවිධ ක්රම හෙවත් සංයෝජන පවතින්නේ 256ක් පමනි. ඔබට ඕන නම් පොඩි අභ්යාසයක් ලෙස එය කොලයක ලියා බලන්න. 00000000 00000001 00000010 00000011 00000100 ආදි ලෙස වරකට එක බිට් එක ගානේ වෙනස් කරමින් ගිය විට එකිනෙකට වෙනස් බිට් සංයෝජය (combinations) 256ක් ලැබේවි.
බිට් 8කින් එය කිරීමට ටික කාලයක් වැය වන නිසා කැමති නම් බිට් 3කින් මෙම වැඩේ කර බලමු. 000 001 010 011 100 101 110 111 ලෙස විවිධ සංයෝජන 8ක් තිබෙනවා බිට් 3ක් සඳහා. බිට් 10ක් ගතහොත් විවිද සංයෝජන 1024ක් ලැබේ. බිට් 16කින් විවිධ සංයෝජන 65536ක් ලැබේ. බිට් 24ක් ගතහොත් එය කෝටි 400කට වඩා වැඩි සංයෝජන ගනනකි.
ඇත්තටම යම් බිට් ගනනකින් ලබා ගත හැකි විවිධ සංයෝජන ගනන සෙවීමට පොඩි සූත්රයක් තිබෙනවා. 2n යනු එම සූත්රය වන අතර, මෙය n යන්නට අපට අවශ්ය බිට් ගනන ආදේශ කරන්න. එවිට, බිට් 3ක් ගත හොත් 23= 2 x 2 x 2 = 8 වන අතර, බිට් 8ක් ගත් විට 28 = 256 වේ. එලෙස බිට් 100ක් ගත් විට, එතැන විවිධ සංයෝජන 2100 = 1,267,650,600,228,229,401,496,703,205,376 ක් තිබෙනු ඇත. බලන්න එය කෝටි කෝටි කෝටි කීයක්ද කියා. මෙම සංඛ්යාව “එක් ඔක්ටිලියන දෙසිය හැට හත් සෙප්ටිලියන හයසිය පනස් හෙක්සිලියන දෙසිය විසි අට ක්වින්ටිලියන දෙසිය විසි නව ක්වොඩ්රිලියන හාරසිය එක් ට්රිලියන හාරසිය අනූහය බිලියන හත්සිය තුන් මිලියන දෙලක්ෂ පන්දහස් තුන්සිය හැත්තෑ හයයි“ යනුවෙන් පැවසිය යුතුයි.
ඉතිං, මෙම ක්රිප්ටොවලදී ප්රයිවට් කී එකේ ඉලක්කම් 256ක් පමන තිබේ. ඒ කියන්නේ විවිධ සංයෝජන 2256 ක් ඇත. ඉතිං, මෙච්චර විවිධ සංඛ්යා තිබෙන පරිසරයක ඔබටයි මටයි එකම සංඛ්යාව ලැබීමට තිබෙන සම්බාවිතාව සිතාගත නොහැකි තරම් කුඩා බව පැහැදිලියිනෙ. පරිගනකයට හෝ ෆෝන් එකටත් පුලුවන් කාසි උඩ දාන්නේ නැතිව යම් යම් ක්රමවලට අහඹු සංඛ්යා එලෙස නිර්මානය කරන්නට. පරිගනක තාක්ෂනයේදී මෙම හැකියාවට random number generation යැයි කියනවා. කොම්පියුටර් ප්රෝග්රැමිං කරන අය මෙය බහුලව හා පහසුවෙන් භාවිතා කරනවා.
එනිසා, ඇප් එකෙන් සාමාන්යෙයන් පබ්ලික් කී එක අමුතුවෙන් ගබඩා කර ගැනීමට අවශ්යත් නැහැ මොකද ප්රයිවට් කී එකෙන් පබ්ලික් කී එක සාදාගත හැකි නිසා. එහෙත් අවශ්ය නම් ඇප් එක ප්රයිවට් කී හා පබ්ලික් කී දෙකම ගබඩා කර ගන්නත් පුලුවන් (බොහෝ ඇප් එසේ ගබඩා කර ගන්නවා). එය එතරම් සැලකිය යුතු කරුනක් නොවේ. ඇප් එක ඩිසයින් කරපු අයට එය භාරයි.
ඒ අනුව, වොලට් එකෙන් (ඇප් එකෙන්) කරන්නේ අන්තර්ජාලයේ පවතින බිට්කොයින් බ්ලොක් චේන් එකේ පවතින තමන්ට අයිති බිට්කොයින් ගනුදෙනුවලට අදාල රෙකෝඩ්/බ්ලොක් ඕපන් කිරීමයි. ඉතිං, ඒවා ඕපන් කිරීමටනෙ ප්රයිවට් කී අවශ්ය වන්නේ. ප්රයිවට් කී එක නිවසකට ඇතුලු වීමට තිබෙන යතුරක් වගේ.
එනිසා, ප්රයිවට් කී එකෙන් පබ්ලික් කී එක සාදන අතර, එම පබ්ලික් කී එකෙන් බිට්කොයින් ඇඩ්රස් එක සාදනවා. මෙම ක්රියාවලිය ආපස්සට කරන්න බැහැ. ඒ කියන්නේ බිට්කොයින් ඇඩ්රස් එකෙන් පබ්ලික් කී එක සාදා ගන්නත් බැහැ, පබ්ලික් කී එකෙන් ප්රයිවට් කී එක සාදා ගන්නත් බැහැ.
නිකමට හෝ ඇප් එක අවුල් ගිහින් හෝ ඇප් එක මැකුනොත් හෝ පරිගනකය හෝ ෆෝන් එක නැවත ඔන් කල නොහැකි තත්වයකට පත් වුවොත්, ප්රයිවට් කී ටික ඔබට නැවත ලබා ගත හැකි නොවනු ඇත. එවිට, ඔබ සතු බිට්කොයින් සියල්ල අහිමි වනු ඇත. ප්රයිවට් කී නැතිව කවදාවත් කුමන් විදියකින්වත් බිට්කොයින් ටිකේ අයිතිවාසිකම් කිව නොහැකියි. එනිසා, ප්රයිවට් කී ආරක්ෂා කර ගැනීම විශාල භාරදූර වැඩක්.
මා නම් කිසිවිටක ඉලෙක්ට්රොනික් උපකරන මත විශ්වාසය තබන්නේ නැත මොකද ඕනෑම මොහොතක ඒවා කැඩී යාවි; පිලිස්සි යාවි. එනිසා, ප්රයිවට් කී ආරක්ෂා කර ගැනීමට තවත් කදිම ක්රමයක් ඇත. ඒ තමයි එම අංකය නිවැරදිව කොලයක ලියා ගැනීම. අපි අවුරුදු බර ගනන් අපේ සහතික එහෙම ආරක්ෂා කර ගෙන ඉන්නවනෙ. අන්න එලෙස මෙම කොලයත් ආරක්ෂා කර ගන්න. මා මෙම ක්රමයට කැමතියි. මෙම ක්රමයට paper wallet කියා කියනවා. cold storage කියාද මීට කියනවා.
BITCOIN MINING
බිට්කොයින් මයිනිං ගැන දැන් සොයා බලමු. පෙර අවස්ථාවකදිත් පැවසුවා කෙනෙකුට බිට්කොයින් ලබා ගත හැකි තවත් ආකාරයක් තමයි මයිනිං කියන්නේ කියා. MINE යන ඉංග්රිසි වචනයට තේරුම් කිහිපයක් තිබෙනවා. බිම් බෝම්බය, ආකරය/නිධිය, ආකරයකින් වටිනා දේවල් (රන්, මැනික්, වැනි) කනිනවා යන තේරුම් ඊට ඇත. බිට්කොයින්වලදී “කනිනවා“ යන තේරුම තමයි අරං තියෙන්නේ.
රන් ආකරයකින් රත්තරං කනිනවා කියන්නේ අලුතින් ලෝකයට රත්තරං තොගයක් එකතු කරනවා කියන එකනෙ. අන්න එලෙසම, බිට්කොයින් පද්ධතියට අලුතින් බිට්කොයින් එකතු වෙනවා මයිනිං නිසා. එය හරියට සාම්ප්රදායික සල්ලි අච්චු ගානවා වගේ වැඩක්.
සාම්ප්රදායික සල්ලි නම් මහා බැංකුව යන මධ්යගත තනි ආයතනයක් විසින් අච්චු ගාන්නේ. එහෙත් බිට්කොයින් කැනීම සිදු කරන්නේ මධ්යගත තනි කෙනෙකු විසින් නොව. එය සමස්ථ පද්ධතිය විසින්ම යම් සම්මතයකට (බිට්කොයින් ප්රොටොකෝලයට) අනුව සිදු වන්නක්. ඒ කියන්නේ බිට්කොයින් ජාලයට සම්බන්ද සර්වර්වලයි එය සිදු වන්නේ. ඒ ගැන දැන් බලමු.
බිට්කොයින් ලෙජරය පවත්වාගෙන යන්නේ බ්ලොක් චේන් යන තාක්ෂණය පදනම් කරගෙන බව ඔබ දැන් දන්නවා. මෙම බ්ලොක් චේන් එක සේව්වෙලා තියෙන්නේ බිට්කොයින් ජාලයට සම්බන්ද සර්වර් තුලයි. ඉතිං, මෙම බ්ලොක් චේන් එකට අලුතින් බ්ලොක් එකතු වෙනවානෙ.
බිට්කොයින් ප්රෝටොකෝලය සාදා තිබෙන්නේ දල වශයෙන් සෑම විනාඩි 10කටම අලුතින් බ්ලොක් එකක් බ්ලොක් චේන් එකට එකතු වන ආකාරයටයි.
මෙම කාලය සෑම විටම හරියටම විනාඩි 10ක්ම වන්නේ නැත. සමහර විට විනාඩියකින් දෙකකින් එය සිදු වෙයි; තවත් වෙලාවකට පැය භාගයක් ඊට ගත වේ. එහෙත් දීර්ඝ කාලීනව (ඇවරේජ් කර) සලකා බලන විට, එය විනාඩි 10කින් පමන සිදු වන ලෙසයි බිට්කොයින් මෘදුකාංගය සකස් කර තිබෙන්නේ.
ඉතිං, මා පෙර පෙන්වා දුන්නා යම් ගනුදෙනුවක් (transaction) සිදු වූ විට, එය මෙම්පූල් හෙවත් ට්රාන්සැක්ෂන් පූල් එකේ තාවකාලිකව ගබඩා වෙනවා කියා. මෙම පූල් එක බිට්කොයින් ජාලයට සම්බන්ද සියලු සර්වර්වලට පේනවා.
ඇත්තටම මෙම්පූල් එක යනු මුලු බිට්කොයින් ජාලයටම පොදු තනි ස්ථානයක පවතින මෙමරියක්/මතක ගබඩාවක් නොවෙයි. ජාලයට සම්බන්ද එක් එක් සර්වර් එක තුල තම තමන්ගේ මෙමපූල් එකක් බැඟින් තිබේ. සාමාන්යයෙන්, මෙලෙස වෙන් වෙන්ව පවතින මෙම්පූල් සියල්ලේම පවතින්නේ එකම ගනුදෙනු දත්තද වේ. ඔබට සිතේවි ඒ කොහොමද කියා.
මෙහෙමයි. ඔබේ වොලට් එක සම්බන්ද වෙනවා සර්වර් කිහිපයකට. ඉතිං, ඔබ යම් ගනුදෙනුවක් කල විට, එම ගනුදෙනුව ගැන විස්තර කෙලින්ම යොමු වෙන්නේ බිට්කොයින් ජාලයේ එම පරිගනක (නෝඩ්) වෙතටයි. එම නෝඩ් විසින් එම දත්ත නිවැරදිදැයි බලනවා. ජාලය හැකර්වරුන්ගෙන් හා කඩාකප්පල්කාරයන්ගෙන් ආරක්ෂා කර ගන්න හා පලදායි මට්ටමින් පවත්වා ගන්නයි එහෙම කරන්නේ. එම ගනුදෙනු විස්තර නිවැරදි නම්, එම නෝඩ් විසින් ඔබේ ගනුදෙනුවට තමන්ගේ මෙම්පූල් එකට ඇතුලු වීමට අවසර දෙනවා. තම මෙම්පූල් එකට ඇතුලු කර ගන්නවා පමනක් නොවෙයි, ඔබේ ගනුදෙනු විස්තරය එම සර්වරයට සම්බන්ද අනෙක් සර්වර්වලටත් දන්වා යවනවා.
ඉන්පසු එම සර්වර්ද ඔබේ ගනුදෙනු විස්තර හරිදැයි සොයා බලා, ඒවා නිවැරදි නම් ඔවුන්ගේ මෙම්පූල්වලද ගබඩා කර ගෙන, වෙනත් සර්වර්වලටද එම ගනුදෙනු දත්ත දනවා යවනවා. ඇත්තටම සෑම සර්වර් එකක් විසින්ම තම තමන් විසිනුත් ගනුදෙනු විස්තර හරිදැයි සොයා බලනවා. අන්න එහෙම තමයි ජාලය හැකර්වරුන්ගේ කඩාකප්පල් ක්රියාවලින් ආරක්ෂා කර ගන්නට හැකි වෙන්නේ. නිකටම හෝ හැකර් කෙනෙක් එක් සර්වරයකට වැරදි දත්තයක් එව්වොත්, එම දත්තය එතැනින් ජාලය පුරාම පැතිරෙන එක වලකිනවා.
එලෙස තත්පර ගනනක් ගිය විට, ඔබේ ගනුදෙනු විස්තර බිට්කොයින් ජාලය පුරාම broadcast වී, එම ගනුදෙනුව සමස්ථ ජාලය පුරාම පැතිරී යනවා. අන්න එහෙමයි එක් තැනක සිදු වන ගනුදෙනුවක් සමස්ථ ජාලය පුරාම පැතිර ගොස්, වෙන් වෙන්ව පවතින මෙම්පූල් සියල්ලෙහිම අවසානයේ ගබඩා වෙන්නේ.
ඉතිං, සර්වර් සිය ගනනක් තිබෙනවානෙ. ඒ සෑම එකක්ම උත්සහ දරන්නේ අනෙක් අයට පෙර තමන් මෙම ගනුදෙනු ටික ඔක්කොම (හැකි උපරිමය දක්වා) එක බ්ලොක් එකකට කැටි කොට ටක් ගාලා බ්ලොක් චේන් එකට සෙට් කිරීමටයි. ඉන් ඔවුන්ට දෙයාකාරයක ලාභයක් ලැබේ.
1. එක් එක් ගනුදෙනුවක් සඳහා යම් ගාස්තුවක් (transaction fee) අය කරන බව පැවසුවනෙ. ඉතිං, එම බ්ලොක් එකට ඇතුලත් කල ගනුදෙනුවල ගාස්තු ටික ඔවුන්ට ලැබේ. එය දල වශයෙන් ඩොලර් දෙතුන් දහකට වැඩිය.
2. බ්ලොක් චේන් එකට අලුතින් බ්ලොක් එකක් සෙට් කරන හැම වාරයකදීම එම පරිගනකයට යම් බිට්කොයින් ගනනක් හිමි වේ. ඩොලර් වටිනාකමින් බැලුවොත් මෙම ගෙවීම ඉතා විශාලයි ඉහත ගාස්තුවට වඩා. මෙම බිට්කොයින් ඇත්තටම එම සර්වර් එකට ලැබෙන්නේ කාගෙන්වත් ට්රාන්ස්ෆර් කිරිල්ලක් ලෙස නොවේ. බිට්කොයින් ජාලය විසින් මෙම බිට්කොයින් “අච්චු ගාලා“ (bitcoin minting) හෙවත් කැනලා තමයි සර්වර් එකට ලබා දෙන්නේ. එනිසයි මෙම ක්රියාවට බිට්කොයින් මයිනිං කියන්නේ. subsidy ලෙස මෙලෙස බිට්කොයින් ත්යාගය ලබා දීම හැඳින්වෙනවා.
ඒ අනුව, සෑම විනාඩි 10කට සැරයක් (දළ වශයෙන්), බිට්කොයින් ජාලයට අලුතින් බිට්කොයින් ප්රමානයක් එකතු වෙනවා මොකද සෑම විනාඩි 10කට සැරයක්ම චේන් එකට අලුතින් බ්ලොක් එකක් එකතු වෙන නිසා.
ඉතිං, කොපමන බිට්කොයින් ගනනක් එසේ මයිනිංවලින් ලැබෙනවාද? බිට්කොයින් පටන් ගත් කාලයේ එය බිට්කොයින් 50ක් වුනා. එහෙත් සෑම බ්ලොක් 210,000 කදී එලෙස මයිනිංවලින් ලැබෙන බිට්කොයින් ගනන පෙර ගනනින් අඩක් බවට පත් වෙනවා.
දල වශයෙන් සෑම විනාඩි 10කට එක බ්ලොක් එක ගානේ එකතු වන විට, බ්ලොක් 210,000ක් සඳහා කොපමන කාලයක් වැය වේද? දවසකට පැය 24ක් තිබෙන නිසාත්, පැයකට විනාඩි දහයේ කොටස් 6ක් තිබෙන නිසාත්, දවසකට විනාඩි දහයේ කොටස් 24 x 6 = 144ක් තිබේ. ඒ කියන්නේ එක දිනකට බිට්කොයින් චේන් එකට අලුතින් බ්ලොක් 144ක් එකතු වේ. එවිට වසරකට බ්ලොක් 365 x 144 = 52,560 ක් එකතු වෙනවා. ඒ කියන්නේ බ්ලොක් 210,000ක් සඳහා අවුරුදු 210000/52500 = 4ක් ගත වේ.
මේ අනුව සෑම අවුරුදු 4කට සැරයක් හෙවත් සෑම බ්ලොක් 210,000කට සැරයක් මයිනිං නිසා සර්වර් එකට ලැබෙන බිට්කොයින් ප්රමානය පෙර තිබූ ගනනින් අඩක් බවට පත් වේ. බිට්කොයින් පටන් ගත් 2009 සිට දල වශයෙන් 2013 දක්වා කාලය තුල එය බිට්කොයින් 50ක් වුනා. 2013 සිට 2017 දක්වා කාලය තුල එය බිට්කොයින් 25ක් වුනා. 2017 සිට 2021 දක්වා කාලය තුන එය බිට්කොයින් 12.5ක් වුනා. 2021 සිට 2025 දක්වා එය බිට්කොයින් 6.25ක්. ඉදිරියේදි එය තව තවත් අඩු වෙමින් යන බව පේනවා නේද?
මෙහිදී බිට්කොයින්වල නිර්මාතෘ වන සතොෂි ගැන නැවත දෙයක් කීමට තිබේ. බිට්කොයින් ආරම්බයේදී ඔහු පමනයි බිට්කොයින් ජාලයේ සිටියේ. ඒ කියන්නේ ආරම්බයේදි තිබුනේ සතොෂිගෙ සර්වර් එක පමනයි. ඉතිං, ඔහු තම සර්වර් එක ක්රියාත්මක කර බිට්කොයින් පද්ධතිය ක්රියාත්මක කලේ 2009 ජනවාරි 3 ග්රිනිච් වෙලාවෙන් සවස 11.45ට පමනය. ජෙනෙසිස් බ්ලොක් එක ලෙස හඳුන්වන පලමු බ්ලොක් එක බිහි වූයේ එම වෙලාවටයි. එමඟින් ඔහුට බිට්කොයින් 50ක් ලැබුනා. සිදු වූ එකම ගනුදෙනුව වූයේ බිට්කොයින් මයිනිං වලින් බිට්කොයින් 50 ලැබීම පමනයි. වෙනත් ගනුදෙනු සිදු කරන්න තරම් පිරිසක් එතකොට හිටියෙ නැහැනෙ. මෙම බ්ලොක් එක ගැන සියලු විස්තර https://www.blockchain.com/btc/block/0 මඟින් දැක ගත හැකියි.
ඉන්පසු දල වශයෙන් සෑම විනාඩි 10කට සැරයක් මෙලෙස ස්වයංක්රියවම එම සර්වර් එක විසින් අලුතින් බ්ලොක් එක ගානේ බ්ලොක් චේන් එකට එකතු කරන විට, ඒ සෑම අවස්ථාවකදීම බිට්කොයින් 50 ගානේ සතොෂිට ලැබෙනවා. මේ සෑම අවස්ථාවකදීම වෙනස් වෙනස් ඇඩ්රස්වලටයි මෙම බිට්කොයින් ලැබුනෙ. ඒ සියල්ලම අයිති සතොෂිටයි. මෙලෙස පලමු බ්ලොක් ලක්ෂය ඉක්මවා යන තෙක්ම සතොෂිට තමයි බිට්කොයින් 50 ගානේ එකතු වුනේ මොකද ඔහු විතරයිනෙ මයිනිං සිදු කලේ. ඒ අනුව ඔහුට නොමිලේම බිට්කොයින් මිලියනයකට වැඩි ප්රමානයක් මෙලෙස ලැබුනා.
මෙලෙස ඔහුට මයිනිං මඟින් නොමිලේ බිට්කොයින් එකතු වෙමින් පැවතියා. ඒ අතරතුර, ඔහු බිට්කොයින් කිහිපයක් තවත් අයට යැව්වා අත්හදා බැලීම් වශයෙන්. ලෝකයේ පලමු වරට එලෙස කෙනෙකු විසින් තවත් කෙනෙකුට බිට්කොයින් යැව්වේ 2009 ජනවාරි 12 දින ග්රිනිච් වෙලාවෙන් පෙරවරු 9 ටය. ඒ සතොෂි විසින් Hal Finney නම් බ්ලොක් චේන් තාක්ෂනය ගැන පර්යේෂන කල පුද්ගලයකුට බිට්කොයින් 10ක් යැවීමයි. එම ගනුදෙනුවේ විස්තරය (බ්ලොක් එකේ විස්තරය) https://www.blockchain.com/btc/tx/f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16 යන ලින්ක් එකෙන් බලා ගත හැකියි.
දැන් තේරෙනවාද ඇයි බොහෝ දෙනෙක් අලුත් අලුත් ක්රිප්ටොකරන්සි හඳුන්වාදෙන්නට උත්සහ කරන්නේ කියා? අපට තිබෙන ආදරේට නොවේ. අලුතින් ක්රිප්ටොකරන්සියක් හඳුන්වාදෙන විට, ඊට කට්ටිය එකතු වන්නට කාලයක් ගත වෙනවානෙ. ඉතිං, එම කාලය ඇතුලත ආරම්භක බ්ලොක් ටික බ්ලොක් චේන් එකට එකතු කරන්නේ ක්රිප්ටො එක හඳුන්වා දෙන පුද්ගලයා විසින්මයි (එනම්, ඔහුගේ සර්වරය විසින්). එවිට, සතොෂිට වුනා වගේ, ඔහුට ඉබේම ක්රිප්ටො මිලියන ගනනක් එකතු වෙනවා මයිනිං ක්රියාවලිය නිසා. නිකමට හෝ එම ක්රිප්ටො එක පසුකාලීනව ජනප්රිය වුවොත් එමඟින් ඔහු සුපිරි කෝටිපතියෙක් වෙනවා. ඇත්තටම සතොෂි අද මුලු ලෝකයේම ඉන්න සුපිරි කෝටිපතියෙක්. ඔහුගේ බිට්කොයින්වල අද වටිනාකම ඩොලර් බිලියන 50කට වැඩිය.
ඉතිං, බිට්කොයින් චේන් එකට සම්බන්ද සර්වර් අතර නිරන්තර තරගයක් තිබෙනවා අලුතින් බ්ලොක් එකක් චේන් එකට සවි කර ඉහත ගෙවීම් දෙවර්ගය තමන් සතු කර ගන්න. මෙම තරගය සාධාරනව පැවැත්වීමට බිට්කොයින් ප්රෝටොකෝලය අපූරු ක්රමයක් භාවිතා කරනවා proof of work (POW) කියා.
මෙලෙස මයිනිංවලින් ලැබෙන බිට්කොයින් ටික එය ලැබුනු විගස වියදම් කිරීමට බැහැ. සාමාන්ය ගනුදෙනුවකදී නම්, ඔබට යම් බිට්කොයින් ටිකක් කවුරු හරි එවුවොත්, ඔබට විනාඩි හෝ පැය කිහිපයකට පසු බොහෝවිට එම බිට්කොයින් වියදම් කිරීමට හැකියිනෙ. එහෙත් ඔබ බිට්කොයින් ලබා ගන්නේ මයිනිං කිරීමෙන් නම්, එම බිට්කොයින් වියදම් කිරීමට ඔබට හැකියාව ලැබෙන්නේ බ්ලොක් චේන් එකට තවත් බ්ලොක් 100ක් එකතු වූවාට පසුයි. ඊට ඇත්තටම හේතුවක් තිබෙනවා.
සමහරවිට (කලාතුරකින්), බ්ලොක්චේන් එකට එකතු කරපු යම් බ්ලොක් එකක් අවලංගු වී යෑමට ඉඩක් තිබෙනවා. එවිට, එම බ්ලොක් එකේ අඩංගු ගනුදෙනුද ඉබේම බ්ලොක්චේන් එකෙන් ඉවත් වී යනවා (එම ගනුදෙනු තවම සිදු වී නැති තත්වයට පත් වෙනවා). එවිට එම ගනුදෙනු නැවත පූල් එකට එකතු වෙනවා. එනිසයි කියන්නේ තමන්ට කවුරුන් විසින් හෝ බිට්කොයින් එව්වොත්, එය ලැබී යම් කාලයක් බලා සිටින්න එම ගනුදෙනුව තවදුරටත් තහවුරු වන තෙක් කියා.
ඒ විතරක් නොවේ, එම අවලංගු වූ බ්ලොක් එකට ලැබුනු සියලු බිට්කොයින්ද අහෝසි වී යනවා. ඉතිං, මයිනිං කල විගස එය වියදම් කිරීමට අවස්ථාව ලබා දුන්නොත්, එම මුදල් ලබා ගත් තැනැත්තා ඒවා මට එවා වියදම් කලොත්, එම මුදල් ලබපු මට ඒවා අහිමි වී ගොස් විශාල ගැටුම් ඇති විය හැකියි. ඉතිං, ඊට පිලියම තමයි මයිනිං මඟින් ලැබුනු මුදල් වියදම් කිරීමට අවසර ලබා දෙන්නේ තවත් බ්ලොක් 100ක් ගියාට පසුයි. මෙම බලා සිටීමට සිදු වීම maturation ලෙස හැඳින් වෙනවා.
සර්වරයක් කරන්නේ මෙම්පූල් එකේ තිබෙන ගනුදෙනුවලින් බ්ලොක් එකක ගබඩා කල හැකි උපරිම ගනුදෙනු ගනනක් ගෙන තමන්ගේ පරිගනකය තුල අලුතින් බ්ලොක් එකක් (candidate block ලෙස මෙම තාවකාලික (තවම බ්ලොක් චේන් එකට සෙට් කර නැති) බ්ලොක් එක හැඳින්වේ) සාදා චේන් එකට සෙට් කිරීමයි. මෙම වැඩේ ඔබේ මගේ ලැප්ටොප් පරිගනකය මඟින් වුවද ඉක්මනින් කල හැකියි.
ඉතිං, එලෙස පහසුවෙන් මෙම වැඩේ කරන්න පුලුවන් වීම නිසා, ජොලියට මෙන් කොල්ලො කුරුට්ටන් පවා තම තමන්ගේ පරිගනකවලින් ඒ දේ සිදු කරන්නට උත්සහ දරන එක වලකාලන්න බැරි වෙනවා. ක්රිප්ටොකරන්සි ජාලය පවත්වාගෙන යෑම සීරියස් වැඩක් විදියට සිදු විය යුත්තක් මොකද ඉතා විශාල වටිනාකම් එක්කයි අපි වැඩ කරන්නේ. බැංකුවක සිදු වන වැඩකට සමාන වැඩක් මෙය. ඉතිං, මේ කටයුත්ත බැරෑරුම්ව සලකා වැඩ කරන පිරිසක් තමයි බිට්කොයින් ජාලයට ඕන කරන්නේ.
මෙලෙස බැරෑරුම්ව සිදු කරන යම් පිරිසක් ලබා ගත හැකි වනු පිනිසත්, එම පිරිස අතරත් යම් සාධාරන තරගයකින් ජයගෙන එම කටයුත්ත කර ගත හැකි ලෙසටත් සැකසූ තාක්ෂනික උපක්රමයක් තමයි POW කියන්නේ. එක ගලෙන් කුරුල්ලන් දෙන්නයි.
හැබැයි මේ හේතු දෙකටම වඩා තවත් වැදගත් හේතුවක් තිබෙනවා. ඒ තමයි, හැකර්ලාට පහසුවෙන් ලෙජරය වෙනස් කිරීමට නොහැකි විය යුතුයි. එය එලෙස සිදු වීමට නම්, එක් එක් බ්ලොක් එකක් වෙනස් කිරීම අමාරු කටයුත්තක් (කාලය ගත වන කටයුත්තක්) විය යුතුයිනෙ. හරි... එය සිදු වන්නේ මෙහෙමයි.
පෙර කියූ පරිදි බ්ලොක් එකක් සාදා එහි හෑෂ් එක සාදා ගන්නවා. එහෙත් හෑෂ් එක සාදන විට යම් කොන්දේසියක් දැන් තිබෙනවා. එනම්, හෑෂ් එකේ අනිවාර්යෙන්ම පලමු ඉලක්කම කිහිපය 0 විය යුතුයි. උදාහරනයක් ලෙස, බිට්කොයින් ජාලයේ පලමු බ්ලොක් එකේ (එනම් ජෙනෙසිස් බ්ලොක් එකේ) හෑෂ් එක 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f වන අතර, බලන්න එහි පලමු ඉලක්කම් දහයම 0 වේ.
යම් දත්ත සමූහයක් සාමාන්ය පරිදි හෑෂ් කිරීමට ගත වන්නේ තත්පරයකට අඩු කාලයක්. එහෙත් එහිදී සාමාන්යෙයන් ලැබෙන ඩයිජෙස්ට්/හෑෂ් අගය අහඹු සංඛ්යාවක්. එහිදී හෑස් එකේ පලමු ඉලක්කම් කිහිපය මෙසේ විය යුතු යැයි කොන්දේසි නැහැ. එහෙත් දැන් මෙම කොන්දේසියෙන් කියන්නේ “එහෙම බැහැ මුල් ඉලක්කම් කිහිපය 0 විය යුතුයි“ කියා. එය කල හැකිද? හැකියි.
හෑෂ් අගය වෙනස් වන්නේ දත්තය වෙනස් කරන විටනෙ. එහෙත් අපට දත්ත වෙනස් කරන්නත් බැහැ මොකද එම දත්ත යනු ගනුදෙනු විස්තරයි. ඉතිං එම ගනුදෙනු විස්තර දශමයකින්වත් වෙනස් කරන්නට බැහැ/තහනම්.
එහෙත් ඊට යම් පිලියමක් තිබෙනවා. ගනුදෙනු විස්තරවලට අමතරව අපට හැකියි කිසිදු ගනුදෙනුවකට අදාල නැති නිකංම නිකං දත්ත කොටසකුත් බ්ලොක් එකේ තබා ගන්න. මෙම දත්තය ගනුදෙනුවලට අදාල නැති නිසා, අපට කැමති දෙයක් එහි ලිවිය හැකියි. මෙම දත්ත කොටස nonce යන නමින් හඳුන්වනවා.
ඉහත රූපයේ n, n+1, n+2 ආදි ලෙස එකිනෙකට ලින්ක් වූ බ්ලොක් 3ක් ඇති අතර, ඒ එක් එක් බ්ලොක් එකක් තුල Tx100, Tx102 ආදි ලෙස ගනුදෙනු විස්තර ඇත. ඊට අමතරව සෑම බ්ලොක් එකකම ඊට පෙර බ්ලොක් එකේ හෑෂ් එකත් ඇත. රූපයේ පෙන්වා නැතත්, මේ සෑම බ්ලොක් එකකම මෙම බ්ලොක් එක සාදපු වෙලාව (timestamp) එකත් ඇත. ඊටත් අමතරව nonce අගයත්/දත්තයත් ඇත. ඉතිං, මේ සියල්ලම එකට ගෙන තමයි හෑෂිං සිදු කරන්නේ.
දැන් කරන්නේ, ඉහත ආකාරයට ගනුදෙනු දත්ත සියල්ලත්, බ්ලොක් එකට අවශ්ය තවත් වැදගත් තොරතුරු සහිත දත්තත් (පෙර බ්ලොක් එකේ සීරියල් අංකය, ටයිම්ස්ටෑම්ප් වැනි), ඊටත් අමතරව nonce දත්තයත් එකතු කර බ්ලොක් එකක් සාදනවා.
මින් අපට අවශ්ය අවශ්ය විදියට ඕනම කුනුහරුපයක් ලිවිය හැක්කේ නොන්ස් එකේ පමනි. ඉතිං, දැන් කරන්නේ, නොන්ස් එකේ 0 ලියා, මුලු බ්ලොක් එකම හෑෂ් කරනවා. එසේ ලැබුන හෑෂ් එකේ මුල් ඉලක්කම් කිහිපය 0 දැයි බලනවා. නිකමට හෝ අපට අවශ්ය 0 ගනන ලැබුනේ නම්, එම බ්ලොක් එක තමයි දැන් චේන් එකට සෙට් කරන්නේ.
එහෙත් අපට අවශ්ය 0 ගනන ලැබුනේ නැතිනම්, නොන්ස් එකේ 1 ලියා, නැවත මුලු බ්ලොක් එකම හෑෂ් කර බලනවා මුල් ඉලක්කම් කිහිපය 0 වූවාද කියා. 0 වූවා නම්, එය චේන් එකට සෙට් කරනවා; නැතිනම් නැවතත් නොන්ස් එකේ 2 ලියා හෑෂ් කරනවා.
මෙම ක්රියාවලිය දිගටම කරනවා නොන්ස් අගය එකින් එක වැඩි කරමින්. ඔහොම කරගෙන යන විට, අනිවාර්යෙන්ම යම් අවස්ථාවකදී, හෑෂ් එකේ මුල් ඉලක්කම් කිහිපය 0 වෙනවා. එතකල් මෙම හෑෂ් කිරිල්ල දිගටම කරගෙන යා යුතුයි. මේ සඳහා කාලයක් ගත වෙනවා. දල වශයෙන් විනාඩි 10කින් පමන වැය වන විදියටයි සකසා තිබෙන්නේ.
උදාහරන ලෙස, ඉහත පෙන්වා ඇති ජෙනෙසිස් බ්ලොක් එකේ හෑෂ් එක නැවත බලන්න. එහි හෑස් එක 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f වන අතර, මෙම හෑෂ් එක ලැබීමට 0 සිට1, 2, 3 ආදි ලෙස එකින් එක නොන්ස් එකේ අගය වැඩි කරගෙන ගොස් 2,083,236,893 යන අගය යොදා හෑෂ් කල විටයි කොන්දොසියට අනුව අවශ්ය බිංදු ගනන සහිත හෑෂ් එක ලැබුනේ. ඒ කියන්නේ සර්වර් එකට මෙම බ්ලොක් එක තමන් සතු කරගන්නට හෑෂ් ගනනය කිරීම 2,083,236,893 සැරයක් කරන්නට සිදු වුනා. එය පහසු කටයුත්ක් නොවන බව පේනවනේ.
ඇත්තටම මේ සඳහා ගත වන කාලය තීරනය වන්නේ එය ගනනය කිරීමට ගන්නා සර්වරයේ හැකියාව මතයි. මුල්ම කාලයේ සාමාන්ය පරිගනකයක ප්රොසෙසර් එකකින් වුවද මෙය කළ හැකි වූවා. එහෙත් පරිගනක තාක්ෂනයත් දිනෙන් දින දියුනු වෙනවානෙ. ඉතිං, ප්රොසෙසර් දියුනු වීම නිසා, විනාඩි 10කට වඩා අඩු කාලයකින් මෙය කල හැකි තත්වයකට ආවා. එය බිට්කොයින්වල පැවැත්වමට සුදුසු නැහැ මොකද බිට්කොයින් ජාලය නිර්මානය කර තිබෙන්නේ සෑම විනාඩි 10කට සැරයක් චේන් එකට බ්ලොක් එකක් එකතු වන විදියටනෙ.
එතකොට බිට්කොයින් සොෆ්ට්වෙයාර් එක විසින් අපූරු දෙයක් කරනවා. එනම්, මෙම ගනනය කිරීම තව තවත් අමාරු කරනවා. එය කරන්නේ හෑෂ් එකේ මුලට 0 ආ යුතු ඉලක්කම් ගනන් වැඩි කරන එකයි. ඒ අනුව බ්ට්කොයින් ආරම්භයේදී මුලට ආ යුතු 0 ගනන දහයක් වුවත් අද වන විට, මෙලෙස තව තවත් අමාරු කිරීම නිසා, හෑෂ් එකේ මුල් ඉලක්කම් 20ක්ම 0 ලෙස පැවතිය යුතුයි. ඉදිරියේදී එය 21, 22 ආදි ලෙස වැඩි කෙරේවි. උදාහරනයක් ලෙස, 2022 මාර්තු 28 ග්රිනිච් වෙලාවෙන් පස්වරු 11.49දී බිට්කොයින් චේන් එකට එකතු වූ 729440 වන බ්ලොක් එකේ හෑෂ් එක 000000000000000000002cf08358410c972514051041ae5a1130a7116457002a වේ. එහි මුල බිංදු 20ක් ඇත. මෙම බ්ලොක් එකේ විස්තර https://www.blockchain.com/btc/block/000000000000000000002cf08358410c972514051041ae5a1130a7116457002a මඟින් බලා ගත හැකියි.
ඉහත විස්තරය තුල pow ක්රියාවේදී මා පැවසුවා හෑෂ් එකේ මුල් අංක කිහිපයක් බිංදුව විය යුතුයි කියා. ඇත්තටම එය එහෙම තමයි සිදු කරන්නේ. එහෙත් බොහෝ තැන්වල මෙය විස්තර කරන්නේ target යන වචනය ඔස්සේය. එනම්, හෑෂ් කරන විට ලැබෙන එම හෑෂ්/ඩයිජෙස්ට් අගය ටාගට් අගයට වඩා අඩු විය යුතු යැයි ඔවුන් පවසනවා. ඒ කියන දේ ඔබට එකවර නොතේරෙන්නට ඇති. එනිසා එයත් මඳක් විමසා බලමු.
මෙය පහසුවෙන් වටහ ගැනීමට කුඩා සංඛ්යාවක් උදාහරනයක් ගමු. සිතන්න ඔබට ලැබෙන හෑෂ් එක ඩිජිටල් ඉලක්කම් 5කින් යුක්ත යැයි කියා. ඒ අනුව හෑෂ් එක 11010 හෝ 10001 හෝ එවැනි ඕනෑම ඩිජිටල් ඉලක්කම් 5කින් යුතු සංඛ්යාවක් විය හැකියි. මෙවිට හෑෂ් අගය 00000 යන අවම ඩිජිටල් සංඛ්යාවේ සිට 11111 යන උපරිම ඩිජිටල් සංඛ්යාව දක්වා වූ පරාසය තුල පිහිටයි (විවිධ සංයෝජන පවතිවා). මෙම අගය පරාසයම දශමවලින් 0 සිට 31 දක්වා ලෙස දැක්විය හැකියි.
දැන් මා කොන්දේසියක් දානවා හෑෂ් අගය අනිවාර්යෙන්ම 15 (දශමවලින්) හෝ ඊට අඩු විය යුතුයි කියා. එනම්, ටාගට් අගය 15 වන සේ සලකා හෑෂ් කිරීම තමයි කරන්නට තියෙන්නේ. මා ඔබට දැන් කියනවා එම 15 යන දශම සංඛ්යාව ඩිජිටල් සංඛ්යාවක් හෙවත් දෙකේ පාදයේ සංඛ්යාවක් බවට පත් කරන්න කියා (ඉලක්කම්/ඩිජිට් 5කින් යුතු). එය 01111 නේද? ඒ කියන්නේ මුල් ඉලක්කම 0 නේද? එලෙසම මා කිව්වොත් ටාගට් එක 7 වන සේ හෑෂ් එක සිදු කරන්න කියා, ඒ කියන්නේ ඔබ ලබා ගත යුතු හෑෂ් එකේ උපරිම අගය 00111 නේද? ඉතිං, ටාගට් යන වචනය/සංකල්පය යොදා ගෙන පවසන දේමයි මුල් ඉලක්කම් කිහිපය (අච්චර ගානක්) බිංදුව වන සේ හෑෂ් කරන්න කියන්නෙත්.000000000000000000002cf08358410c972514051041ae5a1130a7116457002a000000000000000000002cf08358410c972514051041ae5a1130a7116457002a
බිට්කොයින් මයිනිං කරන අයත් එකිනෙකා පරයා තරග කරන්නට පටන් ගත්තා. ඔවුන් බලසම්පන්න පරිගනක මේ සඳහා යොදා ගත්තා. අද වන විට, මයිනිං සඳහාම නිපදවූ ප්රොසෙසර් අද නිපදවා තිබෙනවා. ASIC miner ලෙස ඒවා හැඳින්වෙනවා. ඒවා ASIC (Application Specific Integrated Circuit) යන තාක්ෂනයටයි සාදා තිබෙන්නේ. මේවා මිල අධිකයි වගේම ඒ සඳහා ඉතා අධික විදුලි බලයක්ද වැය වෙනවා. ඉතිං, සාමාන්ය අයට මෙතරම් වියදමක් දැරිය නොහැකි නිසා, ඔබ මා වැනි අය මයිනිං කිරීමට පෙලඹෙන්නේ නැත. අන්න එහෙමයි කොල්ලො කුරුට්ටන් මයිනිංවලින් ඈත් කරන්නේ. පහත දැක්වෙන්නේ ඇසික් මයිනර් එකක රූපයකි. සාමාන්යෙයන් මයිනිං කරන අය මෙවැනි ඇසික් මයිනර් ගනනාවක් එක් කොට තිබෙනවා.
බිට්කොයින් මයිනිං සඳහා නිපදවා තිබෙන පරිගනකවලදී සාමාන්ය පරිගනකයකින් කරන වැඩ කරන්න බැහැ. එය නිපදවා තිබෙන්නේම හෑෂ් ගනනය කිරීම කරන්නටයි. එවන් පරිගනකයක ජවය/බලය මනින්නේ තත්පරයකට කොච්චර හෑෂ් කරන්න පුලුවන්ද යන්න මතයි. ඊට hash rate කියා කියනවා. සාමාන්ය පරිගනකවල වේගය මෙගාහර්ට්ස්, ගිගාහර්ට්ස් යන ඒකකවලින් මනිනවා වගේ මෙවන් පරිගනකවල වේගය මනින්නේ megahash per second (MH/S), gigahash per second (GH/S), terahash per second (TH/S), petahash per second (PH/S) යන ඒකකවලිනි.
ඉතිං, කාලයත් සමඟ පරිගනක බලසම්පන්න වන විට, කෙටි කාලයකින් හෑෂ් ගනනය කිරීම් අති විශාල ගනනක් කල හැකි වෙනවා. එතකොට බිට්කොයින් ප්රොටොකොලය විසින් පෙර කියූ පරිදි pow එක අමාරු කරනවා හෑෂ් එකේ මුලින් තිබිය යුතු 0 ගනන වැඩි කිරීමෙන්. මෙම ක්රියාව difficulty adjustment ලෙස හැඳින්වෙනවා.
සෑම බ්ලොක් 2016කට සැරයක් බිට්කොයින් සොෆ්ට්වෙයාර් එකෙන් විශ්ලේෂනයක් කරනවා POW එක අමාරු කරනවාද නැද්ද කියා. බ්ලොක් 2016ක් යනු දල වශයෙන් සති 2ක කාලයකි. ඒ කියන්නේ සෑම සති 2කට සැරයක් එසේ විමසා බලනවා. මෙහිදී, පසුගිය සති දෙක තුලදී චේන් එකට බ්ලොක් එකක් එකතු කිරීමට ගිය කාලයන් ටික සලකා බලනවා. එම ඇවරේජ් කරපු අගය විනාඩි 10කට වඩා අඩුයි නම්, POW එකේ බිංදු ගනන ආයෙත් වැඩි කරනවා. අන්න ඒ විදියට කාලයත් සමඟ හෑෂ් එකේ මුලින් තිබිය යුතු 0 ගනනත් වැඩි වෙනවා.
ඇත්තටම හෑෂ් එක ගනනය කර අපට අවශ්ය බිංදු ගනන සමඟ හෑෂ්/ඩයිජෙස්ට් අගය ලබා ගැනීමට ගත වන කාලය නිශ්චිත නැත;එය අහඹු ගණනය කිරීමක්නෙ. අන්න එනිසා, එක් එක් සර්වරයේ හැකියාව මත හා වෙනත් කරුනු මත, ජාලයට සම්බන්ද එක් සර්වරයක් අනෙක් ඒවාට කලින් එම ගනනය කිරීම සිදු කර ජය ගන්නවා. එතකොට එම සර්වරය විසින් බිට්කොයින් ජාලය පුරාවටම තමන් එය සිදු කල බව දැනුම් දෙනවා (broadcast) තමන් නිවැරදිව සාදා ගත් හෑෂ් එකත් සමඟම.
හෑෂ් එකක් එලෙස අපට අවශ්ය පරිදි සකසා ගැනීමට විශාල කාලයක් (විනාඩි 10ක් වැනි) ගත වුවත්, එසේ සොයා ගත් පසු එම සොයාගත් අගය නිවැරදිදැයි සෙවීමට තත්පරයක්වත් ගත නොවේ. එනිසා, අනෙක් සර්වර් විසින් එම අගය පරික්ෂා කර බලනවා (validation). එතකොට මුලින්ම ගනනය කිරීම සාර්ථකව අවසන් කරපු සර්වර් එකට අවසර ලැබෙනවා තමන් සෑදූ බ්ලොක් එක චේන් එකට එකතු කිරීමට. එවිට, අනෙක් සර්වර් විසිනුත් එම බ්ලොක් එක පිලි ගන්නවා (කොපි කර ගන්නවා).
මෙලෙස හෑෂ් එක කොන්දේසිවලට ගැලපෙන පරිදි ගනනය කරපු සර්වරය විසින් චේන් එකට බ්ලොක් එක එකතු කරන විට, එම සර්වර් එකට යම් බිට්කොයින් ප්රමානයක් මයිනිං යන සංකල්පය යටතේ ලැබෙන බව ඔබ දැන් දන්නවා. මෙහිදී සර්වර් එක විසින් තමන්ගේ බිට්කොයින් ලිපිනයක් අලුතින් සාදා අන්න එම ලිපිනයට මෙම බිට්කොයින් ලබා ගන්නේ. ඉන්පසු එම සර්වර් එකේ අයිතිකාරයන්ට පුලුවන් එම බිට්කොයින් භාවිතා කරන්නට සාමාන්ය පරිදි. මයිනිං මඟින් මෙලෙස බිට්කොයින් ලැබීමත් ගනුදෙනුවක් වුවත් එය විශේෂ ගනුදෙනුවක් බව පැහැදිලියිනෙ.
මෙලෙස බ්ලොක් එකක් චේන් එකට ලින්ක් කල විට, එම බ්ලොක් එකෙහි පවතින සියලු ගනුදෙනු බිට්කොයින් ජාලය තුල අනුමත වෙනවා (confirm). යම් ගනුදෙනුවක් මෙසේ කන්ෆර්ම් වන තෙක් එම ගනුදෙනුව බිට්කොයින් ජාලය තුල සිදු නොවූවා සේ සැලකෙනවා. ඒ කියන්නේ බිට්කොයින් තුල යම් ගනුදෙනුවක් සිදු වූවා සේ සැලකීමට දල වශයෙන් විනාඩි 10ක් වත් යනවා. බිට්කොයින් ජාලයේ පවතින එක් එක් සර්වරය මඟින් තම තමන්ගේ බ්ලොක් චේන් කොපිය තුල මෙම අලුත් බ්ලොක් එක ලින්ක් කරන විට, ඒ සර්වර් එකින් එක විසින් මෙම කන්ෆර්ම් කිරිල්ල සිදු කරනවා.
සෑම විනාඩි 10කට සැරයක් අලුත් බ්ලොක් එකක් එකතු වන නිසා, ඔබේ ගනුදෙනුව සටහන් වූ බ්ලොක් එකට පසුව එකතු වන සෑම බ්ලොක් එකකින්ම ඔබේ ගනුදෙනුව තව තවත් කන්ෆර්ම් වෙනවා.
ඒ මෙහෙමයි. හිතන්න ඔබේ ගනුදෙනුව සටහන් වූවා කියා චේන් එකේ තිබෙන අවසාන බ්ලොක් එකේ. යම් හැකර් කෙනෙකුට හැකි වුවොත් එම ගනුදෙනුව හැක් කර වෙනස් කරන්න, ඔහුට පුලුවන් එම වෙනස්කම සහිතව අලුතින් හෑෂ් කිරිල්ල සිදු කර එම අලුත් හා හොර හෑෂ් අගය බ්ලොක් එකේ සටහන් කරන්න. නේද? එම බ්ලොක් එකට පසුව තවත් බ්ලොක් තවමත් නැති නිසා, බිට්කොයින් පද්ධතියට බැරි වෙනවා එම හොර වැඩේ අල්ල ගන්නට.
එහෙත්, නිකටම හෝ ඔබේ ගනුදෙනුව සටහන් වන බ්ලොක් එකට පසුව තවත් බ්ලොක් එකක් එකතු වී ඇත්නම්, දැන් හැකර්ට එය කිරීම පහසු නැහැ මොකද ඔහුට දැන් බ්ලොක් දෙකක්ම වෙනස් කරන්නට සිදු වෙනවා. මෙලෙස යම් බ්ලොක් එකක් චේන් එකට සෙට් වුනාට පසුව, තව තවත් බ්ලොක් ඊට පසුව එකතු වීමෙන් පරන බ්ලොක්වලට විශාල ආරක්ෂාවක් ලැබෙනවා. ඒකයි පැය බාගයක් පමන සිටීමේ වැදගත්කම මොකද පැය බාගයක් කියන්නේ දල වශයෙන් බ්ලොක් 3ක් එකතු වීමට යන කාලයයි.
ඔබ කල ගනුදෙනුවක් කන්ෆර්ම් වූ බව ඔබේ වොලට් එකේ පෙන්වනවා. එය කී පාරක් කන්ෆර්ම් කලාදැයි කියාත් පෙන්වනවා. උදාහරනයක් ලෙස, බිට්කොයින්වල සිදු වූ පලමු ගනුදෙනුව (එනම් ජෙනෙසිස් බ්ලොක් එක) 729,656 වාරයක් මේවන විට කන්ෆර්ම් වී ඇත. අලුතින් බ්ලොක් එකතු වන වාරයක් පාසා එය තව තවත් කන්ෆර්ම් වෙනවා. ඉතිං මේ බ්ලොක් එකේ යම් වෙනසක් කිරීමට නම් බ්ලොක් 729,656 කම එම වෙනස සිදු කරන්නට වෙනවා. එය කිසිසේත් කල නොහැකියි. මා මෙම අගය කොපි කර නැවත මේ දැන් බැලුවා එම ගනුදෙනුව කොච්චර කන්ෆර්ම් වෙලාද කියා. 729,657 වාරයක් ලෙස සටහන් වෙනවා. ඒ කියන්නේ මා එය මුලින් කොපි කර නැවත බලන විට තවත් බ්ලොක් එකක් චේන් එකට එකතු වෙලා කියන එකයි. https://www.blockchain.com/btc/block/0 බලන්න එහි දැන් අගය කොච්චරද කියලා (confirmations යන පේලිය බලන්න).
නිකමට හෝ ඔබේ ගනුදෙනුව ඔබ ගනුදෙනුව කල මොහොතට පසුව එකතු වූ බ්ලොක් එකේ නැති නම් (ඒ කියන්නෙ තවම කන්ෆර්ම් වී නැති නම්), සමහර විට ඊළඟ බ්ලොක් එකේ එය අඩංගු වේවි. ඔබට වඩා වැඩි ගාස්තු ගෙවන අයනෙ උඩට එන්නෙ. මෙලෙස දවසක් වැනි කාලයක් තුලත් ඔබේ ගනුදෙනුව කන්ෆර්ම් වී නැති නම්, සාමාන්යෙයන් එම ගනුදෙනුව ඉබේම පූල් එකෙන් ඉවත් වෙනවා. ඔබට හැකියි නැවත එම ගනුදෙනුව සිදු කරන්න. සමහරවිට ගාස්තුවද ටිකක් වැඩිපුර ගෙවන්න. බිට්කොයින්වල ඇති තවත් දුර්වලකමක් ලෙස මා මෙය දකිනවා. තමන් සිදු කල ගනුදෙනුවක් සටහන් කරන්නට බැහැ කියන්නේ අසාධාරනයක් ලෙසයි මා දකින්නේ.
ඒ අනුව, මට කවුරුන් හෝ බ්ට්කොයින් එව්වොත්, එම ගනුදෙනුවට කන්ෆර්ම් වීම් එකක්වත් සිදු වන තුරු මා බලා සිටිනවා. බිට්කොයින්වල තිබෙන තවත් දුර්වලතාවක් තමයි එය. එනම්, ගනුදෙනුවක් ඇත්තටම සිදුවී නිමවීමට විනාඩි 10කට වඩා කාලයක් ගත වෙනවා. එහෙත් වර්තමානයේ පවතින සාමාන්ය මුදල් හුවමාරුක්රමවලදී තත්පර ගනනකින් එය සිදු වෙනවා. ඒ කියන්නේ බිට්කොයින් ක්රමය මන්දගාමියි.
සාමාන්යෙයන් මයිනිං ක්රියාව සිදු කිරීමට විශාල වියදමක් යන බව දැන් ඔබ දන්නවා. විශාල ව්යාපාර මේ වැඩේ සිදු කරනවා. මේවා mining farm ලෙස හැඳින්වෙනවා මොකද ඇසික් මයිනර් විශාල සංඛ්යාවක් (හරියට හරක් රාශියක් ඉන්න හරක් ගොවිපොලක්/ෆාර්ම් එකක් වගේ) තිබෙන නිසා මයිනිං ෆාර්ම් යන නමින් ඒවා හැඳින්වෙනවා.
ඊටත් අමතරව එතරම් සල්ලි වියදම් කළ නොහැකි අයටත් මේ වැඩේ කල හැකි ක්රමයවේදයක් තිබෙනවා. එය mining pool ලෙස හැඳින්වෙනවා. මෙහිදී සිදු වන්නේ ඔබ මා වැනි (අඩුවෙන් වියදම් කල හැකි) අය තම තමන්ගේ පරිගනකයෙන් හෝ බොහොම අමාරුවෙන් මිලදී ගත් එක් ඇසික් මයිනර් එකක් හෝ ගෙන අන්තර්ජාලය හරහා මයිනිං පූල් එකට කනෙක්ට් වන එකයි. එවිට, ඔබ මා වැනි අය සිය දහස් ගනනක් එකට එකතු වුනාම, එතැන ඉබේම විශාල මයිනිං ෆාර්ම් එකක් නිර්මානය වෙනවා.
නිකමට හෝ මා සිටිනා මයිනිං පූල් එක විසින් හෑෂ් එක සොයා ගත්තේ නම් අනිත් අයට පෙර, එම රිවෝඩ් එක ලැබෙන්නේ මා සිටින පූල් එකටයි. එම මුදල එම හෑෂ් එක සොයා ගැනීමට උර දුන් පූල් එකේ සිටින අය අතර සාධාරනව බෙදා හරිනවා. මෙමඟින් මගේ පරිගනකයෙන්/මයිනර් එකෙන් ලබා දුන් දායකත්වයට සමානුපාතිකව මටත් යම් බිට්කොයින් ප්රමානයක් ලැබෙනවා. පූල් එක නිර්මානය කල අයටත් රිවෝඩ් එකෙන් යම් ප්රතිශතයක් (2% ක් වැනි) ලබා ගන්නවා තමන්ගේ ලාබය ලෙස. කවුරුත් නොමිලේ දේවල් කරන්නෙ නැහැනෙ.
මා මොහොතකට පෙර පැවසුවා බ්ලොක් චේන් එකට යම් බ්ලොක් එකක් (හෝ කිහිපයක් වුවද) එකතු කල පසුත් එම බ්ලොක් එක “කැන්සල්“ වෙන්න පුලුවන් කියා. එය සිදු වෙන්නේ හැක් වීමක් හෝ පරිගනක දෝෂයක් නිසා නොවේ. බ්ලොක්චේන් තාක්ෂණයේ තිබෙන දෝෂයක් එය. ඒ කොහොමද?
සිතන්න එකම මොහොතකදී මගේ මයිනිං සර්වර් එකයි ඔබේ මයිනිං සර්වර් එකයි දෙකම එකම බ්ලොක් එක මයින් කලා කියලා. ඒ කියන්නේ අප දෙදෙනාගේම සර්වර් දෙක එකවර pow සිදු කර, එකම වෙලාවෙදී බිට්කොයින් ජාලයට කියනවා “මම තමයි දිනුම්“ කියලා.
ඇත්තටම මෙහිදී එකම බ්ලොක් එක වුවත්, අප දෙදෙනාගේ බ්ලොක්වල තිබෙන ගනුදෙනු විස්තර වෙනස් විය හැකියි. ඔබේ සර්වර් එක එහි ඇති මෙම්පූල් එකෙන් තමන් කැමති කැමති ගනුදෙනු ටිකක්නෙ බ්ලොක් එකට ඇතුලු කරන්නේ. මගේ සර්වර් එකත් එහි මෙම්පූල් එකේ ඇති ගනුදෙනුවලින් එයා කැමති කැමති ගනුදෙනු ටිකක් තමයි එකතු කරන්නේ. ඉතිං, අනිවාර්යෙන්ම අප දෙදෙනාගේ බ්ලොග් දෙකහි අන්තර්ගතය වෙනස් වෙනවා. කෙසේ වෙතත්, අප දෙදෙනාගේ බ්ලොක් දෙකෙහි අන්තර්ගතය බොහෝ දුරට සමානයි මොකද ලෝකයේ කොතැන බිට්කොයින් ගනුදෙනුවක් සිදු වුවත්, ටික වෙලාවකින් ඒ ගැන තොරතුරු මුලු ජාලය පුරාම පැතිර යන හැටි අපි මීට පෙර කතා කලා.
ඉතිං, එම ජාලයේ සිටින අනෙක් සර්වර් අප දෙදෙනාගෙන් කවුරු දිනුවා කියලද හිතන්නේ. ඇත්තටම සිදු වෙන්නේ, අප දෙදනොම තාවකාලික පදනම යටතේ දිනපු තත්වයට පත් වීමයි. සර්වර් සියල්ලම ලෝකය පුරා විසිරීනෙ තිබෙන්නේ. ඉතිං, අපි දෙන්නම දින්නා කියා පනිවුඩ යවනවනෙ ජාලය පුරාම.
හිතමු, ජාලයේ තිබෙන එක් සර්වරයකට මගේ පනිවුඩය ඔබේ පනිවුඩයට කලින් ලැබෙනවා කියා. එවිට, එම සර්වරය මගේ පැත්තට එනවා. ඒ කියන්නේ එම සර්වරය විසින් එහි තිබෙන බ්ලොක්චේන් එකේ ඊළඟ බ්ලොක් එක ලෙස එකතු කරන්නේ මං විසින් හදපු බ්ලොක් එකයි. එහෙත් මගේ පනිවුඩය ලැබී මොහොතකට පසුව ඔබේ පනිවුඩයත් එම සර්වර් එකට ලැබෙනවා. එවිට, එම සර්වරය විසින් ඔබේ බ්ලොක් එකත් තාවකාලිකව ගබඩා කර ගෙන ඉන්නවා (බ්ලොක් චේන් එකට ඔබේ බ්ලොක් එක එකතු කරන්නේ නැහැ මොකද දැනටමත් මගේ බ්ලොක් එක එම සර්වරය විසින් එකතු කර අවසන්නෙ).
එලෙසම ජාලයේ තිබෙන තවත් සර්වරයකට මුලින්ම එන්නේ ඔබේ පනිවුඩය. එවිට, එම සර්වරය ඔබේ පැත්ත අරගෙන ඔබේ බ්ලොක් එක තමයි චේන් එකට සෙට් කරන්නේ. මොහොතකට පසුව මගේ පනිවුඩයත් එම සර්වර් එකට ලැබෙන නිසා, මගේ බ්ලොක් එකත් පැත්තකින් එය ගබඩා කරගෙන සිටිනවා චේන් එකට සෙට් නොකර.
ඉතිං, දැන් ජාලය පුරාම යම් බෙදීමක් ඇති වෙලා තිබෙනවා අපි දෙදෙනාගෙන් කාටද ඇත්තටම දිනුම දෙන්නේ කියා. මින්ද පේන්නේ peer to peer ලක්ෂනයම නේද? ඒ කියන්නේ තනි තනි සර්වරය තමයි තම තමන්ගේ තීරන ගන්නේ. එහෙත් අවසානයේ කවුරුත් තනි තීරණයකට එනවා. දැන්, චේන් එකට ස්ථිරවම එකතු වෙන්නේ අප දෙදෙනාගෙන් කාගේ බ්ලොක් එකද? මෙම අවසන් තීරනය ගන්නා තුරු තමයි ඒ ඒ සර්වරය විසින් තමන්ට පනිවුඩය කලින්ම එවපු කෙනාගෙ බ්ලොක් එක එකතු කලත්, පසුව එවපු බ්ලොක් එකත් තාවකාලිකව තබාගෙන ඉන්නේ. එය තීරනය කරන්නේ the longest chain යන සංකල්පය මතයි. ලෝන්ගස්ට් චේන් යනු කුමක්ද? උදාහරනයක් බලමු.
හිතන්න මේවන විට බ්ලොක් චේන් එකේ බ්ලොක් 1000ක් ස්ථිරවම තිබෙනවා කියා. එතකොට අපි දෙදෙනාගේ සර්වර් විසින් මයින් කරල තිබෙන්නේ 1001 යන බ්ලොක් එකයි. ඉතිං, ජාලයේ සිටින සමහර සර්වර් ඒවායේ 1001 වෙනි බ්ලොක් එක ලෙස එකතු කරන්නේ ඔබේ බ්ලොක් එක වන අතර, තවත් සමහර සර්වර් ඒවායේ 1001 වෙනි බ්ලොක් එක ලෙස එකතු කරන්නේ මගේ බ්ලොක් එකයි. මෙමඟින් බ්ලොක් චේන් එක බෙදීමකට ලක් වී තිබෙනවා. මෙලෙස බ්ලොක් චේන් එකක් බෙදීමකට ලක් වීම forking ලෙස හැඳින්වෙනවා.
මෙම බෙදීම දිගටම පැවතියොත් බිට්කොයින් ජාලය තුල විවිධ “කල්ලි“ හෙවත් උපජාල ඇති වෙනවා පමනක් නොවේ, බිට්කොයින් ජාලය බිඳ වැටෙනවා. හරියට ආගමික නිකායවල් සෑදී ආගමකියන් කැඩි කැඩී කල්ලි සෑදී ආගම විනාශ වෙනවා වගේ. මෙය විසඳීමට තමයි ඉතාම සරල සංකල්පයක් වන longest chain භාවිතා වෙන්නේ.
මෙහෙමයි. අර බෙදීම මොහොතකට එලෙස තියෙන්නට හරිනවා ඊළඟ බ්ලොක් එක සෑදෙන තුරු (ඒ කියන්නේ විනාඩි 10ක් පමන). ඉතිං, මෙම බෙදීම අමතක කර, සර්වර් සියල්ල සුපුරුදු ලෙස නැවත මයිනිං ක්රියාවලියේ යෙදෙනවා. දැන් හැමෝම 1002 වැනි බ්ලොක් එක මයින් කිරීමේ තරගෙය් නිරත වෙනවා. සිතන්න, එකවර ජාලයේ තිබෙන යම් සර්වරයක් එය මයින් කලා කියලා. එවිට, සුපුරුදු ලෙස එම සර්වරය විසින් ජාලය පුරාවට දැනුම් දෙනවා තමන් 1002 බ්ලොක් එක මයින් කලා කියා.
මෙම මයින් කිරීම සිදු කල සර්වරයේ 1001 වෙනි බ්ලොක් එක ලෙස පවතින්නේ මගේ බ්ලොක් එක නම්, දැන් එම සර්වරය තමන්ගේ බ්ලොක් චේන් එකේ 1002 වෙනි බ්ලොක් එක ලෙස තමන් විසින්ම මයින් කරපු 1002 බ්ලොක් එක එකතු කරනවා. දැන් මරු. සමස්ථ ජාලයේම තිබෙන දිගම චේන් එක (the longest chain) වන්නේ එම සර්වරයේ පවතින චේන් එකයි මොකද ජාලයේ තිබෙන අන් සියලුම සර්වර්වල තිබෙන්නේ බ්ලොක් 1001ක් වන අතර, අර සර්වරයේ පමනක් බ්ලොක් 1002ක චේන් එකක් තිබේ. ඉතිං, දැන් ජාලයේ සිටින සියලුම සර්වර් විසින් මෙම බ්ලොක් චේන් එක තමයි නිවැරදි බ්ලොක් චේන් එක කියා තීරනය කරන්නේ. එහෙම තීරනය කරන්න කියා තමයි බිට්කොයින් ප්රොටොකෝලය සාදා තිබෙන්නේ.
මෙමඟින් මගේ බ්ලොක් එක ඉබේම තෝරා ගැනෙනවා ඔබේ බ්ලොක් එක ඉවත් වෙනවා. නිකටම හෝ අර 1002 වෙනි බ්ලොක් එක මයින් කරපු සර්වරයේ 1001 වෙනි බ්ලොක් එක ලෙස තිබුනේ ඔබේ බ්ලොක් එක නම්, ඒ විස්තර කරපු ක්රමයටම ඔබේ බ්ලොක් එක තහවුරු වී මගේ බ්ලොක් එක ඉවත් වෙනවා.
මෙම උදාහරනයේදී නම් එක බ්ලොක් එකකින් ගැටලුව විසඳුනා; එනම් බෙදීම අහෝසි වූවා. හැබැයි, මෙම බෙදීම අලුතින් බ්ලොක් කිහිපයක් වන තුරුම විසඳී නොතිබිය හැකියි. එය සිදු වීමේ සම්බාවිතාව ඉතාම ඉතා අඩු වුවත්, එය සිදු විය හැකියි. එනිසයි, මයිනිං කල විට සර්වරයට ලැබෙන බිට්කොයින් ටික වියදම් කිරීමට තවත් බ්ලොක් 100ක් එකතු වන තුරු බලාසිටීමට සිදු වන්නේ. බිට්කොයින් ප්රොටොකෝලය ඇත්තටම මෙම ගැටලුව ඉතා බරපතල ලෙස සලකා පිලියම් යොදා තිබෙන බව පේනවා.
එතකොට අර ඉවත් වූ බ්ලොක් එකට ලැබුනු රිවෝඩ් එක (බිට්කොයින් ටික) අහෝසි වෙනවා. ඒ විතරක් නොවෙයි, එම බ්ලොක් එකේ තිබූ ගනුදෙනුත් අහෝසි වෙනවා. එසේ පැවසුවත් එලෙස සියලු ගනුදෙනු ඉවත් වෙන්නෙත් නැහැ. ඒ ඇයි?
බිට්කොයින් මයිනිං ක්රියාව කාලය හා මුදල් විශාල ලෙස වැය වෙනවා පමනක් නොව, ඉතා විශාල විදුලි නාස්තියක්ද සිදු කරනවා. මයිනර් පරිගනක රන් කරන විට කිලෝවොට් ගනනක විදුලියක් වැය වෙනවා. උදාහරනයක් ලෙස එක් ඇසික් මයිනර් එකක් සඳහා කිලෝවොට් 3ක පමන විදුලියක් යනවා (ඒ කියන්නේ මෙවැනි උපකරනයක් ඔබේ නිවසේ එක පැයක් ක්රියාත්මක කලොත් විදුලි යුනිට් 3ක් වැය වෙනවා). එවැනි පරිගනක දහස් ගනනක් සඳහා වැය වන විදුලිය ප්රමානය අති දැවැන්තයි. වැඩේ කියන්නේ මෙතරම් විශාල විදුලියක් වැය කරන්නේ “කිසි වැඩකට නැති ගනනය කිරීමක්“ කිරීමටයි. බිට්කොයින් ජාලයේ පවතින තවත් දෝෂයක් තමයි එය. සාම්ප්රදායික මුදල් ක්රමයේදී සල්ලි අච්චු ගැසීම හා ඒවා හැසිරවීමට යන වියදම සමහරවිට මීට වඩා ලාබදායක විය හැකියි (අවංකවම මා මේ සැසඳීම කර නැත; ඔබ සොයා බලන්න).
2022 දී කල සමීක්ෂනයකින් හෙලි වී තිබෙනවා ක්රිප්ටොකරන්සි මයිනිං සඳහා ටෙරාවොට්අවර්ස් 131ක් පමන වැය වන බව. එය ලෝකයේම සියලු බලශක්ති පරිබෝජනයේ ප්රතිශතයක් ලෙස 0.3%ක් පමන වේ. එය කිසිසේත් සුලුපටු ගානක් නොවේ. විශාල නාස්තියක්. එය වසරින් වසර ඉහල යමින් පවතිනවා. පහත චාට් එක බලන්න.
එනිසා proof of work යන නාස්තිකාර ක්රමවේදය වෙනුවට වෙනත් ක්රමවේද ගැනත් දැන් අධ්යනය වෙමින් පවතිනවා. මෙම නව ක්රම විදුලිබල නාස්තිය නැති, නමුත් pow මඟින් ඉටු කල රාජකාරිය එලෙසම හොඳින් සිදු කල හැකි ක්රම විය යුතුයි. proof of stake (POS), proof of authority (POA) යනු එවැනි විකල්ප ක්රම දෙකක්.
බිට්කොයින් ගනුදෙනු විස්තර හරිදැයි බලන (validation of transactions), එම විස්තර සහිත බ්ලොක් හරිදැයි බලන (validation of blocks), බ්ලොක්චේන් එකට අලුතින් බ්ලොක් එකතු කරන, හා එලෙස එකතු කරන බ්ලොක් බිට්කොයින් ජාලයේ ඇති අනෙක් සර්වර් සමඟ ෂෙයාර් කර ගන්නා සර්වර් එකට bitcoin node යනුවෙන්ද පවසනවා.
සාමාන්යෙයන් පරිගනක ක්ෂේත්රය තුල node යනු පරිගනක ජාලයට සම්බන්ද වී පවතින උපකරනයකි (පරිගනකය, ස්මාට් දුරකතනය වැනි).
තවද, pow ක්රමය යොදා ගන්නා විට එම නෝඩ් mining nodes ලෙස හැඳින්වේ. pos ක්රමය යොදා ගන්නා විට, එම නෝඩ් staking nodes ලෙසද, poa ක්රමය භාවිතා වන විට එම නෝඩ්ස් authority nodes ලෙසද හැඳින්වෙනවා.
සාම්ප්රදායික මුදල්වල සීමාවක් නැහැ. ඒ කියන්නේ මහා බැංකුවට පුලුවන් ඕන තරම් සල්ලි අච්චු ගැසීමට. එහෙත් බිට්කොයින්වල එහෙම නැහැ. තිබිය හැකි බිට්කොයින්වල උපරිම අගය මිලියන 21කි.
එම මිලියන 21ක බිට්කොයින් ටික නිකුත් කලාට පසුව යලි කිසිදා අලුත් බිට්කොයින් නිකුත් කල නොහැකියි. ඉතිං, මෙතෙක් විස්තර කර ගෙන ආ පිලිවෙලට බිට්කොයින් මයිනිං ක්රමයට සෑම විනාඩි 10කට සැරයක්ම බිට්කොයින් නිකුත් කරගෙන ගිය විට වසර 2140 දී එම සියලු බිට්කොයින් නිකුත් කර අවසන් වනු ඇත.
ඒ කියන්නේ එතැනින් පසු මයිනිං කලත් බිට්කොයින් නොලැබෙනු ඇත. එහෙත්, බිට්කොයින් ගනුදෙනුවලින් ගන්නා ගාස්තුව එලෙසම පවතීවි. සමහරවිට, මෙම ගාස්තුව වැඩි වීමට පුලුවන් මොකද මයිනිංවලින් ලැබෙන බිට්කොයින් නොලැබෙන නිසා.
සෑම බ්ලොක් එකකම සාමාන්යෙයන් ගනුදෙනු දහසකට වැඩිය පවතිනවා. මේ ගනුදෙනු අතර බ්ලොක් එකේ මුලින්ම ලියවෙන ගනුදෙනුව coinbase transaction ලෙස හැඳින්වෙනවා. මෙම ගනුදෙනුවෙන් කරන්නේ ඉහත විස්තර කල මයිනිං නිසා ලැබෙන බිට්කොයින් ප්රමානයත් (subsidy), බ්ලොක් එකේ ගබඩා වී තිබෙන එක් එක් ගනුදෙනුවලින් ලබා ගන්නා ගාස්තුවල (transaction fees) එකතුවත් යන දෙකෙහි එකතුව බ්ලොක් එක මයින් කරපු සර්වර් එකට බැර කරන එකයි. මෙම අගයන් දෙකෙහි එකතුවට block reward යැයි කියනවා.
බිට්කොයින්වල තවත් දුර්වලතාවක් පවතිනවා. ඒ තමයි එක තත්පරයකට සිදු කල හැකි බිට්කොයින් ගනුදෙනු ගනන සීමිත වේ. සාම්ප්රදායික මුදල් භාවිතා කරන පද්ධතිවල තත්පරයකට ගනුදෙනු ලක්ෂ ගනනක් එකවර සිදු වේ. එහෙත් බිට්කොයින්වල සෑම විනාඩි 10කට සැරයක් බ්ලොක් එකක් එකතු වන බැවින්, බ්ලොක් එකක පැවතිය හැකි උපරිම ගනුදෙනු ගනන ලක්ෂයකට අඩු බැවින්, එය එක් තත්පරයකට ගනන් හදා බැලුවොත් ඉතාම සීමිත ගනුදෙනු ගනනක් පමනයි කල හැක්කේ. එනිසා තවමත් බ්ට්කොයින්වලට හැකියාවක් නැහැ ලෝකයේ ප්රධාන ගෙවීම් ක්රමයක් ලෙස ක්රියාත්මක වන්නට.
නැවත බලමු බිට්කොයින් කෙනෙකු විසින් තවත් කෙනෙකුට යවන විදිය. හිතන්න ඔබ සතුව බිට්කොයින් 10ක් තිබෙනවා කියා. ඉන් බිට්කොයින් 4ක් මට එවන්නට අවශ්යයි කියමු. තවද, ඔබ සතුව එම බිට්කොයින් 10 තිබෙන්නේ පහත දැක්වෙන ආකාරයට බිට්කොයින් ඇඩ්රස් 5ක යැයිද සිතමු. ලිවීමේ පහසුව තකා මා බිට්කොයින් ඇඩ්රස් A, B, C, D, E ලෙස කෙටියන් දක්වන්නම් (සත්ය ඇඩ්රස් ඉතා දිගු නිසා, ලිවීමට අපහසුයිනෙ).
A : 2 bitcoins
B : 1 bitcoins
C : 1.5 bitcoins
D : 5.1 bitcoins
E : 0.4 bitcoins
ඔබට එකවර හිතේවි කිසි ගැටලුවක් මෙතැන නැහැනෙ කියා මොකද බිට්කොයින් 10ක් ඔබ සතුව ඇති නිසා, ඉන් බිට්කොයින් 4ක් එවිය හැකියිනෙ.
එහෙත් බිට්කොයින්වල තවත් කොන්දේසියක් තිබෙනවා. ඒ කියන්නේ, ඔබගේ යම් බිට්කොයින් ඇඩ්රස් එකක යම් බිට්කොයින් ගනනක් තිබේ නම්, ඔබ එම ඇඩ්රස් එකේ බිට්කොයින් නම් යවන්නේ ඔබට සිදු වෙනවා එම ඇඩ්රස් එකේ පවතින සියලු බිට්කොයින් ටික යවන්නට. ඔබට බැහැ ඇඩ්රස් එකේ තිබෙන බිට්කොයින්වලින් යම් පංගුවක් විතරක් යවන්න. උදාහරනය ඔස්සේ එය තවදුරටත් විමසමු.
ඔබ විසින් මට බිට්කොයින් 4ක් එවන්නනෙ හදන්නේ. ඉතිං, ඔබට හැකියි ඉහත D යන බිට්කොයින් ඇඩ්රස් එකේ තිබෙන 5.1 බිට්කොයින්වලින් එම ගාන මට එවන්න. එහෙත් ඔබට බැහැ එම 5.1න් 4ක කොටස එවා ඉතිරි 1.1ක ප්රමානය එම ඇඩ්රස් එකේ රඳවා ගන්නට. ඒ කියන්නේ ඔබ මට 5.1ම එවිය යුතුද? නැත. ඔබ කරන්නේ මට 4ක් එවා ඉතිරිය නැවත ඔබගේම වෙනත් ඇඩ්රස් එකකට යැවීමයි. ඔබගේ වෙනත් ඇඩ්රස් එක දැනට පවතින A, B, C, E හෝ අලුතින් සාදා ගන්නා ඇඩ්රස් එකක් (F) වුවද විය හැකියි. සාමාන්යෙයන් කරන්නේ අලුතින්ම සාදා ගන්නා ඇඩ්රස් එකකට ඉතිරිය යැවීමයි මොකද ඒකනෙ බිට්කොයින් සම්ප්රදාය (සෑම ගනුදෙනුවකදීම අලුත් ලිපිනයකට බිට්කොයින් ලබා ගන්නවා). එය පහත ආකාරයට අපට නිරූපනය කල හැකියි.
D (5.1) --> X (4)
--> F (1.1)
ඉහත X යනු මගේ බිට්කොයින් ඇඩ්රස් එක හා F යනු ඔබේ අලුත් ඇඩ්රස් එකක් බව සිතමු. මෙය එක් ගනුදෙනුවකි. එක ගනුදෙනුවක් තුල ඇත්තටම ඇඩ්රස් කිහිපයක් අතර බිට්කොයින් හුවමාරු කල හැකි පේනවා නේද?
මට බිට්කොයින් 4ක් එවීමට තවත් ක්රම ඔබට තිබේද? ඔව්. ඔබට පුලුවන් A, B, C යන ලිපින 3හිම තිබෙන බිට්කොයින් මට එවන්නට. එම ඇඩ්රස් 3හිම මුලු බිට්කොයින් 2+1+1.5 = 4.5 කි. ඉතිං, පහත ආකාරයට එය කල හැකියි.
A (2) --> X(2)
B (1) --> X(1)
C (1.5) --> X(1)
--> F(0.5)
ඉහත ඇඩ්රස් 3ක් එක්ව සල්ලි එව්වත් එය එක් ගනුදෙනුවක් ලෙස සලකනවා. ඔබට එය මෙසේත් එවිය හැකියි.
A (2) --> X(1.5)
--> F(0.5)
B (1) --> X(1)
C(1.5) --> X(1.5)
මෙයත් තනි ගනුදෙනුවක්. මේ ආදි ලෙස විවිධාකාරයෙන් එම මුදල එවිය හැකි බව පේනවා නේද?
මෙලෙස යම් ගනුදෙනුවකදී (බිට්කොයින් යැවීමකදී), ඉහත ආකාරයට යවන මුදල් තිබූ මුල් ඇඩ්රස් ටික inputs ලෙස හැඳින් වෙනවා. ඒ අනුව, ඉහත පලමු අවස්ථාවේදී ඉන්පුට් වූයේ A ඇඩ්රස් එක පමනි. දෙවැනි අවස්ථාවේදී හා තුන්වෙනි අවස්ථාවේදී A, B, C යන ඇඩ්රස් 3ම එම ගනුදෙනුවේ ඉන්පුට් වේ.
එලෙසම ගනුදෙනුවේ සල්ලි යවන විටද ඇඩ්රස් එකකට හෝ දෙකකට හෝ යැවෙනවානෙ. එලෙස සල්ලි ලැබෙන ඇඩ්රස් ගනුදෙනුවේ outputs ලෙස හැඳින්වෙනවා. ඒ අනුව, ඉහත උදාහරනවල පෙන්වා තිබෙන ගනුදෙනුවන අවුට්පුට් වන්නේ X, F යන ඇඩ්රස් වේ.
මේ අනුව යම් ගනුදෙනුවකදී ඉන්පුට් එකක් හෝ කිහිපයක් මෙන්ම අවුට්පුට් එකක් හෝ කිහිපයක් තිබිය හැකිය.
මේ සමඟම තවත් දෙයක් කිව හැකියි. ඒ තමයි ගනුදෙනුවේ ගාස්තුව ගෙවන විදිය. බිට්කොයින්වල ගනුදෙනුව වෙනුවෙන් ඔබ සර්වර් එකට ලබා දෙන ගාස්තුව ඇත්තටම සර්වර් එකේ අහවල් ගිනුමට/ඇඩ්රස් එකට යවන්නැයි කියන්නේ නැත. ඔබ ඒ වෙනුවට ගනුදෙනුව තුල ලියනවා අහවල් ඇඩ්රස් එකට අච්චරක් ගෙවා, ඉතිරිවන මුදලින් මෙච්චරක් මට (මගේ ඇඩ්රස් එකකට) ආපසු එවා, එවිටත් ඉතිරිවන මුදල සර්වර් එක විසින් අය කරන ගනුදෙනු ගාස්තුව ලෙස කපා ගන්නා ලෙස. එවිට, බිට්කොයින් සොෆ්ට්වෙයාර් එක එම ගාස්තුව නියමිත පරිදි කපා සර්වර් එකේ යම් ඇඩ්රස් එකකට යවනවා.
හරි... දැන් අපි බිට්කොයින් ගැන විස්තරයේ අවසානයට පැමින තිබේ.
සාම්ප්රදායික මුදල්වලට අක්ෂර 3ක සම්මත සංඛේත තිබෙනවානෙ. එලෙසම බිට්කොයින්වලට BTC හෝ XBT යන සංකේත ඇත (දෙකම වලංගු සංකේත වේ).
සාමාන්ය මුදල් කුඩා ඒකකවලට කඩනවානෙ (රුපියල සතවලට කඩනවා). එලෙසම බිට්කොයින් යන ඒකකයත් කුඩා ඒකකවලට කඩනවා. බිට්කොයින් එකක් 1000කින් එක් පංගුවක් මිලිබිට්කොයින් (millibitcoin - mbtc) ලෙස හැඳින්වෙනවා. එලෙසම, බිට්කොයින් එකක් මිලියනයෙන් පංගුවකට බෙදූ විට මයික්රොබිට්කොයින් (microbitcoin) ලෙස හැඳින්වෙනවා. එලෙසම, බිට්කොයින් එකක් මිලියන 100න් පංගුවකට බෙදූවිට සතොෂි (Satoshi - sat) ලෙස හැඳින්වෙනවා. බිට්කොයිනයක් කැඩිය හැකි කුඩාම අගය සතොසි 1යි.
බිට්කොයින් යනු මිල දී ගැනීමේ හැකියාවක් තිබෙන මුදල් ඒකකයක්නෙ. ඉතිං, බිට්කොයින් අතර හා ඩොලර්, රුපියල් වැනි සාම්ප්රදායික මුදල් ඒකක අතර වටිනාකම් අනුපාතයක් පවතිනවා. ඩොලරයක් රුපියල් අච්චරක් වටිනවා යැයි කියන්නා සේ, බිට්කොයිනයක් ඩොලර් අච්චරක් වටිනවා යැයි පැවසිය හැකියි. ඇත්තටම, මෙම විනිමය අනුපාත අගය නිරන්තරයෙන් වෙනස් වෙනවා. මේ මොහොතේ එය දළ වශයෙන්,
1 BTC = 40,428 USD
වේ. ඒ කියන්නේ බිට්කොයින් එකක් ඉතා වටිනවා. සාමාන්යෙයන් ඕනම ක්රිප්ටො එකක ආරම්භයේදී වටිනාකම 0 වේ. ඒ කියන්නේ ඔබ බිට්කොයින් කොච්චරක් මට දුන්නත් මා තණ කොලයක්වත් ඔබට දෙන්නේ නැත. වටිනාකමක් නැහැයි යනු එය නිකංම අසූචි ගොඩක් බඳුයි.
එහෙත් කාලයත් සමඟ ක්රිප්ටො එක මාකට් කර, එය මිනිසුන් අතර ප්රචලිත කර, එම ක්රිප්ටෝ එකට යම් ඉල්ලුමක් කැමැත්තක් මිනිසුන් තුල ඇති කල හැකියි. එවිට, ක්රිප්ටොවලට වටිනාකමක් ලැබේ. මිනිසුන් අතර ක්රිප්ටො ඒකකයක් ප්රචලිත වන විට ඒ ගැන විශ්වාසයක් ගොඩ නැඟෙනවා. එවිට, ඊට ඉල්ලුම වැඩි වෙනවා. ඉල්ලුම වැඩි වන විට ඉබේම ඊට ඇති වටිනාකමත් ඉහල යනවා. එවිට, එම ක්රිප්ටො එක වැඩිපුර තියෙන අය කෝටිපතියො වෙනවා. අන්තර්ජාලයේ මෙම කටයුත්ත පිස්සුවක් මෙන් ක්රියාත්මක වෙනවා. එනිසා තමයි බොහෝ අය මේ ක්රිප්ටො ජාවාරමට හසුව තිබෙන්නේ. මිනිසුන් ගැඹුරට හිත්නේ නැත. වෙනත් එවුන් පෙන්වා දෙන සංඛ්යා ලේකනවලට රැවටෙනවා. ඉතිං කොහේවත් තිබෙන මොකක් හෝ ක්රිප්ටොවල ඉල්ලුම වැඩි වී ඒවා හඳුන්වාදුන් අය ධනවතුන් වෙනවා.
කෙසේ වෙතත් ක්රිප්ටොකරන්සිවල වැදගත්කමක් නැතැයි මා කියන්නේ නැත. එහෙත් එය ඉතා කල්පනාකාරීව සිතාබලා කල යුත්තක්. මට නම්, සාම්ප්රදායික මුදල්වල දෝසයක් දකින්නෙ නැහැ ක්රිප්ටො හඳුන්වාදෙන්න තරම්.
සාම්ප්රදායක මුදල් හා බිට්කොයින් මුදල් අතර සමානකම් හා අසමානකම් විමසා බලන්න.
සාමාන්ය මුදල් ගැන අපි විශ්වාස කරන්නේ රජය මැදිහත් වී අහවල් හතරැස් කොල කැබැල්ල 5000ක් වටිනවා, 100ක් වටිනවා ආදි ලෙස කියන නිසානෙ. ෆියාට් මනි කියන්නේ ඒකනෙ. ඒ කියන්නේ සාම්ප්රදායික මුදල අප විශ්වාසය මත (රජය මත විශ්වාසය) පිලිගන්නා දෙයක් (trust-based).
එහෙත් ක්රිප්ටො නිකුත් කරන හෝ පාලනය කරන තනි ආයතනයක් නැහැ. අපි විශ්වාසය තබන්නේ ගනිතමය ගනනය කිරීම් මතයි (හෑෂිං හා එන්ක්රිප්ෂන්). එනිසා එය විශ්වාසය-රහිත (trustless) පද්ධතියක් ලෙස සලකනවා. විශ්වාසය රහිත යනුවෙන් මෙතන අදහස් කරන්නේ තනි ආයතනයක හෝ රටක මැදිහත්වීමක් අවශ්ය නැත යන්නයි. ඒක නිසා, එය ලෝකයේ සියලු දෙනාටම එක සේ සේවය කරන මුදල් ඒකකයක් බවට පත් වෙනවා.
උදාහරනයක් ලෙස, ඇමරිකානු ඩොලරය ගැන හිතුවොත් අප දන්නවා එය මුලු ලෝකය පුරාම භාවිතා කලත්, ඇමරිකාවට කැමති ඕනම මොහොතක සම්බාදක පැනවිය හැකියි. බිට්කොයින්වලට සම්බාදක කවුරුන් විසින්වත් පැනවීමට නොහැකියි. එය යහපත් තත්වයක්.
සාමාන්ය මුදල්වල නියම අගය කාලයත් සමඟ අඩු වෙනවා. මොකද කාලයත් සමඟ මුදල් අච්චු ගානවා (උද්ධමනය පවතිනවානෙ). එහෙත් බිට්කොයින් මීට සපුරා වෙනස් මොකද බිට්කොයින් උපරිමව තිබිය හැක්කේ මිලියන 21ක් පමනයි. ඒ කියන්නේ ලෝකයේ නිෂ්පාදන මට්ටම ඉහල ගියත් බිට්කොයින් වැඩි වන්නේ නැහැ. එවිට, ඉබේම බිට්කොයින්වල නියම වටිනාකම කාලයත් සමග වැඩි වෙනවා. එනිසා සාමාන්ය මුදල් උද්ධමනකාරි (inflationary) වන අතර, බිට්කොයින් අවධමනකාරි (deflationary) බව පවසනවා.
එහෙත් බිට්කොයින් (හා පොදුවෙ ඕනෑම ක්රිප්ටො කරන්සි එකක) එය හඳුන්වා දුන් දිනයේ සිට අද දක්වා ක්රමයෙන් ඉහල වටිනාකමක් අත්පත් කර ගෙන තිබෙනවා. ඊට එකම හේතුව පෙර ඡේදයේ සඳහන් කළ අවධමනකාරී ස්වභාවය නොවේ. කෘත්රිමව ඉල්ලුම් සැපයුම් ක්රියාවලියට බලපෑම් ඇති කරලත් යමක වටිනාකම අඩු වැඩි කල හැකියි. ඉතිං, අපි හොඳටම දන්නවා ක්රිප්ටො ගැන පොදු ජනයා තුල අද්භූත සුර දූතයෙකු බඳු හැඟීමක් ඇති කර තිබෙනවා. ක්ෂනික ධනවතුන් බවට පත් විය හැකි ක්රමයක් ලෙස බොහෝ මෝඩයින් කල්පනා කරනවා. ඉන් ඇත්තටම සිදු වී ඇත්තේ බිට්කොයින්වලට අනවශ්ය ඉල්ලුමක් ඇති වී, එහි වටිනාකම ඉහල යෑමයි.
උදාහරනයක් ලෙස පහත චාට් එකේ පෙන්වනා පසුගිය වසර කිහිපය තුල බිට්කොයින්වල අගය ඉහල පහල ගිය ආකාරය හෙවත් බිට්කොයින්වල වටිනාකමේ උච්ඡාවචනය (fluctuation). බලන්න එය සීග්රයෙන් කොතරම් ඉහල ගොස් ඇත්දැයි කියා. ඊට හේතුව මිනිසා තුල තිබෙන කෑදරකම හා මෝඩකමයි.
මා සතුව බිට්කොයින් 10ක් ඇතැයි සිතන්න. ගිය මාසේ එක් බිට්කොයින් 1ක වටිනාකම ඩොලර් 100ක් නම්, මා සතු බිට්කොයින්වල වටිනාකම ඩොලර්වලින් 1000 නෙ. යමක වටිනාකමට එහි ප්රාග්ධනීකරණය (capitalization) යැයි කියනවා. ඒ අනුව ගිය මාසේ මාගේ බිට්කොයින්වල කැපිටලයිසේෂන් එක හෙවත් කෙටියෙන් “කැප්“ එක (cap) ඩොලර් 1000යි. හිතන්න මේ මාසේ බිට්කොයින් එකක වටිනාකම ඩොලර් 140ක් කියා. එවිට මා අතේ තිබෙන්නේ තවමත් බිට්කොයින් 10ම වුනාට, එහි කැප් එක දැන් ඩොලර් 1400කි. මට ඩොලර් 400ක ලාබයක් ලැබී තිබේ.
අන්න එහෙම හිතුවහම බිට්කොයින් යනු ආයෝජන මාධ්යයක් ලෙසත් සැලකිය හැකියිනෙ. ඔව්. අද හැමෝම කරන්නේ බිට්කොයින් මුදල් ඒකකයක් ලෙස භාවිතා කරන්න හදනවාට වඩා කාලයත් සමඟ බිට්කොයින්වල අගය වැඩි කිරීම මඟින් තමන් මුලින් මිලදී ගත් යම් බිට්කොයින් ප්රමානයක කැප් එක වැඩි කර ගැනීමයි.
උදාහරන ලෙස, ඔබ ඩොලර් 1000ක් යොදා යම් බිට්කොයින් ප්රමානයක් දැන් මිලදී ගෙන, බිට්කොයින්වල මිල වැඩි වුනහම ඔබ එම බිට්කොයින් ටික එම වැඩි ගානට විකුනා ලාබයක් ලබනවා (මෙය ප්රාග්ධන ලාභයක් - capital gain වැනියි). කොටස් වෙලඳපොල තුලද මෙම ප්රාග්ධන ලාබ ලැබීම ජයටම සිදු කරනවා. ෆොරෙක්ස් වෙලඳාම හරහාද මෙවැනි ලාබයක් ගන්න තමයි උත්සහ කරන්නේ.
කෙසේ වෙතත්, බිට්කොයින්වල මිල දිගු කාලීනව බැලූ විට ක්රමයෙන් ඉහල යන ප්රවනතාවක් තිබුනත්, කෙටි කාලීනව (කුඩා කාල පරාස තුල) සලකන විට අගය ඉහල හා පහල යනවා වේගයෙන්. ඒ කියන්නේ විචලනය (fluctuation හෝ volatility) වේගයෙන් සිදු වෙනවා. එමඟින් සූදු කෙලිය හැකියි අඩු වන මොහොතක ටක් ගාලා බිට්කොයින් මිලට ගෙන වැඩි වුන විගස විකුනා දැමීමෙන්.
රටක විදේශ විනිමය අනුපාත තීරනය කරන ක්රම 3ක් තිබෙනවා. එහෙත් ක්රිප්ටොවල තිබෙන්නේ එකම එක ක්රමයයි. ඒ තමයි මාර්කට් එකේ පවතින ඉල්ලුම සැපයුමට අනුව ක්රිප්ටො එකේ අගය තීරනය වන්නට හැරීම. මෙය “පාවෙන“ (floating) ක්රමය ලෙස හැඳින්වෙනවා.
බිට්කොයින් ගැන තව බොහෝ දේවල් කතා කල හැකියි. එහෙත් මා මෙම කතාව මෙතනින් නිම කරනවා.