Մոդուլ 8 / 10

Ինչպես է աշխատում Bitcoin-ը

8.0 Ներածություն

Bitcoin-ը «չկարգավորվող» չէ. այն կարգավորվում է ալգորիթմով՝ փոխարենը կառավարական բյուրոկրատիաների կողմից կարգավորվելու։ Անաղարտ։
Անդրեաս Մ. Անտոնոպուլոս

Այս մոդուլում մենք ավելի մանրամասն ուսումնասիրում ենք Bitcoin-ի տեխնիկական կողմը։ Մենք պարզ բառերով բացատրում ենք այն կրիպտոգրաֆիան, որը ապահովում է պրոտոկոլի անվտանգությունը և ինչպես են աշխատում գործարքները։ Որոշ հասկացություններ կարող են թվալ տեխնիկական, բայց մի անհանգստացեք։ Շատ մարդիկ ամեն օր օգտվում են ինտերնետից՝ առանց ամբողջությամբ հասկանալու, թե ինչպես է այն աշխատում։

Bitcoin-ի տեխնիկական կողմը սովորելը երկար ճանապարհ է, որը պարտադիր չէ, որ բոլորը անցնեն։ Թեև մենք խրախուսում ենք շարունակական ուսուցումը, այս մոդուլը կենտրոնանում է հիմնական կարևոր կետերի վրա։

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

Bitcoin պրոտոկոլի մեխանիզմները
  • Աշխատանքի ապացույց (Proof-of-Work)
  • Կրիպտոգրաֆիկ ժամանակային դրոշմակնիքներ
  • Դժվարության ճշգրտում
  • Հավասարակից ցանցի ճարտարապետություն
  • Հեշ ֆունկցիաներ և Մերկլի ծառեր
  • Բաց բանալու կրիպտոգրաֆիա
  • Բլոկի սուբսիդիայի կիսով չափ նվազեցում

8.1 Անվտանգություն կրիպտոգրաֆիայի միջոցով

Այն, ինչ մեզ տալիս է Bitcoin-ը, դա խիստ խոստում է․ ծրագիրը կկատարվի ճիշտ այնպես, ինչպես նշված է։
Անդրեաս Մ. Անտոնոպուլոս

Հանրային/Մասնավոր բանալիների կրիպտոգրաֆիա

Կրիպտոգրաֆիա դա տեղեկատվությունը գաղտնի դարձնելու պրակտիկան է, որպեսզի այն կարողանան կարդալ միայն ճիշտ մարդիկ։

  • Գաղտնագրում դա տեղեկատվությունը կոդավորված ձևի վերածելու գործընթացն է, որպեսզի միայն ճիշտ բանալին ունեցողը կարողանա այն կարդալ։
  • Ապագաղտնագրում դա այդ կոդավորված տեղեկատվությունը նորից ընթեռնելի դարձնելու գործընթացն է։

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

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

Bitcoin-ը լուծում է այս խնդիրը՝ օգտագործելով այլ մոտեցում, որը կոչվում է հանրային բանալիների կրիպտոգրաֆիա, որտեղ օգտատերերը նախապես կարիք չունեն գաղտնի բանալիներ փոխանակելու։

Հանրային/մասնավոր բանալիների կրիպտոգրաֆիան լուծում է գաղտնիքների փոխանակման խնդիրը։ Գաղտնաբառ փոխանակելու փոխարեն, յուրաքանչյուր մարդ ունի երկու բանալի՝ հանրային և մասնավոր։

  • Հանրային բանալին կարելի է կիսվել ցանկացածի հետ։
  • Մասնավոր բանալին միշտ պետք է պահել գաղտնի։

Եթե Արամը ցանկանում է ինչ-որ բան ուղարկել Արտակին, նա կարող է օգտագործել Արտակի հանրային բանալին։ Միայն Արտակը կարող է այն բացել իր մասնավոր բանալով։ Նույնիսկ եթե ինչ-որ մեկը որսա հաղորդագրությունը, նա չի կարող այն կարդալ կամ օգտագործել առանց մասնավոր բանալու։

Bitcoin-ում այս համակարգը օգտագործվում է թվային ստորագրություններ ստեղծելու համար։ Թվային ստորագրությունը ապացուցում է, որ մասնավոր բանալիի տերը հաստատել է գործարքը, ինչպես որ ստորագրում եք ձեր անունը փաստաթղթի վրա։ Սա է այն, ինչ Bitcoin-ի գործարքները դարձնում է անվտանգ և ստուգելի առանց երրորդ կողմի վստահության։

Bitcoin-ի գործարքները ներառում են bitcoin-ի սեփականության փոխանցում մեկ հասցեից մյուսին։

Գաղտնագրումը օգտագործվում է ապահովելու համար, որ միայն bitcoin-ի իրական տերը իրավունք ունի իր գումարը փոխանցելու մեկ ուրիշին։ Այն ապահովում է նրանց սեփականությունը չարամիտ անձանցից։

Որպես լրացուցիչ պաշտպանության միջոց, յուրաքանչյուր Bitcoin գործարք ավտոմատ կերպով ստանում է ՄԻԱՅՆԱՏԻՊ թվային ստորագրություն։ Այս յուրահատուկ թվային ստորագրությունը ապահովված է կեղծման դիմաց անխոցելի տեխնոլոգիայով, որը օգնում է ցանցին ստուգել, որ bitcoin-ի իրական տերը, և ոչ թե ուրիշը, է այն ուղարկել։

Յուրաքանչյուր օգտատեր ունի երկու բանալի՝ մասնավոր բանալի, որը պահվում է գաղտնի, և հանրային բանալի որը կարող է կիսվել մյուսների հետ։ Մասնավոր բանալին ծառայում է որպես նույնականացման և սեփականության ապացույց, հաստատելով․ «Այս հասցեն իմն է և ես եմ այն կառավարում»։մասնավոր բանալին ծառայում է որպես նույնականացման և սեփականության ապացույց, հաստատելով․ «Այս հասցեն իմն է և ես եմ այն կառավարում»։

Ինչպես է աշխատում Bitcoin-ի գործարքը
  1. Գործարքի ստեղծում․ Օգտատերը սկսում է Bitcoin-ի գործարքը՝ նշելով մանրամասները, օրինակ՝ ստացողի հասցեն և փոխանցվող bitcoin-ի քանակը։
  2. Թվային ստորագրության ստեղծում․ Ուղարկողը ստեղծում է յուրահատուկ թվային ստորագրություն իր մասնավոր բանալու միջոցով։ Այս ստորագրությունը յուրահատուկ կոդ է, որը հաստատում է գործարքի իսկությունը։
  3. Գործարքի հեռարձակում․ Ստորագրված գործարքը հեռարձակվում է Bitcoin-ի ցանցում՝ ցույց տալով bitcoin-ի սեփականության փոխանցման մտադրությունը ուղարկողից ստացողին։
  4. Վավերացում ցանցում․ Bitcoin-ի ցանցի հանգույցները ստանում են գործարքը և օգտագործում ստացողի հանրային բանալին ստորագրության իսկությունը ստուգելու համար։ գործարքի։ Միաժամանակ, նրանք օգտագործում են ուղարկողի հասարակական բանալինստուգելու համար թվային ստորագրությունը։
  5. Հաստատում Bitcoin ցանցում: Եթե ստուգումը հաջող է անցնում, գործարքը ավելացվում է հաշվառման մատյանում, որը ծառայում է որպես բոլոր գործարքների ապահով և թափանցիկ գրառում։ Հաստատումից հետո, bitcoin-ի սեփականությունը պաշտոնապես փոխանցվում է ուղարկողից ստացողին։

The թվային ստորագրությունը, որը ստեղծվել է ուղարկողի մասնավոր բանալով, ապացուցում է, որ գործարքը հաստատվել է bitcoin-ի սեփականատիրոջ կողմից։ Bitcoin ցանցը կարող է ստուգել այս ապացույցը և գրանցել գործարքը։

Հեշավորման բացատրություն

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

Ֆունկցիան ֆունկցիա նման է մեքենայի, որը վերցնում է որոշ տեղեկություն և այն դարձնում է նոր բան։ Այն տեղեկությունը, որ տալիս եք ֆունկցիային, կոչվում է մուտքագրում։ Նոր տեղեկությունը, որ ֆունկցիան ստեղծում է, կոչվում է ելք։ Ֆունկցիաները օգնում են համակարգիչներին կատարել առաջադրանքներ և լուծել խնդիրներ։

Ի՞նչ է ֆունկցիան։

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

Bitcoin-ում ֆունկցիաները օգտագործվում են գործարքները մշակելու և ստուգելու համար։ Երբ ինչ-որ մեկը ուղարկում է bitcoin, կրիպտոգրաֆիկ ֆունկցիաները օգնում են ստուգել, որ գործարքը վավեր է, հաստատել, որ ուղարկողը բավարար միջոցներ ունի, և թարմացնել մնացորդները Bitcoin-ի հաշվառման մատյանում։ Ստուգումից և բլոկում ավելացնելուց հետո գործարքը դառնում է բլոկչեյնի մշտական գրառման մաս։

Ի՞նչ է միակողմանի ֆունկցիան։

Միակողմանի ֆունկցիան հատուկ տեսակի ֆունկցիա է, որը հեշտ է հաշվարկել մեկ ուղղությամբ, բայց չափազանց դժվար է հակադարձել։ Օրինակ, բաղադրիչները բլենդերով խառնելը հեշտ է, բայց դուք չեք կարող սմուզին նորից բաժանել սկզբնական բաղադրիչների։

Bitcoin-ի անվտանգությունը հիմնված է միակողմանի ֆունկցիաների վրա։ Դրանք օգտագործվում են հասարակական և մասնավոր բանալիների կրիպտոգրաֆիայում՝ մարդկանց հնարավորություն տալով կիսվել հասարակական բանալին, միաժամանակ գաղտնի պահելով մասնավոր բանալին։ Թեև հասարակական բանալին տեսանելի է, անհնար է դրանից ստանալ մասնավոր բանալին։ Սա է, որ Bitcoin-ի գործարքները դարձնում է անվտանգ։

Ի՞նչ է հեշ ֆունկցիան։

Հեշ ֆունկցիան հեշ ֆունկցիա նման է գաղտնի կոդի մեքենայի։ Այն վերցնում է հաղորդագրություն և այն դարձնում է կոդ։

Ինչպես է աշխատում հեշավորումը Bitcoin-ի գործարքներում

Bitcoin-ում յուրաքանչյուր գործարք հեշավորվում է, նախքան այն ավելացվում է բլոկչեյն։ Հեշը գործարքի յուրահատուկ թվային մատնահետքն է։ Եթե ինչ-որ մեկը փորձի փոխել նույնիսկ փոքր մաս, հեշը ամբողջությամբ կփոխվի։ Սա հեշտացնում է ցանցի համար հայտնաբերել ցանկացած միջամտություն։

Հեշավորման դերը Bitcoin-ի անվտանգությունում

Հեշավորումը օգնում է պաշտպանել Bitcoin-ի ցանցը՝ գործարքները դարձնելով հեշտ ստուգելի և անհնար է աննկատ փոփոխել։ Քանի որ յուրաքանչյուր գործարք ունի իր յուրահատուկ հեշը, ցանցը կարող է արագ հայտնաբերել, եթե ինչ-որ բան փոխվել է։

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

Հեշավորում նման է թվային տվյալների մատնահետք ստեղծելուն։ Դա այն գործընթացն է, երբ թվային հաղորդագրությունը վերածվում է ֆիքսված երկարությամբ կոդի, որը ծառայում է որպես յուրահատուկ նույնացուցիչ։ Ինչպես մատնահետքը կարող է նույնացնել մարդուն, այնպես էլ հեշը կարող է նույնացնել թվային հաղորդագրությունը։

Հեշի ելքը, կամ հեշը, միշտ նույն երկարությունն ունի, անկախ սկզբնական տեղեկության երկարությունից։ Bitcoin-ը օգտագործում է հեշ ֆունկցիաների մի քանի հատուկ տեսակներ, որոնք կոչվում են SHA-256 և RIPEMD160։

Մի քանի օրինակներ՝ ստորև․

  • Տողի SHA256 հեշը բարև աշխարհ
    • b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
  • Տողի SHA256 հեշը բարև աշխարհ։
    • 7ddb227315f423250fc67f3be69c544628dffe41752af91c50ae0a9c49faeb87
    • Ուշադրություն դարձրեք, որ մուտքի փոքր փոփոխությունը ամբողջությամբ փոխում է ելքը՝ համեմատած առաջինի հետ
  • Ներբեռնվող iso ֆայլի SHA256 հեշը Ubuntu 18.10
    • 7b9f670c749f797a0f7481d619ce8807edac052c97e1a0df3b130c95efae4765
    • Այս մուտքը հսկայական ֆայլ է, բայց ելքը դեռ նույն ֆիքսված երկարությունն ունի

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

Երաժիշտը կարող է համեմատել երաժշտական ստեղծագործության նոտագրությունը իրական կատարման հետ՝ պարզելու համար, արդյոք կատարումը ճիշտ է։ Նույն կերպ, ստացված տվյալների հեշի արժեքը համեմատելով սկզբնական հեշի արժեքի հետ՝ կարելի է պարզել՝ արդյոք տվյալները փոխվել են փոխանցման ընթացքում։

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

Հանրային բանալին հանրային բանալին հեշավորման միջոցով կոդավորելու գործընթացը օգտագործվում է տեղեկատվության անվտանգությունը բարձրացնելու համար՝ այն վերածելով ֆիքսված երկարության, չկարդացվող ձևաչափի։ Bitcoin-ը օգտագործում է SHA-256 և RIPEMD160 ալգորիթմները՝ հանրային հասցեներ ստանալու համար։ Ստացված արդյունքը ծառայում է որպես հանրային բանալու յուրահատուկ նույնացուցիչ։հանրային բանալու և օգնում է ապահովել հաշվառման գրքում պահվող գործարքների ամբողջականությունն ու անվտանգությունը։ Տեղեկատվությունը այսպես գաղտնագրելով՝ ավելի դժվար է դառնում չարտոնագրված անձանց համար մուտք գործել և փոփոխել տվյալները։

Հեշավորման ֆունկցիայի հատկություններ
  • Դետերմինիստիկ: Նույն բաղադրիչները միշտ տալիս են նույն սմուզին։ Նույն կերպ, նույն տվյալները միշտ տալիս են նույն հեշը։
  • Նախապատկերային կայունություն: Եթե ունեք միայն սմուզին, չեք կարող պարզել, թե որ մրգերն են օգտագործվել։ Նույնպես, եթե ունեք միայն հեշը, չեք կարող որոշել սկզբնական տվյալները։
  • Ավալանշի էֆեկտ: Նույնիսկ բաղադրիչների փոքր փոփոխությունը ստեղծում է լրիվ այլ սմուզի։ Հեշավորման դեպքում տվյալների շատ փոքր փոփոխությունը տալիս է լրիվ այլ հեշ։
  • Բախման կայունություն: Շատ դժվար է գտնել երկու տարբեր բաղադրիչների հավաքածու, որոնք կտան ճիշտ նույն սմուզին։ Նույն կերպ, շատ քիչ հավանական է, որ երկու տարբեր տվյալ կտան նույն հեշը։
  • Արագ ստուգում: Սմուզի պատրաստելը արագ է, և հեշտ է ստուգել, որ արդյունքը սմուզի է։ Հեշի ֆունկցիաները արագ են հաշվարկվում և հեշտ են ստուգման համար։

Գործունեություն․ Ստեղծեք SHA 256 հեշ

Հետաքրքրվա՞ծ եք, թե ինչպես է աշխատում հեշավորումը։ Սկանավորեք QR կոդը՝ անմիջապես ցանկացած բառից, նախադասությունից կամ մուտքից SHA256 հեշ ստանալու համար։ Հեշի ֆունկցիաները նման են թվային մատնահետքերի․ դրանք միակողմանի են, այսինքն՝ երբ ինչ-որ բան հեշավորվում է, այն հնարավոր չէ հակադարձել։ Փորձեք և համոզվեք ինքներդ։

8.2 UTXO մոդել

Ի՞նչ են UTXO-ները։

Մի վախեցեք այս տարօրինակ անվանումից։ Դուք կարող եք պատկերացնել UTXO-ները որպես բիթքոյնի կտորներ, նման ձեր դրամապանակի թղթադրամներին և մետաղադրամներին։ Օրինակ՝ եթե դուք վճարում եք 6 եվրո արժողությամբ ապրանքի համար 10 եվրո թղթադրամով, դուք ստանում եք 4 եվրո մնացորդ։ Բիթքոյնը գործում է նմանատիպ ձևով։

Ձեր ունեցած բոլոր բիթքոյնները կազմված են տարբեր UTXO-ներից։ Երբ դուք ուղարկում եք բիթքոյն, ձեր դրամապանակը օգտագործում է այս կտորներից մեկը կամ մի քանիսը՝ վճարումը կատարելու համար։

Եթե այն կտորը, որը դուք ծախսում եք, ավելի մեծ է, քան ուղարկվող գումարը, մնացած արժեքը վերադառնում է ձեզ որպես մնացորդ՝ նոր UTXO-ի տեսքով։ Միևնույն ժամանակ, ստացողը ստանում է նոր UTXO, որը ներկայացնում է ձեր ուղարկած բիթքոյնը։

Ձեր դրամապանակի մնացորդը պարզապես ձեր վերահսկողության տակ գտնվող բոլոր UTXO-ների ընդհանուր արժեքն է։

Դուք չպետք է ուրիշներին տեղեկացնեք ձեր UTXO-ների մասին, քանի որ եթե ինչ-որ մեկը դրանք իմանա, կարող է հետևել ձեր գործարքներին և ի վերջո իմանալ, թե որքան գումար ունեք։

Օրինակ
  1. Անահիտը ցանկանում է ուղարկել Արամին 5 BTC։
  2. Նրա դրամապանակը օգտագործում է իր երկու UTXO, որոնք միասին արժեն 6 BTC։
  3. Գործարքը ուղարկում է 5 BTC Արամին, ստեղծելով նոր UTXO Արամի դրամապանակում։
  4. Մնացած 0.99 BTC-ը վերադառնում է Անահիտին որպես մնացորդ, վճարելով 0.01 BTC գործարքի միջնորդավճար։
  5. Երբ գործարքը հաստատվում է, այն ավելացվում է Bitcoin-ի հաշվեկշռին, և Անահիտի օգտագործած UTXO-ները նշվում են որպես ծախսված, որպեսզի այլևս չկարողանան օգտագործվել։
Աղբյուրներ
How Bitcoin Works Under the Hood
Դիտեք «How Bitcoin Works under the Hood»

↑ Վերադառնալ բովանդակությանը