量子那些事儿 关注
手机版

量子信用区块链(纯理论构想)

  1. 云栖社区>
  2. 量子那些事儿>
  3. 博客>
  4. 正文

量子信用区块链(纯理论构想)

雪花又一年 2018-05-16 16:00:44 浏览82 评论0

摘要: 区块链的本质,是确认信用。 在几乎所有区块链方案中,数据的更新分为如下几个步骤: 各节点独立记账到候选区块 各节点通过共识机制争夺候选区块的入链权 获得入链权的节点将候选区块追加到区块链中 N次确认后最终确认入链成功(比特币中N=6) 这是一种事后确认机制,区块链对追加区块进行最终确认,类似于盖章。

区块链的本质,是确认信用

在几乎所有区块链方案中,数据的更新分为如下几个步骤:

  1. 各节点独立记账到候选区块
  2. 各节点通过共识机制争夺候选区块的入链权
  3. 获得入链权的节点将候选区块追加到区块链中
  4. N次确认后最终确认入链成功(比特币中N=6)

这是一种事后确认机制,区块链对追加区块进行最终确认,类似于盖章

如果我们将区块作为信用的集合,每次数据修改作为一笔信用记录,那么区块链的机制就是都一组信用的确认——一旦被区块链确认,则这组信用获得公信力。

从信用流的角度来说,流程如下:

  1. 节点收集无公信力信用
  2. 节点争夺盖章权
  3. 节点将信用打包盖章
  4. N次确认后,盖章最终生效,信用获得公信力。

显然,交易过程中的信用并没有公信力,后选取中的转账记录也没有公信力,只有通过共识机制入链,并经过N次确认后,信用才获得公信力。

因此信用的生命周期为:

  1. 无公信力信用
  2. 已盖章信用(经过收集和争夺盖章权后)
  3. 有公信力信用(经过N次确认)

一旦信用成为有公信力信用便不会消失,永远存在在区块链中。

而所谓的“公信力”,本质上就是一种少数服从多数的原始正义(POS等方案种这个少数和多数由Stake做加权调整)——一般作恶节点比正常节点多,且相信同一个作恶结果,那么公信力给出的就是这个作恶结果。

区块链不会去管它盖章的信用到底对不对,它只保证最后这些信用可以获得公信力。

而,基于区块链的Oracle机制,本质上也是如此,借用从区块链确认的公信力结果来对有争议数据进行仲裁,而这种仲裁的方式本质上就是采用了区块链上的少数服从多数。

最关键的是,公信力在信用生命周期的最后环节中出现。

是否存在一种方案,让公信力提前出现并在网络中流通呢?


事后确认公信力与事先产生公信力是两种不同的模式。

在前者模式下,网络中流通的信用是可疑的,你并不知道这组数据是对是错是否有效,只有在入块并经过多次确认后才可以真正相信这笔信用。换言之,交易发生的时候的信用都不是可靠的信用,只有区块被正式确认后才是可靠信用。

但在后者模式下,网络中流通的信用是可靠的,你不需要怀疑其真实有效性。

如果真的可以做到后者的话,那就等于是有了一种绝对可信的信用流通物:货币。这种货币不用担心会出现双花,因为它具有可信的公信力。这就好比一种无法被伪造的货币,由铸币厂事先赋予了这种货币不可更改也不可被复制的货币真实性。

那么,下面的问题就是:我们是否可能做到这点?

在经典情况下,这显然是做不到的,因为这本身就是包括数字货币与现实货币在内的所有货币都要解决的问题。我们就是为了解决双花等问题而引入了共识机制,而现在又需要这种共识机制给出一个它在生效之前就已经有效的、不存在双花等问题的货币,这就本末倒置了。

但是,在量子物理中,这种诡异的事情却未必是做不到的。


量子物理中存在很多很“反直觉”、“反常识”的东西。其中最根本的要点在于两个:1、量子混合态;2、量子纠缠态。

量子混合态可以认为是在选定一组基态(一般就是某经典物理量对应的一组基态)后,一个量子态可以处于多基态以一定归一化比例混合的状态。

比如,对于1/2自旋的电子,我们看其z分量,其取值只有两种:+1/2或-1/2。所以基态就是{|up>,|down>}。我们对电子自旋z分量的测量结果要么是前者要么是后者,但在测量之前,电子可能处于这么一种混合态:Ψ=a|up>+b|down>,其中 |a| ^ 2 + |b| ^ 2 = 1,是为归一化条件。

也就是说,这样一种状态下的电子,有 |a| ^ 2 的概率处于+1/2态,有 |b| ^ 2 的概率处于-1/2态。直到测量发生,量子态坍缩到与测量相关的某一个基态上。

如果我们将这两个基态替换为双缝实验中的左缝和右缝,那量子混合态的意思就是说:在我们测量之前,电子是“同时”从两条缝中通过的。

这就是著名的量子双缝实验。

在量子混合态的基础上,我们还可以构造出量子纠缠态。比如现在有两个电子,它们的总自旋为0,从而可以处于如下这种纠缠态上:

Ψ=a|1up>|2down>+b|1down>|2up>

这样,如果我们对第一个电子测量得到它的自旋z分量是朝上的,那么第二个电子的自旋z分量必然朝下,反之亦然。但这里的关键是:你在测这两个电子的任意一个之前,都不知道它到底是朝上还是朝下,但只要测量了一个,另一个也就随之确定了。甚至于,我们测量的时候到底是测量z分量还是x分量还是y分量?在测量之前没人知道,但只要测量了,无论是x分量还是y分量还是z分量,两个电子的测量值都是等值相反的。

让我们构造如下这么一种状态,其中每一个Ψ都是如上形式的,最多就是a和b的具体指不大相同:

Ω=Ψ1 × Ψ2 × Ψ3 ...

这就是说,有n组电子,每组电子都是一对处于上述纠缠态中的电子对,总自旋为0。下面,我们引入Alice和Bob两个著名的通讯测试人员,Bob测量这个量子态,得到了一组结果:up,down,down,up,down,up,那么Bob不用跟Alice说也知道,Alice那边的结果肯定是down,up,up,down,up,down。这个过程是瞬时的,不需要花费时间,即假如Alice在地球,Bob在波讲座40(《星际迷航》中的瓦肯星坐在地,距离地球16.5光年),那么当Alice测量自己的这批电子并得到结果的同时,注意是同时,Bob手上的电子组的状态也就确定了下来,和Alice的可以精确匹配。

这就是量子通讯的基础,当需要注意的是:你无法预先知道Alice或者Bob的测量结果是什么,这是一组真随机值,所以这种方式只能用于“同时”生成秘钥,然后Alice用秘钥加密,通过经典手段发给Bob,Bob用秘钥解密,这个过程中秘钥从来都只在Alice和Bob的手里,没人能知道。

对,没人能知道,因为量子态有一个很牛逼的性质:量子不可克隆原理。

也就是,如果一个对象处于量子态,那么不存在不通过测量等方式破坏量子态(使其坍缩到经典基态)而将这个量子态复制出来的手段。

这东西怎么和区块链上的信用联系起来呢?

假定,A生成了一组如上的量子纠缠态Ω,它可以分解为相互纠缠的两个量子态,一个在A手上,另一个公开出来,称为B。

一群人可以通过一些很不花费算力的方式来争取B,因为量子不可克隆原理,只可能有一个人获得B,如果有第三方想复制B,那么注定是不可能的——结果是A和B同时作废。

这种方式最直接的应用,就是作为RSMC等智能合约所用的token,因为该token不可复制,所以签约双方(或者多方,纠缠态可以多粒子纠缠)的token是无法伪造的,只能给与,不可复制。在验证token之前,始终处于纠缠态,而在验证的时候进行一次测量,完成验证的同时也销毁token。

另一种不是作为token而是直接作为coin使用,但这依赖于一项现在还不确定是否可能实现但理论上是可行的技术:量子加密与量子哈希。

假定我们现在手上有一组处于量子混合态的量子比特数据,并可以在不破坏其量子特性(即不造成其量子态坍缩)的情况下对其进行加密或者做哈希,得到了一个量子态,它完全完全有对应输入量子态决定,且一旦输入量子态坍缩到确定基态,这个加密量子系统或者哈希量子系统也会跟着坍缩到对应的基态。

一个最简单的方式是这样的:

700

也就是对所有可能的输入态和数据态,求加密后的输出,两者编码为量子基态后直积构成纠缠态,接着把所有这些纠缠态直和起来,构成一个大的纠缠态。

显然,这个算符的特点是,对于任意输入,都可以输出对应的加密结果:

680

所以,这个手段在理论上是可以做到的,但实际上做起来可能非常复杂,尤其可能的输入态非常多,如果没有好的简化手段的话,这事就不靠谱了——所以这是理论上可行但实际上未知的一种方法。我们可以实现制备好这个算符,或者通过一定的手段可以批量生成这个算符,从而确保操作可以快速进行。

同样的,我们还需要创建一个新的算符,用来做区块:

700

它的作用,是将连续两个输入输出为一个哈希结果(或者如果使用量子计算门电路的思路,可以输出为两个结果,第二个不用,但依然保留信息,这样可以降低门电路的散热损耗)。因此,如果我们有N个输入,可以使用这个算符依次做哈希,最后输出一个结果,如:

412

当这里输入1、2、3...都是混合态时,输出结果也是混合态,所以算符不会导致量子态坍缩。

最后,我们还差最后一项东西:三量子比特组纠缠。

这个实现比上面的两量子比特组纠缠要复杂,其目标是三个量子比特组纠缠后,当一个被测量,另外两个的状态便跟着一起确定。一个最简单的方案是这样的:

620

其中1、2、3代表第几个粒子,u表示z分量向上,d表示z分量向下。可以看到,这个量子态测量后,无论该粒子测到的是向上还是向下,另外两个粒子的自旋方向必然和它相同。

假若上述三点在实际上可以做到,那我们就可以利用它来生成区块链:通过共识算法获得入链权的节点先生成一个混合态Ω,这是三组量子比特的纠缠态,将其中Ω1与Ω2保留在本地,Ω3放出去。

接着,上一个区块的哈希标记(也是量子态),与第一个Ω1一起,用H算符作用一下,得到了一个新的区块哈希标记B。此后每放出一个Ω,就将Ω1余上一次得到的哈希标记一起用H算符作用,可以一次放出固定量,比如N对,从而得到新的最终的区块哈希标记B',和每一个Ω2放在一起,完成区块打包。

注意,此时区块中的所有量子比特数据都处于未使用状态,但已经打包成了一个区块。

放出去的Ω3如果需要使用,则将Ω3与账簿记录对应的量子态(从经典数据制备量子态相对而言是简单的)一起用E算符加密,得到的是一个量子混合态,因为Ω3目前还是量子混合态,最后对这个混合态进行测量。这样得到的数据便可以进行全网公布。

这样,当使用方使用Ω3的时候,它并不知道Ω3最终会塌缩成什么值,所以无法将结果传播给其它节点。而还是量子态的Ω3无法被复制。使用方只能得到Ω3与数据d一起加密后的结果,但并不知道密码。

同时,一旦Ω3被使用,则Ω1与Ω2的状态确定。在区块中,Ω2因为被确定、坍缩到经典基态,所以可以被正常读取,因此大家可以从区块中获得加密数据用的密码,用以验证交易记录。

而当区块中所有Ω2都确定下来后,区块的哈希标记也就被唯一确认了,不可更改——当然,即便Ω2们没有被确定下来,量子态下的哈希标记也是无法更改的,只不过混合态下表示还有Ω2没有被使用。

如果有人想要攻击这套系统,Ω3传递的过程是无法攻击的,攻击的结果只能是Ω3以及配套的Ω1与Ω2无效,但并不影响正常交易。

Ω3的使用过程也无法攻击,因为使用者都不知道Ω3最后会生成什么样的结果。

唯一可能的攻击点,是从区块中获得Ω2数据,然后使用该Ω2数据对受污染的脏数据做加密,让人无法区分到底哪一次交易是正确交易。

对此,也有解决方案——理论上的解决方案。

假定,我们有一种非对称加密算法,需要一组公钥和私钥。然后,存在一套算法可以从私钥推算出公钥,但并不存在能在可接受时间能从公钥逆推出私钥的算法,并且这套从私推共的算法可以被量子化为量子算符A,那么我们将Ω2用算符A作用以得到新的量子态Ω2'。

该量子态Ω2'在Ω3被使用的时候自然也被坍缩确定下来,从而验证的时候便可以使用Ω2'去验证用Ω3加密的数据(Ω3和Ω2是相等的,只不过存放的位置不同),但他人即便从区块中获得了Ω2',也不知道真正的Ω3是什么。

这种非对称加密的算法有很多,比如椭圆加密算法,但问题是这种算法以及从私钥推公钥的算法是否可以被制备成一种量子算符(物理上就是一种特殊的相互作用手段)。

现在,我们总共需要四个量子算符:非对称加密算符E、非对称解密算符D、哈希算符H以及私钥推公钥算符A。

假定HEAD这四个算符都有了,那么上述方案就可以在区块链上构造一个先分发具有公信力的信用后使用该信用进行交易消费的理论上不可被攻破的区块链系统。

这个过程中,量子不可克隆原理保证了秘钥Ω3传输过程中不可复制,量子纠缠特性保证了在交易被最终加密确认下来之前,没人(包括交易方)知道密码到底是什么(公钥一用即被销毁,留下的只有私钥),区块链保证公钥分发的合理以及记账的有效性。

这么一个系统看上去是不是很美好?


当然,上述一切目前都只存在于理论中,HEAD这四个算符没人知道能否造出来——而且,就这个变态要求来看,应该是不大可能被造出来的,哈哈哈哈哈哈哈~~~~



原文发布时间为:2017.08.13
本文作者:LostAbaddon
本文来源:简书,如需转载请联系原作者。

用云栖社区APP,舒服~

【云栖快讯】云栖社区技术交流群汇总,阿里巴巴技术专家及云栖社区专家等你加入互动,老铁,了解一下?  详情请点击

网友评论

雪花又一年
文章1320篇 | 关注25
关注
服务底层使用经国家密码管理局检测认证的硬件密码机,通过虚拟化技术,帮助用户满足数据安全方面的... 查看详情
用于实时预测用户对物品偏好,支持企业定制推荐算法,支持A/B Test效果对比 查看详情
大数据开发套件(Data IDE),提供可视化开发界面、离线任务调度运维、快速数据集成、多人... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
建站4折

建站4折