区块链可能不完全安全

关于安全,先思考一个问题,区块链到底安全不安全?总体来看,可能不完全安全,从4个方面加以说明。

区块链在设计之初使用大量安全技术。比如:使用分布式记帐,保证分布式安全存储。使用P2P网络,保证运行安全。使用共享机制,保证全网一致协同。使用数字签名技术,实现所有权匿名。

首先,分布式记帐技术是区块链核心。它使用哈希结构。一个是基于哈希链表块链。当前块存储以及前一个区块哈希值作为副指针,保证前面任何一点修改对后面都没影响。

另一个是关于交易安全。采用哈希树,底层是一些交易,通过中间哈希节点连接。通过这个简单哈希技术实现一致性校验。

其次,P2P网络技术。区块链不是一个简单的分布式技术。而是大规模网络下的分布式存储技术。那么这个技支持全球范围、不同地点、分散化的网络结构是如何实现的?

有一个问题是,如何实现高效通信?区块链采用P2P网络结构。其核心是小世界模型,小世界模型在理论上有两大性质,一是高密集型;二是短链原则。

带来的好处是不管命令有多大,互联网发一条信息包括六跳之内可以发布全网,保证信息传播有效性。

再其次,共识机制。对所有任务方达成一致机制。共识技术解决的问题是跨通。最经典例子是拜占廷一致协议。

比特币提出一种思想是块冲突思想,不需要大家选举,而是大家工作使用单向函数沟算,实现快速验证。后续技术包括授权证明等一些新技术。这些技术实现并降低计算开销。

最后,安全特性。是关于数字签名技术。数字签名和加密是密码学中两个主要技术。数字签名技术用来保证协议安全。

区块链中使用数字签名有一个特点,比如实现所有权匿名,也就是通过将只保留在区块链中,保留公钥部分,而不将公钥所有者信息脱落,保证资产接收者只能对资产所有者私钥进行所有权验证。

为回答区块链安全技术,我给出一个表格。竖向是四项技术:分布式账本、P2P网络、共识机制、数字签名。横向是安全性分四个方向:合约安全、交易安全、存储安全、管理安全。

针对它进行如下打分,按分数值排,存储安全分数最高。其次是交易安全、管理安全、合约安全。

这样可以得到非常客观评价。针对很有希望一项技术:合约安全,现在已经推广的一项技术。

什么叫智能合约?智能合约是一个程序。既然是程序,为什么不叫程序而叫合约?程序是单方执行,合约是多方执行。合同最上,要有甲方乙方。

其次合约并不是记帐单,现有比特币还是停留在记帐单时代,记录已有信息,能否体现出智能性,有待于学术界和产业界发挥。

我给出一个综合性定义:智能合约是共同完成具有法律效应的任务。我不是法学家,是搞安全的人。

简单讲,是不是在合约运行时引入一些中立机构、仲裁机构,合约运行使其合法化,不但要看合约运行结果,希望运行过程中保证安全。

安全一般认为有三个特性。一个是公平性合约,各方与公正机构都能公平参与合约运行。二是正确性,合约结果是一致和正确的。三是隐私性,保护合约各方信息隐私性。

针对智能合约安全性要求,我们提出一个基本框架:这个框架很简单,框架下是我们偏红色部分区块链系统,上一层根据智能合约,放在区块链里一些可执行交易。

交易存储在区块链中,如果执行这个交易,会动态形成一些动态执行组。合约各方构成临时性机构。在运行过程中会在区块链中形成若干执行组。

在这个框架内要引入安全多方计算技术,一个很容易理解的技术,数据加密状态完成各种操作技术,数据不脱密情况下能保证安全性,传统密码学可以保证所有权。

什么是安全多方计算理论?首先是理论模型,模型很简单,多方计算模型有N参与者,P1到PN,共同完成某一个计算任务。

是一个程序,每方有一个输入,最终运行结果,每方独立运行会得到Y1到Yn各自输出。这个定义就是多方计算定义。很抽象的一个定义。

这个定义基础上安全多方指什么性质?一是隐私性,各参与方不能获得任何方输入。二是一致性,重视参与者会获得一致性输出结果。Y1等于Y2依此类推。

安全多方计算理论结果,这张表左边阈值是多方攻击者,攻击者分三类,第一类小于n/3,平凡模型下,保证公平性和传输保障性,分别实现计算上的安全。

攻击者数量少于一半以上,平凡模型只需要P2P信道加工和认证,同样可以实现安全和计算。

最后一种情况比较特殊,当攻击者数目占多数,大于n/2,需要采用非平凡模型,只能在广播信道下实现计算安全。

为什么广播信道尤其重要?安全领域最难防范,对不同人进行不同对策,比如只对一个人说假话,对其他人都说真话。

这种在密码学也是最难防的,我们防止采用广播信道,发一个消息大家都能够知道,不存在差异性攻击。

安全多方及理论上可以实现可证明安全。

理论模型在历史上提得比较早。1982年姚期智先生提出姚氏百万富翁问题。1983到1987年以色列的学者Golderich提出若干定义,完善安全多方计算概念。

2000年前,学术界实现安全多方计算可行性分析。2000年后,进入安全多方计算实用化阶段,美国军方和欧洲都有实际例子。

另外一事件是2009年出现一个新词汇叫全同态加密,被认为是安全多方计算的一步,全同态加密可以实现数据同态计算。

但很快被证明不够有效。这是安全单方计算。2011年后,主流集中在多线性映射电路族的安全计算技术。

国内起步不晚,几代密码工作者一直在这方面做大量工作,2006年北大冯荣权教授领导的安全计算获得国家863计划支持。另一位冯教授获得国家科学基金支持。

我们科研团队有幸参与到上述两个研究课题中,保留一些科研成果,其中一些成果给大家展示一下。包括随机函数族生成、代数运算族实现、还有逻辑关系,逻辑比较和位操作。

区块链的出现让我们看到安全多方计算可能应用的一些场景。这里现在已经构造了叫做贝壳链的区块链系统,这个链的特点是提供智能合约安全。两个实例帮大家理解安全多方运算。

如果目前合约计算量很低,我们无法体现出安全多方计算的优势。关于智能科学举两个例子,一是隐私集簇算法,一些数据点归类,现在能做到智能合约里引入安全多方计算语言。这个语言现有程序语言框架内进行环境定义,以及安全整形定义,只要是安全定义就能进行处理。

区块链平台下形成智能合约,4方参与,这4方对于200个数据点进行集类,200个点聚类,演示时间40秒,实际运行不包括显示这些数据几秒内能够完成。

二是实验关于ID3算法,也是隐私挖掘基本算法,如同神经网络,是一个简单的数据挖掘算法。举一个例子。

一些数据表,这些数据表也许在区块链中一方或者多方共同存储数据表,对它的保密性有要求,我们允许它最终得到一些挖掘后信息,但不允许你获得这些信息,这个体现主要是上一个体现数据的计算,体现的是串类型的PK功能。核心是隐私数据的统计、检索。

现在能够做到检索和代检索完全处于加密状态能够完成工作。

这个结果是四台模拟器下完成的,时间只需要三秒钟,运算量很大,如果把通信放在一块,有12兆。

最后,区块链安全是一个新兴安全技术,是大量工作者和企业把一些新安全技术引入到区块链中。包括这几年提出的零知识证明。零知识证明并不是技术,是密码学概念。我们获取信息泄露是零。连零点几倍都达不到的状态。

其次,这几年出现一些新签名:多重签名、环签名、盲签名。密码学有大量签名方案存在:代理签名、群签名、盲验证、聚合签名、身份签名、门限签名、指定验证者签名,属性签名。

另外,数据隐私数据加密也被引用进来。呼吁我们注重自有知识产权核心技术的开发,这是科技工作者必然使命,同时希望产业界人士能够积极推动这些科研成果的转化。

区块链可能不完全安全


分享到:


相關文章: