区块链技术与应用【肖臻老师】笔记整理之------15-ETH-账户

注:没有全部复原,抽取了主体知识,加入了一些自己的理解,强烈建议去学习肖臻老师的课程,这绝对算得上是国内区块链讲解的顶级教程,纯学术和技术

  • BTC使用的是基于模型的,Transaction-based ledger,想要只要余额需要根据UTXO模型一个个找,可能自己都不知道有多少钱,好处是隐私性比较好,但是比较别扭,与日常体验不一样

    BTC中UTCXO别扭之处:)

    1.A->B(10BTC),A可能一个来自于D(5BTC),另一个输入来源于E(5BTC),提供之前的输出,才能狗进行交易,

    2.A->B(10BTC),B->C(5BTC),B只想转出去5个,但是BTC必须全部花出去,所以还需要将剩下的5BTC转回给自己

  • ETH账户是 account-based ledger

    系统中要显式地记录每个账户中有多少个ether,类似于banks

    1. 优点:这种类型对于double spending attack(发出者不诚实spend again)具有天然的防御作用,花两次扣两次就可以

    2. 弱点:replay attack:A->B(10ether)重放攻击(接收者不诚实 receive again)

      一个idea:在tx中加一个nonce,每发一次就+1

      ps:改变余额需要所有全节点认可,自己没有办法随便改,不需要考虑

  • 两类账户

    • 外部账户 externally owned account 公私钥控制
      • balance
      • nonce:计数器,与BTC的随机数不一样
    • 合约账户 smart contract account
      • balance
      • nonce
      • 合约账户不能主动发起一个交易,只能调用另外的合约交易,所有交易只能由外部账户发起,
      • code
      • storage

你可能感兴趣的:(区块链,区块链,以太坊)