8BTCCI: 13757.25 -1.18% 8BTCVI: 6566.88 +0.53% 24H成交额: ¥2926.89亿 -22.67% 总市值: ¥18898.58亿 -1.36%
2019杭州区块链周 | VNT Chain刘振广:区块链安全及隐私保护的5个研究

2019杭州区块链周 | VNT Chain刘振广:区块链安全及隐私保护的5个研究

海伦 发布在 区块链 独家 47822

5月16日,在由杭州市金融办指导,巴比特主办的2019杭州区块链周•Chainge技术开放日上,VNT Chain首席科学家刘振广发表了以《VNT Chain区块链安全及隐私保护研究进展》为主题的演讲。他分享了VNT Chain目前的五个研究方向:一是PAMB,基于零知识证明实现针对账户模型的隐私保护方案;二是Q语言,基于形式化验证实现了百分之百没有BUG的合约;三是区块链共识验证方法,采用了DPOS和拜占庭容错算法,加上特色的硬件加速;最后是AI+Blockchain的两个实践,基于图神经网络的方法进行智能合约安全漏洞检测。以及对于节点时间序列性数据采用深度学习方法,实现对危险账户智能监管。

以下是刘振广的现场演讲内容精编,由巴比特整理。

25981557938389_.pic_hd

我先简单分享一下对区块链的观点,区块链1.0是以比特币为代表的可编程货币。区块链2.0是以以太坊智能合约为代表的可编程金融。我们认为区块链3.0是可编程的商业级应用,也就是把区块链应用到各种各样商用系统里。

25991557938412_.pic_hd

我们刚刚接触区块链时会遇到很多概念,加密算法、共识算法、区块…概念很多导致逻辑比较混乱,感觉区块链就是一个大杂烩。我们化繁为简,区块链的本质到底是什么,其实很简单,说白了区块链就是一种新的数据管理和计算方式。只不过这种方式相比于传统中心化存储有它的特点,它的特点就是利用链式结构来存储数据,利用分布式共识算法来更新数据。利用密码学的方式保护数据,利用自动化的脚本,智能合约操作数据,就是这么简单,是一种新的数据管理和计算方式。

 

VNT chain的五个研究方向

 

接下来,我具体讲一下VNT chain在区块链方向五个研究方向:一是基于零知识证明的隐私保护;二是智能合约语言;三是共识算法;四和五是结合人工智能和Blockchain做的研究。

26001557938427_.pic_hd

具体来讲,一是PAMB,基于零知识证明实现针对账户模型的隐私保护方案;二是Q语言,基于形式化验证实现了百分之百没有BUG的合约。有人可能我在吹牛,百分之百无BUG做不到的,但一会我会展开讲为什么能做到百分之百没有BUG;三是区块链共识验证方法,我们采用了DPOS和拜占庭容错算法,加上特色的硬件加速;最后两个研究点,一个是基于图神经网络的方法进行智能合约安全漏洞检测。以及对于节点时间序列性数据采用深度学习方法,实现对危险账户智能监管。

1.PAMB:基于零知识证明实现针对账户模型的隐私保护方案

26011557938453_.pic_hd

展开来讲,PAMB是基于零知识证明针对账户模型的隐私保护方案。提到隐私保护,首先要明确到底保护什么。很简单,无非就保护两个事情,一个是交易双方的关联关系,一个是交易的金额。

现在我们的区块链系统余额模型主要分为两种,一种是UTXO模型,就是为消费的交易输出模型,比特币就是采用这个模型。另一种是账户模型,以太坊就采用账户模型,VNT Chain也采用账户模型,这两个模型到底有什么区别?

UTXO是每一个人可能有好几个账户地址,这些账户地址没有人知道是谁的。我看到了一笔交易A地址转到B地址,但我不知道A的拥有人是谁,B的拥有人是谁。账户模型就不一样了,我有一个汇总的功能,这个人到底有几个转账地址,我是知道的,明确的。因为我有钱包的功能,统计他到底有多少钱,所以是知道他具体有哪几个地址,UTXO模型隐私保护会相对容易一些。

当前的隐私保护方案主要针对UTXO模型,比如说Zerocoin、Monero。针对账户模型的隐私保护方案现在还比较缺乏,现在隐私保护方案还有另外一个缺点,灵活性不够。隐私保护就这一种方案,固定的。比如我有一个需求,这个交易隐私保护需求不是很强烈,想保护的密集低一点。或者这个交易隐私保护非常高,密集高一点,可不可以,传统方案就会说不可以,就这一种方案。

26021557938493_.pic_hd

我们的解决方案是把交易过程分成两步,第一步,不是把钱直接从发送方发送给收款方,而是先由发送方发到Merkel树上。再从Merkel树上钱存到收款方,这两步都用零知识证明保护。Merkel树大小不固定,可以动态调整,交易的隐私保护密集高,就调大一点,密集低,就调小一点。

26031557938517_.pic_hd

这两步涉及到四个基本操作:发送、接收、明文转密文、密文转明文,涉及了相应的门电路图。

2.Q语言:基于形式化验证实现了百分之百没有BUG的合约

26041557938563_.pic_hd

Q语言,我们设计了一种适用于形式化验证的智能合约语言。我们知道高级的编程语言,C语言、JAVA,这些语言都是面向函数和过程,把代码组织成一个个函数,实现业务逻辑时就实现一个过程。这种方法有很多BUG,这些BUG和安全漏洞基本上不可避免。现在由于智能合约所导致的安全问题已经造成了12.4亿美元的损失。

还有一个缺点,对于安全有关的领域,比如航天、高铁、核电、航空,涉及人类安全,如果很容易出现BUG的话无法容忍的。我们设计了一种Q语言,专门针对这种安全相关领域需求,当然也支持C语言这些高级语言,只不过这种是特定的,针对这种领域的应用。它主要是使用数据类型,不是int,不是double,而是有理数,这些数域的东西。数学描述表达也是用数学描述的语法,数据类型就用数域里数据,所以能做到实现程序和数学描述完全等价的,就保证没有没有BUG。

这不是我们拍脑袋想出来的,形式化验证是由牛津大学教授提出,经过几十年发展,现在也已经有了很大的进步。我们基于现在的技术做了一些改进,同时应用到智能合约语言上,我们是第一个把它做到智能合约语言上的。因为我们程序和数学描述是等价的,执行时间可以精准预估。

3.共识:一种采用硬件实现共识验证的方法

26051557938598_.pic_hd

关于共识算法,这里采用的是DPOS,拜占庭容错和硬件加速,共识算法里最耗时的就是数据处理和加减密,操作次数太多了,就把这些常见的加解密还有数据处理用硬件加速,来增加它的吞吐量。

4.AI+Blockchain的两个实践

26061557938666_.pic_hd

AI+Blockchain结合有两个实践,第一个实践是基于图神经网络智能合约安全漏洞检测,这里我先讲一下,现在AI应用到区块链的主要挑战在哪里?主要挑战就是因为数据非结构化,神经网络处理数据都喜欢结构化数据。比如一个图片就是几行乘几列,很规整的矩阵,训练时非常容易。对于非结构化数据,处理起来非常难。区块链里面非结构化数据偏偏比较多,主要挑战在这里。

因为这个挑战,当前做安全漏洞检测有很多方法是基于如图所示的3条硬规则。满足这3条规则,就认为有漏洞。没满足,就是没有。但这种硬逻辑规则可以绕过去,导致误判。

我们提出能不能用人工智能方法大量学习,而不是简单用3个逻辑数据判断。首先将智能合约代码转化为程序流图,第二步把程序流图消融规划,这个节点数不一样,这个有10个节点,那个有100个节点,而且程序流图长得不一样,训练时还是非结构化的,怎么样结构化一下。我们采用二分图的方法进行规划,不管有多少节点,都划分成两类,一类是核心节点,一类非核心节点。非核心节点消融到核心节点上去,这样结构统一起来,就可以用现在已经是结构化的数据,用深度学习的方法去训练。

26071557938685_.pic_hd

第二个是用深度学习的方法,基于节点时间序列智能判断账户,智能发现一些危险的账户。

基于时间序列处理方法已经很多了,区块链里有很多时间序列数据是很丰富的,比如VNT里设置每个矿工有一个账户,所有给他的奖励都发到账户上,账户余额,还有更新频率都可以形成一些时间序列。每个账户余额,它的交易频次,交易金额也都可以形成时间序列。

26081557938705_.pic_hd

现在处理时间序列的常用方法是LSTM和GRU,GRU是门电路模型。这些比较常用的方法,存在的问题是什么呢?首先把时间序列组织成1-T个桢,每次读一桢,更新语义隐状态,再读一桢,这样顺序的读下去。它存在的问题是后面几桢看得非常重要,前面一桢都忘了。

第二个问题,必须顺序的读,不能并行的读。基于这个,我们也提出了一个新的处理时间序列循环神经网络模型,我们的方法是用城市化语义隐状态,不是用一个状态建模语义。而是分成两种状态,一种是时间序列建一个语义隐状态。另外是每一个桢视角建立一个语义隐状态,在每个循环部通过交换相邻桢之间隐状态,更新语义状态。

最后,我想说VNT Chain是一个开放的社区,我们会奖励每一个为VNT Chain做出贡献的开发者,我们也组织了全国性的比赛,在全国几十个高校里进行宣讲,欢迎感兴趣开发者加入我们的社区。

评论(1)
登录 账号发表你的看法,还没有账号?立即免费 注册