我们应该用什么样的假设来支持共识协议设计?

这是一个开放性的讨论贴。

共识协议琳琅满目,不同的协议给出的假设或者隐含的假设也都不一样,这也使得他们能够达到不同的性质。对于一个自称是可证明安全的协议,假设是必须的(至少要证明安全就必须定义什么是安全,这就引入了假设)。举例来讲,假设可以有时间模型的假设(同步,弱同步,半同步,异步),也可以有敌手数量的假设(少于一半,少于三分之一),敌手攻击能力的假设(static,adaptive,strong adaptive)以及敌手类型的假设(fail-stop,Byzantine)。这些假设的合理性随着实际应用状况的不同是不同的。因此,一个很重要的问题是,对于给定的实际情况,什么样的假设是更合理的?或者说,对于给定的假设,它适用于什么样的实际场景?更具体来讲,我非常好奇,对于一条公链,它应用的实际的网络状况更贴近同步模型还是半同步模型还是异步模型?如果可以优化(譬如 EOS 就做了某种限制),在什么样的代价下可以达到同步模型的要求?

当然,上述问题也非常笼统,主要是为了引发讨论。

我只知道,只要是协议都有前提假设,只要是网络协议,必然存在意想不到的坑点,工程实现和学术论证总是存在一些意想不到的瑕疵

1 Like