【区块链】ETH-帐户

概述

以太坊概述

比特币称为区块链1.0,以太坊称为区块链2.0,针对比特币运行中出现的问题进行了改进,包括共识机制的改变,mining puzzle改为memory hard类型,需要使用内存,达到了ASIC resistance的目的

增加了对智能合约的支持:

  • bitcoin: decentralized currency
  • ethereum: decentralized contract

account-based ledger 基于帐户的账本模式

对双花有更强的防御作用,但存在reply attack的可能

replay attack 重放攻击

A转给B 10ETH,B在交易结束后再把这条交易写入一次链,就可以收到两笔钱

比特币中由于要说明币的来源,所以不存在replay attack

避免攻击的方法:在交易中增加一个域nonce,用于给A的交易次数计数,A在签名时,签名内容包含着nonce,保证nonce的不可篡改性。系统中的节点不仅要维护帐户A的余额,也要维护A的交易次数。

两类帐户

externally owned account 外部账户

使用公私钥控制

包含balance和nonce(counter)

smart contract account 合约账户

不通过公私钥对控制

包含balance,nonce(counter),code和storage,一个合约可以调用另外一个合约,nonce用来记录调用次数;合约帐户不能发起交易;storage用来保存状态

创建合约后会返回一个合约地址,已知地址即可调用该合约

合约产生的金融衍生品 financial derivative

使用智能合约产生一些金融衍生品,类似于期货

需要保持帐户的稳定性,合约账户满足这一需求

Author: iwannaeat
Link: https://iwannaeat.github.io/2022/09/02/【区块链】ETH-帐户/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.