前一阵出差了一趟,这几天把Garay的The Bitcoin Backbone Protocol:Analysis and Applications读完了,有了些新的收获。

在我们之前的文章中,实际上好多的名词或者定义都可以认为是从这篇文章借鉴过来的。我有些概念看完之后依然不是非常理解,先记录下一些印象比较深刻的内容吧。

符号定义

  1. $\gamma$ 就是指诚实节点所具有的的算力
  2. $\beta$ 是指恶意节点所具有的的算力
  3. $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。 这三个算法实际上和我们理解的常见的算法内容是一样的,只是更加学术,然后对于后面的理论比较容易应用。

其他

论文还对一些其他的内容进行了讲解,我还有些头大,以后再看一遍论文说不定就理解啦。