交易 (Transactions)
我们将电子货币定义为一系列数字签名。每个所有者通过数字签名前一笔交易的哈希值和下一个所有者的公钥,并将这些添加到货币末尾,从而将货币转移给下一个所有者。收款人可以验证这些签名以验证所有权链。
Transaction: 交易
Owner [N]’s Public Key: 所有者 [N] 的公钥
Hash: 哈希
Owner [N]’s Signature: 所有者 [N] 的电子签名
Owner [N]’s Private Key: 所有者 [N] 的私钥
当然,问题在于收款人无法验证某个所有者是否没有双重支付该货币。一个常见的解决方案是引入一个可信的中央权威机构,或造币厂,来检查每笔交易是否存在双重支付。在每笔交易之后,货币必须返回造币厂以发行新货币,只有直接由造币厂发行的货币才被信任不会被双重支付。这一解决方案的问题在于整个货币系统的命运依赖于运行造币厂的公司,所有交易都必须通过他们,就像银行一样。
我们需要一种方式让收款人知道之前的所有者没有签署任何早期交易。就我们的目的而言,最早的交易才是有效的,因此我们不关心后来的双重支付尝试。确认某笔交易不存在的唯一方法是了解所有交易。在基于造币厂的模型中,造币厂了解所有交易并决定哪些先到达。为了在没有可信第三方的情况下实现这一点,交易必须公开宣布[1],并且我们需要一个系统让参与者就收到交易的顺序达成单一的历史记录。收款人需要证明在每笔交易发生时,大多数节点都同意这是第一笔收到的交易。