背景
Eth包含兩類賬戶抛猫, 外部賬戶和合約賬戶。
外部賬戶由私鑰控制饵沧, 合約賬戶由合約代碼控制。
對(duì)于外部賬戶赌躺,發(fā)送的每一筆交易狼牺,需要包含特定的橢圓曲線(secp256k1)簽名,以及nonce寿谴,來預(yù)防重放攻擊锁右。
以太坊的賬戶抽象,是指統(tǒng)一兩種賬戶類型讶泰,以后只有合約一種賬戶類型咏瑟。
因此,交易中的需要驗(yàn)證的簽名和nonce痪署,不再成為協(xié)議的一部分(hard-coded in tx process)码泞。而是由賬戶通過合約代碼自己來保障交易的安全。
The goal of “account abstraction”, is to reduce the number of account types from 2 (EOA and contract) to 1 (just contract), and to move functionality such as signature verification, gas payment and replay protection out of the core protocol and into the EVM.
比如ECDSA 驗(yàn)證合約狼犯,提供和當(dāng)前以太網(wǎng)絡(luò)類似的交易驗(yàn)證工作余寥。
通過賬戶抽象,下面是一些可以創(chuàng)新的方向悯森,
- Bitcoin-sytle mutisig, 賬戶可以同時(shí)驗(yàn)證多個(gè)簽名宋舷,而不是每次存儲(chǔ)一個(gè)簽名到內(nèi)存。
- 其他的橢圓曲線瓢姻。ed25519祝蝠。
- 其他的簽名算法。環(huán)簽名/門限簽名幻碱。
- 其他的Nonce驗(yàn)證邏輯绎狭。
- UTXO-based token
- 交易手續(xù)費(fèi)的支付方式。對(duì)于dapp而言褥傍,相對(duì)于交易發(fā)送者支付fee儡嘶,合約賬戶支付fee 是更合理的模式。通常情況恍风,dapp的用戶并沒有eth蹦狂。Dapp合約可以將付費(fèi)邏輯編碼,礦工通過靜態(tài)的代碼分析朋贬,從而確保他們會(huì)獲得交易手續(xù)費(fèi)鸥咖。
技術(shù)規(guī)范
EIP 101
- Account 只包含code和storage。
- Ether 不再存儲(chǔ)在Account中兄世。Ether是一個(gè)合約token啼辣,合約部署在0地址中。
- msg.value 不再存在御滩。
- Tx 的結(jié)構(gòu)
現(xiàn)在的Tx鸥拧,包含9個(gè)部分党远。通過RLP編碼后傳輸。
[nonce, gasprice, startgas, to, value, data, v, r, s]
未來的Tx富弦,包含4個(gè)部分沟娱。
[to, startgas, data, code]
startgas - max amount of gas allowed for tx
[expire, ref_block, ref_block_prefix, delay_sec...]
進(jìn)展
EIP101, in discussion
https://ethresear.ch/t/tradeoffs-in-account-abstraction-proposals/263
EIP101方案,代價(jià)比較大腕柜,包括開發(fā)/遷移/額外存儲(chǔ)/兼容等等济似。
幾種折中方案,在討論盏缤。
Lazy full abstration/ Remove nonce abstraction/ 等9種方案砰蠢。
V主推 gasprice + PANIC , 缺點(diǎn)是犧牲gas payment的抽象唉铜,從而無法支持ERC20作為gas費(fèi)用台舱。
時(shí)間點(diǎn), 君士坦丁堡硬分叉
TBD.