在内核中,以太坊的起点是一个相当规则的使用内存困难的工作量证明机制挖矿的不附带多少额外复杂度的加密货币,以太坊在许多 方面比我们今天使用的基于比特币的加密货币简单。由多个输入输出构成的交易概念被更直观的基于平衡账目的模型取代了。
修改实施幽灵协议
什么事幽灵协议?幽灵是一个协议,通过这个协议,区块可以包含不只是他们父块的散列值,也散列付款的父块的父块的其他子快的陈腐区块。这确保陈腐区块任然有助于区块链的安全性,并减轻大型矿工在快速区块链上的有优势的问题,因为他们能够立即得知自己的区块,因此不太可能产生陈腐区块。
以太坊仅采用了幽灵协议的最基础部分,即废区块只能以叔区块的身份被它的兄弟区块的子区块,而不是更远关系的后辈区块,纳入 计算。这样做有几个原因。首先,无条件的幽灵协议将给计算给定区块的哪一个叔区块合法带来过多的复杂性。其次,带有以太坊所 使用的补偿的无条件的幽灵协议剥夺了矿工在主链而不是一个公开攻击者的链上挖矿的激励。最后,计算表明基础部分的幽灵协议已 经拥有了幽灵协议 80%以上的益处, 并且在区块生成时间 40 秒的情况下提供了和区块生成时间为 2.5 分钟的莱特币可相比较的废块 率。不过,我们将保守一点,依旧选择和质数币相当的 60 秒区块时间因为单个区块需要更长的时间确认。
以太坊客户端 P2P 协议
以太坊客户端 P2P 协议是一个相当标准的加密货币协议,并且能够容易地为其它加密货币使用;仅有的改动是引入了上述的“幽灵“协 议。以太坊客户端基本上是被动的;如果没有被触发,它自己做的仅有工作是调用网络守护进程维护连接及定期发送消息索要以当前 区块为父区块的区块。然而,该客户端同时会更强大;与只存储与块链相关的有限数据的 bitcoind 不同,以太坊客户端将同时扮演一 个功能完整的区块浏览器的后台的角色。
货币及其发行
以太坊网络包含其内建的货币,以太币,在网络内包含一种货币的原因是双重的。首先,以太币被奖励给矿工以促进网络安全。其次, 用它来支付交易费用是一种反欺诈机制。类似 Hashcash 的以交易为单位的工作量证明和放任自由是收取交易费的两个替代方案,前 者浪费资源并且对于低档计算机和智能手机是一种不公平的折磨,后者将会导致网络立刻被无限循环的“逻辑炸弹”合约淹没。以太 币有一个理论上的最大量 - 2128 单位 (比照比特币的 250.9 单位),虽然在可预见的将来不会有超过 2100 被发行。为方便和避免将来 的争论(参见现在关于 mBTC/uBTC/聪的争论),这里提前为一些数额设定单位:
数据格式
以太坊中的所有数据都以“递归长度前缀编码(recursive length prefix encoding,RLP)”形式存储, 这种编码格式将任意长度和维 度的字符串构成的数组串接成字符串。
挖矿算法
挖矿算法的一个令人高度向往的特性是对专业化硬件优势的抵抗力。最初,通过允许每一个人用 CPU 参与挖矿过程,比特币被设想为 高度民主的货币。
交易
交易合法的条件: (i)签名具有合法格式 (即 27 <= v <= 30, 0 <= r < P, 0 <= s < N), 以及 (ii) 发送地址具有足 够的资金支付交易金额和交易费用。 一个区块不能够包含一个非法的交易;如果一个合约产生了一个非法交易则该交易将直接无效。 交易费用将被自动包含。如果一个用户自愿支付更高费用,他总可以通过构建一个合约来自动地发送一定数量或一定比例的金额给现 区块的矿工同时加速交易确认。
区块奖励
个矿工接受三种奖励:静态的产生区块的奖励,交易费用,以及上面幽灵协议部分描述过的叔区块/侄区块奖励。
难度调整