1703868478
区块链技术驱动金融:数字货币与智能合约技术 9.4 比特币作为一个公共的随机源
1703868479
1703868480
在上一节,我们展示了一群人如何选择一个公平的随机数。在这一节里,我们将讨论如何用比特币来产生一个对任何人都公平的公共随机数。为什么我们需要一个公共随机数?让我们先看一下几个现实中已经存在的依赖公共随机数的案例。
1703868481
1703868482
NBA新人选秀
1703868483
1703868484
其中一个例子就是每年春天的美国NBA联赛的新人选秀大乐透。NBA联盟中所有的30支球队聚集在一起,根据上赛季每个球队的赛季排名增加相应的权重,随机选择球队选秀顺序。在1985年,联盟首次采取这种方法进行选秀,乐透选秀的过程通过电视现场直播,包含球队名字的信封在一个透明的转盘里被充分打乱,委员会专员随后去挑选这些信封。因为纽约尼克斯(Knicks)队获得了当年的状元秀中锋帕特里克·尤因(Patrick Ewing),最终尤因也确实成为NBA名人堂的一员,当时这个乐透的产生引起了不小的争议。由于那次的乐透发生在纽约,其他球队的球迷宣称整个过程被人操纵,并偏向尼克斯队。
1703868485
1703868486
有很多有关NBA是如何操纵选秀过程的阴谋论,比如著名的“折角”论(“bent corner” theory)是说包含有尼克斯的信封有一个角被故意折弯了,这样委员会专员通过触摸就可以分辨出哪个信封是尼克斯的。另外一个论调是说尼克斯的信封之前被放在了冷冻室里,这样专员可以通过选择一个手感比较冷的信封来挑选出尼克斯队。这些论调都反映了一个事实,这种类型的选择要做到绝对公平是非常困难的,有很多合乎推理的作弊空间,想象一下一个职业魔术师的巧手可以做些什么!直到今天,选秀乐透每年都会举行,但每一次都充斥着各种阴谋论和谣言,以说明选秀并不是绝对公平的。
1703868487
1703868488
美国军队选秀
1703868489
1703868490
另一个更加严肃的案例是1969年的美国征兵选秀,用于决定哪些年轻人会去参军,大部分被选中的人事后都被派去参加了越南战争。同样使用了一个类似于NBA选秀的方法,由美国国会派出的代表来主持选秀并通过电视直播(如图9.6)。他们在一个大的塑料桶中放了很多小球,每个小球包含了一个数字,然后轮流从桶中把这些数字小球取出来,根据数字所代表的生日来决定优先级,根据这个优先级挑选合格的年轻人参军。
1703868491
1703868492
1703868493
1703868494
1703868495
图9.6 1969年(越战)军队选秀
1703868496
1703868497
1969年的这次征兵选秀,是首次在全国范围内采用乐透方式进行选秀。其目的是通过避开数以千计的本地征兵委员会,以使选拔过程更加公平,并且向公众公开这个过程。但遗憾的是,这个选秀乐透也演砸了,不到一个星期,概率专家通过数据调查分析注意到了一个特别的模式(如图9.7所示):出生于下半年的人被选中的优先级较低。虽然这种差异非常细微,但是从概率统计上是非常显著的,说明这不太可能是偶然事件。当他们回看现场录像的时候,发现每次转动转盘的次数恰恰都是偶数次,这意味着一开始是上层的小球有较大的概率一直留在上层,说明为了形成随机抽签的混合程序并不充分。
1703868498
1703868499
这两个案例都证明了,设计一个公众认可的随机过程并由此产生一个认可的公共随机数,是十分困难的。无论你采用什么方法,总有人怀疑你作弊。风险在于:这个随机过程可能会被操作——即便这个过程是真正随机的,但公众并不信任它。[1]
1703868500
1703868501
1703868502
1703868503
1703868504
图9.7 1969年征兵选秀的概率统计偏差
1703868505
1703868506
注:x轴代表日期,y轴代表选秀号码。
1703868507
1703868508
密码学“信号塔”
1703868509
1703868510
由于成本低,并且大众易于理解,用转盘、抛硬币、掷骰子等方法去展示公开随机性,在历史上一直比较普遍。但是这些方法非常难以审计,因此并不适用于大范围的场景。即使整个过程从视频上看起来是合法的,人们也有理由去怀疑乐透的执行者可以使用“魔术师之手”去操纵结果。
1703868511
1703868512
那么,通过密码学的办法,我们是否可以做得更好?这里,我们用密码学“信号塔”(cryptographic beacons)来特指一个提供公共随机源的服务。我们的想法是“信号塔”会源源不断地在一个固定的频率产生随机数,并且没有人可以预测这些随机数。只要大家同意这一点——没人可以预测这个信号塔的下一个输出,那么大家就都可以相信其生成的是一个真正的随机数。
1703868513
1703868514
一个完美的密码学信号塔可以服务于各种公开乐透项目,比如上面两个例子。如果你想要在本地的俱乐部玩一个宾果(Bingo)游戏[2],你再也不需要用一个大的转盘来产生随机性了。只要每个人都信任信号塔,就不要用物理的方法来展示随机性了,这会省去很多麻烦。
1703868515
1703868516
密码学专家提出了很多其他的公共随机源的应用方案,包括投票系统、零知识验证、分割选择协议等。如果你有一个完美的密码学信号塔,其中很多方案都会变得非常简单有效。但遗憾的是,截至目前,我们还没有找到一个完美的方案去打造这样一个信号塔。
1703868517
1703868518
NIST信号塔
1703868519
1703868520
NIST,即美国国家标准与技术研究所(National Institute of Standard and Technology)。从2011年开始,NIST运行了一个它们自己的信号塔服务。它们声称用了一个非常复杂的实验室装置来产生随机数,甚至动用了两个纠缠态光子。由于随机数是由量子力学现象产生的,那么理论上这个数字可以保证非常强的随机性。如果你认可海森堡不确定性原理(Heisenberg uncertainty principle)和其他一些被广泛接受的物理学原理,那么你就会相信这个信号塔产生的数是真正随机的,并且不可预测。NIST信号塔服务可以每60秒产生一个附带有数据签名的随机数,并提供一个非常便利的程序接口——服务可以通过网页来访问并返回随机数。
1703868521
1703868522
从某种意义上说,NIST信号塔代表了从物理上展示随机性的极限,但无法解决一个基本的信任问题——你必须信任NIST确实是通过它们所宣称的这些程序来产生随机数的,你必须信任在马里兰州的某一个建筑里面,NIST确实用它们的实验室来产生这些随机数,而不是伪造的,你还必须信任它们确实没有能力故意重写其中一些随机数。
1703868523
1703868524
打造一个信号塔的其他潜在方法:自然现象
1703868525
1703868526
我们是否可以使用一些每个人都可以观测到的自然现象来实现信号塔?或者我们可以使用天气的一些细节,比如在某天某个特定地点的温度,或者是风力的强度,或者是否会下雨。当然,我们有能力去提前预测天气,但是预测的结果并不是非常精确,所以我们可以使用这些测量值的“最低有效位”。但是这个方法也有局限性,那就是需要所有的参与者在同一个地点做同样的测量。
[
上一页 ]
[ :1.703868477e+09 ]
[
下一页 ]