paint-brush
EIP-7623. Առաջարկ, որը կվերագնացնի Calldata-ն Ethereum գործարքների համար կողմից@2077research
Նոր պատմություն

EIP-7623. Առաջարկ, որը կվերագնացնի Calldata-ն Ethereum գործարքների համար

կողմից 2077 Research13m2025/01/17
Read on Terminal Reader

Չափազանց երկար; Կարդալ

EIP-7623-ն առաջարկում է փոփոխություններ Ethereum-ի զանգերի տվյալների գնագոյացման կառուցվածքում՝ նպատակ ունենալով գազի ծախսերն ավելի արտացոլող ռեսուրսների իրական օգտագործումը: Այս ճշգրտումը ձգտում է բարելավել Ethereum-ի ռեսուրսների բաշխման արդարությունն ու արդյունավետությունը: Կարդացեք ամբողջական հոդվածը՝ ավելին իմանալու համար, թե ինչպես այս փոփոխությունները կարող են ազդել Ethereum-ի օգտատերերի և ընդհանրապես ցանցի վրա:
featured image - EIP-7623. Առաջարկ, որը կվերագնացնի Calldata-ն Ethereum գործարքների համար
2077 Research HackerNoon profile picture

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


Այնուամենայնիվ, գործարքների համար համապատասխան գնագոյացման որոշումը եղել է երկարամյա մարտահրավեր բլոկչեյն արձանագրության նախագծման մեջ: Վիտալիկ Բուտերինը, Ethereum-ի հիմնադիրը, անդրադառնում է այս խնդրին հին հետազոտական փաստաթղթում .


Բլոկչեյն արձանագրության նախագծման ամենադժվար խնդիրներից մեկն այն է, թե ինչպես կարելի է սահմանափակել և թանկացնել գործարքների ներկայացումը, որոնք ներառվում են շղթայում»: — Վիտալիկ Բուտերին


EIP-7623-ը Ethereum-ի բարելավման առաջարկ է (EIP), որի նպատակն է փոխել զանգերի տվյալների գինը՝ առավելագույն բլոկի չափը սահմանափակելու համար: Ի տարբերություն նախորդ առաջարկների, որոնք պարզապես ավելացնում էին զանգերի տվյալների արժեքը, EIP-7623-ը կենտրոնանում է օգտագործողների ամենօրյա գործարքների վրա դրա ազդեցությունը նվազագույնի հասցնելու վրա՝ միաժամանակ հասնելով ռեսուրսների արդյունավետ օգտագործմանը:


Այս հոդվածում մենք բացատրում ենք Ethereum Layer 1-ում (L1) գործարքների կողմից օգտագործվող զանգերի տվյալների վերագնահատման հիմնավորումը և ազդեցությունը բլոկի չափերի և ցանցի աշխատանքի վրա: Մենք նաև համատեքստ ենք ստեղծում Ethereum-ի գործարքների վճարի մեխանիզմում առաջարկվող փոփոխությունների համար՝ ելնելով բլոկչեյն ռեսուրսների արդյունավետ գնագոյացման խնդրի շուրջ տարիների հետազոտություններից:


Եկեք սուզվենք:

Բեմի սահմանում. ինչո՞ւ է այդքան դժվար գործարքները ճիշտ գնահատելը:

Բլոկչեյնով գործարքների գնագոյացումը դժվար է, քանի որ յուրաքանչյուր գործարքի սպառվող յուրաքանչյուր ռեսուրսի ճշգրիտ գումարը գնահատելն էապես բարդ է: Ներկայումս Ethereum-ում բոլոր ռեսուրսները ներկայացված են որպես միասնական միավորներ, որոնք կոչվում են «գազ» և «բլոբ գազ» (ներդրված է EIP-4844- ով):


Կան կանխորոշված կանոններ, որոնք գործարքի ռեսուրսների սպառումը վերածում են գազի, և այդ կանոնները պարբերաբար թարմացվում են: Այս կանոնների օրինակները ներառում են.


  • Գործարք, որը կրում է առնվազն 21,000 գազի ֆիքսված ծախս, հիմնականում ստորագրության ստուգման համար

  • Գազի կանխորոշված սպառում յուրաքանչյուր EVM opcode-ի համար


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

Ինչու՞ է բլոկի չափը կարևոր:

Ethereum-ը գործում է 12 վայրկյանանոց սլոտներում, որի ընթացքում բոլոր վավերացնող հանգույցները պետք է տարածեն բլոկներ և բլոկներ, կատարեն և վավերացնեն գործարքները և հաստատեն նոր բլոկը: Մասնավորապես, Ethereum հաճախորդի ներդրումը պահանջում է, որ ազնիվ հանգույցները ստանան և վավերացնեն բլոկները բնիկի առաջին 4 վայրկյանի ընթացքում: Նրանք վկայում են 4 վայրկյանի ընթացքում, ինչը նշանակում է, որ 4 վայրկյանից հետո ժամանած բլոկները չեն ստանա ատեստավորում և ենթակա են վերախմբավորման հետևյալ առաջարկողի կողմից :



Ethereum հանգույցների միջև բաժանված դիտումները նվազագույնի հասցնելու համար բլոկի կատարման ժամանակը և տարածման ժամանակը պետք է փակվեն: Ethereum-ը սահմանափակում է բլոկների կատարման ժամանակը` սահմանելով գազի առավելագույն օգտագործումը, որը ներկայումս սահմանազատված է 30 միլիոնով, իսկ թիրախը 15 միլիոն է : Սա նշանակում է, որ Ethereum բլոկները կօգտագործեն միջինը ~ 15M գազ՝ բարձր ակտիվության ժամանակ 30M գազ ընդլայնելու և սպառելու կարողությամբ:


Նաև յուրաքանչյուր EVM opcode ունի կանխորոշված գազի արժեքը՝ հիմնված իր ռեսուրսների սպառման վրա: Օրինակ, SSTORE opcode- ն ավելի ծախսատար է, քան ավելի պարզ գործողությունները (օրինակ՝ թվաբանական գումարում-ADD), քանի որ այն ներառում է վիճակի մուտք և փոփոխում: EVM օպերացիոն կոդերի այս տարբերակված գնագոյացումը, գազի ընդհանուր սահմանաչափի հետ մեկտեղ, նպատակ ուներ սահմանափակել կատարման ընդհանուր ժամանակը:


Թեև բլոկի գազի սահմանաչափը կարող է որոշակիորեն սահմանափակել բլոկի կատարման ժամանակը, բլոկի տարածման ժամանակը մնում է բացահայտորեն անսահմանափակ: Բլոկի չափը հիմնական գործոնն է, որն ազդում է հանրային բլոկչեյններում տարածման ժամանակի վրա: Օրինակ, ավելի մեծ բլոկի չափերը մեծացնում են ցանցի բեռնվածությունը և թողունակության պահանջները. եթե բլոկի չափը զգալիորեն գերազանցում է հանգույցների մեծ մասի թողունակությունը, ապա ավելի երկար ժամանակ է պահանջվում, որպեսզի հանգույցներն ամբողջությամբ տարածվեն և ստանան բլոկը, ինչը մեծացնում է բաց թողնված կամ վերադասավորվող բլոկների ռիսկը: (Ահա թե ինչու Bitcoin արձանագրությունը (նախա- Segwit ) ուներ 1 ՄԲ բլոկի չափի գլխարկ՝ կանխելու պատառաքաղի արագության բարձրացումը և ապահովելու բլոկչեյնի անվտանգությունը և հանգույցների ցածր պահանջները:)


Ներկայումս Ethereum-ը բացահայտորեն սահմանված բլոկի չափի սահմանափակում չկա: Այնուամենայնիվ, տեսական առավելագույն բլոկի չափը կարելի է գնահատել՝ հաշվի առնելով գազի սահմանաչափը, զանգի տվյալների արժեքը, սեղմման արագությունը և այլն: Թեև Ethereum-ի ներկայիս բլոկի չափը ~2,78 ՄԲ է (բացառությամբ բլոկների), զանգի տվյալների ներկայիս գնագոյացումը թույլ է տալիս EL-ի մինչև 7,15 ծանրաբեռնվածություն: ՄԲ, մինչդեռ միջին չափը շատ ավելի փոքր է՝ մոտ 100 ԿԲ:


Եթե նման մեծ բեռները հետևողականորեն տարածվեն 10 րոպեի ընթացքում, ապա այն կարող է կազմել մոտավորապես 42,9 ՄԲ, ինչը զգալիորեն ավելի մեծ է, քան սովորական բլոկների չափերը այլ բլոկչեյն ցանցերում:


Սա կարող է պոտենցիալ ծանրաբեռնել Ethereum ցանցը և պատճառ դառնալ, որ հանգույցները կարճ ժամանակահատվածում ունենան տարբեր տեսակետներ DoS հարձակման սցենարում, որտեղ 7,15 ՄԲ ծանրաբեռնվածությունը որոշ ժամանակ շարունակվում է:


Գործնականում, այսօր Ethereum-ում բլոկի միջին չափը մոտավորապես 125 ԿԲ է, ինչը ցույց է տալիս զգալի բացը բլոկի առավելագույն չափից: Սա մեկ այլ մտահոգություն է առաջացնում ռեսուրսների օգտագործման անարդյունավետության հետ կապված: Օրինակ, եթե ցանցը կարող է բավարար չափով մշակել 1 ՄԲ բլոկներ անընդմեջ, բլոկի միջին չափի և 1 ՄԲ-ի միջև մեծ անհամապատասխանությունը հուշում է, որ Ethereum-ն ավելի մեծ կարողություն ունի տվյալների հասանելիության (DA) ֆունկցիոնալության համար, բայց այն արդյունավետորեն չի օգտագործում:


Սահմանափակելով բլոկի առավելագույն չափը և հավասարեցնելով բլոկի միջին չափը այս առավելագույնին, Ethereum-ը կարող է նվազեցնել կոնսենսուսի ռիսկերը՝ միաժամանակ հասնելով ռեսուրսների ավելի արդյունավետ օգտագործման: Ահա թե ինչու EIP-7623-ը կենտրոնանում է բլոկի հնարավոր առավելագույն չափի վրա, որի վրա մեծապես ազդում է զանգի տվյալների գնագոյացումը:

Ի՞նչ է Calldata-ն Ethereum-ում:

Calldata-ն գործարքի դաշտ է, որը սովորաբար օգտագործվում է փոխանցելու համար, թե որ ֆունկցիաները պետք է կանչել և ինչ պարամետրեր փոխանցել: Օրինակ, եթե ցանկանում եք հատել NFT, դուք ներառում եք «mint» մեթոդը և NFT-ի հատուկ գծերը calldata դաշտում: Հետևյալ օրինակը ցույց է տալիս CryptoPunk-ի առաջին դրամահատարանի գործարքը 2017 թվականին:


Զանգի տվյալները (նկարում նշված է որպես «մուտքային տվյալներ») պարունակում է getPunk ֆունկցիայի անունը, որը ներկայացված է 0xc81d1d5b-ով, և NFT ինդեքսը, որը ներկայացված է 0x00001eb0 (7856 տասնվեցական): Եթե դուք միայն փոխանցում եք ETH և չեք փոխազդում որևէ խելացի պայմանագրի հետ, զանգի տվյալների դաշտը զրոյական է ( 0x ):


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


Օգտվելով այս ճկունությունից՝ լավատեսական միավորումներ, ինչպիսիք են Optimism-ը և Arbitrum-ը, որոշ ZK (վավերականության) համախմբումներ, հետսեղմված հավաքագրման գործարքների տվյալները և դրանց հաջորդականության գործարքների calldata դաշտի թարմացված վիճակները: Թեև EIP-4844-ը հնարավորություն է տվել տվյալների հասանելիությունը բլբերների միջոցով՝ calldata-ի փոխարեն, call data-ը դեռ նախընտրելի է փոքր խմբաքանակների կողմից, որոնց անհրաժեշտ չէ ամբողջ 128 ԿԲ բլբի մեկ խմբաքանակի համար:


Calldata-ն հաճախ օգտագործվում է DA ֆունկցիոնալության համար, քանի որ դա ամենաքիչ գազ սպառող միջոցն է EVM-ում մեծ տվյալներ տեղադրելու համար: Ահա թե ինչու բլոկի առավելագույն չափը սահմանափակվում է calldata-ի գնով: Վատագույն սցենարը տեղի է ունենում, երբ բլոկը լցված է DA-նպատակով գործարքներով, որոնք օգտագործում են փոքր քանակությամբ գազ, բայց տվյալների մեծ չափսեր:


Ներկայումս calldata-ի արժեքը կազմում է 4 գազ զրոյական բայթի համար և 16 գազ մեկ ոչ զրոյական բայթի համար: Calldata-ն կարող է սեղմվել՝ օգտագործելով snappy compression ( EIP-706 ), իսկ գործարքի չափը չի կարող գերազանցել 125 ԿԲ-ը: Բլոկի առավելագույն չափի ճշգրիտ հաշվարկը բարդ է սեղմման գործակիցների տարբեր բնույթի պատճառով, սակայն հայտնի է, որ բլոկը կարող է մեծանալ մինչև ~2,78 ՄԲ:


Եթե 2,78 ՄԲ բլոկները անընդմեջ շարունակվեն որոշակի պատճառներով (օրինակ՝ սպամային հարձակումներ), ցանցը կարող է ծանրաբեռնվել, և հանգույցները կարող են բաժանվել տեսարանների՝ տարածման ցածր արագության պատճառով: Ավելի շատ հանգույցներ կարող են վկայել տարբեր բլոկների մասին՝ որպես կանոնական շղթա՝ մեծացնելով կոնսենսուսի չհասնելու վտանգը: Դա կանխելու համար պարզ լուծում կարող է լինել calldata-ի արժեքը մեծացնելը, օրինակ՝ կրկնապատկելով calldata-ի արժեքը մինչև 8 գազ զրոյական բայթի համար և 32 գազ մեկ ոչ զրոյական բայթի համար, կարող է մոտավորապես կիսով չափ կրճատել բլոկի առավելագույն չափը:


Այնուամենայնիվ, այս մոտեցումը կարող է վնասել սովորական օգտագործողների գործարքներին: Զանգի տվյալների ծախսերի ավելացումը միայն վատագույն սցենարը կանխելու համար կարող է հանգեցնել ավելի մեծ կորստի, քան շահույթի, հաշվի առնելով, որ բլոկի միջին չափը ներկայումս ընդամենը 125 ԿԲ է և էական մտահոգություններ չի առաջացնում:

Ո՞րն է EIP-7623-ի մոտիվացիան:

EIP-7623-ը փոքր-ինչ տարբերվում է այլ առաջարկներից, որոնք պարզապես մեծացնում են զանգերի տվյալների արժեքը: Զանգի տվյալների գնի ընդհանուր ճշգրտման փոխարեն, EIP-7623-ը կենտրոնանում է գազի արժեքի բարձրացման վրա, հատկապես այն գործարքների համար, որոնք, ըստ երևույթին, ծառայում են տվյալների հասանելիության (DA) նպատակներին:


Ի՞նչ է սա նշանակում։ Եթե գործարքում օգտագործվող գազը անբավարար է բեռնված տվյալների ընդհանուր չափի համեմատ, այն համարվում է DA նպատակային գործարք և զգալիորեն ավելի շատ գանձվում է զանգի տվյալների համար: Ընդհակառակը, եթե գործարքը բավականաչափ գազ է սպառում տվյալների չափի համեմատ, այն համարվում է ոչ DA գործարք և գանձվում է նույնքան, ինչ այսօր:


Օգտակար անալոգիա կարելի է անել Ethereum-ի զանգերի տվյալների և իրական աշխարհում պլաստիկ տոպրակների միջև: Երբ մենք գնում ենք ապրանքներ կամ մթերքներ, մենք հաճախ ստանում ենք պոլիէթիլենային տոպրակներ դրանք տեղափոխելու համար, սովորաբար շատ ցածր գնով կամ նույնիսկ անվճար: Այնուամենայնիվ, եթե անհատները կարողանան անսահմանափակ քանակությամբ պլաստիկ տոպրակներ գնել, դա վնասակար կլինի շրջակա միջավայրի համար:


Հնարավոր լուծում է պլաստիկ տոպրակները սահմանափակել այն հաճախորդների համար, ովքեր գնում են բավարար քանակությամբ ապրանքներ կամ գանձում են ավելի բարձր գին, օրինակ՝ 1 դոլար մեկ տոպրակի համար: Սա նման է EIP-7623 մոտեցմանը, որը գործում է որպես Պիգովյան հարկի ձև: Այն ավելի մեծ ծախսեր է պարտադրում գործարքների վրա, որոնք օգտագործում են մեծ քանակությամբ call data, բայց անբավարար գազ՝ դրանով իսկ նպաստելով ռեսուրսների ավելի արդյունավետ օգտագործմանը: Ավելի ագրեսիվ ծախսեր կիրառելով նրանց վրա, ովքեր հիմնականում օգտագործում են զանգերի տվյալները տվյալների հասանելիության համար, այլ ոչ թե տվյալների և կատարման հավասարակշռված խառնուրդի, արձանագրությունը նպատակ ունի ապահովել ցանցային ռեսուրսների ավելի արդյունավետ և կայուն օգտագործումը:


Ինչու՞ թիրախավորել DA գործարքները Ethereum-ով:

Տվյալների հասանելիության համար Ethereum-ն օգտագործող գործարքների մեջ էապես սխալ բան չկա: EIP-7623-ը չի խանգարում Ethereum-ին աշխատել որպես տվյալների հասանելիության շերտ. ավելի շուտ, այն խրախուսում է calldata-ի օգտագործումը գործարքների տվյալների պահպանման նպատակով և անուղղակիորեն խրախուսում է DA-ի համար բլբերների օգտագործումը: Այս առաջարկը նպատակ ունի առանձնացնել կատարողական շերտը տվյալների հասանելիության շերտից՝ թույլ տալով յուրաքանչյուր շերտին արդյունավետորեն կառավարել պահանջարկը և ավելի լավ կանխատեսել ծայրահեղ դեպքերը:


Դրանով EIP-7623-ը ձգտում է բարձրացնել Ethereum-ի ռեսուրսների կառավարման արդյունավետությունն ու կանխատեսելիությունը՝ միաժամանակ սահմանափակելով DoS մակերեսը: Այս տարանջատումը երաշխավորում է, որ յուրաքանչյուր շերտ կարող է ավելի արդյունավետ կերպով կարգավորել իր հատուկ գործառույթները՝ ի վերջո նպաստելով Ethereum-ի ավելի ամուր և մասշտաբային ցանցին:

EIP-7623 բնութագրերի ակնարկ

Գործարքի ընթացիկ գազի հաշվարկը հետևյալն է.

Վերոնշյալ բնութագրի 21,000 ը ցանկացած գործարքի համար գանձվող նվազագույն գազն է: Բացի այդ, STANDARD_TOKEN_COST tokens_in_calldata ներկայացնում է զանգի տվյալների համար օգտագործվող գազը, որը EIP-7623-ը հիմնականում փորձում է ուղղել: Այստեղ tokens_in_calldata զրոյական և ոչ զրոյական բայթերի պարզ կշռված համակցություն է, որը հաշվարկվում է tokens_in_calldata = zero_bytes_in_calldata + 4 * nonzero_bytes_in_calldata .


STANDARD_TOKEN_COST ներկայումս սահմանված է 4-ի, այնպես որ գազի արժեքը zero_bytes_in_calldata համար կազմում է 4, իսկ nonzero_bytes_in_calldata ն՝ 16:

evm_gas_used այն գազն է, որն օգտագործվում է գործարքների իրականացման համար՝ հիմնականում ծածկելով խելացի պայմանագրերի հետ փոխազդեցությունները: Ոչ DA-ի նպատակային գործարքները սովորաբար ունեն մեծ evm_gas_used բաղադրիչ:


Երբ գործարքը ստեղծում է նոր պայմանագիր, isContractCreation տերմինը դառնում է 1, ինչը նշանակում է լրացուցիչ գազ՝ նոր պայմանագրի ստեղծման և պահպանման համար: Քանի որ պայմանագրի ստեղծումն այստեղ ուշադրության կենտրոնում չէ, մենք այս ժամկետը կզրոյացնենք:


EIP-7623-ն առաջարկում է գազի ընդհանուր հաշվարկի հետևյալ ճշգրտումը.


Նոր հաշվարկում max(blue box, red box) համեմատում է ընթացիկ մեթոդով հաշվարկված գազը (կապույտ տուփ) TOTAL_COST_FLOOR_PER_TOKEN զանգի տվյալների (կարմիր տուփ) հետ: Կապույտ տուփը ճիշտ նույնն է, ինչ ընթացիկ գազի հաշվարկման մեթոդը: Կարմիր տուփը, որը նոր է EIP-7623-ում, ներկայացնում է այն արժեքը, որը որոշում է, թե արդյոք գործարքը նախատեսված է DA նպատակների համար: 2025 թվականի հունվարի 1-ի դրությամբ TOTAL_COST_FLOOR_PER_TOKEN առաջարկվում է լինել 10, ինչը շատ ավելի բարձր է, քան 4-ի STANDARD_TOKEN_COST ը:


Այլ կերպ ասած, եթե գործարքը բավարար չափով չի ծախսում evm_gas_used , կարմիր տուփը, հավանաբար, ավելի բարձր արժեք կլինի, քան կապույտ տուփի արժեքը՝ նշելով այն որպես DA-նպատակով գործարք: Հետևաբար, գործարքը կգանձվի TOTAL_COST_FLOOR_PER_TOKEN դրույքաչափով՝ փաստացի վճարելով 3 անգամ ավելի քիչ, քան զանգերի տվյալների համար: Ընդհակառակը, ընդհանուր նշանակության գործարքների մեծամասնությունը ծախսում է բավականաչափ evm_gas_used , այնպես որ max (կապույտ տուփ, կարմիր տուփ) լռելյայն կլինի կապույտ տուփի արժեքը՝ պահպանելով գազի ընթացիկ արժեքի մեթոդը:

Ինչպիսի՞ գործարքների վրա է ազդում EIP-7623-ը:

Որոշելու համար, թե որ գործարքների վրա է ազդում EIP-7623-ը, մենք պետք է որոշենք այն պայմանը, երբ կարմիր տուփը (նոր գազի հաշվարկ) ավելի բարձր է, քան կապույտ տուփը (ընթացիկ գազի հաշվարկ):


Անտեսելով պայմանագրի ստեղծման ժամկետը և արժեքները փոխարինելով պարամետրերում, մենք ստանում ենք հետևյալ պայմանը. Գործարքները կունենան գազի ավելի բարձր արժեք, եթե EVM-ի կատարման համար սպառված գազը 6 անգամ պակաս է, քան զանգերի տվյալները:


Սա ավելի ինտուիտիվ դարձնելու համար եկեք երկու կողմերն էլ բաժանենք 4-ի tokens_in_calldata ի: Հիշենք, որ 6 tokens_in_calldata ն այն գազն է, որը վճարվում է գործարքի ժամանակ զանգերի տվյալների համար:



Այս վերջնական հավասարումը ցույց է տալիս, որ եթե EVM-ի կատարման համար օգտագործվող գազը կրկնակի պակաս է զանգի տվյալների համար օգտագործվող գազից, ապա գործարքը կպահանջի ավելի բարձր վճարներ զանգերի տվյալների համար:

Որքա՞ն կբարձրանան Calldata-ի ծախսերը EIP-7623-ից հետո:

Ենթադրենք գործարքի համար նվազագույն գազը 21000 է, EVM-ի կատարման համար օգտագործվող գազը k է, իսկ զանգի տվյալների համար օգտագործվող գազը՝ kx: Գործարքի ընդհանուր արժեքը այնուհետև կարող է արտահայտվել հետևյալ կերպ.


Ընթացիկ հաշվարկով (առանց EIP-7623) արժեքը կկազմի 21000+k+kx: Հետևաբար, EIP-7623-ի հետ աճի տեմպը կլինի.



Աճման արագությունը՝ որպես k- ի ֆունկցիա, ներկայացված է ստորև.


Գործնական ազդեցությունը հասկանալու համար եկեք ուսումնասիրենք գազի օգտագործման վիճակագրությունը ընդհանուր գործառույթների մեթոդների համար՝ կենտրոնանալով օգտագործողների մեծամասնությանը ծանոթ մեթոդների վրա:

Ապակենտրոնացված բորսաներում փոխանակման տարբեր գործառույթներից առավել լայնորեն օգտագործվում է swap(string, address, uint256, bytes) :


Միջին հաշվով այն օգտագործում է 5,152 զանգի տվյալների համար և 175,742՝ EVM-ի համար , և դա 34 անգամ ավելի մեծ արժեք ունի: transfer(address, uint256) ֆունկցիան, որն օգտագործվում է ERC20 տոկենների փոխանցման համար, սպառում է մոտ 24,501 գազ EVM-ի կատարման համար, մոտ 40 անգամ ավելի, քան 620 գազը, որն օգտագործվում է զանգերի տվյալների համար։


Այս գործառույթների նման, օգտատերերի ամենօրյա գործարքների մեծ մասը զգալի տարբերություն ունի զանգի տվյալների և EVM-ի կատարման համար օգտագործվող գազի միջև, ինչը նշանակում է, որ դրանք դժվար թե ազդվեն EIP-7623-ի կողմից:


Աղբյուր՝ https://ethresear.ch/t/eip-7623-post-4844-analysis/19199


Ethereum-ի հետազոտող Թոնի Ուահրստատերի կողմից տրամադրված վերլուծությունը ցույց է տալիս, որ եթե EIP-7623 կիրառվի, ապա Ethereum-ի վերջին գործարքների 3.02%-ը կազդի: Նրա վերլուծությունը նաև բացահայտում է, թե որ գործառույթների մեթոդները կազդեն և գնահատում են այդ մեթոդների ծախսերի աճը: Wahrstätter-ի կողմից տրամադրված հետագա վերլուծությունը ցույց է տալիս, որ Ethereum-ով կատարված վերջին գործարքների դեպքում EIP-7623-ի կիրառման դեպքում տուժում է գործարքների 3,02%-ը:


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


EIP-7623-ի ազդեցության տակ գտնվող գործառույթներից առավել հաճախ օգտագործվում է addSequencerL2BatchFromOrigin() , որը սովորաբար օգտագործվում է Ethereum-ում հավաքագրվող գործարքների հաջորդականացման համար: Մեկ այլ ազդակիր մեթոդ է commitBatches()- ը, որը հաճախ օգտագործվում է հավաքագրման գործարքներում: Ակնկալվում է, որ այս երկու գործառույթները կունենան ծախսերի ամենազգալի աճը, այս մեթոդների կիրառման դեպքում գազի ընդհանուր ծախսերի մոտ 150% աճ:


Այնուամենայնիվ, համախմբումները կարող են օգտագործել բլբերը տվյալների տեղադրման համար, և շատ հավաքակազմեր, ինչպիսիք են Arbitrum One-ը և Base-ը, արդեն դա անում են : Հետևաբար, տվյալների տեղադրման համար բլբեր օգտագործող բլոկները, հավանաբար, մեծ ազդեցություն չեն ունենա EIP-7623-ի կողմից պարտադրված ավելացված ծախսերի վրա:

Վերլուծելով EIP-7623-ի ազդեցությունը բլոկի չափերի վրա

EIP-7623-ը մեծացնում է գազի արժեքը այն գործարքների համար, որոնք օգտագործում են մեծ քանակությամբ զանգերի տվյալներ: Սա նշանակում է, որ սպամային հարձակումները, որոնք մեծապես հիմնված են զանգերի տվյալների վրա, կպահանջեն մոտավորապես երեք անգամ ավելի թանկ գազի ծախս՝ արդյունավետորեն նվազեցնելով բլոկի առավելագույն չափը 2,54 ՄԲ-ից մինչև մոտ 0,72 ՄԲ: Հետևաբար, Ethereum ցանցն ավելի լավ կհամալրվի ամենավատ սցենարները կարգավորելու համար, որտեղ մեծ բլոկները շարունակաբար տարածվում են:


Բլոկի հնարավոր առավելագույն չափի կրճատումը հնարավորություն է ստեղծում ավելացնել մեկ բլոկի մեջ ներառված բշտիկների քանակը: Ներկայումս բլբերների առավելագույն քանակը 6 է, յուրաքանչյուրը 128 ԿԲ չափով: Եթե EIP-7623-ն ընդունվի, և բլոկի նույն առավելագույն չափը պահպանվի, հնարավոր կլինի ավելացնել բլբերների առավելագույն քանակը մինչև մոտ 18, ինչը նշանակում է հավաքների առավելագույն TPS (վայրկյանում գործարքներ) 3 անգամ ավելացում:


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


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

Որո՞նք են EIP-7623-ի իրականացման հետ կապված այլ նկատառումներ:

Թեև EIP-7623-ն առաջարկում է զգալի առավելություններ, այն կարող է ազդել փոքր համախմբումների վրա՝ անհրաժեշտություն առաջացնելով օգտագործել բլբեր՝ զանգերի տվյալների փոխարեն: Ցածր պահանջարկ ունեցող միավորների համար 128 ԿԲ մեծ բլբի չափը կարող է պահանջել, որ նրանք ավելի երկար սպասեն, մինչև նրանք կարողանան լրացնել ամբողջ բշտիկը: Այս իրավիճակը մեծացնում է բշտիկների փոխանակման արձանագրությունների անհրաժեշտությունը, ինչը թույլ է տալիս բազմաթիվ հավաքագրումներ կիսել մեծ բլբի տարածքը ավելի լավ ծախսերի արդյունավետության համար:


Թեև բլբի բազային վճարը ներկայումս շատ ցածր է (բլբները դարձնելով DA-ի էժան տարածք), պահանջարկի հանկարծակի աճը կարող է զգալի բեռ դնել այս հավաքների վրա: Առանց մեկ բլոկի բլոկների քանակի միաժամանակյա աճի, EIP-7623-ը կարող է ավելի մրցունակ դարձնել DA գործարքներ ներկայացնող խմբաքանակները, քանի որ DA-ի ընդհանուր հզորությունը նվազում է ընդհանուր առմամբ: Անհրաժեշտ է գնահատել, թե արդյոք բլբերների քանակը պետք է միաժամանակ ավելացվի այս տեղաշարժը հարմարեցնելու համար:


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


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


Բացի այդ, չափանիշները մեծապես կախված են EVM գործառնությունների կամ գազի սահմանաչափի կողմից սահմանված այլ պարամետրերից: Օրինակ, եթե Ethereum-ը ապագայում մեծացնի բլոկային գազի սահմանաչափը մինչև 300 միլիոն, EIP-7623-ի շեմը նույնպես պետք է փոփոխվի՝ առավելագույն բլոկի չափը պահպանելու համար:

Եզրակացություն

EIP-7623-ը Ethereum-ի բարելավման առաջարկ է, որի նպատակն է նվազեցնել բլոկի առավելագույն չափը՝ կարգավորելով զանգերի տվյալների արժեքը՝ մասնավորապես թիրախավորելով DA-ի նպատակային գործարքները: Այս ճշգրտումը կարող է պոտենցիալ մեծացնել ոչ բլբի DA գործարքների արժեքը մինչև 300%-ով, մինչդեռ օգտագործողների ամենօրյա գործարքների մեծ մասը մնում է անփոփոխ:


Այս գրառման ընթացքում մենք ուսումնասիրել ենք առաջարկի դրդապատճառը, դրա հետևանքները, տուժող գործարքների տեսակները և հնարավոր մտահոգությունները, որոնք կարող են առաջանալ: Հուսով եմ, որ այս գրությունը կօգնի ձեզ ավելին հասկանալ այս վերջին առաջարկի մասին և մանրամասն պատկերացումներ է տալիս դրա բովանդակության վերաբերյալ: Եթե հետաքրքրված եք և ցանկանում եք ավելին իմանալ, կարող եք հետևել Toni Wahrstätter-ի վերլուծությանը և բացատրությանը և մասնակցել Ethereum Magicians ֆորումի բաց քննարկմանը :


Հեղինակի նշում. Այս հոդվածի տարբերակը սկզբնապես հրապարակվել է այստեղ :