2018-07-23 ETH 账户抽象

背景

Eth包含两类账户, 外部账户和合约账户。
外部账户由私钥控制, 合约账户由合约代码控制。

对于外部账户,发送的每一笔交易,需要包含特定的椭圆曲线(secp256k1)签名,以及nonce,来预防重放攻击。

以太坊的账户抽象,是指统一两种账户类型,以后只有合约一种账户类型。
因此,交易中的需要验证的签名和nonce,不再成为协议的一部分(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 验证合约,提供和当前以太网络类似的交易验证工作。

通过账户抽象,下面是一些可以创新的方向,

  • Bitcoin-sytle mutisig, 账户可以同时验证多个签名,而不是每次存储一个签名到内存。
  • 其他的椭圆曲线。ed25519。
  • 其他的签名算法。环签名/门限签名。
  • 其他的Nonce验证逻辑。
  • UTXO-based token
  • 交易手续费的支付方式。对于dapp而言,相对于交易发送者支付fee,合约账户支付fee 是更合理的模式。通常情况,dapp的用户并没有eth。Dapp合约可以将付费逻辑编码,矿工通过静态的代码分析,从而确保他们会获得交易手续费。

技术规范

EIP 101

  1. Account 只包含code和storage。
  2. Ether 不再存储在Account中。Ether是一个合约token,合约部署在0地址中。
  3. msg.value 不再存在。
  4. Tx 的结构
    现在的Tx,包含9个部分。通过RLP编码后传输。
    [nonce, gasprice, startgas, to, value, data, v, r, s]

未来的Tx,包含4个部分。
[to, startgas, data, code]
startgas - max amount of gas allowed for tx

[expire, ref_block, ref_block_prefix, delay_sec...]

进展

EIP101, in discussion

https://ethresear.ch/t/tradeoffs-in-account-abstraction-proposals/263
EIP101方案,代价比较大,包括开发/迁移/额外存储/兼容等等。
几种折中方案,在讨论。
Lazy full abstration/ Remove nonce abstraction/ 等9种方案。

V主推 gasprice + PANIC , 缺点是牺牲gas payment的抽象,从而无法支持ERC20作为gas费用。

时间点, 君士坦丁堡硬分叉
TBD.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介 不管你们知不知道以太坊(Ethereum blockchain)是什么,但是你们大概都听说过以太坊。最近在新...
    Lilymoana阅读 3,901评论 1 22
  • 006 以太坊源码解析 - 交易源码分析 以太坊交易基本流程: 完整流程分为以下几个步骤: 发起交易:指定目标地址...
    RickJay阅读 2,277评论 0 0
  • 概念 以太坊是一个可编程区块链,那么允许用户创建属于他们自己的复杂的操作,且作为一个去中介化的平台,提供不同的区块...
    磨链社区阅读 1,123评论 0 1
  • 读书,不仅可以了解别人的生活与感受,也让我进行自我审视。今晚看完《掷地有声》之后,自己对着镜子审视了很久,撩...
    一颗快乐的豌豆阅读 481评论 0 0
  • 今天喝了三瓶酸奶!!!一杯小的1.7 一杯中的5.5 一杯大的7.2 突然觉得有点奢侈诶 近代史又在背单词中度过 ...
    柒Q柒阅读 168评论 0 0