අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

මානව වර්ගයාගේ සමස්ත ඉතිහාසයම දම්වැල් ඉවත් කර නව, ඊටත් වඩා ශක්තිමත් ඒවා නිර්මාණය කිරීමේ අඛණ්ඩ ක්‍රියාවලියකි. (නිර්නාමික කතුවරයා)

බොහෝ blockchain ව්‍යාපෘති (Bitshares, Hyperledger, Exonum, Ethereum, Bitcoin, ආදිය) විශ්ලේෂණය කිරීමෙන්, තාක්ෂණික දෘෂ්ටි කෝණයකින්, ඒවා සියල්ලම එකම මූලධර්ම මත ගොඩනගා ඇති බව මට වැටහේ. බ්ලොක්චේන් යනු නිවෙස් සිහිපත් කරන අතර, විවිධ මෝස්තර, අලංකරණ සහ අරමුණු තිබියදීත්, අත්තිවාරමක්, බිත්ති, වහලය, ජනෙල්, දොරවල් යම් ආකාරයකින් එකිනෙකට සම්බන්ධ කර ඇත. ඔබ ගොඩනැගිලි සැලසුම් කිරීමේ මූලික මූලධර්ම තේරුම් ගෙන භාවිතා කරන ද්රව්යවල ගුණාංග දන්නේ නම්, ඔබට යම් නිවසක අපේක්ෂිත අරමුණ තීරණය කළ හැකිය. වර්තමානයේ, blockchain සමඟ තත්වයක් පැන නැගී ඇති අතර එය සෑම කෙනෙකුම ඒ ගැන අසා ඇති නමුත් ස්වල්ප දෙනෙක් ගෘහ නිර්මාණ ශිල්පය සහ මෙහෙයුම් මූලධර්ම තේරුම් ගෙන සිටිති. එබැවින්, blockchain තාක්ෂණයන් භාවිතා කිරීම අර්ථවත් වන්නේ ඇයි සහ කෙසේද යන්න පිළිබඳ වැරදි අවබෝධයක් ඇත.

මෙම ලිපියෙන් අපි සියලු blockchains සඳහා පොදු ගුණාංග සහ මූලධර්ම විශ්ලේෂණය කරමු. මීළඟට, blockchain භාවිතයෙන් විසඳිය හැකි ගැටළු දෙස බලමු සහ ද්රව්යය ශක්තිමත් කිරීම සඳහා, අපගේ අථත්ය වෙබ් අඩවියේ කුඩා නමුත් සැබෑ blockchain ගොඩනඟමු!

ඉතින්, බ්ලොක්චේන් මුලින් විසඳූ ගැටළු මොනවාදැයි අපි මතක තබා ගනිමු.

බෙදා හරින ලද, විමධ්‍යගත, පොදු සහ වෙනස් කළ නොහැකි දත්ත සමුදායක් ගැන බොහෝ දෙනෙක් කියනු ඇතැයි මට විශ්වාසයි. නමුත් මේ සියල්ල අවශ්ය වූයේ ඇයි?

අධ්‍යයනයට භාජනය වන මාතෘකාව පිළිබඳ සියලුම ලිපි සහ පොත් ඒවා මත පදනම් වන බැවින් ප්‍රමිතීන් කියවීමෙන් ඕනෑම තාක්‍ෂණයක් හැදෑරීමට මම කැමැත්තෙමි. නමුත් දැනට බ්ලොක්චේන් ප්‍රමිතීන් නොමැත; ISO නිර්මාණය කර ඇත්තේ පමණි කමිටු ඔවුන්ගේ සංවර්ධනය සඳහා. දැනට, සෑම පොදු blockchain ව්‍යාපෘතියකටම තමන්ගේම සුදු කඩදාසි ලේඛනයක් ඇත, එය අත්‍යවශ්‍යයෙන්ම තාක්ෂණික පිරිවිතරයකි. ප්‍රසිද්ධියේ දන්නා පළමු බ්ලොක්චේන් ව්‍යාපෘතිය වන්නේ බිට්කොයින් ජාලයයි. ජාලයේ නිල වෙබ් අඩවියට යන්න සහ බලන්න එය සියල්ල ආරම්භ වූ තැන.

Blockchain අභියෝගය

ඉතින්, Bitcoin පුරෝගාමි ජාලය තුළ blockchain විසඳා ඇති කාර්යය වන්නේ අතරමැදියන් නොමැතිව විශ්වාසදායක නොවන පරිසරයක් තුළ ඩිජිටල් වත්කම්වල (වත්කම්) හිමිකාරිත්වය විශ්වාසදායක ලෙස පැවරීමයි. උදාහරණයක් ලෙස, Bitcoin ජාලය තුළ, ඩිජිටල් වත්කමක් යනු bitcoin ඩිජිටල් කාසි වේ. තවද Bitcoin සහ අනෙකුත් blockchains හි සියලුම තාක්ෂණික විසඳුම් මෙම ගැටළුව විසඳීම සඳහා පැමිණේ.

බ්ලොක්චේන් විසඳන ගැටළු

කිසියම් මූල්‍ය සංවිධානයක් පවසන්නේ එය ඕනෑම පුද්ගලයෙකුට මුදල් මාරු කළ හැකි ජාලයක් ලොව පුරා ගොඩනගා ඇති බවයි. ඔබ ඇයව විශ්වාස කරනවාද? මෙම සංවිධානය වීසා හෝ මාස්ටර් කාඩ් නම්, බොහෝ විට ඔබ එය විශ්වාස කරනු ඇත, නමුත් සාපේක්ෂ වශයෙන්, AnonymousWorldMoney නම්, ඔබ බොහෝ විට එසේ නොකරනු ඇත. ඇයි? නමුත් පුද්ගලික සමාගම් විසින් බෙදා හරින ලද පද්ධති සෑදෙන්නේ කෙසේද, කුමන අරමුණු සඳහාද සහ මෙය හේතු විය හැකි දේ අපි හොඳින් දන්නා බැවිනි. එවැනි පද්ධතිවල ගැටළු සහ බ්ලොක්චේන් තාක්ෂණය භාවිතයෙන් ඒවා විසඳා ගත හැකි ආකාරය දෙස සමීපව බලමු.

කොන්දේසි සහිත AnonymousWorldMoney හි දත්ත සමුදායන් සහිත සේවාදායකයන් ඇති බව කියමු, ඒවායින් කිහිපයක් විවිධ දත්ත මධ්‍යස්ථානවල තිබේ නම් එය හොඳයි. යවන්නා මුදල් මාරු කරන විට, ගනුදෙනුවක් ලියාපදිංචි කර ඇති අතර, එය සියලුම සේවාදායකයන්ට අනුවර්තනය වන අතර, මුදල් ලබන්නා වෙත ළඟා වේ.

අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

පරමාදර්ශී ලෝකයක, මෙම යෝජනා ක්රමය විශිෂ්ට ලෙස ක්රියා කරයි, නමුත් අපගේ පහත සඳහන් ගැටළු පැන නගී:

  1. එක් අතකින් සහභාගිවන්නන් හඳුනා ගැනීමේ ගැටලුව සහ අනෙක් පැත්තෙන් ගනුදෙනුවල නිර්නාමිකභාවයේ අවශ්‍යතාවය. එම. ඔබ නිශ්චිත ලබන්නෙකුට මුදල් මාරු කළ යුතු අතර ගනුදෙනුවේ සහභාගිවන්නන් හැර මෙම ගනුදෙනුව ගැන කිසිවෙකු නොදන්නා ආකාරයෙන්. බැංකු සතුව ගිණුම් අංක සහ බැංකු කාඩ්පත් විශේෂිත පුද්ගලයෙකුට හෝ නීතිමය ආයතනයකට සම්බන්ධ කර ඇති අතර බැංකු රහස්‍යභාවය ගනුදෙනු තොරතුරු ආරක්ෂා කරයි. කොන්දේසි සහිත AnonymousWorldMoney පුද්ගලික දත්ත සහ ගනුදෙනු තොරතුරු තමන්ගේ අරමුණු සඳහා භාවිතා නොකරන බවට සහතික වන්නේ කවුද?
  2. ලබන්නාට ඔහු වෙත මාරු කරන ලද මුදල හරියටම ලැබුණු බව තහවුරු කර ගන්නේ කෙසේද? සාපේක්ෂ වශයෙන්, යවන්නා $100 මාරු කළ අතර, ලබන්නාට $10 ලැබිණි. යවන්නා ඔහුගේ රිසිට්පත සමඟ AnonymousWorldMoney කාර්යාලයට පැමිණෙන අතර, ලිපිකරු ඔහුගේ අනුවාදය පෙන්වයි, එහි ලියා ඇත්තේ යවන්නා ඩොලර් 10 ක් පමණක් මාරු කළ බවයි.
  3. විශ්වාස නොකළ පරිසරයක ගැටලුව, උදාහරණයක් ලෙස, ද්විත්ව වියදම් ලෙස හැඳින්වෙන වංචාවක්. නොසැලකිලිමත් සහභාගිවන්නෙකුට ගෙවීම් සියලුම සේවාදායකයන්ට ප්‍රතිවර්තනය වන තෙක් ඔහුගේ ශේෂය කිහිප වතාවක් වියදම් කළ හැකිය. CAP ප්රමේයය, ඇත්ත වශයෙන්ම, කිසිවෙකු අවලංගු නොකළ අතර, අවසානයේ එකඟතාව සාක්ෂාත් කරගනු ඇත, නමුත් යමෙකුට සපයනු ලබන සේවා හෝ භාණ්ඩ සඳහා මුදල් නොලැබෙනු ඇත. එබැවින්, ගෙවීම් සංවිධානය හෝ ගනුදෙනු වල සහභාගිවන්නන් කෙරෙහි සම්පූර්ණ විශ්වාසයක් නොමැති නම්, විශ්වාසය මත නොව, ගුප්තකේතනය මත පදනම්ව ජාලයක් ගොඩනගා ගැනීම අවශ්ය වේ.
  4. Conditional AnonymousWorldMoney සතුව සීමිත සේවාදායක සංඛ්‍යාවක් ඇති අතර ඒවා නොදැනුවත්වම හෝ ද්වේෂසහගත චේතනාවක් හේතුවෙන් ලබා ගත නොහැක.
  5. AnonymousWorldMoney තමන්ගේම ප්‍රත්‍යක්ෂ කොමිස් ලබා ගනී.
  6. පාලනය කිරීමේ හැකියාව. බිට්කොයින් ක්‍රියාත්මක වන විට, මිනිසුන්ට කාසි එකිනෙකාට මාරු කිරීමට පමණක් නොව, ගනුදෙනුව සඳහා විවිධ කොන්දේසි පරීක්ෂා කිරීම, වැඩ කිරීමේ අවස්ථා, කොන්දේසි මත පදනම්ව ස්වයංක්‍රීයව ක්‍රියා කිරීම යනාදිය අවශ්‍ය බව පෙනී ගියේය.

බ්ලොක්චේන් මෙම ගැටළු විසඳන ආකාරය

  1. සහභාගිවන්නන් හඳුනා ගැනීම යතුරු යුගලයක් භාවිතයෙන් සිදු කෙරේ: පුද්ගලික සහ පොදු, සහ ඩිජිටල් අත්සන ඇල්ගොරිතම යවන්නා සහ ලබන්නා අනන්‍ය ලෙස හඳුනාගෙන ඔවුන්ගේ අනන්‍යතා නිර්නාමික කරයි.
  2. ගනුදෙනු බ්ලොක් වලට එකතු කරනු ලැබේ, බ්ලොක් එකේ හැෂ් ගණනය කර ඊළඟ කොටසට ලියා ඇත. බ්ලොක් වල හැෂ් පටිගත කිරීමේ මෙම අනුපිළිවෙල බ්ලොක්චේන් තාක්‍ෂණයට එහි නම ලබා දෙන අතර එමඟින් බ්ලොක් හෝ තනි ගණුදෙණු නොපෙනෙන ලෙස වෙනස් කිරීමට / මකා දැමීමට නොහැකි වේ. මේ අනුව, බ්ලොක්චේන් හි ගනුදෙනුවක් ඇතුළත් කර ඇත්නම්, එහි දත්ත නොවෙනස්ව පවතිනු ඇති බවට ඔබට සහතික විය හැකිය.
  3. වලංගු යැයි සැලකිය යුතු දත්ත සහ ඉවත දැමිය යුතු දත්ත පිළිබඳ ජාල සම්මුතියකට පැමිණීමෙන් ද්විත්ව වියදම් වංචාව වළක්වනු ලැබේ. Bitcoin ජාලය තුළ, වැඩ පිළිබඳ සාක්ෂි (PoW) මගින් සම්මුතිය ලබා ගනී.
  4. ජාලයේ විශ්වසනීයත්වය සාක්ෂාත් කරගනු ලබන්නේ බ්ලොක්චේන් පොදු වන අතර, එහිදී සෑම සහභාගිවන්නෙකුටම තමන්ගේම නෝඩයක් ධාවනය කළ හැකි අතර, බ්ලොක්චේන්හි සම්පූර්ණ පිටපතක් ලබා ගත හැකි අතර, එපමනක් නොව, ස්වාධීනව ගනුදෙනු නිවැරදිව පරීක්ෂා කිරීමට පටන් ගනී. නවීන බ්ලොක්චේන් පොදු (විවෘත) පමණක් නොව පුද්ගලික (සංවෘත) බ්ලොක්චේන් මෙන්ම ඒකාබද්ධ යෝජනා ක්රම භාවිතා කිරීමටද හැකි බව සැලකිල්ලට ගත යුතුය.
  5. බ්ලොක්චේන් කොමිස් මුදල් සම්පූර්ණයෙන්ම ඉවත් නොකරනු ඇත, මන්ද ... ඔබ ජාලයට සහාය දක්වන පුද්ගලයින්ට ගෙවිය යුතුය, නමුත් බ්ලොක්චේන් තුළ කොමිෂන් සභාවක අවශ්‍යතාවය කෙතරම් ඒත්තු ගැන්වී ඇත්ද යත් එහි අවශ්‍යතාවය පිළිබඳව කිසිදු සැකයක් නැත.
  6. නවීන බ්ලොක්චේන් වලට ව්‍යාපාර තර්කනය ක්‍රියාත්මක කිරීමේ හැකියාව ඇත, එය බ්ලොක්චේන්හි ස්මාර්ට් කොන්ත්‍රාත්තු ලෙස හැඳින්වේ. ස්මාර්ට් කොන්ත්රාත්තුවේ තර්කනය විවිධ ඉහළ මට්ටමේ භාෂාවලින් ක්රියාත්මක වේ.

ඊළඟට, අපි මෙම විසඳුම් වඩාත් විස්තරාත්මකව සලකා බලමු.

බ්ලොක්චේන් ගෘහ නිර්මාණ ශිල්පය

බ්ලොක්චේන් සංරචක

සෑම සහභාගිවන්නෙකුටම බ්ලොක්චේන් (සම්පූර්ණ නෝඩය) සම්පූර්ණ පිටපතක් සමඟ තමන්ගේම නෝඩය දියත් කළ හැකිය. බ්ලොක්චේන් හි ගනුදෙනු වාර්තා කළ හැකි සම්පූර්ණ නෝඩ් කැඳවනු ලැබේ සම්මුති නෝඩ් (සාක්ෂිකරු) හෝ පතල් කම්කරුවන් (පතල් කම්කරුවන්). ගනුදෙනු වල නිවැරදි බව පමණක් පරීක්ෂා කරන සම්පූර්ණ නෝඩ් ලෙස හැඳින්වේ විගණන නෝඩ් (විගණන). සැහැල්ලු ගනුදෙනුකරුවන් (සැහැල්ලු සේවාදායකයින්) බ්ලොක්චේන්හි සම්පූර්ණ පිටපත් ගබඩා නොකරයි, නමුත් සම්පූර්ණ නෝඩ් භාවිතයෙන් ජාලය සමඟ අන්තර් ක්‍රියා කරයි.
බොහෝ පරිශීලකයින් ගනුදෙනු කිරීමට සැහැල්ලු සේවාදායකයින් හෝ වෙබ් පසුම්බි භාවිතා කරයි. සියලුම නෝඩ් එකිනෙක සම්බන්ධ වේ. මෙම මූලද්‍රව්‍ය සමූහය සමඟ, ජාල ගෘහ නිර්මාණ ශිල්පය වඩාත් ස්ථායී වේ:

අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

ගනුදෙනු ජීවන චක්රය

අපි ගනුදෙනු ජීවන චක්‍රය දෙස බලමු, එය කෑල්ලෙන් බිඳ දමමු:

අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

Blockchain තාක්ෂණයන්

තාක්ෂණික විසඳුම් සහ එකිනෙකා සමඟ ඇති සම්බන්ධතා පිළිබඳව අපි වඩාත් විස්තරාත්මකව වාසය කරමු.

හඳුනා ගැනීම

සෑම බ්ලොක්චේන් ගනුදෙනුවක්ම ඩිජිටල් ලෙස අත්සන් කළ යුතුය. එබැවින්, ගනුදෙනුවක් සම්පූර්ණ කිරීම සඳහා, සෑම සහභාගිවන්නෙකුටම යතුරු යුගලයක් තිබිය යුතුය: පුද්ගලික / පොදු. සමහර විට යතුරු යුගලයක් මුදල් පසුම්බියක් ලෙස හැඳින්වේ, මන්ද යතුරු සහභාගිවන්නාගේ අනන්‍ය ඩිජිටල් ලිපිනය සහ ශේෂය සමඟ අද්විතීය ලෙස සම්බන්ධ වේ. යථාර්ථයේ දී, යතුරු සහ ලිපින යනු විවිධ සංඛ්‍යා පද්ධතිවල සංඛ්‍යා නූල් පමණි. යතුරු සහ පසුම්බි ලිපින සඳහා උදාහරණ:

Private key: 0a78194a8a893b8baac7c09b6a4a4b4b161b2f80a126cbb79bde231a4567420f
Public key: 0579b478952214d7cddac32ac9dc522c821a4489bc10aac3a81b9d1cd7a92e57ba
Address: 0x3814JnJpGnt5tB2GD1qfKP709W3KbRdfb27V

බ්ලොක්චේන් වල ඩිජිටල් අත්සනක් නිර්මාණය කිරීම සඳහා, ඉලිප්සීය වක්‍ර මත පදනම් වූ ඇල්ගොරිතමයක් භාවිතා කරයි: Elliptic Curve Digital Signature Algorithm (ECDSA). එය වැඩ කිරීම සඳහා, පුද්ගලික යතුර (256-bit අංකය) සාමාන්යයෙන් අහඹු ලෙස ගනු ලැබේ. ප්‍රධාන විකල්ප ගණන 2 සිට 256 බලය දක්වා වේ, එබැවින් අපට පුද්ගලික යතුරු වල අගයන් ගැලපීමේ ප්‍රායෝගික නොහැකියාව ගැන කතා කළ හැකිය.

ඊළඟට, පොදු යතුර පුද්ගලික එකෙන් ලබා ගන්නේ එහි අගය ඉලිප්සීය වක්‍රයේ පිහිටා ඇති ලක්ෂ්‍යයක ඛණ්ඩාංක මගින් ගුණ කිරීමෙන්, එම වක්‍රයේම නව ලක්ෂ්‍යයක ඛණ්ඩාංක ඇතිවේ. මෙම ක්‍රියාව ඔබට ඩිජිටල් ලෙස අත්සන් කිරීමේ ගනුදෙනු සඳහා සුදුසු යතුරු යුගලයක් ලබා ගැනීම සහතික කරයි. අවසාන වශයෙන්, පසුම්බිය ලිපිනය පොදු යතුරෙන් අද්විතීය ලෙස ව්‍යුත්පන්න කර ඇත.

බ්ලොක්චේන් හි භාවිතා කරන ගුප්ත ලේඛන පිළිබඳ විස්තර සහිත ලිපි රාශියක් ඇත, උදාහරණයක් ලෙස: කෙටියෙන් බිට්කොයින් - ගුප්තකේතනය

පුද්ගලික යතුර දැඩි ලෙස රහසිගත විය යුතු අතර ආරක්ෂිතව තබා ගත යුතුය. පොදු යතුර සෑම දෙනාම දන්නා කරුණකි. පුද්ගලික යතුර නැති වුවහොත්, වත්කම් (කාසි) වෙත ප්රවේශය ප්රතිෂ්ඨාපනය කළ නොහැකි අතර මුදල් සදහටම අහිමි වනු ඇත. එබැවින්, පුද්ගලික යතුරු ආරක්ෂිතව ගබඩා කිරීමේ කාර්යය අතිශයින්ම අදාළ වේ, මන්ද මෙය ඔබට සැමවිටම ඔබගේ විදේශ ගමන් බලපත්‍රය සමඟ පැමිණ ඔබගේ ගිණුම ප්‍රතිසාධනය කළ හැකි බැංකුවක් නොවේ. ෆ්ලෑෂ් ඩ්‍රයිව් වලට සමාන ඊනියා සීතල ක්‍රිප්ටෝ පසුම්බි නිෂ්පාදනය සඳහා සමස්ත කර්මාන්තයක් තිබේ:

අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

හෝ ඔබට වඩාත් විශ්වාසදායක ක්‍රම භාවිතා කළ හැකිය, උදාහරණයක් ලෙස, ටෝකන් වල පුද්ගලික යතුරේ අගය මුද්‍රා තැබීම:

අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

ගනුදෙනු

ගනුදෙනු ව්‍යුහය පිළිබඳ වැඩි විස්තර ලිපියෙන් සොයාගත හැකිය කෙටියෙන් බිට්කොයින් - ගනුදෙනු. සෑම ගණුදෙනුවකම අවම වශයෙන් පහත දත්ත ඇති බව අපට අවබෝධ කර ගැනීම වැදගත් වේ:

From: 0x48C89c341C5960Ca2Bf3732D6D8a0F4f89Cc4368 - цифровой адрес отправителя
To: 0x367adb7894334678b90аfe7882a5b06f7fbc783a - цифровой адрес получателя
Value: 0.0001 - сумма транзакции
Transaction Hash: 0x617ede331e8a99f46a363b32b239542bb4006e4fa9a2727a6636ffe3eb095cef - хэш транзакции

ඊළඟට, ගනුදෙනුව පුද්ගලික යතුරකින් අත්සන් කර පිටතට යවනු ලැබේ (ප්රොටෝකෝලයේ ක්රියාකාරිත්වය පිළිබඳ විස්තර බලන්න Bitcoin කෙටියෙන් - Protocol) වලංගු භාවය සඳහා ගනුදෙනු පරීක්ෂා කරන blockchain හි සියලුම නෝඩ් වෙත. ගනුදෙනු සත්‍යාපන ඇල්ගොරිතම සුළු නොවන අතර ඇතුළත් වේ පියවර දුසිම් දෙකක්.

ගනුදෙනු වාරණ

ගනුදෙනු වල වලංගුභාවය පරීක්ෂා කිරීමෙන් පසු, නෝඩ් ඒවායින් බ්ලොක් සාදයි. ගනුදෙනු වලට අමතරව, පෙර කොටසේ හැෂ් සහ අංකයක් (නොන්ස් කවුන්ටරය) බ්ලොක් එකට ලියා ඇති අතර, වත්මන් බ්ලොක් එකේ හැෂ් ගණනය කරනු ලබන්නේ SHA-256 ඇල්ගොරිතම භාවිතා කරමිනි. හැෂ් සංකීර්ණ තත්ත්වයන් ස්ථාපිත කර තිබිය යුතුය. උදාහරණයක් ලෙස, Bitcoin ජාලය තුළ, ජාලයේ බලය අනුව සෑම සති 2 කට වරක් හැෂ් වල දුෂ්කරතාවය ස්වයංක්‍රීයව වෙනස් වන අතර එමඟින් සෑම විනාඩි 10 කට වරක් වාරණයක් ජනනය වේ. සංකීර්ණත්වය පහත කොන්දේසිය මගින් තීරණය වේ: සොයාගත් හැෂ් කලින් තීරණය කළ අංකයකට වඩා අඩු විය යුතුය. මෙම කොන්දේසිය සපුරා නොමැති නම්, Nonce වෙත 1 එකතු කරනු ලබන අතර, හෑෂ් ගණනය කිරීමේ කාර්යය නැවත නැවතත් සිදු කෙරේ. හැෂ් එකක් තෝරා ගැනීමට, Nonce ක්ෂේත්‍රය භාවිතා වේ, මන්ද බ්ලොක් එකේ වෙනස් කළ හැකි එකම දත්ත මෙයයි; ඉතිරිය නොවෙනස්ව පැවතිය යුතුය. වලංගු හැෂ් එකක සැබෑ හෑෂ් එකක් වැනි නිශ්චිත ප්‍රමුඛ ශුන්‍ය සංඛ්‍යාවක් තිබිය යුතුය:

000000000000000000000bf03212e7dd1176f52f816fa395fc9b93c44bc11f91

හෑෂ් එකක් සාර්ථක ලෙස සොයා ගැනීම Bitcoin හෝ Ethereum ජාල සඳහා සිදු කළ කාර්යයේ (Proof-of-Work, PoW) සාක්ෂියකි. හෑෂ් සෙවීමේ ක්‍රියාවලිය රන් කැණීම හා සමානව පතල් කැණීම ලෙස හැඳින්වේ. නම ඉතා නිවැරදිව ක්රියාවලියේ සාරය නිර්වචනය කරයි, මන්ද විකල්ප පිළිබඳ සරල සෙවුමක් ඇත, යමෙකු සුදුසු හැෂ් එකක් සොයා ගන්නේ නම්, මෙය ඇත්තෙන්ම වාසනාවකි. එය හරියට අපද්‍රව්‍ය ගල් ටොන් ගණනකින් සැබෑ රන් කුට්ටියක් සොයා ගැනීම වැනිය. වාරණ ත්‍යාගය දැන් 12.5 BTC වන අතර ඔබ එය දැනට පවතින $3900 Bitcoin අනුපාතයෙන් ගුණ කළහොත්, ඔබට පිරිසිදු රත්‍රන් කිලෝග්‍රෑම් එකකට වඩා ලැබේ. සටන් කිරීමට යමක් තිබේ!

හැෂ් එකක් සාර්ථකව සොයා ගැනීමෙන් පසු, බ්ලොක් එක සහ සොයාගත් හැෂ් ඊළඟ බ්ලොක් එක ලෙස බ්ලොක්චේන් වෙත ලියා ඇත. කුට්ටි වල ව්යුහය පිළිබඳ වැඩි විස්තර ලිපියෙන් සොයාගත හැකිය Bitcoin කෙටියෙන් - Blockchain, සහ පහත දැක්වෙන්නේ සරල කළ රූප සටහනකි:

අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

බ්ලොක්චේන් ආරම්භ වන්නේ පෙර බ්ලොක් එකේ හැෂ් තවමත් නොමැති බ්ලොක් එකකිනි. බ්ලොක්චේන් හි එවැනි එක් බ්ලොක් එකක් පමණක් ඇති අතර එහිම නම ජෙනසිස් බ්ලොක් ඇත. ඉතිරි කුට්ටි එකම ව්යුහයක් ඇති අතර ගනුදෙනු සංඛ්යාවෙන් පමණක් වෙනස් වේ. Bitcoin හෝ Ethereum හි දැනට නිර්මාණය කර ඇති සැබෑ ගනුදෙනු සහ කොටස් නැරඹිය හැකිය බ්ලොක් එක්ස්ප්ලෝරර්.

Bitcoin වල බ්ලොක් වල ප්‍රමාණය 1MB ට සීමා වන අතර බයිට් 200 ක පමණ ගනුදෙනුවක අවම තොරතුරු ප්‍රමාණයක් සමඟ බ්ලොක් එකක ඇති උපරිම ගනුදෙනු සංඛ්‍යාව 6000 ක් පමණ විය හැක. මෙතැන් සිට, මාර්ගය වන විට, සෑම කෙනෙකුම සිනාසෙන Bitcoin හි කාර්ය සාධනය අනුගමනය කරයි: වාරණයක් සෑම විනාඩි 10 කට වරක් * තත්පර 60 = තත්පර 600 කට වරක් ජනනය වේ, එය TPS 10 ක පමණ විධිමත් කාර්ය සාධනයක් ලබා දෙයි. ඇත්ත වශයෙන්ම, මෙය ඵලදායිතාව නොව, හිතාමතා ක්රියාත්මක කරන ලද වැඩ ඇල්ගොරිතමයකි. Ethereum හි, තරඟය සඳහා, ඔවුන් හුදෙක් වාරණ උත්පාදන කාලය තත්පර 15 ක් බවට පත් කළේය. සහ ඵලදායිතාව විධිමත් ලෙස ඉහළ ගියේය. එබැවින්, PoW සම්මුතියක් ලෙස භාවිතා කරන බ්ලොක්චේන් වලදී, කාර්ය සාධනය කිසිසේත් සංසන්දනය කිරීම තේරුමක් නැත, මන්ද එය කෙලින්ම රඳා පවතින්නේ හැඹිලි ගණනය කිරීමේ සංකීර්ණත්වය මත වන අතර එය ඕනෑම අගයකට පැවරිය හැකිය.

ගෑරුප්පු

උදාහරණයක් ලෙස, සංකීර්ණ තත්වයන් සපුරාලන, නමුත් වටිනාකමින් වෙනස් (වෙනත් වචන වලින්, ඒවා විවිධ සම්මුතීන්ට පැමිණි) හෑෂ් කිහිපයක් නෝඩ් කිහිපයක් සොයාගෙන බ්ලොක්චේන් වෙත බ්ලොක් ලිව්වහොත් කුමක් සිදුවේද? බ්ලොක්චේන් මෙම තත්වයෙන් ආරක්ෂා වන්නේ කෙසේදැයි බලමු. මෙම අවස්ථාවේ දී, ඊනියා දෙබලක සිදු වන අතර, බ්ලොක්චේන් දාමයේ අනුවාද දෙකක් ඇත:

අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

ඊළඟට කුමක් සිදුවේද? ඊළඟට, ජාලයේ කොටසක් එක් දාමයකින් බ්ලොක් N + 2 මත වැඩ කිරීමට පටන් ගනී, සහ තවත් කොටසක්:

අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

මෙම බ්ලොක් වලින් එකක් කලින් සොයාගෙන බ්ලොක්චේන් වෙත යවනු ඇත, පසුව, නීතිරීතිවලට අනුව, බ්ලොක්චේන් දිගු දාමයකට මාරු වීමට සහ විකල්ප බ්ලොක් එකෙන් සියලුම ගනුදෙනු අවලංගු කිරීමට සිදුවනු ඇත:

අපි blockchain ගොඩනගා ගත යුත්තේ කුමක්ද?

ඒ අතරම, සහභාගිවන්නෙකුගේ ගනුදෙනුව අවලංගු කරන ලද ෆෝක් බ්ලොක් එකක පමණක් වූ විට තත්වයක් ඇතිවිය හැකිය. එබැවින්, අපේක්ෂිත ගනුදෙනුව බ්ලොක්චේන් හි සටහන් කර ඇති බවට වග බලා ගැනීම සඳහා, සාමාන්ය නිර්දේශයක් ඇත - ගනුදෙනුව විශ්වාස කිරීමට පෙර, බ්ලොක්චේන් වෙත ඊළඟ වාරණ කිහිපයක් එකතු කරන තෙක් ඔබ බලා සිටිය යුතුය. විවිධ අවහිර කිරීම් සඳහා කොපමණ වාරණ රැඳී සිටිය යුතුද යන්න සඳහා නිර්දේශ වෙනස් වේ. උදාහරණයක් ලෙස, Bitcoin ජාලය සඳහා අවම වශයෙන් 2 කුට්ටි, උපරිම 6 වේ.

බ්ලොක් ගෑරුප්පු සහිත එම පින්තූරයම ඊනියා 51% ප්‍රහාරයේදී නිරීක්ෂණය කරනු ඇත - පතල් කම්කරුවන් කණ්ඩායමක් ඔවුන්ගේ වංචනික ගනුදෙනු සමඟ දාමය අවලංගු කිරීමට උත්සාහ කරමින් විකල්ප වාරණ දාමයක් වර්ධනය කිරීමට උත්සාහ කරන විට ය. වර්තමානයේ වුවද, වංචාව වෙනුවට, අවංක පතල් කැණීම සඳහා ඔබේ බලය වැය කිරීම වඩා ලාභදායී වේ.

සම්මුතිය

බ්ලොක්චේන් මත බ්ලොක් එකක් වාර්තා කිරීම සඳහා, ජාලය සම්මුතියකට පැමිණිය යුතුය. පරිගණක සන්නිවේදන ජාල තුළ සම්මුතියක් ඇති කර ගැනීමේ කාර්යය මතක තබා ගනිමු. ගැටළුව සකස් කර ඇත්තේ බයිසැන්තියානු ජෙනරාල්වරුන් BFT (බයිසන්ටයින් දෝෂ ඉවසීම) බයිසැන්තියානු හමුදාවේ ගැටළු පිළිබඳ මනරම් විස්තරය මඟ හැර, ගැටළුව පහත පරිදි සකස් කළ හැකිය: සමහර ජාල නෝඩ් හිතාමතාම ඒවා විකෘති කළ හැකි නම් ජාල නෝඩ් පොදු ප්‍රති result ලයකට පැමිණෙන්නේ කෙසේද. BFT ගැටළුව විසඳීම සඳහා පවතින ඇල්ගොරිතම මඟින් වංචාකරුවන්ගෙන් 1/3 කට වඩා අඩු නම් ජාලය නිවැරදිව ක්රියා කළ හැකි බව පෙන්වයි. Bitcoin ජාලයට BFT සම්මුතිය යෙදී නැත්තේ ඇයි? PoW භාවිතා කිරීමට අවශ්ය වූයේ ඇයි? හේතු කිහිපයක් තිබේ:

  • BFT කුඩා ස්ථාවර නෝඩ් කට්ටලයක් සමඟ හොඳින් ක්‍රියා කරයි, නමුත් පොදු බ්ලොක්චේන් එකක නෝඩ් ගණන අනපේක්ෂිත වන අතර, එපමනක් නොව, නෝඩ් අහඹු ලෙස සක්‍රිය සහ අක්‍රිය කළ හැකිය.
  • බ්ලොක්චේන් නෝඩ් දියත් කිරීමට මිනිසුන් පෙළඹවීම අවශ්ය වේ. මෙය සිදු කිරීම සඳහා මිනිසුන්ට විපාක දිය යුතුය. BFT හි විධිමත් ලෙස ත්‍යාගයක් ලබා ගැනීමට කිසිවක් නැත, නමුත් PoW හි ත්‍යාගය කුමක්ද යන්න බුද්ධිමය මට්ටමින් සෑම කෙනෙකුටම පැහැදිලිය: බ්ලොක් හැෂ් සෙවීමේ ක්‍රියාවලියේදී ප්‍රොසෙසරය විසින් පරිභෝජනය කරන විදුලිය සඳහා.

PoW වලට අමතරව, නූතන blockchains වල භාවිතා වන තවත් සම්මුතීන් කිහිපයක් ඇත, උදාහරණයක් ලෙස:

  • PoS (Proof-of-Stake) - blockchain මත Hyperledger
  • DPoS (පවරන ලද ඔප්පු-ඔෆ්-ස්ටේක්) - blockchain මත බිට්සර්ස්
  • BFT හි වෙනස් කිරීම්: SBFT (සරල BFT) සහ PBFT (ප්‍රායෝගික BFT), උදාහරණයක් ලෙස blockchain හි Exonum

අපි PoS සම්මුතිය ගැන ටිකක් වාසය කරමු, මන්ද ... පුද්ගලික බ්ලොක්චේන් වල වඩාත් පුලුල්ව පැතිර ඇති PoS සහ එහි ප්‍රභේද වේ. ඇයි පුද්ගලිකව? එක් අතකින්, PoS හි ලක්ෂණ PoW හා සසඳන විට වඩා හොඳය, මන්ද සම්මුතිය සාක්ෂාත් කර ගැනීම සඳහා, අඩු පරිගණක සම්පත් අවශ්ය වේ, එනම් බ්ලොක්චේන් වෙත දත්ත ලිවීමේ වේගය වැඩි වේ. නමුත් අනෙක් අතට, PoS හට වංචා සඳහා වැඩි අවස්ථා තිබේ, එබැවින් මෙය උදාසීන කිරීම සඳහා, blockchain හි සියලුම සහභාගිවන්නන් දැන සිටිය යුතුය.

PoS සම්මුතිය පදනම් වන්නේ ගිණුමේ ඇති අරමුදල් ප්‍රමාණය අනුව බ්ලොක්චේන් වෙත ගණුදෙනු සහිත බ්ලොක් එකක් ලිවිය හැකි නෝඩයක් තෝරා ගැනීම මත හෝ ඒ වෙනුවට, ගිණුමේ නොව, ඇපකරයේ, i.e. ඔබට ඇපයක් ලෙස ඇති අරමුදල් වැඩි වන තරමට, අවහිරයක් ලිවීමට ජාලය ඔබේ නෝඩය තෝරා ගනු ඇත. අවහිරය වලංගු නොවේ නම් තැන්පතුව ආපසු ලබා නොදෙනු ඇත. මෙය වංචාවට එරෙහිව ආරක්ෂාව සපයයි. PoS හි පහත වෙනස්කම් තිබේ:

  • නියෝජිත PoS (DPoS) සම්මුතිය සහභාගිවන්නන් "ඡන්දදායකයින්" සහ "වලංගු කරන්නන්" ලෙස බෙදා ඇත. කාසි දරන්නන් (ඡන්ද දායකයින්) බ්ලොක්චේන් හි ගනුදෙනු සත්‍යාපනය කිරීමට සහ වාර්තා කිරීමට ඔවුන්ගේ බලය අනෙකුත් සහභාගිවන්නන්ට පවරයි. මේ අනුව, වලංගු කරන්නන් සියළුම ගණනය කිරීම් කටයුතු සිදු කරන අතර ඒ සඳහා ත්‍යාගයක් ලබා ගන්නා අතර, ඡන්දය ප්‍රකාශ කරන්නන්ගේ පැමිණීම වලංගු කරන්නන්ගේ අවංකභාවය සහතික කරයි. ඒවා ඕනෑම වේලාවක වෙනස් කළ හැකිය.
  • LPoS (Leased Proof-of-Stake) සම්මුතිය මඟින් ඔබේ අරමුදල් වෙනත් නෝඩ් වෙත බදු දීමට ඉඩ සලසයි, එවිට ඔවුන්ට කුට්ටි වලංගු කිරීමට වඩා හොඳ අවස්ථාවක් ඇත. එම. සත්‍ය ගනුදෙනු සත්‍යාපනයට සහ කැණීම් අවහිර කිරීමට සහභාගී නොවී ඔබට ගනුදෙනු සඳහා කොමිස් මුදලක් ලැබිය හැකිය.

තවමත් බහුලව භාවිතා නොවන වෙනත් සම්මුතීන් ගණනාවක් තිබේ, මම ඒවා තොරතුරු සඳහා මෙහි ලැයිස්තුගත කරමි, සහ සම්මුති ඇල්ගොරිතම පිළිබඳ දළ විශ්ලේෂණයක් සොයාගත හැකිය, උදාහරණයක් ලෙස, ලිපියෙන්: Blockchain හි එකඟතා ඇල්ගොරිතම.

  • PoET (ඉක්ම ගිය කාලය පිළිබඳ සාක්ෂි)
  • PoC (ධාරිතාව පිළිබඳ සාක්ෂි)
  • PoB (පිළිස්සුම් සාක්ෂි)
  • PoWeight (බර-සාධනය)
  • PoA (ක්‍රියාකාරකම් සාධනය) - PoW + PoS
  • PoI (වැදගත් දේ පිළිබඳ සාක්ෂි)

බ්ලොක්චේන් වල විශ්වසනීයත්වය සහ යෙදවුම් ආකෘති

පොදු අවහිර කිරීම

තිරසාර බව පොදු හෝ වෙනත් නමක් අවසර රහිත බ්ලොක්චේන් මෙය සාක්ෂාත් කරගනු ලබන්නේ ඕනෑම කෙනෙකුට සම්බන්ධ වීමට සහ තොරතුරු බැලීමට හෝ ඔවුන්ගේම නෝඩය සම්බන්ධ කිරීමට ඉඩ දීමෙන් වන අතර විශ්වාසය ගොඩනගා ඇත්තේ PoW සම්මුතිය මතය.

පුද්ගලික බ්ලොක්චේන්

පෞද්ගලික හෝ පුද්ගලික අවසර ලත් බ්ලොක්චේන්. මෙම blockchains වලදී, තොරතුරු සඳහා ප්‍රවේශය ඇත්තේ සහභාගිවන්නන් (සංවිධාන හෝ පුද්ගලයන්) පිරිසකට පමණි. එවැනි blockchains සමස්ත ප්රතිලාභ හෝ කාර්යක්ෂමතාව වැඩි කිරීමේ අරමුණින් සංවිධාන විසින් ගොඩනගා ඇත. සහභාගිවන්නන්ගේ පොදු අරමුණු සහ PoS සහ BFT සම්මුති ඇල්ගොරිතම මගින් ඔවුන්ගේ විශ්වසනීයත්වය සහතික කෙරේ.

Blockchain Consortium

පවතිනවා සම්මේලනය හෝ මහජන අවසර ලත් බ්ලොක්චේන්. මේවා ඕනෑම කෙනෙකුට බැලීමට සම්බන්ධ කළ හැකි බ්ලොක්චේන් වේ, නමුත් සහභාගිවන්නෙකුට තොරතුරු එක් කිරීමට හෝ ඔහුගේ නෝඩය සම්බන්ධ කළ හැක්කේ අනෙකුත් සහභාගිවන්නන්ගේ අවසරය ඇතිව පමණි. එවැනි blockchains පාරිභෝගිකයන් හෝ නිෂ්පාදන පාරිභෝගිකයන් හෝ සමස්තයක් ලෙස සමාජය කෙරෙහි විශ්වාසය වැඩි කිරීම සඳහා සංවිධාන විසින් ගොඩනගා ඇත. මෙහිදී, සහභාගිවන්නන් සහ එම PoS සහ BFT සම්මුති ඇල්ගොරිතම අතර විශ්වාසය පැවතීම මගින් ද විශ්වසනීයත්වය සාක්ෂාත් කරගනු ලැබේ.

ස්මාර්ට් ගිවිසුම්

Bitcoin වලින් පසුව ක්‍රියාත්මක කරන ලද Blockchains, එක් හෝ තවත් මට්ටමකට, ස්මාර්ට් කොන්ත්‍රාත්තු ක්‍රියාත්මක කිරීමේ හැකියාව එකතු කර ඇත. අත්‍යවශ්‍යයෙන්ම, ස්මාර්ට් කොන්ත්‍රාත්තුවක් යනු ක්‍රියාත්මක කිරීම සඳහා වැඩසටහන් කේතය තබා ඇති ගනුදෙනුවකි. Ethereum ජාලයේ ස්මාර්ට් කොන්ත්‍රාත්තු EVM (Ethereum Virtual Machine) තුළ ක්‍රියාත්මක වේ. ස්මාර්ට් කොන්ත්‍රාත්තුවක් ක්‍රියාත්මක කිරීම ආරම්භ කිරීමට, එය වෙනත් ගනුදෙනුවක් මගින් පැහැදිලිව දියත් කළ යුතුය, නැතහොත් ක්‍රියාත්මක කිරීම සඳහා පූර්ව කොන්දේසි සපුරාලිය යුතුය. ස්මාර්ට් කොන්ත්රාත්තුව ක්රියාත්මක කිරීමේ ප්රතිඵල ද බ්ලොක්චේන් හි සටහන් වනු ඇත. බ්ලොක්චේන් පිටත සිට දත්ත ලබා ගැනීම හැකි නමුත් අතිශයින් සීමිතය.

ස්මාර්ට් කොන්ත්‍රාත්තුවක් භාවිතයෙන් ක්‍රියාත්මක කළ හැකි ව්‍යාපාරික තර්කය කුමක්ද? ඇත්ත වශයෙන්ම, බොහෝ දේ නොමැත, උදාහරණයක් ලෙස, blockchain වෙතින් දත්ත භාවිතා කරමින් කොන්දේසි පරීක්ෂා කිරීම, මෙම කොන්දේසි මත පදනම්ව ඩිජිටල් වත්කම්වල හිමිකරුවන් වෙනස් කිරීම, blockchain තුළ ස්ථිර ගබඩාවක දත්ත වාර්තා කිරීම. තර්කනය ක්‍රියාත්මක වන්නේ විශේෂ ඉහළ මට්ටමේ භාෂාවකින් Solidity.

ස්මාර්ට් කොන්ත්‍රාත්තු භාවිතයෙන් ක්‍රියාත්මක වන ක්‍රියාකාරීත්වයේ සම්භාව්‍ය උදාහරණයක් වන්නේ ICO සඳහා ටෝකන නිකුත් කිරීමයි. උදාහරණයක් ලෙස, මම නිහතමානී 500 AlexToken නිකුත් කිරීමට ස්මාර්ට් කොන්ත්‍රාත්තුවක් ක්‍රියාත්මක කළෙමි. විසින් Etherscan හි සබැඳිය පිහිටා ඇත

Solidity භාෂාවෙන් ස්මාර්ට් කොන්ත්‍රාත්තුවේ මූල කේතය

pragma solidity ^0.4.23;
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
**/
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
if (a == 0) {
return 0;
}
c = a * b;
assert(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
**/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
// uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return a / b;
}
/**
* @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
**/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
**/
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
assert(c >= a);
return c;
}
}
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
**/
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender account.
**/
constructor() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
**/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
**/
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
/**
* @title ERC20Basic interface
* @dev Basic ERC20 interface
**/
contract ERC20Basic {
function totalSupply() public view returns (uint256);
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
**/
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @title Basic token
* @dev Basic version of StandardToken, with no allowances.
**/
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
uint256 totalSupply_;
/**
* @dev total number of tokens in existence
**/
function totalSupply() public view returns (uint256) {
return totalSupply_;
}
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
**/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
**/
function balanceOf(address _owner) public view returns (uint256) {
return balances[_owner];
}
}
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) internal allowed;
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
**/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
emit Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
*
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
**/
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
**/
function allowance(address _owner, address _spender) public view returns (uint256) {
return allowed[_owner][_spender];
}
/**
* @dev Increase the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _addedValue The amount of tokens to increase the allowance by.
**/
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
/**
* @dev Decrease the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To decrement
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _subtractedValue The amount of tokens to decrease the allowance by.
**/
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
/**
* @title Configurable
* @dev Configurable varriables of the contract
**/
contract Configurable {
uint256 public constant cap = 1000000000*10**18;
uint256 public constant basePrice = 100*10**18; // tokens per 1 ether
uint256 public tokensSold = 0;
uint256 public constant tokenReserve = 500000000*10**18;
uint256 public remainingTokens = 0;
}
/**
* @title CrowdsaleToken 
* @dev Contract to preform crowd sale with token
**/
contract CrowdsaleToken is StandardToken, Configurable, Ownable {
/**
* @dev enum of current crowd sale state
**/
enum Stages {
none,
icoStart, 
icoEnd
}
Stages currentStage;
/**
* @dev constructor of CrowdsaleToken
**/
constructor() public {
currentStage = Stages.none;
balances[owner] = balances[owner].add(tokenReserve);
totalSupply_ = totalSupply_.add(tokenReserve);
remainingTokens = cap;
emit Transfer(address(this), owner, tokenReserve);
}
/**
* @dev fallback function to send ether to for Crowd sale
**/
function () public payable {
require(currentStage == Stages.icoStart);
require(msg.value > 0);
require(remainingTokens > 0);
uint256 weiAmount = msg.value; // Calculate tokens to sell
uint256 tokens = weiAmount.mul(basePrice).div(1 ether);
uint256 returnWei = 0;
if(tokensSold.add(tokens) > cap){
uint256 newTokens = cap.sub(tokensSold);
uint256 newWei = newTokens.div(basePrice).mul(1 ether);
returnWei = weiAmount.sub(newWei);
weiAmount = newWei;
tokens = newTokens;
}
tokensSold = tokensSold.add(tokens); // Increment raised amount
remainingTokens = cap.sub(tokensSold);
if(returnWei > 0){
msg.sender.transfer(returnWei);
emit Transfer(address(this), msg.sender, returnWei);
}
balances[msg.sender] = balances[msg.sender].add(tokens);
emit Transfer(address(this), msg.sender, tokens);
totalSupply_ = totalSupply_.add(tokens);
owner.transfer(weiAmount);// Send money to owner
}
/**
* @dev startIco starts the public ICO
**/
function startIco() public onlyOwner {
require(currentStage != Stages.icoEnd);
currentStage = Stages.icoStart;
}
/**
* @dev endIco closes down the ICO 
**/
function endIco() internal {
currentStage = Stages.icoEnd;
// Transfer any remaining tokens
if(remainingTokens > 0)
balances[owner] = balances[owner].add(remainingTokens);
// transfer any remaining ETH balance in the contract to the owner
owner.transfer(address(this).balance); 
}
/**
* @dev finalizeIco closes down the ICO and sets needed varriables
**/
function finalizeIco() public onlyOwner {
require(currentStage != Stages.icoEnd);
endIco();
}
}
/**
* @title LavevelToken 
* @dev Contract to create the Lavevel Token
**/
contract AlexToken is CrowdsaleToken {
string public constant name = "AlexToken";
string public constant symbol = "ALT";
uint32 public constant decimals = 18;
}

සහ ජාලය දකින පරිදි ද්විමය නිරූපණය

60806040526000600355600060045533600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560146101000a81548160ff021916908360028111156200006f57fe5b0217905550620001036b019d971e4fe8401e74000000600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200024a6401000000000262000b1d179091906401000000009004565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001986b019d971e4fe8401e740000006001546200024a6401000000000262000b1d179091906401000000009004565b6001819055506b033b2e3c9fd0803ce8000000600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b019d971e4fe8401e740000006040518082815260200191505060405180910390a362000267565b600081830190508281101515156200025e57fe5b80905092915050565b611cb880620002776000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146104c7578063095ea7b31461055757806318160ddd146105bc57806323b872dd146105e7578063313ce5671461066c578063355274ea146106a3578063518ab2a8146106ce57806366188463146106f957806370a082311461075e57806389311e6f146107b55780638da5cb5b146107cc578063903a3ef61461082357806395d89b411461083a578063a9059cbb146108ca578063bf5839031461092f578063c7876ea41461095a578063cbcb317114610985578063d73dd623146109b0578063dd62ed3e14610a15578063f2fde38b14610a8c575b60008060008060006001600281111561012757fe5b600560149054906101000a900460ff16600281111561014257fe5b14151561014e57600080fd5b60003411151561015d57600080fd5b600060045411151561016e57600080fd5b3494506101a7670de0b6b3a764000061019968056bc75e2d6310000088610acf90919063ffffffff16565b610b0790919063ffffffff16565b9350600092506b033b2e3c9fd0803ce80000006101cf85600354610b1d90919063ffffffff16565b111561024c576101f66003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b915061022e670de0b6b3a764000061022068056bc75e2d6310000085610b0790919063ffffffff16565b610acf90919063ffffffff16565b90506102438186610b3990919063ffffffff16565b92508094508193505b61026184600354610b1d90919063ffffffff16565b6003819055506102886003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b6004819055506000831115610344573373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156102dd573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b610395846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a361045184600154610b1d90919063ffffffff16565b600181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f193505050501580156104bf573d6000803e3d6000fd5b505050505050005b3480156104d357600080fd5b506104dc610b52565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561051c578082015181840152602081019050610501565b50505050905090810190601f1680156105495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056357600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b3480156105c857600080fd5b506105d1610c7d565b6040518082815260200191505060405180910390f35b3480156105f357600080fd5b50610652600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c87565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b50610681611041565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156106af57600080fd5b506106b8611046565b6040518082815260200191505060405180910390f35b3480156106da57600080fd5b506106e3611056565b6040518082815260200191505060405180910390f35b34801561070557600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061105c565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b5061079f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ed565b6040518082815260200191505060405180910390f35b3480156107c157600080fd5b506107ca611335565b005b3480156107d857600080fd5b506107e16113eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082f57600080fd5b50610838611411565b005b34801561084657600080fd5b5061084f6114ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088f578082015181840152602081019050610874565b50505050905090810190601f1680156108bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d657600080fd5b50610915600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e4565b604051808215151515815260200191505060405180910390f35b34801561093b57600080fd5b50610944611703565b6040518082815260200191505060405180910390f35b34801561096657600080fd5b5061096f611709565b6040518082815260200191505060405180910390f35b34801561099157600080fd5b5061099a611716565b6040518082815260200191505060405180910390f35b3480156109bc57600080fd5b506109fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611726565b604051808215151515815260200191505060405180910390f35b348015610a2157600080fd5b50610a76600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611922565b6040518082815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a9565b005b600080831415610ae25760009050610b01565b8183029050818382811515610af357fe5b04141515610afd57fe5b8090505b92915050565b60008183811515610b1457fe5b04905092915050565b60008183019050828110151515610b3057fe5b80905092915050565b6000828211151515610b4757fe5b818303905092915050565b6040805190810160405280600981526020017f416c6578546f6b656e000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610cc457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d1157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d9c57600080fd5b610ded826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e80826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b6b033b2e3c9fd0803ce800000081565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561116d576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611201565b6111808382610b3990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561139157600080fd5b60028081111561139d57fe5b600560149054906101000a900460ff1660028111156113b857fe5b141515156113c557600080fd5b6001600560146101000a81548160ff021916908360028111156113e457fe5b0217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146d57600080fd5b60028081111561147957fe5b600560149054906101000a900460ff16600281111561149457fe5b141515156114a157600080fd5b6114a9611b01565b565b6040805190810160405280600381526020017f414c54000000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561152157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561156e57600080fd5b6115bf826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611652826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60045481565b68056bc75e2d6310000081565b6b019d971e4fe8401e7400000081565b60006117b782600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a0557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a4157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6002600560146101000a81548160ff02191690836002811115611b2057fe5b021790555060006004541115611c0a57611ba5600454600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b505600a165627a7a723058205bbef016cc7699572f944871cb6f05e69915ada3a92a1d9f03a3fb434aac0c2b0029

ස්මාර්ට් ගිවිසුම් පිළිබඳ වැඩි විස්තර ලිපියෙන් සොයාගත හැකිය: Ethereum හි ස්මාර්ට් ගිවිසුම් මොනවාද.

නිගමනය

නවීන බ්ලොක්චේන් ගොඩනඟා ඇති තාක්ෂණයන් සහ ඒවා එකිනෙකට සම්බන්ධ වන ආකාරය අපි ලැයිස්තුගත කර ඇත. බ්ලොක්චේන් භාවිතයෙන් විසඳිය හැකි ගැටළු මොනවාද සහ හොඳම දේ අකාර්යක්ෂම වන්නේ කුමන විසඳුම්දැයි දැන් අපි සකස් කරමු. එබැවින්, blockchain භාවිතා කිරීම අවශ්‍ය නොවේ නම්:

  • ගනුදෙනු විශ්වාසදායක පරිසරයක් තුළ සිදු කරනු ලැබේ;
  • මැදිහත්කරුවන්ගේ කොමිසමක් පැමිණීම සහභාගිවන්නන්ගේ ජීවිතය නරක අතට හැරෙන්නේ නැත;
  • සහභාගිවන්නන්ට ඩිජිටල් වත්කම් ලෙස නිරූපණය කළ හැකි දේපලක් නොමැත;
  • ඩිජිටල් වත්කම්වල බෙදා හැරීමක් නොමැත, i.e. වටිනාකම අයිති හෝ සපයනු ලබන්නේ එක් සහභාගිවන්නෙකුට පමණි.

Blockchain සඳහා අනාගතය කුමක් වනු ඇත්ද? දැන් අපට අනුමාන කළ හැක්කේ බ්ලොක්චේන් තාක්ෂණයන් දියුණු කිරීම සඳහා කළ හැකි ක්‍රම ගැන පමණි:

  • Blockchain එහි නිශ්චිත පරාසයක ගැටළු විසඳීම සඳහා උදාහරණයක් ලෙස, SQL හෝ NoSQL වැනි පොදු දත්ත සමුදා තාක්ෂණය බවට පත්වනු ඇත;
  • HTTP අන්තර්ජාලය සඳහා වන පරිදි Blockchain පුළුල් ප්‍රොටෝකෝලයක් බවට පත්වනු ඇත;
  • බ්ලොක්චේන් පෘථිවියේ නව මූල්‍ය හා දේශපාලන පද්ධතියක් සඳහා පදනම බවට පත්වනු ඇත!

මීළඟ කොටසින් අපි බලමු දැනට පවතින blockchains මොනවාද සහ ඒවා විවිධ කර්මාන්ත වල භාවිතා කරන්නේ ඇයි කියලා.

මෙය පටන් ගැන්මක් පමණි!

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න