Կրիպտոարժույթ

Կրիպտոարժույթ, թվային արժույթի տեսակ, որի ստեղծումը և վերահսկումը հիմնված է գաղտնագրային մեթոդների վրա։ Որպես կանոն, կրիպտոարժույթի հաշվառումն ապակենտրոնացված է։ Գործարքների մասին տեղեկատվությունը սովորաբար  ծածկագրված չէ և մատչելի է։ Գործարքների տվյալների բազայի շղթայի  կայունության ապահովման համար օգտագործվում են գաղտնագրային տարրեր (թվային ստորագրությունը հիմնված է բաց բանալիով համակարգի վրա)։
Տերմինը հաստատվել է 2011 թվականին «Ֆորբս» ամսագրում  «Crypto currency»  հոդվածի հրապարակումից հետո։ Նույն ինքը բիթքոինի հեղինակը, ինչպես նաև շատ ուրիշներ, օգտագործեցին «էլեկտրոնային դրամական միջոցներ» տերմինը (անգլ.՝ electronic cash): Տարբեր կրիպտոարժույթներ թողարկելու համար կիրառվում են տարբեր մեթոդներ` մայնինգ, forging կամ ICO:
Կրիպտոարժույթի տնտեսական էության և իրավական կարգավիճակի վերաբերյալ շատ քննարկումներ են տարվում։ Կախված երկրից, կրիպտոարժույթները համարվում են որպես վճարային գործիք, որոշակի արտադրանք, ինչպես նաև կարող են սահմանափակումներ ունենալ շրջանառության մեջ (օրինակ `բանկային հաստատություններում գործարքների արգելումը)։


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


=== Բլոկչեյն ===
Կրիպտոարտարժույթի տեխնոլոգիան հիմնված է այն փաստի վրա, որ ցանցը չունի վստահելի օղակ, մեկը, որի գործողությունները երաշխավորված են և ով կարող է հաստատել այլ մարդկանց գործարքների ճշգրտությունը։ Այս պայմաններում գործարքների հուսալիության վերաբերյալ որոշում կայացնելու համար օգտագործվում է բլոկչեյն տեխնոլոգիա, որը առաջին անգամ հայտնվել է բիթքոին համակարգում։ Տվյալների պահպանման համար գործարքները միավորվում են բլոկների մեջ, որոնցից ստեղծվում է շարունակական շղթա։ Անընդհատությունը ապահովվում է ոչ այնքան համարակալումով, որքան ընթացիկ բլոկում նախորդ բլոկի քեշը ներառելով, այնպես որ բլոկը փոխելու ոչ մի հնարավորություն չկա առանց հաջորդող բլոկների քեշերի փոփոխության։ Ստույգ է համարվում միայն ամենաերկար շղթան, որտեղ բոլոր քեշերը համապատասխանում են որոշակի պահանջներին, որոնք դժվար է կատարել կամ թանկ է։ Տարբեր կրիպտոարժույթներում բլոկների ստուգման համար կիրառվում է Proof-of-work կամ Proof-of-stake մեթոդները, կամ էլ դրանց համադրումը։
Որպես կանոն, կրիպտոարժույթ մշակողները նախապես սահմանում են թողարկման ընդհանուր ծավալների վերին սահմանը։ Այնուամենայնիվ, որոշ կրիպտոարժույթներ, ինչպիսիք են PPCoin, Novacoin, Sifcoin եւ այլն, չունեն ընդհանուր ծավալների համար սահմանված վերին սահմանը,  հնարավոր է ինչպես էմիսիան այնպես էլ դեմիսիան (յուրաքանչյուր գործարքում ֆիքսված գումարի պարտադիր ոչնչացմամբ)։
Կրիպտոարժույթների մեծամասնությունը ապահովում են կեղծանունների հնարավորությամբ՝ բոլոր հասցեների (դրամապանակների) բոլոր գործարքները հրապարակային են, սակայն հասցեների սեփականատերերի մասին տվյալներ չկան։ Այնուամենայնիվ, սեփականատիրոջ ինքնությունը կարող է հաստատվել, եթե անհրաժեշտ լրացուցիչ տեղեկություններ են հայտնի։ ZeroCash-։ի հայեցակարգում հնարավոր է փոխել կեղծանունությունը անանունությունով։


=== Իրացում Bitcoin համակարգում ===


==== Transaction բլոկ ====

Transaction բլոկը հատուկ կառուցվածք է Bitcoin և նմանատիպ այլ համակարգերում՝ գործարքների խմբի գրառումների համար։ Գործարքը համարվում է ամբողջական եւ հուսալի («հաստատված»), երբ դրա ձևաչափը և ստորագրությունները ստուգված են, և երբ գործարքը միավորված է մի քանի այլ գործարքների հետ մեկ խմբում և գրառված է հատուկ կառուցվածքի` բլոկի մեջ։ Բլոկների բովանդակությունը կարելի է ստուգել, ​​քանի որ յուրաքանչյուր բլոկում պարունակում է տեղեկություններ նախորդ բլոկի մասին։ Բոլոր բլոկները դասավորված են մեկ շղթայի մեջ, որը պարունակում է տեղեկատվություն տվյալների բազայում ցանկացած ժամանակ կատարված բոլոր գործողությունների մասին։ Շղթայի առաջին բլոկը` սկզբնական բլոկը ( անգլ.՝ genesis block), դիտվում է առանձին դեպք, քանի որ այն չունի նախորդող բլոկ։
Բլոկը բաղկացած է վերնագրից եւ գործարքների ցանկից։ Բլոկի վերնագիրն ընդգրկում է սեփական և նախորդող բլոկի քեշը, գործարքի քեշը և լրացուցիչ ծառայողական տեղեկատվություն։ Bitcoin համակարգում, բլոկում առաջին գործարքը միշտ ցույց է տալիս միջնորդավճարը, որը կհատուցվի օգտվողին ստեղծված բլոկի համար։ Հաջորդը դա, դեռևս նախորդ բլոկներում չարձանագրված, գործարքի շարքից առաջացած գործարքների ցանկն է։ Գործարքի համար բլոկում օգտագործվում է ծառաձև քեշավորում, որը նման է BitTorrent արձանագրությունում ֆայլի համար քեշ գումար ձևավորելուն։
Ստեղծված բլոկը  կընդունվի այլ օգտվողների կողմից, եթե վերնագրի քեշի թվային արժեքը հավասար է կամ պակաս որոշակի նպատակային թվից, որի արժեքը պարբերաբար ճշգրտվում է։ Քանի որ SHA-256 ֆունկցիայի քեշավորումը համարվում է  անշրջելի, ներկա պահին չկա ալգորիթմ, որը կբերի ցանկալի արդյունքի, բացի պատահական գերագանձումից։ Երբ տարբերակ է,  գտնվում, հանգույցը ստացած բլոկն ուղարկում է այլ կապված հանգույցների, որոնք ստուգում են բլոկը։ Եթե ​​սխալներ չկան, ապա բլոկը համարվում է շղթային ավելացված և հաջորդ բլոկը պետք է ներառի իր քեշը։ Ընդ որում, նպատակային թվի արժեքը, որի հետ համեմատվում է քեշը, Bitcoin համակարգում, ճշգրտվում է յուրաքանչյուր 2016 բլոկ հետո։


==== Բլոկների շղթա ====
Բլոկների հիմնական հաջորդականությունը (սևեր) ամենաերկարն է սկզբնականից (կանաչ) մինչև ընթացիկ։ Կողմնակի ճյուղերը (մանուշակագույն) հատվում են։
Բլոկները միաժամանակ ձեւավորվում են մի շարք մայներների կողմից։ Պահանջներին բավարարող բլոկները ուղարկվում են ցանցին, ներառվելով բլոկների տվյալների բազայի բոլոր վերարտադրություններում։ Հաճախ ծագում են իրավիճակներ, երբ բաշխված ցանցի տարբեր մասերում մի քանի նոր բլոկների և նախորդ բլոկների համարում են նույնը, այսինքն` բլոկների շղթան կարող է ճյուղավորվել։ Հատուկ կամ պատահաբար հնարավոր է սահմանափակել նոր բլոկների մասին տեղեկատվության վերահաղորդումը (օրինակ, ճյուղերից մեկը կարող է զարգանալ լոկալ ցանցում)։ Այս դեպքում հնարավոր է տարբեր ճյուղերի զուգահեռ կառուցումը։ Յուրաքանչյուր նոր բլոկների մեջ կարող են լինել ինչպես նույնանման, այնպես էլ տարբեր գործարքները, որոնք ընդգրկված են միայն դրանցից մեկում։ Երբ վերականգնվում են բլոկների վերահաղորդումը, մայներները սկսում են հաշվել հիմնական շղթան, հաշվի առնելով քեշի բարդության մակարդակը և շղթայի երկարությունը։ Եթե ​​բարդությունն ու երկարությունը հավասար են, նախապատվությունը տրվում է այն շղթային, որի վերջնական բլոկը ավելի վաղ հայտնվել է։ Գործարքները, որոնք ընդգրկվել են միայն մերժված ճյուղի մեջ (ներառյալ փոխհատուցման վճարումը), կորցնում են «հաստատված»-ի կարգավիճակը։ Եթե ​​դա բիթքոինի գործարք է, ապա հերթի կդրվի և հետագայում կներառվի հերթական բլոկում։ Հատված բլոկների համար նախատեսված փոխհատուցում ստանալու գործարքը այլ ճյուղում չի կրկնվում, այսինքն հատված բլոկի ստեղծման համար փոխհատուցվող լրացուցիչ բիթքոինները չեն հաստատվում և կորում են։
Բլոկչեյնը ձևավորվում է որպես շարունակական աճող բլոկների շղթա` բոլոր գործարքների գրառումներով։ Տվյալների բազայի կամ դրա մասերի կրկնօրինակները միաժամանակ պահվում են տարբեր համակարգիչների վրա  համաժամեցվում են բլոկների շղթայի կառուցելու կանոնների համաձայն։ Բլոկներում տեղեկատվությունը  կոդավորված չէ, և հասանելի է պարզ տեսքով, սակայն փոփոխությունների բացակայությունը ստուգվում է գաղտնագրային կերպով, քեշ շղթայով (թվային ստորագրության տարր)։


===== Գործարքների հաստատում =====
Քանի գործարքը բլոկում ընդգրկված չէ, համակարգը համարում է, որ որոշակի հասցեով բիթքոինների թիվը մնում է անփոփոխ։ Այս պահին միևնույն հասցեից տարբեր հասցեատերերին միևնույն բիթքոիների փոխանցման գործարքներ ձևակերպելու տեխնիկական հնարավորություն կա։ Սակայն բլոկում այդպիսի գործարքներից մեկը ընդգրկվելուց հետո համակարգը արդեն անտեսում է մնացած գործարքները։ Օրինակ, եթե ավելի ուշ կատարված գործարքը ներառվում է բլոկում, ապա ավելի վաղ կատարված գործարքը սխալ է համարվելու։ Փոքր շանս կա, որ ճյուղավորման ժամանակ երկու նման գործարքները կընկնեն տարբեր ճյուղերի բլոկներ։ Նրանցից յուրաքանչյուրը ճիշտ կհամարվի, սակայն ճյուղի ոչնչացման դեպքում գործարքներից մեկը սխալ կհամարվի։ Այս դեպքում գործողության ժամանակը կարևոր դեր չի խաղա։
Այսպիսով, գործարքի բլոկում հայտնվելը հանդիսանում է հուսալիության հաստատում, անկախ նույն բիթքոինների հետ այլ գործարքների առկայությունից։ Յուրաքանչյուր նոր բլոկ համարվում է նախորդ բլոկների գործարքների լրացուցիչ «հաստատում»։


===== Կրկնակի ծախսեր =====
Եթե ​​վերահսկվի ընդհանուր ցանցի հաշվողական հզորության ավելի քան 50%-ը, ապա տեսականորեն հնարավոր է ցանկացած հաստատման շեմի առկայության դեպքում միևնույն բիթքոինները փոխանցել երկու տարբեր ստացողների։ Գործարքներից մեկը կլինի հրապարակային և կհաստատվի ընդհանուր կարգով, իսկ երկրորդը չի ազդարարվի՝ այն կհաստատվի գաղտնի, զուգահեռ ճյուղի բլոկների կողմից։ Միայն որոշ ժամանակ անց ցանցը կստանա տեղեկատվություն երկրորդ գործարքի մասին, այն կհաստատվի, իսկ առաջինը կկորցնի իր հաստատումը, եւ կանտեսվի։ Ինչի հետևանքով բիթքոինները չեն կրկնապատկվի, այլ կփոխվի ընթացիկ սեփականատերը, առաջին ստացողը կկորցնի բիթքոիններ առանց որևէ փոխհատուցման։
Բլոկների շղթայի հրապարակայնությունը թույլ է տալիս կատարել փոփոխություն կամայական բլոկում։ Բայց այս դեպքում հարկավոր է  քեշի վերահաշվարկ կատարել ոչ միայն փոփոխված բլոկում, այլ  նաև բոլոր հետագա բլոկներում։ Ըստ էության, այս գործառնության համար հարկավոր կլինի նույնքան հզորություն, որքան հարկավոր կլիներ ընթացիկ և հաջորդող բլոկներում փոփոխություն կատարելու համար։  ինչն էլ քիչ հավանական է դարձնում այս հնարավորությունը։


==== Բարդություն ====
Գոյություն ունի հատուկ պարամետր, որը կոչվում է «բարդություն», և այն պատասխանատու է բլոկների քեշերի պահանջների համար։ Քանի որ ցանցի հաշվարկային հզորությունը անկայուն է, այս պարամետրը վերահաշվարկվում է ցանցային հաճախորդների կողմից յուրաքանչյուր 2016 բլոկում, այնպես, որ պահպանվի բլոկչեյնի ձևավորման միջին արագությունը երկու շաբաթվա ընթացքում 2016 բլոկ մակարդակով։ Այսպիսով, բլոկը պետք է ստեղծվի մոտավորապես յուրաքանչյուր տասը րոպեն մեկ։ Վերահաշվարկի բարդությունը կապված ժամանակի  հետ հնարավոր է, քանի որ բլոկների վերնագրում առկա է դրանց ստեղծման ժամանակը։ Այն գրվում է Unix ֆորմատով, ըստ բլոկի հեղինակի համակարգային ժամացույցի (եթե բլոկը ստեղծվում է միավորման կողմից, ապա ըստ այս միավորման սերվերի համակարգային ժամացույցի)։


== Պատմություն ==
Ծածկագրությունը գաղտնի գործարքների համար սկսվել է կիրառվել 1990 թվականից DigiCash համակարգում։ Սակայն այդ վճարային համակարգը կենտրոնացված էր։
Կրիպտոարժույթ տերմինը առաջին անգամ օգտագործվել է Bitcoin վճարային համակարգը ձևավորվելուց հետո, որը ստեղծվել է 2009 թվականին Սատոսի Նակամոտո (Satoshi Nakamoto) կեղծանվան տակ մի անձի կամ մի խումբ մարդկանց կողմից։ Ավելի ուշ հայտնվեցին նմանօրինակ արժույթներ՝ «Namecoin» (ապակենտրոնացված DNS՝ .bit դոմենային տիրույթում գրանցման համար), Litecoin (օգտագործում է scrypt քեշավորում), PPCoin (օգտագործում է հիբրիդային proof-of-work/proof-of-stake կառուցվածք, որը թողարկման վերին սահմանը չունի), Novacoin (նման է PPCoin-ի, բայց օգտագործում է scrypt) և շատ ուրիշներ։
Մինչև 2013 թվականի հուլիս ամիսը, բացառությամբ Ripple համակարգի, բոլոր կրիպտոարժույթների ծրագրային ապահովումները հիմնված էին Bitcoin համակարգի բաց ելակետային կոդի վրա։ 2013 թվականի հուլիսից սկսեցին հայտնվել այլ հարթակներ, որոնք, բացի կրիպտոարժույթից, աջակցում են մի շարք ենթակառուցվածքների՝ առևտրային բորսաների, խանութների, Messenger հավելվածների եւ այլն։ Նման կրիպտոհարթակների շարքին են դասվում BitShares-ը, Mastercoin-ը, Nxt-ը։
Գաղտնի արտարժույթի շուկայի գլխարկը նախատեսվում է հասնել մինչեւ 2018 թ. Մինչեւ 1-2 տրիլիոն դոլարի։


== Ձեռքբերում ==
Գոյություն ունեն կրիպտոարժույթի ձեռքբերման տարբեր եղանակներ, օրինակ՝ մայնինգ, forging, կամ ICO: Մայնինգը կամ forging-ը  բլոկչեյնում նոր բլոկներ ստեղծելու տեխնոլոգիաներ են, որոնց ստեղծողները պարգևատրվում են որոշակի քանակությամբ կրիպտոարժույթով։ ICO-ն կրիպտոարժույթի ներգրավման միջոց է։ Սկզբում կրիպտոարժույթ ստանում են  նրանք, ովքեր կատարել են որոշակի պայմանավորություններ (մայնինգ, forging), հետագայում այլ շահագրգիռ անձինք կարող են կրիպտոարժույթ ստանալ նրանցից, ովքեր այն արդեն ունեն, սովորական փողի, ապրանքների կամ ծառայությունների դիմաց , կամ որպես նվիրատվություն։ Փոխանակում կարող է իրականացվել ուղղակիորեն շահագրգիռ կողմերի միջև, առանց միջնորդների կամ օգտվելով որևէ  թվային տարադրամի փոխանակման կայքերից։


== Ծանոթագրություններ ==