Ազատություն · Հաքինգ և հակառակը

Blockchain մաս 2։ Ինչպես են կատարվում փոխանցումները

Այս անգամ մեզ օգնության կգա հացն ու պանիրը։ Հա սոված եմ, ինչ արած :/

Խանութից բանկային քարտով հաց ու պանիր գնելու դեպքում դուք մուտքագրում եք քարտի պին կոդը, որով թույլատրում եք խանութի տերմինալին ձեր հաշվից գումար գանձել։ Այլ խոսքով, դուք ձեր պին կոդով ստորագրում եք տրանզակցիայի տակ, որը բանկը թույլատրում է կամ մերժում։

Նախորդ գրառման մեջ նշված «Պողոսը վերցրեց 500 դրամ»֊ը նույնպես տրանզակցիա էր։ Բայց blockchain-ում մենք չունենք տրանզակցիայի կատարող կամ հաստատող։ Չէ խաբեցի, ունենք, բայց մենք ինքներս ենք ։Ճ

Blockchain-ում օգտագործվում է բաց և փակ բանալիների գաղափարը։ ՏՏ ոլորտի մարդիկ վաղուց այս գաղափարը օգտագործում են տարբեր համակարգերում, օրինակ՝ SSH֊ում (իսկ թե ինչ է SSH-ը, կարևոր չի ։Դ )։

Համառոտ այն մասին, թե ինչպես է աշխատում այս գեղեցիկ մաթեմատիկան։
Դուք ձեր համակարգչում գեներացնում եք երկու երկար և խառը սիմվոլային հավաքածու։ Մեկը լինում է բաց բանալին, իսկ մյուսը՝ փակ։ Օրինակ իմ PGP բաց բանալին, որը բնավ չի օգտագործվում կրիպտոարժույթներում, հետևյալն է, որը կարող եք տեսնել նաև Մասաչուսեթսի տեխնոլոգիական ինստիտուտի բանալիների բաց սերվերում՝

—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: SKS 1.1.6
Comment: Hostname: pgp.mit.edu

mQENBFdYWKoBCADld56QnV2HJyScrE0ciL2KJlcBPhiOYPRKokQIfIjwutArUqTcftXJM1qT
2kBBBQziy4n+lzmZvHCgpAuSksGtFlS6msTOzgdwlQMgQVbC4CrLa+A3NjAGrIrEb+9Ryjhr
o/vnCx0qBwHaQBC3y4SlddkRTAxBXyJw1whmBvGbXVUXfYzKV29DCd4FMaqtLss3SIt8th7o
zvVIzSvlUxVD8Zh6zBvy6wuSXPHtnue+7g8OjRwyCLfgr9fGHxO75WSJxfQmBJlBjoMld6hr
RBy4CsF9ZbvkPjdY34l5cs79E1HiAGiuEE3GgVBbTeuntZZbCkRMJUROKNR9ncamACZ3ABEB
AAG0Pk1pcWF5ZWwgKE15IEVuY3J5cHRpb246IFJlYWwgV29ybGQpIDxtaXEubmFsYmFuZHlh
bkBnbWFpbC5jb20+iQE4BBMBAgAiBQJXWFiqAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIX
gAAKCRCPqsQiJpFK4VGRCAC/+/Qfkwb4nUw52XmQ1U96RrxYC+8tr1+rDMzyCdlEVchypWD+
mJeLloDxV13UfLwybMVWAojKyFriB0U2msJzOM1H1gPVDw24xOKOT1sq7YSqRVFIhKjyeuIO
dymgl8Uj9f/Vha8oqjzBeTVBrKxYl6HeRFwgmKlVHlmVQVJCzsjVIwywrk0kWGUw1TKJUfBt
2GjRjVEaBdJa7e2LXyUuXUI3exj1ujQuShgRBZOb3iJvH5CGNqjcxF8HCToYsZUm7MoYdqir
oa3uub8Q52uLjOpjsHmAgoOLmOKRPfrsY3R0tvw1F595vhMPQFfLCJSOFd3nm/N51H1AwI1x
JAkeuQENBFdYWKoBCACxn0ySBlsqk5EPW1XrBc5kGzceRAnMvCClv6KPBVsAnp/3MxsKZB6q
6oG49kZ6uUpaui5Y1Y2DTXYaKHHgjR9w0839RITrAMcnb1H1CrDZVan+XU7NAtsa5Yt46nAe
skfJVzM/ZesrpuIQ8BC5211b+mbuWeCUqTxBuKKqll/gxdNuZx45PhWGS2S4J1WlhP95wq65
EX/ImInhfR+VYfC90RM6UOOx61OSfr/KL+wvRN55SqDy/eYvbtIHZmaiwo5X0JUyR3WJxYB8
cW5Hk/BRYqpDS4CBhSV4sH+ntmYy4m2O9Y1sDB7hURwZ6RuPgjIO0U130VQ1IysOV/XNqq87
ABEBAAGJAR8EGAECAAkFAldYWKoCGwwACgkQj6rEIiaRSuGI1gf/SXRmik2OQNtACpkjYud1
L1OcrXEBisthRSvw7lOWJfLYj15VrhCxU/YdU8Cp2WlDLUab2KZ5b4NiRa7EoCnB3+d2CmSV
MtIEsCu3m/dKxngnUj6c0gFuUl0VO7xwkEqtTNBEkXiE+YKFTy8qHW/zmZZO0S3jNsgBj34P
ALa7LPN1zHBfSlNOJo9iCf3a+tIQi4S5LPDb462owWb2Ok8L30xtjCiLsf1B1Pok4FUD0lrY
jR6zp3Avd4DxyT5GwGHpAhgkE6ilUgpRDCFlYrEqtbfBYzOR6Q7R/NHikWS1sIq275gV9gNA
6h0Q69KNrw1m07j7zrn5+CUZIBBfiK8klA==
=HkIX
—–END PGP PUBLIC KEY BLOCK—–

Փակ բանալին համարվում է խիստ գաղտնի, քանի որ դրանով կարելի է ապակոդավորել այն, ինչը գաղտնագրվել է բաց բանալիով։ Բայց հակառակը նույնպես աշխատում է։ Եթե ձեր բաց բանալին փոխանցեք ընկերներին, ապա նրանք կարող են գաղտնագրված նամակներ ուղարկել ձեզ այնպես, որ դրանք կարող եք կարդալ միայն դուք, քանի որ ունեք փակ բանալին։ Ի դեպ բաց բանալին ունի ևս մեկ հետաքրքիր ֆունկցիա։ Դրա միջոցով դուք կարող եք առանց նամակը ապակոդավորելու ստուգել, արդյոք նամակը գաղտնագրվել է հենց ձեր բանալիով թե ոչ։

Վերադառնանք տրանզակցիաներին։

Մենք գտնվում ենք ապակենտրոնացված համացանցում, որտեղ ոչ ոքի չի կարելի վստահել։ Տրանզակցիաները ստորագրվում են գաղտնի բանալիով և բաց բանալու հետ միասին ուղարկվում են պահեստ՝ մի տեղ, որտեղ պահվում են դեռևս չհաստատված տրանզակցիաները։ Այսպիսով ցանկացած մարդ կարող է նայել և ստուգել որ հենց դուք եք փոխանցում կատարել, այլ ոչ թե ուրիշ մեկը տիրապետում է ձեր գումարներին։

Սրանով է կայանում համակարգի թափանցելիությունը և ցանցի անվտանգությունը։ Եթե առաջ սրա համար պատասխանատու էին բանկերը, ապա blockchain-ում պատասխանատու է մաթեմատիկան։

Ձեր բաց բանալին համարվում է կրիպտոարժույթի հաշվեհամարը։ Այսինքն դուք կարող եք ունենալ կրիպտոհաշվեհամար, նույնիսկ առանց համացանցին միացած լինելու։

Սկսնած օգտագործողները, եթե չեն կարողանում օգտվել այս համակարգից, նրանց օգնության են գալիս օնլայն կրիպտոհաշվեհամարները (online wallet-ները)։ Քանի որ բաց բանալին իրականում շատ երկար է և չհիշվող, օնլայն կրիպտոհաշվեհամարներում մեծամասամբ օգտվում են QR կոդերից։ Անձամբ ես օգտվում եմ իմ սեփական wallet-ից և չեմ վստահում ոչ մի օնլայն wallet-ներին։

Բալանս հասկացողության բացակայությունը։

Ինչպես նախորդ գրառման մեջ օգտագործված գրատախտակը, այնպես էլ blockchain-ը կազմված են միայն տրանզակցիաների պատմությունից։ Blockchain-ում չկա բալանս հասկացողություն և չի պահվում վերջնական բալանսը։ Հակառակ դեպքում մենք ստիպված կլինեինք մտածել հավելյալ անվտանգության մեխանիզմ։
Իսկ կրիպտոհաշվեհամարին տիրապետում է միայն այն մարդը, ով ունի դրա գաղտնի բանալին։ Իսկ ինչպե՞ս համոզվենք, կրիպտոհաշվեհամարի տերը իրականում ունի և կարող է փոխանցել պահանջվող արժույթը։

Քանի որ դուք չունեք բալանս, հետևաբար ապացուցելու բեռը մնում է ձեր վրա։ Հենց այս խնդիրը լուծելու համար տրանզակցիայի հետ միասին փոխանցվում է նաև ձեր բոլոր նախորդ տրանզակցիաների հղումները, որտեղ երևում է, թե դուք ինչքան գումար եք փոխանցել կամ ստացել ամբողջ պատմության ընթացքում։ Այսինքն, եթե դուք պատրաստվում եք փոխանցել 400 բիթքոին, կատարվում է տրանզակցիաների պատմության ընթերցում, ստուգվում են բոլոր մուտքերը և ելքերը և արդյունքում հաշվվում է վերջնական բալանսը։ Օրինակ 5 տարի առաջ դուք ստացել եք 100+250+50 բիթքոին, սրանով ապացուցվում է, որ դուք այս պահին ունեք 400 բիթքոին։

Համակարգում ամեն տրանզակցիայի ժամանակ նորից ստուգվում է ամբողջ պատմությունը, համոզվելու համար, որ թաքուն գումար չեք ավելացրել ձեր հաշվին և ունեցածը դեռ չեք ծախսել։

Ինչպես հասկացաք, տրանզակցիայի ժամանակ գրանցվող պատմությունը երկու մասից է կազմված։ Մեկը որ դուք ժամանակին ստացել եք գումար, իսկ մյուսը՝ ծախսել եք։ Ստացած գումարը կոչվում է ինփութ (input), ծախսածը՝ աութփութ (output)։ Ամբողջ input-ների գումարը ոչ միշտ է հավասար լինում այն գումարին, որը պատրաստվում եք փոխանցել, հետևաբար տրանզակցիայի output֊ներից մեկը սովորաբար լինում եք հենց դուք։

Հա գիտեմ, մի քիչ դժվար բացատրեցի, բայց մեկնաբանեմ ։Դ

Կարճ ասած՝ blockchain-ում տրանզակցիաները ունեն հետևայլ տեսքը՝ ինձ տվել են 3 BTC հետո ևս 2 BTC, ես ուզում եմ դրանցից փոխանցել 4֊ը իսկ մնացած 1֊ը նորից հետ ստանամ։ Ստացվում է, որ ձեր ունեցած 5 BTC-ից 4֊ը փոխանցելուց իրականում դուրս է գալիս ամբողջ 5֊ը և հետո 1֊ը վերադառնում է հետ։

Մի քիչ առաջ անցնելով, ասեմ, որ այս «զդաչի»֊ն երբեմն օգտագործվում է գործարքից պահվող տոկոսի համար, որպեսզի մայներները հաստատեն տրանզակցիան և գրանցեն blockchain-ում, նրանք տրանզակցիայից ստանում են տոկոսներ, իսկ դուք քիչ եք հետ ստանում։

Blockchain-ի գեղեցկությունը կայանում է նրանում, որ input-ները պարտադիր չէ լինեն նույն կրիպտոհաշվից։ Եթե դուք գիտեք այլ wallet-ի գաղտնի բանալի, կամ ունեք մեկից ավել հաշիվներ, ապա կարող եք տրանզակցիայի մեջ ներառել նաև այդ բանալիները։ Սա նույնն է, ինչ խանութում գնումների վճարումը կատարեք մի քանի բանկային քարտից, եթե ունեք բոլորի պին կոդերը։

Ինչևէ, սենց հետաքրքիր եղանակով է աշխատում blockchain-ը։ Բայց չնայած նրան, որ սա անվտանգ է, միևնույնն է ուշադիր եղեք ձեր բանալիներին։ Եթե դուք կորցնեք ձեր գաղտնի բանալին, գողանան նոթբուքը կամ համակարգչի հիշողության սարքի ֆիզիկապես վնասեք, ապա դուք երբեք չեք կարողանա վերադարձնել ձեր գումարները։ Այդ գումարները կլինեն անհասանելի ամբողջ աշխարհի համար։ Չկա կոնկրետ մի բանկ, որտեղ կարող եք գնալ, ներկայացնել անձնագիր և վերականգնել հաշիվները։ Իսկ քանի որ կորցնողները շատ են, հետևաբար պետք է ինչ֊որ կերպ, օրինակ «օդից», վերականգնել արժույթի պակասը։ Իսկ թե ինչպես են վերականգնում՝ ավելի ուշ 🙂

Comments are closed.