Երկու տարի անց ես վերադարձա բլոգ մի գրառման համար, որը տարբերվում է Հասկելի և մաթեմատիկայի մասին սովորական ձանձրալի դասախոսություններից: Ես վերջին մի քանի տարիների ընթացքում աշխատում եմ ԵՄ-ում ֆինտեխի վրա, և կարծես թե եկել է ժամանակը գրելու մի թեմայի մասին, որը տեխնոլոգիական լրատվամիջոցների կողմից քիչ ուշադրության է արժանացել:
Facebook-ը վերջերս թողարկեց այն, ինչն անվանում է «նոր ֆինանսական ծառայությունների հարթակ», որը կոչվում է Libra: Այն տեղակայված է որպես թվային հաշվարկային համակարգ, որը հիմնված է միջազգային արժույթների զամբյուղի վրա, որոնք կառավարվում են «բլոկչեյնով» և պահվում են Շվեյցարիայից կառավարվող դրամական ֆոնդում: Ծրագրի նպատակները հավակնոտ են և ենթադրում են լայնածավալ աշխարհաքաղաքական հետևանքներ։
В
Այն, ինչ բաց է աշխարհի համար, ճարտարապետական շիզոֆրենիկ արտեֆակտ է, որը պնդում է, որ անվտանգ հարթակ է համաշխարհային վճարային ենթակառուցվածքի համար:
Եթե դուք սուզվում եք կոդերի բազայի մեջ, ապա համակարգի իրական իրականացումը լիովին տարբերվում է նշված նպատակից և ամենատարօրինակ ձևերով: Վստահ եմ, որ այս նախագիծը հետաքրքիր կորպորատիվ պատմություն ունի։ Այսպիսով, տրամաբանական է ենթադրել, որ այն նախագծվել է որոշակի ջանասիրությամբ, բայց իրականում ես տեսնում եմ ճարտարապետական որոշումների իսկապես տարօրինակ մի շարք, որոնք կոտրում են ամբողջ համակարգը և վտանգի տակ են դնում օգտվողներին:
Ես չեմ հավակնի, թե օբյեկտիվ կարծիք ունեմ Facebook-ի՝ որպես ընկերության մասին։ ՏՏ ոլորտում քիչ մարդիկ կարեկցանքով են նայում նրան: Բայց նրա հայտարարությունների և հրապարակված օրենսգրքի համեմատությունը հստակ ցույց է տալիս, որ նշված նպատակը հիմնովին խաբուսիկ է։ Մի խոսքով, այս նախագիծը ոչ ոքի իշխանություն չի տալիս։ Նա կմնա ամբողջությամբ մի ընկերության հսկողության տակ, որի գովազդային բիզնեսն այնքան խրված է սկանդալների և կոռուպցիայի մեջ, որ այլ ելք չունի, քան փորձել դիվերսիֆիկացնել իր վճարումները և վարկային միավորները գոյատևելու համար: Հստակ երկարաժամկետ նպատակն է հանդես գալ որպես տվյալների բրոքեր և միջնորդ՝ սպառողների կողմից սոցիալական մեդիայի անձնական տվյալների հիման վրա վարկ ստանալու համար: Սա բացարձակապես սարսափելի և մութ պատմություն է, որը արժանի ուշադրության չի արժանանում:
Այս պատմության միակ փրկող շնորհն այն է, որ նրանց ստեղծած արտեֆակտն այնքան զվարթորեն չի համապատասխանում առաջադրանքին, որ այն կարող է դիտվել միայն որպես ամբարտավանություն: Այս նախագծում կան մի քանի հիմնական ճարտարապետական սխալներ.
Բյուզանդական գեներալների խնդրի լուծումը մուտքի վերահսկման ցանցում անհամապատասխան ձևավորում է
Բյուզանդական գեներալների խնդիրը բաշխված համակարգերի հետազոտության բավականին նեղ ոլորտ է։ Այն նկարագրում է ցանցային համակարգի կարողությունը՝ դիմակայելու բաղադրիչների պատահական խափանումներին՝ միաժամանակ կատարելով համակարգի աշխատանքի համար կարևոր ուղղիչ գործողություններ: Ճկուն ցանցը պետք է դիմակայի մի քանի տեսակի հարձակումներին, ներառյալ վերագործարկումները, անջատումները, վնասակար բեռները և ղեկավարության ընտրություններում վնասակար քվեարկությունը: Սա Կշեռքների ճարտարապետության հիմնական որոշումն է, և այստեղ այն լիովին անիմաստ է:
Այս լրացուցիչ կառուցվածքի ժամանակային բարդությունը կախված է ալգորիթմից: Բյուզանդական գեներալների խնդիրը լուծող Պաքսոսի և Ռաֆտի արձանագրությունների տարբերակների վերաբերյալ շատ գրականություն կա, բայց այս բոլոր կառույցները լրացուցիչ ծախսեր են մտցնում հաղորդակցության համար։ քվորում պահպանելու համար։ Կշեռքների համար նրանք ընտրել են կապի հնարավոր առավելագույն արժեքով ալգորիթմ ղեկավարության ձախողման դեպքում. Եվ կա լրացուցիչ ծախսեր՝ կապված ցանցի խափանումների բազմաթիվ տեսակների հետ կապված առաջնորդների հնարավոր վերընտրության հետ:
Համակարգի համար, որը գործում է բարձր կարգավորված բազմազգ կորպորացիաների կոնսորցիումում, որտեղ բոլոր օգտատերերն ունեն կոդ, որը ստորագրված է Facebook-ի կողմից, և մուտքը ցանց վերահսկվում է Facebook-ի կողմից, ուղղակի իմաստ չունի դիտարկել վնասակար մասնակիցներին կոնսենսուսի մակարդակով: Անհասկանալի է, թե ինչու այս համակարգը կլուծեր բյուզանդական գեներալների խնդիրը, այլ ոչ թե պարզապես պահպանելու հետևողական աուդիտի հետքը՝ համապատասխանությունը ստուգելու համար: Mastercard-ի կամ Andressen Horrowitz-ի կողմից գործարկվող Libra հանգույցի հավանականությունը, որ հանկարծ սկսի վնասակար կոդ գործարկել, տարօրինակ սցենար է պլանավորելու համար, և այն ավելի լավ է լուծել՝ պարզապես ապահովելով արձանագրության ամբողջականությունը և ոչ տեխնիկական (այսինքն օրինական) միջոցները:
Կոնգրեսին տրված վկայությունը ապրանքը ներկայացրեց որպես նոր միջազգային վճարային արձանագրությունների մրցակից, ինչպիսիք են WeChat-ը, Alipay-ը և M-Pesa-ն: Այնուամենայնիվ, այս համակարգերից և ոչ մեկը նախատեսված չէ աշխատելու վավերացնող լողավազանների վրա՝ լուծելու բյուզանդական գեներալների խնդիրը: Դրանք պարզապես նախագծված են ավանդական բարձր թողունակությամբ ավտոբուսի վրա, որը լարերը կատարում է ըստ կանոնների ֆիքսված փաթեթի: Սա վճարային համակարգի նախագծման բնական մոտեցում է: Լավ մշակված վճարային համակարգը պարզապես չի բախվի կրկնակի ծախսերի և պատառաքաղների խնդրի հետ։
Կոնսենսուսի ալգորիթմի գերբեռնվածությունը ոչ մի խնդիր չի լուծում և միայն սահմանափակում է համակարգի թողունակությունը՝ առանց որևէ այլ պատճառի, քան հանրային բլոկչեյնի բեռների պաշտամունքը, որը նախատեսված չէ այս օգտագործման դեպքում:
Կշեռքները գործարքների գաղտնիություն չունեն
Փաստաթղթերի համաձայն՝ համակարգը նախագծված է հաշվի առնելով կեղծանուն, այսինքն՝ պրոտոկոլում օգտագործվող հասցեները ստացվում են էլիպսային կորերի հանրային բանալիներից և չեն պարունակում հաշիվների մասին մետատվյալներ։ Այնուամենայնիվ, կազմակերպության կառավարման կառուցվածքի նկարագրության մեջ կամ բուն արձանագրության մեջ ոչ մի տեղ չի նշվում, թե ինչպես են գործարքների մեջ ներգրավված տնտեսական տվյալները թաքցվելու վավերացնողներից: Համակարգը նախագծված է լայնածավալ գործարքները մի շարք արտաքին կողմերի հետ կրկնելու համար, որոնք, համաձայն բանկային գաղտնիքի մասին գործող եվրոպական և ԱՄՆ օրենքների, չպետք է ծանոթ լինեն տնտեսական մանրամասներին:
Երկրներում տվյալների քաղաքականությունը դժվար է համակարգել, հատկապես՝ հաշվի առնելով տարբեր իրավասությունների օրենքներն ու կանոնակարգերը՝ տվյալների պաշտպանության և գաղտնիության վերաբերյալ տարբեր մշակութային տեսակետներով: Արձանագրությունն ինքնին լռելյայն բաց է կոնսորցիումի անդամների համար, ինչը հստակ տեխնիկական թերություն է, որը չի համապատասխանում այն պահանջներին, որոնց համար այն նախատեսված է:
Libra HotStuff BFT-ն չի կարողանում հասնել վճարային համակարգի համար պահանջվող թողունակությանը
Մեծ Բրիտանիայում, BAC-ի նման քլիրինգային համակարգերը կարող են ամսական կատարել շուրջ 580 գործարքներ: Միևնույն ժամանակ, Visa-ի նման բարձր օպտիմիզացված համակարգերը կարող են օրական մշակել 000 գործարք: Կատարողականությունը տատանվում է՝ կախված գործարքի չափից, ցանցի երթուղուցից, համակարգի բեռնվածությունից և
Կշեռքները փորձում են լուծել խնդիրներ, որոնք իրականում խնդիրներ չեն ներքին փոխանցումների համար, քանի որ ազգային պետությունները վերջին տասնամյակում արդիականացրել են իրենց մաքրման ենթակառուցվածքը: Եվրամիությունում մանրածախ սպառողների համար գումար տեղափոխելը ամենևին էլ խնդիր չէ։ Ավանդական ենթակառուցվածքում դա կարելի է անել ստանդարտ սմարթֆոնի միջոցով վայրկյանների ընթացքում: Խոշոր կորպորատիվ փոխանցումների համար կան տարբեր մեխանիզմներ և կանոններ, որոնք կապված են մեծ գումարներ տեղափոխելու հետ:
Չկա ոչ մի տեխնիկական պատճառ, թե ինչու միջսահմանային վճարումները նույնպես չեն կարող ակնթարթորեն մշակվել, բացառությամբ համապատասխան իրավասությունների միջև կանոնների և պահանջների տարբերությունների: Եթե գործարքների շղթայի տարբեր փուլերում մի քանի անգամ իրականացվեն անհրաժեշտ կանխարգելիչ միջոցառումները (հաճախորդի պատշաճ ուսումնասիրություն, պատժամիջոցների ստուգում և այլն), դա կարող է հանգեցնել գործարքի հետաձգմանը: Այնուամենայնիվ, այս ուշացումը զուտ կարգավորող օրենսդրության և համապատասխանության գործառույթ է, այլ ոչ թե տեխնոլոգիայի:
Սպառողների համար պատճառ չկա, թե ինչու Միացյալ Թագավորության գործարքը մի քանի վայրկյանում չի մաքրվի: ԵՄ-ում մանրածախ գործարքներն իսկապես դանդաղում են
Libra Move լեզուն սխալ է
Սպիտակ թուղթը համարձակ պնդումներ է անում նոր, չստուգված լեզվի մասին, որը կոչվում է Move: Այս պնդումները բավականին կասկածելի են ծրագրավորման լեզուների տեսության (PLT) տեսանկյունից։
Move-ը ծրագրավորման նոր լեզու է Libra-ի բլոկչեյնում հատուկ գործարքների տրամաբանության և խելացի պայմանագրերի իրականացման համար: Քանի որ Կշեռքները նպատակ ունեն մի օր ծառայել միլիարդավոր մարդկանց, Move-ը նախագծված է անվտանգության համար որպես առաջնահերթություն:
Move-ի հիմնական առանձնահատկությունը ռեսուրսների կամայական տեսակներ սահմանելու ունակությունն է՝ գծային տրամաբանությամբ ոգեշնչված իմաստաբանությամբ:
Հանրային բլոկչեյններում խելացի պայմանագրերը բախվում են հանրային ցանցերի տրամաբանությանը, որոնք ունեն էսքրո հաշիվներ, փողերի լվացում, OTC նշանի թողարկում և մոլախաղեր: Այս ամենը արվում է ապշեցուցիչ վատ մշակված լեզվով, որը կոչվում է Solidity, որը ակադեմիական տեսանկյունից PHP-ի հեղինակին հանճարի տեսք է տալիս։ Տարօրինակ կերպով, Facebook-ի նոր լեզուն կարծես թե կապ չունի այս տեխնոլոգիաների հետ, քանի որ այն իրականում սկրիպտային լեզու է, որը նախատեսված է անհայտ ձեռնարկատիրական նպատակների համար:
Մասնավոր բաշխված մատյաններում խելացի պայմանագրերն այն տերմիններից մեկն են, որոնք տարածվում են խորհրդատուների կողմից՝ առանց հստակ սահմանման կամ նպատակի հաշվի առնելու: Ձեռնարկությունների ծրագրային ապահովման խորհրդատուները սովորաբար գումար են վաստակում երկիմաստությունից, իսկ խելացի պայմանագրերը կորպորատիվ խավարամտության ապոթեոզն են, քանի որ դրանք կարող են սահմանվել որպես բառացիորեն ամեն ինչ:
Նրա անվտանգության մասին պնդումներ անելուց հետո մենք պետք է նայենք լեզվի իմաստաբանությանը: Ծրագրավորման լեզվի տեսության ճիշտությունը սովորաբար բաղկացած է երկու տարբեր ապացույցներից՝ «առաջընթաց» և «պահպանում», որոնք որոշում են լեզվի գնահատման կանոնների ողջ տարածության հետևողականությունը: Ավելի կոնկրետ, տիպերի տեսության մեջ ֆունկցիան «գծային» է, եթե այն օգտագործում է իր փաստարկը ճշգրիտ մեկ անգամ, և «affine», եթե այն օգտագործում է առավելագույնը մեկ անգամ։ Գծային տիպի համակարգը ստատիկ երաշխիք է տալիս, որ հայտարարված գծային ֆունկցիան իսկապես գծային է՝ բոլոր ֆունկցիաների ենթաարտահայտումներին տիպեր վերագրելով և հետևելով զանգերի կատարմանը: Սա ապացուցելու նուրբ հատկություն է և հեշտ չէ իրականացնել ամբողջ ծրագրի համար: Գծային մուտքագրումը դեռևս շատ ակադեմիական ուսումնասիրության ոլորտ է, որը ազդում է Clean-ում տիպի եզակիության և Rust-ում տիպի սեփականության ներդրման վրա: Կան որոշ նախնական առաջարկներ Glasgow Haskell Compiler-ին գծային տեսակներ ավելացնելու համար:
Գծային տեսակներ օգտագործելու մասին Move-ի հայտարարությունը կարծես անհիմն սուզում է կոմպիլյատորի մեջ, քանի որ այնտեղ
Բացի այդ, ենթադրաբար անվտանգ լեզվի ֆորմալ իմաստաբանությունը ոչ մի տեղ չի երևում ոչ իրագործման, ոչ փաստաթղթում: Լեզուն բավականաչափ փոքր է, որպեսզի գտնվի ճիշտ իմաստաբանության ամբողջական ապացույց Coq-ում կամ Isabelle-ում: Իրականում, վերջից մինչև վերջ լրիվ փոխակերպման կոմպիլյատորը, որն ապացուցում է բայթկոդ փոխանցումը, միանգամայն հնարավոր է իրականացնել վերջին տասնամյակում հայտնագործված ժամանակակից գործիքներով: Մենք գիտենք, թե ինչպես դա անել՝ սկսած
Ծրագրավորման լեզվի տեսության տեսանկյունից անհնար է ստուգել այն պնդումը, որ Move-ը հուսալի և ապահով լեզու է, քանի որ այս պնդումները ավելի շուտ ձեռքի շարժում և շուկայավարում են, քան իրական ապացույցներ: Սա տագնապալի իրավիճակ է լեզվական նախագծի համար, որին խնդրում են մշակել միլիարդավոր դոլարների գործարքներ:
Կշեռքների ծածկագրությունը թերի է
Անվտանգ կրիպտոհամակարգեր կառուցելը շատ բարդ ինժեներական խնդիր է, և միշտ ավելի լավ է վտանգավոր կոդի հետ աշխատելը առողջ պարանոյայի լավ չափաբաժինով մոտենալ: Այս ոլորտում կան լուրջ առաջընթացներ, ինչպես Microsoft Everest նախագիծը, որը հաստատում է անվտանգ անվտանգություն
գրադարանային նախագիծ
Գրադարանը դառնում է էլ ավելի փորձնական և դուրս է գալիս այն սահմաններից
Պետք է ենթադրել, որ այս ամբողջ կրիպտոգրաֆիկ փաթեթը խոցելի է տարբեր հարձակումների համար, քանի դեռ հակառակն ապացուցված չէ: Facebook-ի հայտնի «Շարժվեք արագ և ընդհատեք իրերը» մոդելը չի կարող կիրառվել գաղտնագրման գործիքների վրա, որոնք մշակում են հաճախորդների ֆինանսական տվյալները:
Կշեռքները չեն կարողանում կիրառել սպառողների պաշտպանության մեխանիզմները
Վճարային համակարգի տարբերակիչ առանձնահատկությունն այն է, որ գործարքը հետ կանչելու հնարավորությունն է, եթե վճարումը չեղարկվում է դատական հայցով կամ հանգեցնում է պատահական կամ համակարգի ձախողման: Libra համակարգը նախատեսված է «ամբողջական» լինելու համար և չի ներառում վճարման չեղարկման գործարքի տեսակը: Մեծ Բրիտանիայում 100-ից մինչև 30,000 ֆունտ ստեռլինգ բոլոր վճարումները ենթակա են Սպառողական վարկի մասին օրենքին: Սա նշանակում է, որ վճարային համակարգը կիսում է պատասխանատվությունը վաճառողի հետ գնված ապրանքի հետ կապված խնդրի դեպքում կամ եթե վճարում ստացողը չի մատուցում ծառայությունը։ Նման կանոնները կիրառվում են ԵՄ-ում, Ասիայում և Հյուսիսային Ամերիկայում:
Կշեռքների ներկայիս դիզայնը չի ներառում այս օրենքներին համապատասխան արձանագրություն և չունի դրա ստեղծման հստակ ծրագիր: Նույնիսկ ավելի վատ, ճարտարապետական տեսանկյունից, միջուկի վավերացված տվյալների կառուցվածքի վերջնականությունը, որը հիմնված է Merkle drive-ի վիճակի վրա, թույլ չի տալիս որևէ մեխանիզմ ստեղծել նման արձանագրություն՝ առանց միջուկի վերանախագծման:
Այս նախագծի տեխնիկական վերանայումից հետո մենք կարող ենք եզրակացնել, որ այն պարզապես չի անցնի որևէ հարգված բաշխված համակարգերի հետազոտական կամ ֆինանսական ճարտարագիտական ամսագրում: Համաշխարհային դրամավարկային քաղաքականությունը փոխելու համար անհրաժեշտ է հսկայական տեխնիկական աշխատանք կատարել հուսալի ցանց ստեղծելու և օգտագործողների տվյալների անվտանգ մշակման համար, որին հանրությունը և կարգավորող մարմինները կարող են վստահել:
Ես հիմքեր չեմ տեսնում հավատալու, որ Facebook-ն իր նախագծման մեջ կատարել է անհրաժեշտ աշխատանք՝ այս տեխնիկական խնդիրները հաղթահարելու համար, կամ որ այն տեխնիկական առավելություններ ունի ներկայիս ենթակառուցվածքի նկատմամբ։ Ասել, որ ընկերությանը նորարարություններ ուսումնասիրելու համար անհրաժեշտ է կարգավորող ճկունություն, դա արդարացում չէ առաջին հերթին դրանք չկատարելու համար:
Source: www.habr.com