Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Այս հոդվածում ես ձեզ կպատմեմ DAG-ի (Directed Acyclic Graph) և դրա կիրառման մասին բաշխված ռեգիստրներում, և մենք այն կհամեմատենք բլոկչեյնի հետ։

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

DAG-ը նորություն չէ կրիպտոարժույթների աշխարհում: Դուք կարող եք լսել դրա մասին՝ որպես բլոկչեյնի մասշտաբայնության խնդիրների լուծում: Բայց այսօր մենք չենք խոսի մասշտաբայնության մասին, այլ այն մասին, թե ինչով են տարբերվում կրիպտոարժույթները մնացած ամեն ինչից՝ ապակենտրոնացում, միջնորդների բացակայություն և գրաքննության դիմադրություն:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Ես ձեզ ցույց կտամ նաև, որ DAG-ն իրականում ավելի դիմացկուն է գրաքննությանը, և ռեեստր մուտք գործելու միջնորդներ չկան:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Բլոկչեյններում, որոնց մենք սովոր ենք, օգտվողները ուղղակի մուտք չունեն բուն մատյան: Երբ դուք ցանկանում եք գործարք ավելացնել մատյանում, դուք պետք է «խնդրեք» բլոկի արտադրողին (բլոկ արտադրող, նույնանուն «հանքափոր») դա անել: Հենց հանքագործներն են որոշում, թե որ գործարքն ավելացնել հաջորդ բլոկին, որը ոչ: Հանքագործներն են, ովքեր ունեն բացառիկ մուտք դեպի բլոկներ և իրավունք ունեն որոշել, թե ում գործարքն ընդունեն, որ ավելացվի մատյանում:

Հանքագործները միջնորդներ են, որոնք կանգնած են ձեր և բաշխված մատյանների միջև:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Գործնականում, սովորաբար, հանքագործների փոքր թվով լողավազաններ միասին վերահսկում են ցանցի հաշվողական հզորության կեսից ավելին: Bitcoin-ի համար սրանք չորս լողավազան են, Ethereum-ի համար՝ երկու: Եթե ​​նրանք համաձայնության գան, նրանք կարող են արգելափակել ցանկացած գործարք, որը ցանկանում են:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Վերջին մի քանի տարիների ընթացքում առաջարկվել են բլոկչեյնների բազմաթիվ տարբերակներ, որոնք տարբերվում են բլոկ արտադրողների ընտրության սկզբունքներից: Բայց բլոկի արտադրողներն իրենք ոչ մի տեղ չեն գնում, նրանք դեռ «կանգնած են պատնեշի վրա». յուրաքանչյուր գործարք պետք է անցնի բլոկ արտադրողի միջոցով, իսկ եթե նա չի ընդունում, ապա գործարքը, ըստ էության, գոյություն չունի։

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

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

Այժմ բոլորն ունեն անմիջական մուտք դեպի ռեեստր՝ առանց միջնորդների։ Երբ դուք ցանկանում եք գործարք ավելացնել մատյանում, դուք պարզապես ավելացնում եք այն: Ընտրեք մի քանի ծնող գործարքներ, ավելացրեք ձեր տվյալները, ստորագրեք և ուղարկեք ձեր գործարքը ցանցի գործընկերներին: Պատրաստ. Չկա ոչ ոք, ով կխանգարի ձեզ դա անել, ուստի ձեր գործարքն արդեն գրանցամատյանում է:

Սա ամենաապակենտրոնացված, գրաքննության նկատմամբ ամենադիմացկուն միջոցն է՝ առանց միջնորդների մատյանում գործարքներ ավելացնելու համար: Որովհետև բոլորը պարզապես ավելացնում են իրենց գործարքները մատյանում՝ առանց որևէ մեկից թույլտվություն խնդրելու:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

ԴԱԳ-ը կարելի է համարել ռեգիստրների էվոլյուցիայի երրորդ փուլը։ Սկզբում կային կենտրոնացված ռեգիստրներ, որտեղ մի կողմ վերահսկում էր դրանց մուտքը: Հետո հայտնվեցին բլոկչեյնները, որոնք արդեն ունեին մի քանի վերահսկիչներ, որոնք գրանցում էին գործարքները մատյանում: Եվ վերջապես, DAG-ում վերահսկիչներ ընդհանրապես չկան, օգտվողներն ուղղակիորեն ավելացնում են իրենց գործարքները։

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Հիմա, երբ մենք ունենք այդ ազատությունը, դա չպետք է բերի քաոսի։ Մենք պետք է պայմանավորվենք ռեգիստրի վիճակի մասին։ Եվ այս համաձայնությունը կամ կոնսենսուսը սովորաբար նշանակում է համաձայնություն երկու բանի շուրջ.

  1. Ինչ է պատահել:
  2. Ի՞նչ հերթականությամբ է դա տեղի ունեցել։

Առաջին հարցին հեշտությամբ կարող ենք պատասխանել՝ հենց որ ճիշտ ստեղծված գործարքը ավելացվեց մատյանում, դա տեղի ունեցավ։ Եվ մատնանշեք. Այս մասին տեղեկատվությունը կարող է հասնել բոլոր մասնակիցներին տարբեր ժամանակներում, բայց ի վերջո բոլոր հանգույցները կստանան այս գործարքը և կիմանան, որ դա տեղի է ունեցել:

Եթե ​​դա լիներ բլոկչեյն, ապա հանքագործները կորոշեին, թե ինչ կլինի: Ինչ էլ որ հանքափորը որոշի ներառել բլոկի մեջ, տեղի է ունենում: Այն, ինչ այն չի ներառում բլոկում, տեղի չի ունենում:

Բլոկչեյնների վրա հանքագործները լուծում են նաև երկրորդ կոնսենսուսի խնդիրը՝ կարգը: Նրանց թույլատրվում է գործարքներ պատվիրել բլոկի ներսում, ինչպես ցանկանում են:

Ինչպե՞ս որոշել DAG-ում գործարքների հերթականությունը:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Պարզապես այն պատճառով, որ մեր գրաֆիկը ուղղված է, մենք արդեն ունենք որոշակի կարգ: Յուրաքանչյուր գործարք վերաբերում է մեկ կամ մի քանի նախորդ մայր գործարքներին: Ծնողները, իրենց հերթին, վերաբերում են իրենց ծնողներին և այլն: Ծնողները ակնհայտորեն հայտնվում են երեխայի գործարքներից առաջ: Եթե ​​գործարքներից որևէ մեկին հնարավոր է հասնել ծնող-երեխա կապերով, մենք հստակ գիտենք գործարքների այդ շղթայում գործարքների հաջորդականությունը:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Բայց գործարքների միջև հերթականությունը միշտ չէ, որ կարող է որոշվել միայն գրաֆիկի ձևից: Օրինակ, երբ երկու գործարքներ գտնվում են գրաֆիկի զուգահեռ ճյուղերի վրա:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Նման դեպքերում երկիմաստությունը լուծելու համար մենք ապավինում ենք այսպես կոչված պատվերների մատակարարներին: Մենք նրանց անվանում ենք նաև «վկաներ»։ Սրանք սովորական օգտատերեր են, որոնց խնդիրն է անընդհատ գործարքներ ուղարկել ցանց՝ հերթականությամբ, այսինքն. այնպես, որ նրանց նախորդ գործարքներից յուրաքանչյուրը հասանելի լինի ծնող-երեխա հղումներով: Պատվերների մատակարարները վստահելի օգտատերեր են, և ամբողջ ցանցը հենվում է նրանց վրա՝ չխախտելու այս կանոնը: Որպեսզի ռացիոնալ կերպով վստահեք նրանց, մենք պահանջում ենք, որ պատվերի յուրաքանչյուր մատակարար լինի հայտնի (ոչ անանուն) անձ կամ կազմակերպություն և կորցնելու բան ունենա, եթե նրանք խախտեն կանոնները, օրինակ՝ հեղինակությունը կամ վստահության վրա հիմնված բիզնեսը:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

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

Մատակարարների այս ցանկը տարբերվում է օգտվողից օգտվող, սակայն հարևան գործարքների ցուցակները կարող են տարբերվել առավելագույնը մեկ մատակարարի կողմից:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Այժմ, երբ մենք ունենք պատվերների մատակարարներ, մենք կարող ենք մեկուսացնել նրանց գործարքները DAG-ում և պատվիրել բոլոր մյուս գործարքները իրենց ստեղծած պատվերի շուրջ: Հնարավոր է ստեղծել նման ալգորիթմ (տես. Obyte Սպիտակ թուղթ տեխնիկական մանրամասների համար):

Բայց ամբողջ ցանցի պատվերը չի կարող ակնթարթորեն որոշվել, մեզ ժամանակ է պետք, որպեսզի պատվերների մատակարարները ուղարկեն իրենց գործարքների բավականաչափ քանակությունը՝ համոզվելու համար, որ վերջին գործարքների պատվերը կա:

Եվ քանի որ կարգը որոշվում է միայն DAG-ում պրովայդերների գործարքների դիրքերով, ցանցի բոլոր հանգույցները վաղ թե ուշ կստանան բոլոր գործարքները և կգան նույն եզրակացության գործարքների հերթականության վերաբերյալ։

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Այսպիսով, մենք համաձայնություն ունենք այն մասին, թե ինչ ենք համարում կատարված. ցանկացած գործարք, որը մտել է ԴԱԳ, եղել է։ Մենք համաձայն ենք նաև իրադարձությունների հաջորդականության հետ. սա կամ ենթադրվում է գործարքների փոխհարաբերություններից, կամ ենթադրվում է պատվերների մատակարարների կողմից ուղարկված գործարքների հերթականությունից: Այսպիսով, մենք ունենք կոնսենսուս:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Համաձայնության այս տարբերակը մենք ունենք Obyte-ում: Չնայած Obyte մատյան մուտքն ամբողջությամբ ապակենտրոնացված է, գործարքների կարգի վերաբերյալ կոնսենսուսը դեռևս կենտրոնացված է, քանի որ 10 պրովայդերներից 12-ը վերահսկվում է ստեղծողի կողմից (Անտոն Չուրյումով), և նրանցից միայն երկուսն են անկախ։ Մենք փնտրում ենք թեկնածուների, ովքեր ցանկանում են լինել անկախ պատվերների մատակարարներից մեկը, որոնք կօգնեն մեզ ապակենտրոնացնել ռեեստրի պատվերը:

Վերջերս երրորդ անկախ թեկնածուն հայտնվեց, որը ցանկանում էր ստեղծել և պահպանել պատվերների մատակարարման հանգույց՝ Նիկոսիայի համալսարանը:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Հիմա ինչպե՞ս ենք մենք վերահսկում կրկնակի ծախսերը:

Ըստ կանոնների, երբ հայտնաբերվում են երկու գործարքներ, որոնք ծախսում են նույն մետաղադրամը, հաղթում է այն գործարքը, որը ավելի վաղ հայտնվեց բոլոր գործարքների վերջնական կարգում: Երկրորդը անվավեր է ճանաչվել կոնսենսուսի ալգորիթմով։

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից
Այն դեպքում, երբ հնարավոր է մեկ մետաղադրամ ծախսող երկու գործարքների միջև կարգ հաստատել (ծնող-երեխա կապերի միջոցով), ապա բոլոր հանգույցներն անմիջապես մերժում են կրկնապատկելու նման փորձը:

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

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

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

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

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

Սա շատ կարևոր կանոն է, որը թույլ է տալիս ողջ համակարգին դիմակայել գրաքննության փորձերին: 

Եկեք պատկերացնենք, որ բոլոր պատվերների մատակարարները համաձայնության են գալիս՝ փորձելով «գրաքննել» մեկ կոնկրետ գործարք: Նրանք կարող են անտեսել դա և երբեք չընտրել «ծնող» իրենց գործարքների համար, բայց դա բավարար չէ, այս գործարքը դեռևս կարող է անուղղակիորեն ներառվել որպես որևէ այլ գործարքի մայր, որը թողարկվել է ցանցի ցանկացած օգտագործողի կողմից, որը դավաճան չէ: Ժամանակի ընթացքում նման գործարքն ավելի ու ավելի շատ երեխաներ, թոռներ և ծոռներ կստանա սովորական օգտատերերից, որոնք ձնագնդի պես աճում են, և բոլոր համաձայնեցված պատվերի մատակարարները նույնպես ստիպված կլինեն անտեսել այդ գործարքները: Ի վերջո, նրանք ստիպված կլինեն գրաքննել ողջ ցանցը, ինչը հավասարազոր է դիվերսիայի։

Բլոկչեյնից մինչև DAG՝ ազատվել միջնորդներից

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

Source: www.habr.com

Добавить комментарий