FLP定理与热力学第二定律的等价性
matsumi74
发表于 2022-12-13 03:43:56
440
0
0
+ x; d1 e M) C: [
FLP 不可能原理:在网络可靠,但允许节点失效(即便只有一个)的最小化异步模型系统中,不存在一个可以解决一致性问题的确定性共识算法(No completely asynchronous consensus protocol can tolerate even a single unannounced process death)。, }) _1 Q: d1 t+ |7 |: ?) f) o
提出并证明该定理的论文《Impossibility of Distributed Consensus with One Faulty Process》是由 Fischer,Lynch 和 Patterson 三位科学家于 1985 年发表,该论文后来获得了 Dijkstra(就是发明最短路径算法的那位计算机科学家)奖。
1 Q$ Z- w2 D, a: U* z
FLP 不可能原理告诉我们,不要浪费时间,去试图为异步分布式系统设计面向任意场景的共识算法。" p+ A8 h! D, Q! N! t- G+ T( v d8 B; Q
3 i& R$ h1 G" y
如何理解要正确理解 FLP 不可能原理,首先要弄清楚“异步”的含义。
6 h" h# p9 D4 s% g. u3 b
在分布式系统中,同步和异步这两个术语存在特殊的含义。/ s9 w2 C n+ u) O! H, j
% i3 J- S$ t+ f& U, e9 Q
同步,是指系统中的各个节点的时钟误差存在上限;并且消息传递必须在一定时间内完成,否则认为失败;同时各个节点完成处理消息的时间是一定的。因此同步系统中可以很容易地判断消息是否丢失。# |. R8 x, d- x8 v3 r$ J
异步,则意味着系统中各个节点可能存在较大的时钟差异;同时消息传输时间是任意长的;各节点对消息进行处理的时间也可能是任意长的。这就造成无法判断某个消息迟迟没有被响应是哪里出了问题(节点故障还是传输故障?)。不幸地是,现实生活中的系统往往都是异步系统。: @. \- m# b$ \( M$ W# ?6 D9 C
4 l. L6 ^# C, v5 s7 H* _) M# q
FLP 不可能性在论文中以图论的形式进行了严格证明。要理解其基本原理并不复杂,一个不严谨的例子如下。
/ Q. C6 [8 ?: L% @. h$ L' U
三个人在不同房间,进行投票(投票结果是 0 或者 1)。彼此可以通过电话进行沟通,但经常有人会时不时睡着。比如某个时候,A 投票 0,B 投票 1,C 收到了两人的投票,然后 C 睡着了。此时,A 和 B 将永远无法在有限时间内获知最终的结果,究竟是 C 没有应答还是应答的时间过长。如果可以重新投票,则类似情形可以在每次取得结果前发生,这将导致共识过程永远无法完成。
FLP 原理实际上说明对于允许节点失效情况下,纯粹异步系统无法确保共识在有限时间内完成。即便对于非拜占庭错误的前提下,包括 Paxos、Raft 等算法也都存在无法达成共识的极端情况,只是在工程实践中这种情况出现的概率很小。
那么,这是否意味着研究共识算法压根没有意义?
不必如此悲观。学术研究,往往考虑地是数学和物理意义上理想化的情形,很多时候现实世界要稳定得多(感谢这个世界如此鲁棒!)。例如,上面例子中描述的最坏情形,每次都发生的概率其实并没有那么大。工程实现上某次共识失败,再尝试几次,很大可能就成功了。
, s' [$ y7 F* `( ^% F$ _2 b( t
科学告诉你什么是不可能的;工程则告诉你,付出一些代价,可以把它变成可行。
这就是科学和工程不同的魅力。FLP 不可能原理告诉大家不必浪费时间去追求完美的共识方案,而要根据实际情况设计可行的工程方案。2 f+ L" P$ b0 V) x/ Z# i: L; j( L8 f# g
那么,退一步讲,在付出一些代价的情况下,共识能做到多好?
回答这一问题的是另一个很出名的原理:CAP 原理。% `6 z `$ f! `9 ]+ d( s$ Q V" `
注:科学告诉你去赌场是愚蠢的,因为最终总会输钱;工程则告诉你,如果你愿意接受最终输钱的风险,中间说不定能偶尔小赢几笔呢!6 E2 ^) B/ m$ [' d* I1 g5 [
( J2 H1 }" p4 t- k' m4 ]+ x2 x
无论是在现实生活中,还是计算机世界里,达成共识都要解决两个基本的问题:
首先,如何提出一个待共识的提案?如通过令牌传递、随机选取、权重比较、求解难题……等;
+ @* _! e3 k) M ^3 q3 v" `
其次,如何让多个节点对该提案达成共识(同意或拒绝) ,如投票、规则验证……等。
& X2 u8 o8 ]# G! ]4 w
理论上,如果分布式系统中各节点都能以十分“理想”的性能(瞬间响应、超高吞吐) 稳定运行,节点之间通信瞬时送达(如量子纠缠) ,则实现共识过程并不十分困难,简单地通过广播进行瞬时投票和应答即可。可惜地是,现实中这样的“理想”系统并不存在。不同节点之间通信存在延迟(光速物理限制、通信处理延迟) ,并且任意环节都可能存在故障(系统规模越大,发生故障可能性越高) 。如通信网络会发生中断、节点会发生故障、甚至存在被入侵的节点故意伪造消息,破坏正常的共识过程。一般地,把出现故障(Crash 或 Fail-stop,即不响应) 但不会伪造信息的情况称为“非拜占庭错误(Non-Byzantine Fault) ”或“故障错误(Crash Fault) ”;伪造信息恶意响应的情况称为“拜占庭错误”(Byzantine Fault) ,对应节点为拜占庭节点。显然,后者场景中因为存在“捣乱者”更难达成共识。
- z! G; I5 }0 Q6 V1 ]0 R% U
此外,任何处理都需要成本,共识也是如此。当存在一定信任前提(如接入节点都经过验证、节点性能稳定、安全保障很高) 时,达成共识相对容易,共识性能也较高;反之在不可信的场景下,达成共识很难,需要付出较大成本(如时间、经济、安全等) ,而且性能往往较差(如工作量证明算法) 。
N8 B* f! _. q* s) R" M
注:非拜占庭场景的典型例子是通过报数来统计人数,即便偶有冲突(如两人同时报一个数) 也能很快解决;拜占庭场景的一个常见例子是“杀人游戏”,当参与者众多时很难快速达成共识。$ F$ `$ e4 ? @& L& V/ E0 t
常见算法7 }1 b7 c$ h/ d* z' s* D# u
根据解决的场景是否允许拜占庭错误情况,共识算法可以分为 Crash Fault Tolerance (CFT)和 Byzantine Fault Tolerance(BFT) 两类。对于非拜占庭错误的情况,已经存在不少经典的算法,包括Paxos(1990 年) 、Raft(2014年) 及其变种等。这类容错算法往往性能比较好,处理较快,容忍不超过一半的故障节点。对于要能容忍拜占庭错误的情况,包括BFT(Practical Byzantine Fault Tolerance,1999年) 为代表的确定性系列算法、PoW(1997 年) 为代表的概率算法等。确定性算法一旦达成共识就不可逆转,即共识是最终结果;而概率类算法的共识结果则是临时的,随着时间推移或某种强化,共识结果被推翻的概率越来越小,最终成为事实上结果。拜占庭类容错算法往往性能较差,容忍不超过1/3 的故障节点。& u% {: m/ r3 f* C4 L8 i! [
# p2 k5 A3 L# s/ ?# }3 @
此外,XFT(Cross Fault Tolerance,2015 年) 等最近提出的改进算法可以提供类似 CFT 的处理响应速度,并能在大多数节点正常工作时提供BFT 保障。Algorand 算法(2017 年) 基于 PBFT 进行改进,通过引入可验证随机函数解决了提案选择的问题,理论上可以在容忍拜占庭错误的前提下实现更好的性能(1000+ TPS) 。注:实践中,对客户端来说要拿到共识结果需要自行验证,典型地,可访问足够多个服务节点来比对结果,确保获取结果的准确性。 C7 P) I- v0 S5 ]* n U
理论界限科学家都喜欢探寻问题最坏情况的理论界限。那么,共识问题的最坏界限在哪里呢?很不幸,在推广到任意情况时,分布式系统的共识问题无通用解。这似乎很容易理解,当多个节点之间的通信网络自身不可靠情况下,很显然,无法确保实现共识(例如,所有涉及共识的消息都丢失) 。那么,对于一个设计得当,可以大概率保证消息正确送达的网络,是不是一定能获得共识呢?0 o- E$ N& B# L7 ~: t( ?% X/ s* r
理论证明告诉我们,即便在网络通信可靠情况下,一个可扩展的分布式系统的共识问题通用解法的下限是
——没有下限(无解) 。
! F3 ~+ @, O, {
这个结论,被称为“FLP 不可能原理”。该原理极其重要,可以看做是分布式领域里的“测不准原理”。
2 [" d9 i- W C' y+ d0 M
注:不光分布式系统领域,实际上很多领域都存在类似测不准原理的约束,或许说明世界本源就存在限制。
以上内容摘自《区块链技术指南》+ a; y9 N0 A4 M. k- i/ n% O. |8 O
5 i1 W+ ?5 O! z0 T1 h
张首晟:In Math We Trust" B) t: Q2 {* Z" e6 c- B
# D0 @, G0 O3 E1 G
用自然科学的观点看区块链 O- k4 H* {! t& b7 V
我们先从自然科学的角度来理解什么是货币。7 g+ d' c v4 P
货币是一个交换价值的媒体,这跟物理学中“场”的概念非常相似。高中物理讲到,同性相斥、异性相吸,虽然两个电荷并没有互相接触在一起,但也有一个相互作用力,使他们相互作用。这和日常生活的体验好像不太一样。日常生活当中要有一个力,一定要相互接触。
. Z* A: f l) |1 j
于是有了“场”的概念,一个电荷产生了一个电场,而这个电场又能够作用在另外一个电荷上。因此我们只要研究N个电荷和电场的相互作用,而且是近距离的相互作用。这是物理学的一个概念上的突破:本来是要研究电荷和电荷相互之间的作用,现在只要描写电荷和场的相互作用。8 m) S. c# i% r
6 R1 v% e4 N1 W( [, J. u. P$ E! v2 @
这和经济学里面货币的产生是非常类似的。人类文明一开始,是以物换物的时代。以物换物的模式,有点像电荷和电荷之间的相互作用。4 n: K2 X9 `! c0 i1 M( i
但是以物换物是非常不容易成交的,必须你正好需要我的鱼,我正好需要你的苹果,数目也要相对应,才能成交。后来,我们开始引进货币作为价值交换的媒介,这就是货币的产生。
到了货币的时代,把物品换成一个货币,然后用货币再换成另外一个物品,就像电荷产生一个场,场再作用在另外一个场的身上。4 G# x8 q0 f( @0 Q" ~. N. X
一开始,大家认为场的概念是虚拟的概念,并不是一个真正的物理的实体。% D# h4 O4 S* q2 X5 w$ s$ a" z
物体存在的价值到底是什么?在自然科学里面,唯一衡量标准是能量。引进“场”在一定程度上方便了数学描述,但其本身没有能量。
其实这个问题和今天大家有关区块链的疑问很类似,就像当年有很大一部分物理学家认为电场这个概念完全是虚无缥渺的数学概念,并不是一个真正物理存在的概念。引进场作为交换媒体,大家如果不认可,其就没有价值。直到爱因斯坦理论的出现,场的概念才真正成为物理实体,我们才可以精确衡量其价值。9 ~* @+ c. p7 @; _4 A( Y- [
达成共识,就是认可价值/ X2 j0 D2 t/ P7 f: W) C* U
A7 }" q) |+ |' }
说回货币。货币本真的价值到底是什么?为什么人类历史的进程中,某些物品有货币的属性,其他物品却没有货币的属性?
真正的区别在于“共识”。对价值的共识。
2 Q! F& S: V6 Q, V6 N7 V
如果我们考虑将苹果作为交换的媒介,我们对其价值的理解是一个非常宽广的分布。苹果有红的、绿的、熟的、生的,每个人对苹果价值的认识都不一样。尤其是在经济行为当中,有些人生产苹果,有些人消耗苹果,但绝大部分人又不生产苹果又不吃苹果,大多数人对于一个苹果的理解肯定没有那么深,因为他根本不能区分出来不同苹果的价值。
但是金子不一样。我们对一盎司金的理解是非常精准的,共识性是非常强的,其价值共识曲线的分布非常非常窄。! L# C" k8 d% l% A" Y- ?
# o8 J2 g$ u0 n l/ I, L0 t
为什么对金有那么大的认识呢?主要是两位著名的物理学家的贡献。 e6 Y- P" [# ~2 |* ^: d* j9 e$ ~( d A
一位是希腊物理学家阿基米德。有一天国王给他一个皇冠,并让他回答“工匠在打造皇冠的过程中是不是偷偷用便宜的金属取代了黄金”的问题。# D3 a" [) p% t. r, h0 k7 H
+ m! ^! z( V6 p: i5 W
阿基米德想了半天,终于在要交差的最后一天,在洗澡的时候大叫了一声Eureka!他想出一个非常巧妙的办法,在一个天平秤左边放皇冠,右边放黄金,使得天平正好平衡,然后把这个天平秤放到水里面去,发现不再平衡:皇冠的重量虽然跟黄金一样,但是体积更大,而浮力跟体积有关系。
基于阿基米德的方法,我们能测出来一盎司的黄金是不是真正的一盎司黄金,故而对什么叫一盎司的黄金有非常精准的理解。, a. H5 P3 U$ W$ T( \
后来人们比较偷懒,不在每次交换金币的时候都精准测量,所以在经济交换的过程中存在很多作假的行为。偷偷在金币边缘磨掉一点,磨了一百次以后,就会产生一个全新的金币。这样金币的价值就不好衡量了。
解决是这一问题的是牛顿。牛顿是一位非常伟大的理论物理学家,当他成名之后,英国的女王给了他一个肥差,成为英国皇家铸币厂的厂长。他发明了避免金币造假的方式:在金币的边缘刻上一道一道锯齿状的刻痕,这样如果磨掉一点,马上就能看出来。
4 C$ y5 I6 M+ F) h
这样一来,金币价值认同的曲线分布就非常窄。价值认同的曲线分布越窄,说明共识性越强。把物品作为一般等价物,首先,大家对物品的价值要有共识性。这是最核心的一个概念。% g% ^5 e4 T: a; \& p3 t
- ~6 N; _5 a( K& F
熵,自然界的共识机制在人类社会要达到共识是非常难的,好像只有中央银行才能做。但是自然界有没有达到共识的机制? F# n) T& q' f$ G; K1 T6 f3 B
很多同学都会在冰箱上面用磁铁贴一张照片。磁铁为什么能够吸在冰箱上?不止是磁铁才有磁性,其实所有的物体都有磁性。所有物体都是电子组成的,每个电子就像一个小小的指南针,有一个北极,有一个南极。绝大多数电子的指南针所指的方向,完全是随机分布的,所以电子自旋加起来就没有总的磁性。$ o# Q- |, B" V- |8 Y* \' e
但是自然界有一个非常非常奇妙的现象,在一种比较特殊的情况下,比如温度比较低,而且是在一些特殊的物体里面,所有电子都同时指向同一个方向,这就达到了共识。他们没有中心化的指挥,就说明他们是达到了共识。% w" {4 D$ W7 X+ ^9 ^
1 O: S) U+ C' w& {# \
共识是货币最核心的概念,就是说,我们一定要有共识,才能够用一个物品作为交换的媒介。但是在自然界,好像不需要一个中央的指挥,这些完全没有意识的电子就能达到共识。
大家仔细想一想,达到共识必须要付出代价。
我在教统计力学第一堂课的时候,总是引用一句文学大师托尔斯泰的话:6 @! B) E' V9 p9 n
m! |3 Z5 t; J" u9 _
“幸福的家庭总是相似的,不幸的家庭各有不幸。”* f, i& p! g0 n `" r8 }
% V7 {6 e! T! H* c
比如同学们的寝室,绝大部分时间是很乱的。人类的语言非常简单,我们只用两个名词,整齐和乱,听上去好像50%的概率是整齐的,50%的概率是乱的。但是仔细想想,乱有很多方法,整齐只有一种整齐的办法。
- g5 K1 x0 D. }0 d4 Z! x
比如说寝室里面有一个牙刷、一双皮鞋、一只钢笔。整齐的办法是钢笔放在书桌上,皮鞋应该放在门口,只有这一种做法。乱的做法有很多,牙刷放在门口,皮鞋放在书桌上等等等等。乱的办法比整齐的办法多得多,久而久之,如果每种办法概率一样,乱的概率远远大于整齐的概率。/ B9 Z' O, M# U& v Y
! t/ a" \: l$ C: O" c
大自然有一个必然的趋势,随着时间的推进,越来越无序。无序的办法有很多,有序的办法只有一种。 [6 f( b5 U2 N+ ?: X6 F
4 S5 ]2 Q T6 N
大自然的趋势如果是越来越无序的话,为什么这些电子都要指向同一个方向?这就引进了“熵”的概念。
, t9 s# v8 Z+ u1 a0 v+ J Z* g. {
熵等于是在衡量一种排列组合。自然界总是越来越趋向于无序,不能达到共识。达到共识唯一的办法,就是把周围搞得更乱一点,把自己搞得整齐一点。5 [6 k& a% T0 v. m
生命就是这种现象,生命是高度有序的现象,但是生命必然会把周围搞得更加乱一点。2 }: J5 k$ } c0 s
0 f& m" j4 R6 M; R' ?/ C8 \
在有些系统里面,它可以自己变得比较有序,把熵排出去。总的熵还是在增加,但是自己的熵在减小,自己变得更加有序,达到了共识。
到了生物的世界,也有同样的现象。比如说单细胞的细菌,他们会同时做一些非常有趣的行为,比如说同时发出光来。一个细菌发出光来也不能看见周围,还要浪费掉很多能量,很不划算。所以看到周围细菌比较多的时候,大家一起发光。
细菌有一个相互交换的机制,每个细菌发出一些信息,周围如果收集到很多信息的时候,就代表周围的细菌比较多,大家马上决定,一起开始发光。这种机制在生物世界也有,物理世界也有,我们看到一个必然的趋势,使得我们知道有序是很有价值的。
+ o+ v- k9 I" X# [4 q) F3 n
达到共识必然造成熵减到了区块链的时代,首先大家碰到的一个问题,就是当电脑开始变得越来越多的时候,我们要形成一个网,就是一个分布式的计算机系统。比如说我们要有一个共同的数据库,然而到底谁有权来修改这个数据库?修改顺序是什么?
. i$ M& R& U6 u8 r3 [. H
这些分布式的计算机,能不能有一个机制能够达到共识?大家首先想到的是,能不能有一个确定性的算法,来总指挥所有这些分布式的计算机,或者是做一些共同认可的事情。5 ~: n8 n0 b9 n3 O- q& x2 H! b
1 ^# e9 Q6 U, F% \: c
现在的情况就像当年的永动机,当年至少有1000多个专利研究永动机。后来你们也知道,还是没有研究出永动机。这个跟分布式的计算机碰到的问题一样,大家想找到一个确定性的算法,能够告诉所有计算机怎么来进行,后来大家搞了半天,没人做得出来。
这跟物理学的概念非常接近,如果在运动的分子中间做一个墙,隔成两半,开一个小小的洞,当看见一个特别快的分子过来的时候,就把门打开,看见一个特别慢的分子过来,就把门关起来。久而久之,这边温度非常高,那边温度非常低,一旦有了温差之后,就可以造机器,用它来做功。很显然,这是不可能的事情,一个完全稳定的状态,达到热平衡的状态,不能拿出来做功。8 p8 r' |, }8 M: B1 H/ g
类似的,不可能有一些中央指挥的机制,能用一个确定式的办法能够告诉这些计算机怎么来达到共识、不让把熵增得更大。2 |* q$ ?0 @5 i1 G; V
! c2 e1 E. H/ M; _5 O. t5 P
最终不可能的原因,就是热力学的第二点:整个系统的熵永远是增加的。
科学伟大的东西总是不约而同的。热力学里面引进的熵的概念,计算机科学里面也引进了熵的概念。
1 `$ G" N+ n/ _8 E- p/ [ Q% _
今天来到区块链的时代,大家要找到一个新的共识机制,这样的话,如果用高层次的原理来看的话,我们就可以看得非常清楚:
' G' B; f0 ?# o5 S. k( o: g
要达到共识,必然是一个熵减的行为,必然要排出去一部分熵。
今天的比特币区块链系统至少在定性上是完全满足这点的。8 M1 l2 Y0 g. ]8 H
一旦有了账本,就等于有了货币,但是这必然会有代价,就是周围的熵也要增加。所以在比特币的系统里面,我们要算哈希函数,计算过程当中,熵就产生了。产生之后,就会达到子系统的共识,熵减,但是总的系统的熵是在增加。
9 G( q0 H! T9 R8 i* v0 o. q, K
这是一个定性的结果,而不是一个定量的结果,要达到一个单位的共识的话,必然需要消耗掉一些熵,但是比特币是不是熵消耗得太多了?
: h6 ^5 H- ^& \: d& T! h) X) }
这是一个非常非常有趣的问题。有没有一个熵的下限,也就是达到单位共识必然最少需要消耗多少熵,然后可以把现在比特币所消耗的熵跟最低的标准进行对比,看看是不是这个系统里面可以进化。! C6 K$ D9 b3 G9 k" }/ q$ m
计算机科学里面有一个类似的结果:做一个比特的运算消费的能量是室温的温度转化成能量单位。但是现在所有的计算机,每做一个比特的运算所消耗的能量是这个结果的一百万倍。就此看来,计算机今后能耗越来越低是非常有可能的。
在区块链系统里面,我们面对同样一个问题,大家不要认为区块链只是发一些币,其实里面有非常非常深刻的学问在里面,大家如果真是一个聪明的学生,能不能尝试证明一下里面最低的下限,即达到共识一定要花费多少能量。
区块链里面也是一样的。大家在试图从理论上证明达到共识一定要花费多少能量,有没有一个下限。如果证明了,说不定也能把比特币的能耗降下来。
$ }8 x0 o. I0 ^' R9 U
现在整个计算机系统里面,浪费的最多资源,其实是储存的资源。我在家里买了硬盘,10TB大小,但是我的照片只占用了1TB的空间。至少在很长的时间里面,剩余的这部分硬盘空间是没用的。% f3 _* _8 c0 m7 c+ k% @
现在有一个办法是在硬盘里面撒种子一样撒很多的随机数,如果每个人都买一个硬盘,只要来比较一下,新产生出来一个随机数,跟在座各位硬盘上所储存出来的随机数,谁最接近谁有权投票。这是一个非常聪明的办法,是真正的绿色的虚拟货币。
! R ?* ]" e! p5 t: V5 a7 Z! r) Z
从AT&T到Google再到区块链,合久必分+ {4 k6 T( b& o' U1 {" ^5 i
再来跟大家分享一下区块链世界和网络世界历史的潮流。就像人类的历史一样,网络的历史也可以用“分久必合,合久必分”来概括。+ x6 i5 Q1 {2 t
我1983年去美国留学的时候,有一个巨人叫AT&T,好像是永远不会倒的,而我当时最大的梦想,并不是毕业之后到大学里面做教授,而是去贝尔实验室工作,因为这里曾产生30位诺奖得主。AT&T花这么多钱养出这么多诺奖级的科研人员,就是为了垄断,它垄断了所有的网络资源。 c, u8 [" t# f3 L ]% Q' u
. A/ p( C2 A: o/ C* A$ T6 i% U
慢慢地就出现了一个新的协议——网络协议。它完全是一个去中心化的协议,可以使点和点之间完全可以随意的交流。我可以走这条路,也可以走另外一条路,条条道路通罗马,最后都能达到结果,不再需要中心的垄断。一夜之间,我以为永远不倒的公司,消失掉了。AT&T的垄断完全被破坏,这叫合久必分。曾经也是在竞争之后出现了AT&T,但当一个新的网络技术出现的时候,就是合久必分的时候。: T5 J* Y( B9 S/ b; M& A
2 Q4 W6 _& |& A6 V
这个合久必分的时代也不那么长,如果人人可以交流,人人都可以创造出交流的内容,这个内容广泛地撒在外围的互联网上,那么我要去找一个信息,就会变得非常非常不方便,所以在这个情况下,分久必合,出现了一些非常中性化的新的垄断平台,在美国就叫Google和Facebook。
其实Google和Facebook做的事情,就是把每个人的信息重新组合一下。大家仔细想想,人类历史上所有伟大的公司,做的事情必然不是自己创造一些东西,而是把已有的东西做一个重新的排列组合。/ e; e3 C# v: E' U, k- B" P) I E
' x5 ]$ s+ N: x' B/ r" k
比如说石油公司、化学公司,它们做什么事情呢?原油是原子组成的,直接可以从地下挖出来,它们做的唯一的事情,把这些原子重新排列一下,变成别的化学品,比如说已经被提炼过的油。2 F" ]! }& A- l# z
# A7 A$ V; V% ]) m9 e
Google和Facebook这些垄断的平台做的是什么事情呢?是把每个人的信息重新排列组合一下,比如说Google最开始做的唯一的事情,就是做了一个排列,使我们找信息找得非常容易。这些中心化的平台做的事情,就是把我们撒布在网络上的内容,中心化地重组一下。" l: x* c$ t! U+ d; L3 Q8 q% j
' @0 T' b* h; I/ K3 s; {
这是分久必合的时代,因为新的网络协议,AT&T倒了,出现了思科,又出现了网络资源分散的情况,又出现了巨大的平台,巨大的龙头。
今天出现的区块链的技术,也会导致新的时代。这个时代的革命的强度可能是互联网革命的十倍百倍。这个新的时代使得所有我们产生的信息,又可以自己个人拥有。互联网的时代只是信息交换的时代,而区块链的时代有了价值的交换,我们可以产生数据的市场,每个人拥有自己的数据,然后在交换的过程中产生新的价值。1 S2 g u! z) h ]" E1 t! E
" u0 ^+ c8 D8 g. P6 ?7 U) u
信任机制建立在数学上这个伟大的时代,我用一句话的口号来描写,就是In Math We Trust。1 q8 s! |2 P! i/ N% V0 R | y
我们都理解货币的价值在于共识。那么问一个问题,人类所有的知识当中,哪一个大家最容易达到共识?显然不是经济学,不是法律学,不是政治学,不是化学,不是生物,甚至也不是物理,最容易达到共识的是数学。7 P4 W7 \- z' r; P, y
$ y) I- a/ B4 _
用数学作为信任的机制,是最自然的做法。
1 Q7 H3 d; [+ @! l
真正的区块链的时代,就是使得我们相互间的信任建筑在数学的基础上。
: H; T- _7 t% h4 D+ q. I
如果我自己做出一个正方体的话,肯定是不完美的。但是如果作为一个数学的形态,正方体则是全对称的,每一个顶角都完全一样,每一条边都完全一样,每一个面也完全是一样的。数学的形态是最最精准的,在精准的意义下,也是最易达到共识的。
如果你看整个宇宙最深刻的奥妙之处,那么物理学中关于整个宇宙的最核心的公式和标准模型,也是用非常非常精妙的数学来描写的,其中绝大部分的数学也是杨振宁先生所开创的。
' x4 A, L0 `- m% s
既然大自然最根本的规律是用数学来描写,我们是不是能够使得人类社会的规则和信任也建立在数学的区块上呢?* }6 Q8 m8 V% e3 d# Y' N
( v5 ]6 L; j9 V0 @' T
那么到底是哪些数学呢?在座的各位,我希望大家去学习这些非常美妙的数学。
+ v4 y, H* _& R; X Q: y
公钥和私钥的组合,就是建立在数论上面,而且是建立在一个更高层的数论上面,叫椭圆曲线。大家可能知道,数学里面曾经最大的一个猜想——费马大定律,最近被证明了,这个证明就是建立在椭圆曲线上。这个听起来是非常非常抽象的数学,但是今天我们每次网上购物的时候,就用到了奇妙的数学。
" s# i: Q2 L: ^2 ]
另外就是哈希函数。它有一个单向性,任何的东西进去,出来都是一串随机数。这跟黑洞很像,黑洞任意输进去,出来的都是随机数。
还有一个是零知识证明(zero-knowledge proof)。比如说我解了一个难题,但并不想把我的答案直接告诉你,却要使你相信,我的确把这个难题解了。这也是非常奇妙的数学问题,但是这是有解的。我可以给你一个比特的信息,我解了这个难题,但是不告诉你任何别的信息。这对整个数据的市场会是非常非常有用的,我可以一个比特一个比特把信息给出去,而不是一下把信息全部给出去。
& c" J% |0 u. R
两个百万富翁,可能有一个人是千亿万富翁,有一个人是百万富翁,他们不想把自己的财产公布出来,但是却要知道到底谁更有钱。这用清华大学教授姚期智的办法就能算出来,只给出一个比特的信息,就可以知道谁更有钱。
/ n+ Z/ Q1 F1 j
数据自己拥有的话,我永远学不到大数据的智慧。可是我想了解统计数据,其他人却想保护个人隐私,所以有一个非常简单的办法——在个人隐私数据上故意加一些噪声,这些噪声使得你辨别不出来这个数据到底是不是你自己的个人数据。在收集到这些数据之后,在大数据的环境下,这些噪声就会相互抵消,我得出来的统计数据还是完全精准的,这个办法就叫差别隐私(differential privacy)。7 T) ?: O# H5 t ^' i
最后一个概念叫形式验证(formal verification)。上世纪最伟大的数学发现是什么?是证明了数学的不完备性。如果我要给在座的同学推荐一本书的话,有一本我认为是千古奇书,它讲了数学不完备定理、艺术家的画和作曲家,三者之间的共同性。这本书是《哥德尔、埃舍尔、巴赫》(G.E.B)。' g% U7 \/ H( [9 x5 e
( q3 G2 [+ n; O$ t- H1 n
这些奇妙的数学,都可以用在区块链上,可以用来做Formal verification。因为今天我们来到的是开源的时代,我们今天在区块链上的智能合约,完全是开源写出来的。但是开源写出来之后,一般人读不懂,甚至专家也不一定看得懂。那么有没有一种数学的程序,能够告诉你智能合约到底是不是吻合你的白皮书上想做的?这是一个非常奇妙的思想,用的是数学中的逻辑学。9 K! M5 j/ [* O. Y" P) N
a" m- J( W/ q5 K
区块链带来社会公正计算机科学有两个重大的趋势,一个是AI,一个是区块链,这两者之间有一个必然共存的关系。我认为今天的AI发展的并不是那么好,为什么呢?
Z3 L6 x& G+ x* k3 L& R n8 Y
AI需要由在座聪明的同学想出最新的算法,但是大家在大学里面碰到最大的瓶颈就是我们没有数据。我们有聪明的大脑,有聪明的算法,但是数据被垄断在中心的平台上,这样的话,AI就不容易学习。你想出了一个算法,也不知道数据在哪儿。但一旦有了区块链,有了数据市场,就回到了我刚才所讲的时代,我们能够把所有的数据个人拥有。
这样的话,我把部分的个人数据,在保护自己个人隐私的情况下贡献出来,在区块链的时代,就能够得到一定的回报,大家也就有了动力保护自己的隐私。有了隐私就有了价值,而一旦有了价值,我再把这个数据贡献出来让AI学习的话,必然会带来AI的突飞猛进的变化。$ x* g5 m) F G+ e' g( U
除了给AI突飞猛进的变化,也能让社会突飞猛进。# ?+ C7 H8 A; C$ s7 O& w
区块链对社会的贡献有什么?至少我看到它可以带来社会更大的公正。
这是什么机制呢?我们今天的社会之所以有不公正的地方,主要是因为我们对少数派的歧视,在当年的纳粹帝国里面,就是对犹太人的歧视。
$ [- H) _" H K3 i0 Z1 m# L
而如果我们来到了区块链时代数据市场,这个情况就会完全不一样。比如说我有一个AI的算法,已经是90%的精准了,我要让它变得更加精准,99%精准,就需要机器学习。那我需要做什么事情呢?
首先我要学到的这些数据,就不能像以前学到的那些数据一样,如果以前是99%的数据的话,他们已经代表了大多数,但是要更精准,要99%变成99.9%的话,需要学习的就是那些跟以前完全不一样的数据。越跟以前不一样,越跟大众不一样,数据就越有价值。+ i& {9 P! A2 K0 t
# K. n g9 x0 G( Q) L% T1 A
所以如果在一个完全是数据的自有市场中,大家会对那些少数派的数据付出更多的代币,这样就会带来社会的公正,使丑小鸭变成白天鹅。因为丑小鸭并不是丑,它只是跟别人不一样,但是在这个世界里面,越跟别人不一样,它得到的就会越多。
另外一个非常伟大的理想,就是把所有个人的数据都归个人拥有。5 _! w* x; x" g$ z
个人最最最需要拥有的数据就是基因数据和医疗的数据。数据是个人拥有的,肯定是至高无上的标准,个人拥有数据之后,就担心算不出什么东西来,只是整天保护隐私,不能通过大数据和人工智能来学习基因数据背后的关切到底是什么。
比如说我们最想知道的,就是某些病到底是对应于什么基因的突变而形成的,但是一旦我们把所有个人的基因信息和医疗信息都让个人拥有,我们就产生了一个非常有效的数据市场。
\& L6 O; A1 v/ l0 V8 r
区块链和货币系统的一一对应
) D9 U* a" q) Z* z1 x
整个区块链上的虚拟货币,可以和现在社会里的货币结构一一对应。现在的货币结构有M0、M1、M2、M3等等,在最底层上面可以不断建立衍生品。; o( d' n: B% ~& [: l$ c
我认为像比特币这样的区块链,因为对应于黄金,对应于一个最最普适的价值,也就是M0的货币,相当于说,在这个系统下,世界上任何两个互不相识的人都可以形成交易。如果你我已经相识了十年,并不是两个互不相识的人,那么我们可以用M1进行交易。
我觉得闪电网络就符合这类性质,我们两个人进行交易,互相之间有一定的信任,但还是需要信任机制来加强。我们签约后,把一些货币抵押在比特币、区块链上,之后的每一笔交易,定期(如每过一个月)到区块链上去公示一次就可以了。整个虚拟货币的发展,必然会像现在世界货币的发展一样,在M0,或者是比特币,或者是更加绿色的比特币上面,可以建立闪电网络,也会有预测市场。1 Z+ N' A% ]% ?( q/ I) N: q" Y! U) T
我们现在的金融产品里,有一个是期货。期货就是对未来的预测,但现在期货都要通过法院才能够真正为我们做担保,而我们使用了区块链以后,可以让全世界的网民为我们作证。
6 `! |3 Q! _/ Y
所有这些网络的系统,彼此之间互相帮助,来使它变得更加有效,但是现在的计费系统还不是很有效,我给你提供了一些带宽,却没有得到足够的回报。有了区块链之后,可以做到非常公正并且比较精确的记录,这样的话,整个网络的运转就会越来越有效。我有一个预言,我们从4G的时代走到5G的时代,再走到6G的时代,其中必然会有网络的运转在里面。
自然科学和社会科学大统一时代整个区块链时代,我认为最需要集大成的人才。区块链中,底层是数学,上层是法律,再上层是经济行为。
) I1 o" y) M8 s
关于区块链我想到几个口号。如果谈起法律的话,有一句话:“Code is Law”,原码就是法律。Code本来就有法典、法规的意思。而今天的世界,这个Code有了一个新的意义:电脑的编程,码农的码。现在码农成为了大法官。
h6 H5 F/ Z& F
我最喜欢牛顿的《自然哲学的数学原理》,我个人拥有这本书1723年出版的第一版。用数学的原理理解了所有的自然科学,这就是牛顿的伟大。
4 J% i0 g/ {& K: n
社会科学一直找不到根本的数学原理,可能的确是不容易找到,因为很多经济行为建筑在人的不理性上。到了区块链的时代,最根本的经济行为,就是信任的机制,建立在数学之上。; p" M. L9 j; a1 Q$ |
我们可以想像到整个经济秩序都会被改变,整个生产关系都会被改变,但是它的核心是要有一个基石,就是数学原理。
0 |' X* p1 F5 }* T- C3 N
我看到一个新的时代,自然科学和社会科学大统一。我今天报告的风格,也是用自然科学的语言和自然科学的类比来理解区块链这个新生事物、这个新的时代。一旦有了数学,我们必然可以总结出来一个永恒不变的规律,使得我们的经济系统更加有效,使得我们的社会科学和自然科学能够达到大统一的境界。
部分现场问答Q:您现在觉得加密货币当中最不安全的地方是哪里呢?A:是人为的熵,大家写程序的时候犯的错。本来写一个程序倒无所谓,但现在跟很多货币有关的话,是非常非常危险的,当然慢慢也会产生一些市场,自动地去堵这个风险。Formal verification能够自动检测智能合约是不是你想描写的那样,这里面的数学是非常奇妙的,就是我刚才讲的数学逻辑。
Q:在区块链里面,时间的因素怎么和熵结合起来?A:这是一个非常好的问题。今天大家听我的演讲,可能会问这么一个问题,好像用物理学的理解方法帮助我们理解了区块链,但是能不能反过来,看懂了区块链,会不会对物理的根本概念有重大的影响?我最近在思考这个问题,我觉得是有可能的,核心就是大家对时间的概念。
当年从亚里士多德到牛顿,认为时间就是天给的,没有什么好讨论的。爱因斯坦说,时间这个概念是到底你怎么测时间,而且在不同点测的时间也不一样。他用光速不变的原理,发现时间的概念是不一样的,不同的参照系里面,测出来的时间完全不一样。$ \/ ` X7 u& h2 U
" E8 H; X2 s2 }0 p
时间再深一层的核心就是因果关系。在区块链里面,要解决的就是因果关系,因为最核心的就是交易到底哪个先发生、哪个后发生,哪个是因、哪个是果。其实到了比较随机的系统里面,时间不是非常好定义,所以在某种意义下,区块链就是给出了一个时间的定义,或者是更精准的来讲,是给出了一个因果关系的定义。
而这个定义,往往跟物理世界可能是违背的。比如说我跟他发生一个交易,是先发生,但是我们的网络节点非常慢,你跟他交易发生的更晚,但是网络结点非常快,一下全世界就知道了。在区块链里面,时间不一定跟物理世界的时间是一样的。但是在一个随机的系统里面,要达到时间的共识,没有别的更好的办法,所以这个可能是物理学最最被忽略的一个问题,要达到因果关系的共识,可能一定要烧掉一些熵。, L( l0 K$ L$ ]; ? K
看完这些复杂的背景知识,我们得到两个简洁的认知,区块链系统中的FLP不可能定理等价于一个系统中的热力学第二定律。要证明这个等价性,还需要更多背景知识来验证,期待有这方面兴趣的小伙伴一起探讨。
成为第一个吐槽的人