概述
以太坊概述
比特币称为区块链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
使用智能合约产生一些金融衍生品,类似于期货
需要保持帐户的稳定性,合约账户满足这一需求