货币,而不是破坏这个系统使得其自身财富的有效性受损。
如果最近的交易已经被纳入了足够多的区块之中,那么就可以丢弃该交易之前的数据,以回收硬盘空间。
为了同时确保不损害区块的随机散列值,交易信息被随机散列时,被构建成一种merkle树(merkle tree)的形态,使得只有根(root)被纳入了区块的随机散列值。
通过将该树(tree)的分支拔除(stubbing)的方法,老区块就能被压缩。而内部的随机散列值是不必保存的。
不含交易信息的区块头(block header)大小仅有80字节。
如果我们设定区块生成的速率为每10分钟一个,那么每一年产生的数据位4.2mb。(80 bytes * 6 * 24 * 365 = 4.2mb)。
2008年,pc系统通常的内存容量为2gb,按照摩尔定律的预言,即使将全部的区块头存储于内存之中都不是问题。
在不运行完整网络节点的情况下,也能够对支付进行检验。
一个用户需要保留最长的工作量证明链条的区块头的拷贝,它可以不断向网络发起询问,直到它确信自己拥有最长的链条,并能够通过merkle的分支通向它被加上时间戳并纳入区块的那次交易。
节点想要自行检验该交易的有效性原本是不可能的,但通过追溯到链条的某个位置,它就能看到某个节点曾经接受过它,并且于其后追加的区块也进一步证明全网曾经接受了它。
当此情形,只要诚实的节点控制了网络,检验机制就是可靠的。
但是,当全网被一个计算力占优的攻击者攻击时,将变得较为脆弱。
因为网络节点能够自行确认交易的有效性,只要攻击者能够持续地保持计算力优势,简化的机制会被攻击者焊接的(fabricated)交易欺骗。
那么一个可行的策略就是,只要他们发现了一个无效的区块,就立刻发出警报,收到警报的用户将立刻开始下载被警告有问题的区块或交易的完整信息,以便对信息的不一致进行判定。
对于日常会发生大量收付的商业机构,可能仍会希望运行他们自己的完整节点,以保持较大的独立完全性和检验的快速性。
价值的组合与分割(bining and splitting value)
虽然可以单个单个地对电子货币进行处理,但是对于每一枚电子货币单独发起一次交易将是一种笨拙的办法。
为了使得价值易于组合与分割,交易被设计为可以纳入多个输入和输出。
一般而言是某次价值较大的前次交易构成的单一输入,或者由某几个价值较小的前次交易共同构成的并行输入,但是输出最多只有两个:一个用于