1.mining puzzle: 相较于比特币的 ASIC 矿机,以太坊为了避免挖矿专业化,采用了 memory hard mining puzzle 的挖 矿方式.这样设置的目的是在一定程度上限制了 ASIC 芯片的使用。将来以太坊将会从PoW 转为 PoS.
2.智能合约: 比特币之后,人们不禁会想,除了货币可以去中心化,还有什么是可以去中心化的?以太坊提供了一种 去中心化的合约 的支持。所谓的 去中心化的合约 是什么呢?现实中的合约是靠第三方可信的机构来维持的,如:合约有问题,想解决就要到法院打官司。如果合同是可以通过代码来实现,就可以将其放到区块链上,通过区块链的不可篡改性来保证代码的正确运行。什么时候用呢?如果一个合同的签署方是来自世界各地的,没有一个统一的司法机构,这时要用司法手段来维护合同的有效性是比较困难的,这时用智能合约就比较合适了。
比特币是基于交易的模型,以太坊是基于账户的模型。系统中要显式的展示账户中有多少个以太币,A转账给B,不用说明币的来源,只需查看A的账户是否有足够多的余额。
基于账户的模型对于double spending attack 有天然的防范。
以太坊是如何防范重放攻击呢?
很简单,加一个交易次数计数器。这个交易次数要成为交易内容的一部分,一起发布出去,交易和交易次数都是受到交易者的签名保护的。每次发起交易时,计数器加1。如果有人重放该交易,其他节点会发现该交易已经被执行过了,就不会再执行。假设A当前的nonce是13,A发起一个对B的转账,nonce+1,其他节点发现nonce为13的交易没有被执行,就会执行该交易,并将自己所维护的nonce改为13+1即14,如果B重放该交易,其他节点则会发现nonce为14的交易已经被执行过了,就不会再执行。
以太坊中的账户分为两种,一类是 外部账户 ,一类是 合约账户
为什么要设计一种新的账户模型,而不用比特币的基于交易的模型呢?
因为智能合约的存在,以太坊中比较希望使用者有一个固定的身份,如果是基于交易的模型,合约账户的地址发生改变的,使用者向合约账户中转账后,可能找不到当初转账的那个合约账户。