查看原文
其他

证明技术简介:模型和假设

Dfifans DFINITY 2022-07-07




这是我与Robert讨论的第2部分,该主题涉及DFINITY共识白皮书中用于证明的系统模型和威胁模型。Robert特别说明了有关网络同步和拜占庭故障的假设。


Robert:所以让我们跳到证明系统中的下一个重要内容,这就是我们的证明模型。我已经提到过该模型可以看作两个子模型,一个是系统模型,它描述了我们系统中可用的工具集,另一个是系统模型。


因此,我们可以在系统中使用所有的机制、工具和方法。另一方面,我们希望有一个安全的系统,这意味着我们要以某种方式假设对手可能会来并试图破坏我们的系统或滥用它,因此我们也必须对对手进行建模。


密码学算法


Robert:要进一步介绍细节,可以在系统模型中使用各种工具,其中一种显然是在加密设置中使用密码学。所有加密技术都有其自己的假设。


因此,诸如签名方案或加密之类的密码算法,或DFINITY所使用的阈值签名方案,都必须满足一组假设,以保证基础密码工具的安全性。


因此,我们在这里不做详细介绍,但是我们需要满足所有假设才能拥有完善的密码学。


同步假设


Robert:那么,另一种重要的假设或对我们自己系统重要的假设是同步假设。这是什么意思?分布式系统有两种,或者是区分整个分布式算法领域的一种方法,它们是同步和异步算法。


同步意味着您对数据包或某个块或事务在网络上传播到达网络中其它一方所花费的时间有某种假设。


我的意思是时间是可变的,这取决于地理位置。从某种意义上说,它是受光速的上限的,因为您发送数据包的速度不能超过光速。但显然在实践中,它会比光速低不少。


网络遍历时间


Robert:我们有一些网络遍历时间,这是Delta的缩写。在我们的系统中,我们使用了这个网络遍历时间假设,因此我们需要在这个网络遍历时间上设置一个上限,以保证系统的活性和安全性。我们对活性和安全性使用的假设稍有不同。


为了活性起见,块时间延迟是强制性的延迟,它确保公证人将等待一段时间并收集块,以便块生产者实际上有机会将其块分发给公证人。


我们的系统中有区块时间,该区块时间至少必须为三个Delta才能具有活性。


时间属性


Robert:我们有第二个属性,在我们的白皮书中简称为T,这是您作为网络观察者等待的时间,以确保您的交易已记录在案并已完成。因此,我在之前的视频中已经提到过,您需要等待两次确认以及2个Delta才能确保交易是最终的。


为了确保安全,我们需要两次确认以及第二次确认后再加上2个Delta。这是我们系统的概述。在一篇书面论文中,它要比这复杂得多,但这可以让您有个全面的了解。


系统模型和威胁模型


Cédric:因此,为了了解我们现在的位置,我们首先讨论了提出证明所需的条件,而您说我们首先必须定义我们要证明的属性,当然还要定义环境。我们首先讨论了属性,然后经历了三个不同的层次。


现在我们在谈论环境,您提到了一个模型。基本上,我们必须查看两个模型,当它是系统模型时,我们拥有控制权,然后是威胁模型,这是我们无法控制的。


威胁模型


Robert:让我们继续威胁模型。这也很有趣,因为它也可以分为两个方面,其中之一是对手实际上可以做什么。它能阻止其它节点采取任何行动,还是阻止其它节点通过攻击或DDoS攻击来阻止它们吗?还是对手可以做更多?对手可以实际控制节点并发送任何数据吗?它能够采取任意行动吗?因此,这是一个重要的重要区别。


崩溃故障模型


Robert:我们称之为第一个模型,在该模型中,对手被允许或者它能够使节点崩溃或建立一个仅仅崩溃的节点。这是崩溃故障模型。


另一方面,我们有一个带有对手的完整模型,该模型具有完全控制权,被称为拜占庭故障模型。


拜占庭故障模型


Cédric:从某种意义上讲,崩溃模型是二进制的。是或否,它可以阻止还是不能阻止。就攻击者拥有的攻击因素而言,拜占庭故障模型更具开放性。


Robert:崩溃故障是您发送一些数据,或者您充当协议规定的角色,或者您安静。拜占庭容错模型允许您执行任何类型的操作。


它不允许您破坏密码,因为我们假设对手无法破坏基本的假设,即您无法将极大量的因数分解为素数之类的东西。


当我们考虑一个对手时,这也是我们必须做的。否则,我们的系统将崩溃。


诚实节点的分数


Robert:另一个重要方面,就是对抗能力的数量或分数。因此,与遵循协议的诚实节点数量相比,对手拥有多少个节点,这可以描述为诚实节点的一部分。


这个数字有重要的理论上限,具体取决于您是使用同步网络还是异步网络。


在同步网络中,拥有诚实的多数票通常就足够了,因此至少一半的网络应该诚实。这是用于同步网络。


老实说,在异步网络中,通常至少需要三分之二。


DFINITY同步网络


Robert:但是我们有DFINITY同步网络。因此,您将假设使用50%的诚实节点就可以了。现在,我们的系统中有一个警告,我必须做。


DFINITY基于子组。因此,我们有这四百个节点的组,这些节点对块进行了公证,并有助于随机性,并且这些组是从整个节点总数中随机选择的。


由于随机抽样的多样性,即使您有50%或51%的诚实节点,也有可能最终在某个组中最终有超过50%的不诚实节点。这就是为什么我们需要有一个额外的余量,以确保这种可能性不会很高。


我们要做的是,如果现在从异步边界或异步系统中获取这三分之二的数据,那么我们可以证明,如果我们拥有2/3的多数或至少在整个人口中占三分之二,那么一群人将不可能有超过50%的不诚实节点。


在我们设置数字的方式上,这很优雅,它与异步网络的上限相对应。


Cédric:尽管它是一个同步网络,但这是一个完全不同的属性,可将我们引向2/3上限,但它恰好与异步网络的上限相关。



作者:Cédric Waldburger

(Medium, 2018.10.2)

翻译:Catherine



证明技术简介:区块链属性

Arthur和Cédric在“Inside DFINITY”沙发上

如今创建完全去中心化的代币交易所的秘诀

简而言之DFINITY:非技术性介绍



进Dfinity官方社群,请添加小助手微信:

comiocn




长按关注

Dfinity官方微信

给你第一手资讯和项目信息

更可随时答疑解惑



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存