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

Blockchain-ը ներսից և ինչպես է աշխատում բիթքոինը

Շուտով մանրամասն կպատմեմ մե հրաշք ապակենտրոնացված գաղափարի մասին։ Համառոտ կնկարագրեմ Fidonet, Napster, Gnutella, TOR, BitTorrent֊ը։ Այժմ ուզում եմ խոսել blockchain-ի և բիթքոինի մասին։ Իհարկե բլոքչեյնը և բիթքոինը ապակենտրոնացված համակարգի մի մասն են և վառ ապացույցը։

Այսօր ընկերներիս կեսը խաղում են կրիպտոբիրժաներում, իսկ մյուս կեսը պատրաստվում են մտնել ICO, սակայն իրականում նրանցից մի քանիսն են հասկանում թե ինչպես է աշխատում այս ամենը։ Այս գրառումով կփորձեմ ինչ֊որ չափով հստակեցնել։

Քիչ մը երկար գրառումով հասկանանք, թե ինչի համար է ստեղծվել blockchain-ը և ինչի համար է դա ամենագեղեցիկ համակարգը վերջին տարիների ընթացքում։

Իրականում ինքս շատ հեռու եմ բիթքոինի կուրսերից, տատանումներից, բիրժաներից և դրա վրա կատարվող քաղաքական ազդեցությունից։ Ինձ համար blockchain-ը ուղղակի գեղեցիկ տեխնոլոգիա է՝ նոր, տարբերվող, անհասկանալի, բայց միևնույն ժամանակ աշխարհը հեղաշրջող: Դատելով զարգացման աստիճանից՝ դեռ երկար կգոյատևի այս տեխնոլոգիան, համոզված եմ։

Փորձեմ ներկայացնել այնպես, որ հասկանալի լինի նույնիսկ ՏՏ ոլորտից գաղափար չունեցող մարդուն։ Մեզ օգնության կգա Պողոսը։ Եթե ձեզ դուր չի գալիս Պողոսը, ես նրան կպատժեմ 🙂

Դե ինչ, սկսեցինք 😉

 

ՀԻՄՈՒՆՔՆԵՐ։ Ինչի համար է blockchain-ը։

Blockchain-ը նկարագրված է Սատոշի Նակամոտոի գրառման մեջ։ Հիշեցնեմ, որ Սատոշի Նակամոտոն համարվում է բիթքոինի ստեղծողը։ Իր գրառման մեջ, ընդհամենը 8 էջում նա նկարագրել կրիպտոարժույթը, որի հիմաքում ընկած է blockchain-ը։

Blockchain-ը հայտնվել է բիթքոինի հետ միաժամանակ, սակայն կարող է օգտագործվել դրանից անկախ և նույնիսկ փոփոխության ենթարկվել։ Ցանկացած մարդ կարող է ստեղծել blockchain-ի իր կրկնօրինակը անձնական համակարգչում անձնական օգտագործման համար։

Blockchain։ Ցուցակ, որը չի կարելի փոփոխել։

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

Քննարկենք օրինակի վրա։

Պողոսի ընկերները Պողոսից պարտքով գումարներ են վերցնում։ Պողոսը բարի է, բոլորին տալիս է գումար, բայց շատ մոռացկոտ է։ Մի շաբաթ անց նա մոռանում է, թե ում ինչքան գումար է տվել կամ ով ինչքան է վերադարձրել։ Նա որոշում է վերջ տալ այս ամենին և գրատախտակ է գնում, որի վրա նա գրում է բոլոր պարտքատերերին և գումարների չափը։

Այժմ Պողոսը կարող է ցանկացած ժամանակ մոտենալ գրատախտակն և համոզվել, որ Մարտիրոսը ամբողջությամբ վերադարձրել է պարքտը, իսկ Պետրոսը դեռ պարտք է 700 դրամ։ Մի անգամ Պետրոսը գալիս է Պողոսի տուն և մաքրում է «Պետրոսին տվեցի 200 դրամ» և փոխարենը գրում «Պետրոսը վերադարձրեց 500 դրամ»։ Պողոսը վստահելով իր ցուցակին կորցնում է 700 դրամ և որոշում է ինչ֊որ կերպ պայքարել այս կեղծավորության դեմ։

Պողոսը հաճախում էր ծրագրավորման դասերի և սովորել էր հեշավորման մասին։ Նա հիշում էր, որ ցանկացած տող կարելի է վերածել ունիկալ սիմվոլների հավաքածուի, այսինքն՝ հեշի (hash)։ Հեշի մեջ ցանկացած փոփոխություն կամ ցանկացած տառի և սիմվոլի փոփոխություն բերում է նախնական տեքսի ոչնչացմանը։ Պողոսը որոշեց օգտվել այս փաստից։

Նա վերցնում է բոլորիս հայտնի SHA-256 հեշավորման ալգորիթմը և հեշավորում է գրատախտակի վրայի բոլոր տողերը և գրում աջ մասում։ Այժմ Պողոսը կարող է վստահ լինել, որ ցանկացած փոփոխություն նա կարող է պարզել հեշտությամբ համեմատելով և ամեն անգամ նա կատարում էր նույն գործողությունը ու համեմատում արդեն եղած հեշի հետ։


Բայց վատ Պետրոսը նույնպես գիտեր այս ալգորիթմի մասին և հեշտությամբ կարողանում էր ավելացնել նոր տող և նույնությամբ հեշավորել և գրել աջ մասում։

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


Այսպես Պողոսի մոտ հայտնվեց ինչ֊որ չափով անվտանգ ցուցակ։

Մի անգամ Պետրոսը փոխում է իր ուզած տողը և նորից հեշավորում ու թարմացնում ամբողջ ցուցակը մինչև վերջին տողը։ Դա նրանից խլում է մի քիչ երկար ժամանակ։ Պողոսը նայելով ցուցակին չի հասկանում որ ինչ֊որ բան փոփոխվել է, քանի որ բոլոր հեշերը համընկնում են, բայց նրան միևնույնն է խաբել են, չնայած նրան, որ ծախսել են մի քանի ժամ ժամանակ։

Ուրիշ ինչպե՞ս կարելի է պաշտպանվել անքուն Պետրոսից :/

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

Կարծում եմ արժի քիչ մը ավել ժամանակ ծախսել ֆինանսական անվտանգության համար, քանի որ չար Պետրոսը եթե նորից ուզենա նրան խաբել, ապա ստիպված կլինի ծախսել ավելի շատ ժամանակ և հաշվել բարդ մաթեմատիկական հաշվարկներ բոլոր տողերի համար, իսկ տողերը կարող են լինել տասնյակ հազարներ։ Այս գործողությունը նրանից կխլի ավելի շատ ժամանակ, քանի որ ամեն տողի համար հաշվարկները տարբեր են։ Իհարկե իրական կյանքում այսպիսի հաշվարկներ անելը գործնականորեն անհնար է, բայց համակարգիչները դրանք անում են հաշված վայրկյանների ընթացքում։ Ստացվում է, ամեն դեպքում հնարավոր է ցուցակում փոփոխել ինչ֊որ բան։

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

Այսպիսի ցուցակը կարող ենք անվանել տնային blockchain, որի անվտանգությունը երաշխավորվում է մաթեմատիկայով։

Այս հաշվարկները հենց մայնինգ (mining) կոչվածն է։

Ապակենտրոնացված վստահություն

Այս գաղափարը դուր եկավ բոլորին։ Այժմ Պողոսի բոլոր ընկերները ուզում են օգտվել այս ցուցակից և ավելացնեն իրենց անձնական տողերը։ Դժվարության գաղափարը կայանում է նրանում, որ բոլորը ավելացնում են նույն ցուցակում՝ օգտվելով նախորդ տողերից։ Իսկ նախորդ տողերը կարող են գրված լինել լրիվ անծանոթի կողմից։

Բայց ո՞ւմ վստահենք այս ցուցակը։ Իհարկե այն ամենը ինչ կապված է ֆինանսների հետ, վստահությունը մղվում է առաջին պլան։ Մենք չենք կարող վստահել անծանոթին։ Մեր նախնիները սրա համար հնարել են բանկ հասկացողությունը, որին ժամանակի ընթացքում սկսել են վստահել։ Դե բանկերը զինված են լիցենզիաներով, օրինագծերով և ապահովագրված են կենտրոնական բանկի կողմից։
Ընկերական շրջապատում թերևս կարելի է գտնել վստահելի մեկին, բայց ինչ վերաբերվում է անծանոթ միջավայրին, ամբողջ քաղաքին կամ ամբողջ երկրներին։

Պետք չէ վստահել ոչ մեկին։

ԱՊԱԿԵՆՏՐՈՆԱՑՈՒՄ։ Ոչ ոք չի վստահում ոչ մեկին

Այսպիսով որոշվեց գտնել ալտերնատիվ լուծում՝ պահպանել ցուցակի կրկնօրինակը բոլորի մոտ։ Այս միջոցով հաքերը եթե նույնիսկ կարողանա հաջողությամբ փոփոխել ցուցակը, ապա ստիպված կլինի կատարել փոփոխությունեը բոլորի մոտ։ Իսկ գուցե ինչ֊որ մեկը թաքո՞ւն է պահում ցուցակը կամ ցուցակը պահվում է մի քանի միլիոն մարդկանց մոտ աշխարհի տարբեր ծայրերից։ Սա էլ հենց կոչվում է ապակենտրոնացում։

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

Այսպիսի համակարգում բացակայում է միակողմանի վստահությունը, կաշառակերությունը կամ խաբեությունը։ Բոլոր մասնակիցները առաջնորդվում են մեկ գաղափարով։

Ոչ ոք չի վստահում ոչ մեկին։ Սա ապակենտրոնացված համակարգի գլխավոր օրենքն է։

 

Իսկ ավելի ուշ կխոսենք տրանզակցիաների, անվտանգ փոխանցումների, բալանս հասկացողության, մայնինգի այլ մանրամասների և տարբեր երկրների օրինագծերի մասին։

Comments are closed.