比特币协议论文阅读
文章目录
【注意】最后更新于 June 13, 2018,文中内容可能已过时,请谨慎使用。
前一阵出差了一趟,这几天把Garay的The Bitcoin Backbone Protocol:Analysis and Applications读完了,有了些新的收获。
在我们之前的文章中,实际上好多的名词或者定义都可以认为是从这篇文章借鉴过来的。我有些概念看完之后依然不是非常理解,先记录下一些印象比较深刻的内容吧。
符号定义
- $\gamma$ 就是指诚实节点所具有的的算力
- $\beta$ 是指恶意节点所具有的的算力
- $f$ 指的是计算出问题所需要的次数(占整体算力的比例)
common prefix
前缀属性,就是指我除去了$\lambda$个最后面的区块后,不同节点间的链的内容是一致的 假设$\gamma > \lambda \beta$,然后$\lambda^{2}-f\lambda+1\ge 1$,其中$\lambda \in [1,\infty)$,这样诚实节点会拥有一样的前缀。 如果$f\to 0$,也就是说$\lambda \gets 1$,就是说不需要什么计算就可以得到结果,那么诚实节点和恶意节点的比例几乎相同 如果$f\to 1$,根据证明$\lambda \gets \phi$,实际上意思就是说恶意节点几乎没有。
chain quality
就是指所有的区块中,由诚实节点所产生的区块的数目,根据在common prefix定义的内容,我们可以知道诚实节点贡献的区块的数目至少是$(1-\frac{1}{\lambda})$,所以我们就知道,在实际系统中$\lambda$越大越好
账本属性
我们定义了两个基本属性,保证了账本的两个基本属性persistence和liveness 这两个和common prefix与chain quality是有联系的,大体对应关系就是common prefix对应persistence,chain quality对应liveness persistence的含义是指一个交易所在的区块后面有了$k$个区块,这笔交易一定会被所有诚实节点承认。 liveness是指如果一笔交易由诚实节点生成,那么$k$个区块之后,这笔交易一定能够记录下来。
三个算法
定义了账本的基础属性后,论文还对区块链的核心算法进行了理论上的归纳总结。分别是Chain Validation、Chain Comparison以及Proof of Work。 这三个算法实际上和我们理解的常见的算法内容是一样的,只是更加学术,然后对于后面的理论比较容易应用。
其他
论文还对一些其他的内容进行了讲解,我还有些头大,以后再看一遍论文说不定就理解啦。