- A+
账户
比特币区块链是纯粹的交易列表,以太坊的基础单位是账户。以太坊区块链追踪每一个账户的状态,每一个区块链状态转换都是账户之间的价值和信息交换。以太坊包含两种账户:
外部账户(Externally Owned Accounts),用私钥来控制
合约账户(Contract Accounts),由合约代码来控制并且只能由外部账户激活
对于大多数用户而言,它们之间的基本区别在于用户控制EOA,因为它们可以控制对EOA进行控制的私钥。 另一方面,合同账户由内部代码管理。 如果它们被人类用户“控制”,那是因为它们被编程为由具有特定地址的EOA来控制,这又由持有控制该EOA的私钥的人控制。 流行术语“智能合同”是指合同帐户中的代码 —— 当事务发送到该帐户时执行的程序。 用户可以通过将代码部署到块链来创建新合同。
合同账户只有在EOA指示的时候才执行操作。 因此,合同帐户无法执行随机数生成或API调用等本地操作,只有在EOA提示的情况下,才能执行这些操作。 这是因为以太坊要求节点能够就计算结果达成一致,这需要严格确定性执行的保证。
挖矿
用户必须向网络支付小额的交易费用。 这样可以保护以太坊区块链不受恶意的计算任务,如DDoS攻击或无限循环。 交易的发件人必须支付他们激活的“程序”的每个指令,包括计算和内存存储。 这些费用是用以太坊本地货币以太来支付的。
这些交易费用由验证网络的节点收集。 这些“矿工”是以太坊网络中接收,传播,验证和执行事务的节点。 然后,矿工们将这些交易(包含于“以太坊区块”中的“账户状态”更新)分组成所谓的“块”,然后矿工们将彼此竞争计算,争取成为下一个被添加到区块链上的块。矿工们通过计算出每个成功的块而获得以太币奖励。这给人们提供了经济上的激励,鼓励人民将将硬件和电力投入到以太坊网络上。
工作量证明
在比特币网络中,矿工的任务是解决复杂的数学问题用来成功进行块的“挖掘”,这种方式被称为“工作量证明(PoW)”。任何计算问题,如果计算所需的资源比验证结果所需的资源高出更多数量级的问题,都是好的工作量证明算法。为了阻止由于使用专用硬件(如ASIC)而使计算集中化,以太坊选择了内存饥饿算法。如果内存如同CPU一样成为计算资源,那么普通的计算机就成为了最理想的硬件。这就使以太坊的工作量证明对ASIC具有抵抗性,这样分布更为分散的计算比硬件集中的区块链(例如比特币)更具有安全性。