数据派THU 关注
手机版

干货 | 一致性算法与区块链基础设施建设(附PPT)

  1. 云栖社区>
  2. 数据派THU>
  3. 博客>
  4. 正文

干货 | 一致性算法与区块链基础设施建设(附PPT)

技术小能手 2018-11-06 16:13:30 浏览3794 评论2

摘要: 刘运渠:要理解区块链,我们必须理解分布式系统,以及分布式系统如何保证一致性。这里的一致性指的是英语里的consistency。一致性和时间有直接逻辑和数学关系。爱因斯坦狭义相对论说没有时间,只有同步的事件。

65901e1a89570621a0a09d6ed43934c0892ef3e4

刘运渠:要理解区块链,我们必须理解分布式系统,以及分布式系统如何保证一致性。这里的一致性指的是英语里的consistency。一致性和时间有直接逻辑和数学关系。爱因斯坦狭义相对论说没有时间,只有同步的事件。在计算机领域中,Leslie Lamport在他的著名论文里面说过,他不知道物理世界里面有没有时间,但是可以明确的说计算机系统里没有时间。FLP和CAP都表明在非同步的网络上要实现一致性技术是不可能的。 工程上在一定概率内,例如99.9%,可以实现可靠性一致性等等。

一致性在我们日常活动中例子,可以用我们几个人去哪吃饭的决策过程来举例。有几个方案来决定。一个是一人决定。第二种是一个人说的不算,需几个人投票。第一种方案是很典型的中心化权力方案,第二种方案我们用高大上投票方案,很多一致性基于多数投票(Quorum)的。比如说在比特币里是最长链说了算,DAG里面说权重最重的那部分说了算,其实都是投票制的方案。

07184dad6f1eb2e99694e7b8b65f2832f1f0156e

用计算机的术语来描述一致性。同样10台电脑,上面都有一个变量叫A,当所有变量A被赋值为1的时候,我们说是一致的。如果有9个机器赋值为1,另外一个机器赋值为0,这就是不一致。我们知道赋值不会自动发生,一般是有一个状态机给它赋值。如果多个节点的状态机里面,状态都是相同的,这就是一致的。在一个集群里面,所有状态机,输入状态机的数据是相同的,而且是同顺序的。这时候状态机就会停止在同一个状态,我们说状态机取得了一致。

在区块链场景里面一致性到底是什么意思?无非是两个问题:

 ●  每一个地址和账号里面,UTXO的数据是一致的。
 ●  谁把钱转给谁,保证这件事情一致,这是电子货币的系统的基础。

假设我们的资产不是电子货币,而是任何其他的电子数字资产,也就是说你要对数字资产的状态和交易数据一致。

4f4a3b1b8ba078d09f14bbf2b74aa2ef3308edaf

用阿里巴巴的讲法,分布式系统有两个最基本问题(一致性与唯一性),和两个最基本的技术,data replication,与一致性哈希。我今天只讲是Data Replication,状态机在它开始工作之前,我也可以当成一个数据处理。一致性问题可以转化成Data Replication问题,是因为我们可以转化成状态机一致性问题,状态机翻转问题。外部一致性的问题也可以理解为Data Replication问题。

6d381926f108a2bff43e3af5d90f945e10fc435f

假设状态机本身是运行良好,我们可以把一致性转化为广播问题。另外,很多时候前状态和后状态之间没有因果性,没有因果性的事件之间不需要顺序上一致。只有因果性事件才需要顺序上的一致。

在广播问题中,FIFO广播是指消息按照它送的顺序收到,日常交谈中这几乎显然的,那是因为我们有空气广播作为稳定的广播通道。如果你在IP网络发一个包,你先发的后收到,后发的先收到。

原子广播意思就是除非所有人都收到,否则这个消息就撤回。只要其中有一个人没有听到,就把信息撤回。

4e86ed3ff1693037f67a2993bb32f724d01fc2c8

拜占庭将军,是不确定性的通信系统。这个问题怎么解决?广播出去让所有人都知道,广播解决方案可以叫做去中心化,也可以叫多中心化。

e6bd728cd0d998314aed50a6e4f4b7d086ef9e56

广播有很多种实现。

 ●  第一种尽力实现的广播服务,网络提供广播服务,但是不保证送达。就像IPMC。
 ●  第二种保证送达广播,但不保证FIFO,也不保证原子性,例如简单的基于TCP的overlay广播。最后一种是原子广播与可靠广播。

第一层是用户层实现,好处是很容易应用,缺点就是性能比较差。第二层在物理层实现,但是还没有一种网络设备提供可靠的广播。

920eb9728f4d8eba3f35add4c8dc93d4cf238ef8

常见的交换模型如Infiniband模型,所用的方法三级multi-stage模型。大家会看到这个方法实现会有blocking。

我们的新架构,Optical Broadcast-Select Switch,里面有N的3次方的节点,实现N的N次方的任意组合,所以可以支持可靠的任意光广播(arbitrary multicast)。在加拿大做的产品原型prototype,在12个节点做到了68亿不丢包。可以用这样硬件做一个广播负荷的卸载技术。这是可以在广播上应用的高性能技术。

2cd2a44c5799a09d21f0335e3c92c80fdbcf9166

最后是区块链与基础网络的问题。区块链技术的一个重要价值是去中心化的交易,不需要第三方信任,可以支持一个完全开放的系统。区块链的不可能三角是指去中心化,性能与安全性三个不可能都同时满足。

区块链基础设施,基于现在互联网络设施的区块链,如同当年的64K拨号上网internet,不仅仅是性能问题,而是基础设施的设计原则发生了变化。它的性能里面的交易特性,跟总量、带宽、时延都有关系。

我们用一个网络路由算法Pub/Sub architecture来提升广播服务。这个网络平面在基础设施层面上提供一个广播的服务,不是简单把数据乱丢,而是知道哪个节点是我要的。

d8aeda25eb22e39c5193512c8db10ae4f2902a8a

清华数据院对区块链基础设施的想法,我们提供了广播的高速广域,不是仅仅为了支持区块链服务,而是支持整个数据服务。 我们希望做到更低的时延。


原文发布时间为:2018-11-6
本文作者:刘运渠
本文来自云栖社区合作伙伴“数据派THU”,了解相关信息可以关注“数据派THU”。
【云栖快讯】你想见的Java技术专家都在这了,向大佬提问,有问题必答  详情请点击

网友评论

1F
gydtep

2018阿里云双11活动:入团即享一折优惠+返利25%+千元红包+百万分红!阿里云官网活动网址:https://m.aliyun.com/act/team1111/#/share?params=N.MfqJKPj5ff.2a7uv47d 参团后,即可享受优惠。

2F
云大使分享

阿里云新用户专享:2核8G5M带宽云服务器,3年只需¥2070
参加阿里云官方1折拼团(最低折扣只此一家)立即购买:
https://m.aliyun.com/act/team1111/#/share?params=N.EN2hxhpNQG.kzp4uq6k

技术小能手
文章7218篇 | 关注1721
关注
用于实时预测用户对物品偏好,支持企业定制推荐算法,支持A/B Test效果对比 查看详情
Node.js 性能平台(Node.js Performance Platform)是面向中... 查看详情
大数据开发套件(Data IDE),提供可视化开发界面、离线任务调度运维、快速数据集成、多人... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航