关于GHAST协议的疑惑

  1. 在其他科普贴中,看到说最初设计是根据“(b 的子树权重)/ (所有区块 - b 的父亲区块的祖先区块) ”是否大于一个阈值来判断是否进入特殊块创建模式。但我在20年的学术论文中看不出来这个,似乎变了。能否给出个清晰易懂的解释。论文使用的格理论看了半天也不明白。似乎是使用了类似PHANTOM的anticone?
    感觉那个规范里比论文里写的清楚点,需要满足下面两个条件。
    ①TimerDis(PAST(B), PAST(P(B’)))≥ 240; 2② SubTW(B’; PAST(B)) – (SubTW(P(B’); PAST(B)) – SubTW(B′;PAST(B)) – Weight(P(B′))) < 1000·Bd.
    但我都看不懂,即使往前翻了十几页找到公式里这些对应符号的说明,依然不理解。
    第一个条件,应该是说最新加入或创建的区块和自己的前区块的创建时间间隔不能太长。但用past()不就是要考虑它的所有子树,并且这个子树只能是main chain上的,不能是referenc edge链接的块。对吧?
    第二个条件就完全不明白了。去掉括号后,就相当于2*SubTW(B’; PAST(B)) -SubTW(P(B’); PAST(B)) +Weight(P(B′))。past(B)包含块B的权重,对吧?SubTW(B’; SubTW(B’; PAST(B)) -SubTW(P(B’); PAST(B)) 是不是相当于 Weight(P(B′))?应该不对了,理解不了了到这里。为啥就1000Bd出来了。对于平衡攻击,应该增加的这个新块并不会带来明显的块数差异啊。反而不如原来设想的anticone比例啥的问题好理解。

还有,条件2的计算是要递归计算?去判断新块的每个祖先节点是否在可信的主链上?

还有问题,对于第一次balance攻击,如果之前两个分链的块的个数就是接近,那你这个条件2不就无法生效了吗?

  1. checkpoit和time chain有什么关系?也看不太懂