区块链演讲稿

鄙人才疏学浅,不足之处还望指正。

https://www.zhihu.com/question/37290469

拜占庭失效

在容错的分布式计算中,拜占庭失效可以是分布式系统中算法执行过程中的任意一个错误。这些错误被统称为“崩溃失效”和“发送与遗漏是实效”。当拜占庭失效发生时,系统可能会做出任何不可预料的反应。

这些任意的失效可以粗略地分成以下几类:

进行算法的另一步时失效,即崩溃失效; 无法正确执行算法的一个步骤; 执行了任意一个非算法指定的步骤 。

各个步骤由各进程执行,算法就是由这些进程执行的。一个错误的进程是在某个点出现了上述情况的进程。没有出现错误的进程是正确的进程。

拜占庭指拜占庭将军问题,这是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定是否攻击某一支敌军。问题是这些将军在地理上是分隔开来的,并且将军中存在叛徒。叛徒可以任意行动以达到以下目标:欺骗某些将军采取进攻行动;促成一个不是所有将军都同意的决定,如当将军们不希望进攻时促成进攻行动;或者迷惑某些将军,使他们无法做出决定。如果叛徒达到了这些目的之一,则任何攻击行动的结果都是注定要失败的,只有完全达成一致的努力才能获得胜利。

拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭容错协议必须处理这些失效,并且这些协议还要满足所要解决的问题要求的规范。这些算法通常以其弹性t作为特征,t表示算法可以应付的错误进程数。

很多经典算法问题只有在t<n/3是才有解,如拜占庭将军问题,其中n是系统中进程的总数。

 

中性化例子

网上购买一本书的流程:

第一步,你下单并把钱打给支付宝;

第二步,支付宝收款后通知卖家可以发货了;

第三步,卖家收到支付宝通知之后给你发货;

第四步,你收到书之后,觉得满意,在支付宝上选择确认收货;

第五步,支付宝收到通知,把款项打给卖家。流程结束。

你会发现,虽然你是在跟卖家做交易,但是,所有的关键流程都是在跟支付宝打交道。这样的好处在于:万一哪个环节出问题,卖家和买家都可以通过支付宝寻求帮助,让支付宝做出仲裁。这就是一个最简单的基于中心化思维构建的交易模型,它的价值显著,就是建立权威,通过权威来获得多方的信任,同时依赖权威方背后的资本和技术实力确保数据的可靠安全。

但是,假如说,支付宝程序发生重大BUG,导致一段时间内的转账记录全部丢失,或者更彻底一点,支付宝的服务器被ISIS恐怖组织的一个导弹全部炸毁了。而我刚刚转出去的100元找谁说理去,这个时候,你就成了刀殂上的鱼肉;支付宝有良心,会勉为其难承认你刚刚转账的事实,但他不承认你也没辙,因为确实连他自己也不知道这笔转账是否真实存在。

 

去中心化

第一步,你下单并把钱打给卖家;

第二步,你将这条转账信息记录在自己账本上;

第三步,你将这条转账信息广播出去;

第四步,卖家和支付宝在收到你的转账信息之后,在他们自己的账本上分别记录;

第五步,卖家发货,同时将发货的事实记录在自己的账本上;

第六步,卖家把这条事实记录广播出去;

第七步,你和支付宝收到这条事实记录,在自己的账本上分别记录;

第八步,你收到书籍。至此,交易流程走完。

刚才“人为刀俎我为鱼肉”的情况在这个体系下就比较难发生,因为所有人的账本上都有着完全一样的交易记录,支付宝的账本服务器坏了,对不起卖家的账本还存在,我的账本还存在;这些都是这笔交易真实发生的铁证。

 

去中心化的特点:

  1. 分布式存储,通过多地备份,制造数据冗余
  2. 让所有人都有能力都去维护共同一份数据库
  3. 让所有人都有能力彼此监督维护数据库的行为

拉斯洛·汉耶