
Kas yra paskyros abstrakcija?
Paskyros abstrakcija yra naujoviška blokų grandinės koncepcija, kuria siekiama suvienodinti ir pagerinti vartotojų paskyrų funkcionalumą decentralizuotoje sistemoje.. Ethereum tinkle šiuo metu yra dviejų tipų paskyros:
- Išoriškai priklausančios paskyros (EOA): valdomas privačiais raktais ir paprastai priklauso asmenims ar subjektams.
- Sutarčių sąskaitos: išmaniosios sutartys, vykdomos remiantis konkrečia logika, įrašyta jų kode.
Paskyros abstrakcija siekia suvienodinti dviejų tipų Ethereum paskyras– EOA (išoriškai priklausančios paskyros) ir išmaniosios sutarties paskyros – į vieną patogesnį modelį. Tai atliekama leidžiant išmaniosioms sutartims inicijuoti ir patvirtinti operacijas.
Paprastais žodžiais tariant, tai reiškia, kad užuot pasikliavę vien privačiais raktais (kaip naudojant EOA), išmaniosios sutartys dabar gali valdyti ir vykdyti operacijas vartotojų vardu, siūlydami didesnis lankstumas ir naujos funkcijos, pvz., pritaikomi saugos modeliai, automatizuotos ir be dujų operacijos, metaoperacijos ir padidintas privatumas. Šios naujovės supaprastina vartotojų sąveiką ir išplečia Ethereum ekosistemos galimybes.
Su kokiomis problemomis susiduriame? Kodėl mums to reikia?
Dabartinė Ethereum tinklo struktūra turi tam tikrų apribojimų:
- Vartotojo patirtis: EOA reikalingi privatūs raktai ir dujų mokesčiai eteryje, todėl nauji naudotojai, kuriems gali būti sudėtingos piniginės apsaugos ir dujų sąvokos, sukelia trintį.
- Saugumo rizikos: Dvejetainis privačių raktų pobūdis daro juos jautrius praradimui ar vagystei, dėl ko neatšaukiamai prarandamos lėšos.
- Ribotos funkcijos: EOA trūksta programuojamumo, todėl negalima įdiegti pažangių funkcijų, pvz., kelių parašų piniginės arba kasdienių operacijų apribojimų.
Paskyros abstrakcija siekiama išspręsti šias problemas, pagerinti tinklo naudojimą, saugumą ir funkcionalumą.
Požiūriai į paskyros pašalinimą: privalumai ir trūkumai
1. Protokolo lygio pakeitimai
Apima Ethereum protokolo pakeitimą, kad būtų įgalintos vietinės išmaniosios sutartinės piniginės. Šis metodas reikalauja sutarimo visame Ethereum tinkle.
- Argumentai „už”: Visiškai integruotas ir standartizuotas sprendimas, potencialiai labai efektyvus.
- Minusai: lėtas priėmimas, reikia kietų šakių ir kyla suderinamumo problemų.
2. 2 sluoksnio sprendimai
2 sluoksnio tinklai gali įdiegti pasirinktinę operacijų patvirtinimo logiką, iškraunant operacijų apdorojimą.
- Argumentai „už”: Greitas ir lankstus, leidžiantis eksperimentuoti nekeičiant pagrindinio Ethereum protokolo.
- Minusai: reikalingas sudėtingas susiejimas ir gali nepavykti visiškai išspręsti pagrindinių EOA problemų.
3. ERC-4337 („Ethereum“ užklausa dėl komentarų)
Siūlomas paskyros abstrahavimo įgyvendinimas tik programos lygiu, nereikalaujant protokolo pakeitimų.
- Argumentai „už”: Suderinamas atgal, lankstus ir išnaudoja esamą infrastruktūrą.
- Minusai: reikia papildomos grupavimo infrastruktūros ir naujo operacijų srauto.
Kas yra ERC-4337 ir kodėl tai geriausias įgyvendinimas?
ERC-4337 pristato naują operacijų tvarkymo modelįžinomi kaip UserOperation objektai. Užuot siuntę operacijas tiesiai į „Ethereum“ blokų grandinę, vartotojai pasirašo „UserOperation“ objektus, kuriuos rinkėjai sujungia ir pateikia „blockchain“. Ši sistema leidžia išmaniosioms sutartinėms piniginėms saugiai inicijuoti sandorius nepriklausant nuo esamo sandorio srauto.
Privalumai:
- Programuojamumas: leidžia kūrėjams įdiegti tinkintą patvirtinimo logiką, įgalinant tokias funkcijas kaip socialinis atkūrimas ir kelių parašų piniginės.
- Sumažėjusios išlaidos: Sujungus sandorius galima optimizuoti dujų naudojimą.
- Atgalinis suderinamumas: gali veikti kartu su EOA, siūlydami sklandų perėjimą.
ERC-4337 specifikacijos, detalės ir architektūra
Komponentai:
1. Vartotojas:
- Atjungtas nuo grandinės: sukuria ir pasirašo UserOperation, kuriame yra operacijos duomenys.
2. Vartotojo operacijos:
- Atjungtas nuo grandinės: parodo operacijos duomenis, panašius į įprastos operacijos struktūrą.
3. Rinkinys:
- Atjungtas nuo grandinės: renka kelias vartotojo operacijas.
- Į grandinę: supakuoja juos į paketinę operaciją ir pateikia ją EntryPoint sutarčiai.
4. EntryPoint sutartis:
- Į grandinę: valdo UserOperations vykdymą ir užtikrina operacijų nuoseklumą.
5. Mokėtojas:
- Į grandinę: gali remti operacijų mokesčius mokėdamas už dujas vartotojų vardu.
Darbo eiga:
- Vartotojas sukuria UserOperation už grandinės ribų ir pasirašo.
- Sugrupuotojas renka UserOperations iš skirtingų vartotojų ir pateikia juos EntryPoint sutarčiai.
- „EntryPoint“ sutartimi patikrinama ir vykdoma kiekviena „UserOperation“ ir atitinkamai išskaičiuojami mokesčiai už dujas.
Kas yra Bundleriai išsamiai?
Bundleriai yra specializuoti ERC-4337 architektūros veikėjai. Į jų pareigas įeina:
- Sujungimas: surenka kelias UserOperations ir sujungia jas į vieną paketinę operaciją.
- Pateikimas: siunčia apibendrintą operaciją į EntryPoint sutartį vykdyti.
- Mokesčio surinkimas: pasirūpina mokesčiais už dujas, išskaičiuodamas juos iš UserOperations arba per išorinius rėmimo mechanizmus.
Eth Infinitism Bundler
„Eth Infinitism“ yra orientacinis paketo diegimas, sukurtas dirbti su ERC-4337 paskyros abstrakcijos standartu. Tai suteikia kūrėjams įrankį, skirtą operacijoms sugrupuoti gamybai paruoštoje aplinkoje.
Github: https://github.com/eth-infinitism/account-abstraction
Veiksmai, kaip paleisti „Eth Infinitism Bundler“ su „Geth“.
Žingsniai:
1. Paleiskite Geth Docker konteinerį naudodami šią komandą:
docker run --rm -ti --name geth -p 8545:8545 ethereum/client-go:v1.10.26 \
--miner.gaslimit 12000000 \
--http --http.api personal,eth,net,web3,debug \
--http.vhosts '*,localhost,host.docker.internal' --http.addr "0.0.0.0" \
--ignore-legacy-receipts --allow-insecure-unlock --rpc.allow-unprotected-txs \
--dev \
--verbosity 2 \
--nodiscover --maxpeers 0 --mine --miner.threads 1 \
--networkid 1337
2. Klonuoti Eth-Infinitism Guthib repo – https://github.com/eth-infinitism/bundler
3. Pakeiskite katalogą ir paleiskite
cd bundler
yarn && yarn preprocess
4. Dabar mes įdiegsime sutartis, gautas kartu su paketu, naudodami hardhat –
yarn hardhat-deploy --network localhost
5. Mes pradėsime rinktuvą –
yarn run bundler (or yarn run bundler --unsafe, if working with "hardhat node")
Dabar jūsų rinktuvas yra aktyvus vietiniame URL http://localhost:3000/rpc
6. Norėdami atlikti paprastą testą, atlikite
yarn run runop --deployFactory --network
http://localhost:8545/ --entryPoint
0x0000000071727De22E5E9d8BAf0edAc6f37da032
Runop scenarijus:
- diegia piniginės diegimo priemonę (jei dar nėra)
- sukuria atsitiktinį pasirašytoją (piniginės savininką)
- nustato piniginės adresą ir ją finansuoja
- siunčia operaciją (kuri taip pat sukuria piniginę)
- siunčia kitą operaciją šioje esamoje piniginėje
- (finansavimui naudoja paskyrą (0) arba mnemoninį failą ir prireikus sukuria diegimo programą)
Išvada
Šiame straipsnyje mes gilinomės į sąvoką paskyros abstrakcija Ethereumnovatoriškas metodas, skirtas „blockchain“ funkcionalumui pagerinti išoriškai priklausančių sąskaitų (EOA) sujungimas su sutartinėmis sąskaitomis. Išnagrinėjome dabartinio Ethereum sąskaitos modelio apribojimus, ištyrėme įvairius įgyvendinimo strategijas įskaitant žinomą ERC-4337 standartą, ir aptarė svarbius rinkėjų, tokių kaip Eth Infinitism Bundler optimizuojant sandorių procesus.
Šis tyrimas suteikė visapusišką supratimą, kaip gali palengvinti paskyros abstrakcija saugesnės, patogesnės ir programuojamos sąveikos Ethereum ekosistemojekartu su praktinių įžvalgų apie šių koncepcijų įgyvendinimą naudojant Eth-Infinitism bundler su Geth.




