美文网首页
2018-07-23 ETH 账户抽象

2018-07-23 ETH 账户抽象

作者: logz2020 | 来源:发表于2018-07-24 09:56 被阅读35次

    背景

    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.

    相关文章

      网友评论

          本文标题:2018-07-23 ETH 账户抽象

          本文链接:https://www.haomeiwen.com/subject/ipujmftx.html