1、概述
比特币(BitCoin):去中心化的货币(decentralized money)
以太坊(Etherem):去中心化的合约(decentralized contract)
2、账户
可以很好的防御double spending attack,因为每花费一笔钱,就扣除,更新余额,不需要说明币的来源。
但是存在replay attack,比如:A转给B:10个以太币,发布到网络上,此次交易被写入区块链中,此时A认为本次转账交易已经完成了。假设B是有恶意的节点,它将此次交易又广播了一遍,其他节点会认为A向B又转账了一次,所以A的钱会被扣两次。
和double spending attack相比,replay attack是接收方是恶意的,会导致两次转账。
解决方法:
使用一个交易数nonce,初始值为0,比如A的此次交易是第1个交易,则nonce=1。每发布一个交易,nonce值加一。
以太坊中有两种账户:
1)外部账户(externally owned account):也叫普通账户,由公私钥控制。有余额balance和nonce
2)合约账户(smart contract account):有代码code和storage。建立合约账户时,会返回一个地址,根据这个地址,可以调用这个合约。合约账户不能发起交易,所有交易只能由外部账户发起。
3、为什么要使用以太坊?
比特币是基于交易的账户,其好处是隐私保护较好,因为每次交易都会换一个账户。
以太坊是基于智能合约的账户,它要求参与者有比较稳定的身份。这和生活中一样,如果签订合约的时候使用A身份,签完之后身份变了,这会给合同的执行带来麻烦。