Web 3方向的论文阅读笔记。
Bitcoin、BlockStack、Ethereum White Paper三篇均可以从Mit 6.824中找到。
Bitcoin: A Peer-to-Peer Electronic Cash System
提出
数字签名能够满足“在线的双方直接交易而不通过第三方的经济机构”的要求,但是无法防止double-spending的问题。同时,中间机构数字货币不能进行不可逆的交易,同时需要支付中间费用。
double-spending是指加密货币可能被使用两次或两次以上的风险。如果满足特定条件,区块链内的交易信息可以更改。
为了解决这些问题,提出了一种点对点的方案,通过网络时间戳的哈希,形成一种如果没有证明则无法被更改的记录。最长的链不仅仅作为交易证明,而且来自于最大CPU算力池。
交易
除了下图所示的交易系统之外,需要一个共识系统,让大多数节点认同每笔交易是第一次到达的节点。
时间戳服务器
最开始的想法是使用一个包含有大量项的时间戳哈希,并且将其发布。
建立分布式的时间戳服务器需要使用类似于Hashcash的工作证明系统,证明系统通过cpu计算此前交易的某些哈希值进行。
交易过程如下所示:
1)新交易广播到所有节点。
2)每个节点将新交易收集到块中。
3)每个节点都为这个块找到工作证明。
4)当节点找到工作证明时,它将块广播到所有节点
5)节点仅在所有交易中都有效并且未花费时接受块
6)节点通过使用接受块的哈希作为先前的哈希来创建链中的下一个块来表达对块的接受
激励机制
块中的第一笔交易是一项特殊交易,该交易启动了块的创建者拥有的新硬币。这增加了节点支持网络的动力,并提供了一种将硬币分配到发行的方法,因为没有中央机构发布它们。稳定增加数量的新硬币类似于金矿矿工花费资源来增加循环的黄金。在这种情况下,花费的时间和电力是成本。
空间回收
区块链使用Merkle Tree存储交易记录,因此可以丢弃过往的交易记录以节省空间。
隐私级别
通过公共密钥匿名,可以打断区块链的信息流,实现隐私保护。
PBFT- 半同步算法
MyTumbler - 异步共识算法