10分钟,北大博士带你分析区块链数据安全的新方向
区块链数据的不可篡改性,使得区块链在保护数据隐私安全方面存在很大的不足和挑战。此外,区块链上所有数据都是公开的,因此无法存储和计算敏感数据(如金融交易、个人敏感信息等),这也限制了区块链系统自身的发展,使得很多应用和敏感数据的计算处理无法在区块链上执行。
8月25日,以“区块链技术与行业应用落地”为主题的CSDN区块链技术沙龙上,北京大学博士魏明分享当前区块链数据安全的相关情况以及Trias通过三权分立的可信算力网络、软件可溯源框架和智能合约生态来构建一个安全可信的数据系统的方案。
魏 明
Trias联合创始人&CTO,北京大学博士。前中国航天软件研发中心高级架构师、西门子研究院工程师。多年的团队软件开发与管理经验,涉及云计算、人工智能、嵌入式等多个领域。
以下内容为魏明现场分享实录,由区块链大本营整理发布。
今天我主要分享的主题是区块链数据安全的新方向,什么叫数据安全?在学术界一直在定义这件事情。其实主要是两个纬度,一个纬度是数据的不可篡改性;另外一个纬度就是数据的隐私安全性。
对于中心化的数据,你是很难从技术角度来说,保证一件事情不可被篡改的。比如之前,我们在跟一家云服务公司合作的时候,提到一个问题,如果政府想要看我们网站的一个网页,结果网页被黑客篡改了,怎么办?他们的做法是通过备份还原器进行还原。但是当时我们在场的技术人员马上又说,如果黑客攻破了你的备份还原器呢?最后也没有办法了。
不过现在可以通过区块链来做这件事,保证你的数据是不被随便地篡改或者是被删除。但是又会遇到新的问题,隐私性怎么办呢?其实很多人在区块链上进行交易时,都会发现一个问题。我可以通过查看你的地址,就能大概知道你有多少币,其实这些信息用户还是不希望被别人知道的。从这个角度来说,区块链上的数据完全是安全的,那是假的,因为它确实在隐私安全方面还有很多事情要做。但我们认为所有的产品都不完美,因为我们还需要发展。
而最近的发展,大家对于数据的安全有了更高的要求。为什么呢?因为最近很多的项目,它们一直在解决一个问题,想要保证数据的不可篡改性,又希望尽量做到数据的隐私安全性。那么基于这样的平衡和原罪,最近新的技术和方向会有哪些新的诞生,我们一起分享。
我主要从以下四个方面来分享:速度、交易、安全和应用。
速度
首先我们来说一下速度,速度是贪婪的,为什么呢?因为它是一个矛盾体。其实大家做计算机的都知道,安全和速度永远都是矛盾体。但是现在很多项目都说他们具有区块链中优秀的安全性或者不可篡改性,然后却告诉我明天就可以在上面跑高速视频,其实对于现在的速度来说,这是不可能的。现在能够达到1900TPS或者2000多TPS就已经非常不错了。
我们可以来看一下之前在以太坊上很火的一个加密猫游戏,它对以太坊的影响是使其速度从20GWei 提高到了60GWei,可以说影响是非常大的了。但是这里边有一个问题,以太坊的速度不够快,这是全世界很多人都在吐槽的地方。
那多少TPS算快呢?一个斯坦福的项目说他们的链最终至少要做到10亿TPS,这是一个什么概念呢?我们可以来简单算一下。假设未来真正有一个链,已经将TPS做到3万,在真实场景下每秒能达到1万TPS。然后每个交易存储只有1KB,那么一天账本就会达到820多GB。可以想象,TPS达到百万、千万,甚至上亿是什么概念。以现在的计算机技术,这是不可能的事。
但是我们作为落实者,在这2年是要去解决它的人。怎么解决呢?现在有侧链、跨链、分片、DAG这些比较火的方案,今天我想分享的主要是分片。
分片的基本原理是什么呢?通俗的讲,原来干任何一件事情,在主链上,把所有事情都做了。现在的方式是什么样的呢?比如以以太坊为例,上面有一个主链的,然后在下面可以划各个片区。然后每一个片区可以建多个分片,每个分片跟主链打交道,这是基本的思路。
那么基于这样的情况,现在的分片主要的情况大概是3到6个。第一个是网络分片,实际上就是虚拟路由,在网络上不停地换子网。这种方案表面看是非常简单的,其实为了保证你的公平性和数据的一致性,这块也是非常难的。
然后第二个是交易分片,就是设置了一个虚拟的对帐本,你跟我交流,实际上是我们两个在对帐,我这边有一个人专门收钱。我不管你那边干什么,我知道结果就行。这样做最大的问题是首先你有多余的帐户,此外片与片之间对帐是非常痛苦的。
第三个是状态分片,其实它就是一个独立的链,但是中间要通过一个转换和一个帐本达成共识一致。不过这样做,很容易造成分片被攻击。
到这里,我们可以看到,目前所有公开出来的分片技术,其实还有很多问题要去解决。分片技术最大的一个问题就是,如果跨片交易特别多的情况下,分片对于速度提升就没有意义了。这就是分片技术现在要解决的问题。
对于这个问题,现在的做法是什么呢?比如我们团队的做法,我们在这个基础上加一个动态的常量去平衡它,当然还有很多办法。
既然大家努力地想要区块链的安全,然后又想要区块链隐私,这本身就是一个原罪。我一直相信人类对于那种便利性的追求,就是一种毒品的贪婪。比如你有了法拉力时速达到280公里还不满足,还想百米加速达到2.9秒就算你真的开到2.9秒的加速,有趣吗?没有,但这就是人的原罪。
交易
对于基础架构这种难题,我们很难去改变,可不可以选择做小一点的事情,去寻找一种根本性颠覆的应用场景和路径。像硅谷现在已经大量的团队在做去中心化的支付,因为他们觉得现在这种支付模式一定会被淘汰。比如我们买一个东西,凭什么要把钱给支付宝或者是银行押2、3天,然后再把钱转给商家,凭什么他们拿着我们的钱去赚钱?这就是矛盾冲突的地方。
所以我们在今天分享的第二部分是闪电网络。但是不代表3个月以后或者半年以后还是闪电网络化,因为大家都在想办法,把中心化这种无才寡头给过渡掉。为什么要提闪电网络呢?因为去年年底,通过闪电网络,实现了人类历史第一笔离线去中心化模式的交易。
闪电网络的做法是什么呢?举个例子,比如很多人买房找朋友借钱,关系再好也要写个字条吧。闪电网络的模式也是这样的,虽然我们两个是离线的,那我们两个怎么借钱?那我们也可以签一个便条。这种便条是一是双份的,两个人都签。但是唯一不同的是,现实的东西还是会有纠纷。最后有纠纷的时候你可以拿着这个电子签的字到法院去调解。然后你朋友也没话说,因为有便条在,所以他就该把钱还给你。
这样,很多的交易根本就不需要银行、支付宝这些中心化机构。以后比如你去商店买东西,就可以在比特币上面建一个通道,全世界都能看到,然后交易过程全部放到上面,这样银行是没办法参与的,也没必要参与。
举个例子,其实就是这样。就是两份一样的借款字条,两人都需要签字,你要借钱给另外一个人,你先拿出来。但是这两个模板在区块链上有一个纯正的,它在区块链上不是做运算打包,它只是存证,证明当年你们要签的借钱条,中间是没法抵赖的。第二步如果我要转给别人,我可能是这样,我先把我的字签好,这份上面还没签你的名字,我先把我的字签了拿给你签,双方签了字以后,这个事情也会在链上有认证。
现在最大的问题是什么?链的配合。如果要把这个东西做好,需要很多东西配合,而且包括智能合约。但是很多团队正在努力,他们相信下一个颠覆世界的是支付。至少我看到硅谷那边的疯狂,他们所有人觉得字据的钱终于不会在银行过夜,让别人拿去做隔夜贷。
由此衍生的硅谷的团队由于这种支付的希望,他们开始做去中心化的银行接待中心,在区块链层面。现在他们很多团队在做,你发现现在小额贷多了,比如蚂蚁金服的小额贷。但是像深圳当地有很多小老板信贷都很难。为什么?别人不信任你。
但是区块链的贷款可能会成为一个非常好的方向,因为所有信息都在上面不可篡改。你以前所有的交易记录都在区块链上面,所以它可以很简单地去中心化,把钱借给另外一个人,而且你没办法抵赖。一旦到这个时间你不还,因为你所有的状况我都知道,区块链上会自动把你的资产划过去。
上边给大家分享一种支付模式的变革,我希望大家一定要有信心,不要有怀疑,这一定会颠覆很多公司的。你不要担心前面的大公司,人类要前进就一定有大公司要倒下。
安全
第三个就是从安全可靠性来说,现在大家渐渐已经发现很多问题。大家如果感兴趣,可以自己做一个统计。你们知道每2个月全世界平均被盗的币有多少吗?我在北京了解的黑客水平比较好的,没人在对银行有想法了,因为投入产出比太低了。而且现在在国外,专业的黑客团队就是抢币。
所以,现在专业的黑客都在打数字货币的算盘,而且最喜欢偷的是交易所。为什么?因为像火币、币安这些交易所,他们还是中心化的,就是一家传统公司。所以对于传统黑客来说,这些交易所就是一个网站。
我们可以看一下已经爆出来的漏洞,了解一下黑客当时攻击的原理是什么?比如SGX这个漏洞,这是8月14号的一个漏洞,它当时攻击的原理其实很简单。像Windows这个应用平台,它没法像苹果一样做到全身来控制。你可以随便写一些代码进去,只要杀毒软件没问题就行。
那么它是怎么攻击的呢?它是因为SGX本身把你所有的运行的东西像是放在一个黑盒子里。但是它不能去改变Linux和Windows的运行流程,它不像苹果,我们没法配合。没法配合的情况,它为了本地的运行,它有些东西没保护,什么东西没保护?cash。
所以大家想到了攻击方法了吗?所以说你要是自己去写一个程序,不断地对着X86的cash进行擦写,总有一天会碰到一个关键的密钥的弊端。
就像当年图灵破解二战的德国密码,他天天在听德国的电报,一直听也没有找到有价值的信息,但是后来他发现一件事,有一个频道出来的第一句话,都是同样一个名字,就是Hi希特勒,他就以为突破点,成功破解德国的密码。
SGX攻击方法也是这样,通过不断地擦写,然后不断地对比,突然发现有一块和自己现实数据理解的数据是完全一致的,以它为基础进行攻击。
所以这种攻击绝对不是很简单的工作,常规是没有办法的,不过因为在去中心化世界里面是有很多的节点,所以你不要太担心这种事情。
应用
下面给大家介绍一个在我们项目上的落地应用,在介绍这个应用之前,先简单介绍一下我们的项目Trias。
Trias是想构建可信赖的智能自主运算设备,构筑普世可信赖计算生态,让人相信机器。我们这个项目采用是的三层架构。第一层是基于TEP,以它来保障整个共识节点的安全,但是大家知道一件事,不管是POW还是POS,它的确认时间是很快的,而且一旦把这个交易确定,模块化时间是很快的。所以遇到一个问题,第一层的吞吐不行,它的吞吐受共识方法影响,因此它很难做到很好。
第二层,我们在吞吐这一层使用优化后的DAG来做的。在这一块也有一个共识,它只管一件事情,只是吞吐。快速地进行交易。而且在这一层还有一个概念,所有在我们这条链上参与的DApp,你必须要通过第二层的共识,你写的所有的智能合约,还有你的代码源码,包括什么人写的,你全部在这一侧要达成一个共识,然后要存储下来。这样保证在战略在上面运行的所有能力都是可用的。
然后第三层是关于智能合约,那么这一层智能合约跟现在大多数的智能合约需要解决的问题是差不多的,所以我们最主要的是上面这三层。
基于这个项目,我们做了一个关于茶的溯源应用,为什么要做这个应用呢?
对于6000块钱的茶和1000块钱茶的区别,其实只有很专业的人才能品出来,但实际上大部分人是品不出来的。所以基于这个,我们做了一个茶的溯源应用。
我们当时做的时候是分了三层的结构,因为茶商他们自己有物流,原来也做过一个系统,中心化的网络管理平台。所以业务层主要是这三个东西,所以这一层是缺点,这一层是保证不了的。这一层网络管理平台你就只能去信任,我们觉得目前你只能去信任现在的应用厂商,这是躲不掉的。
所以你不要去纠结一件事情,说这其实不是去中心化应用,你这么说我也没有办法。而且我们当时给他做的时候主要是做茶园和做仓库,其他几个环节没有打通。其实现在做这个最难的是什么?是关系。因为其实大家都知道你要做什么事情,这里面有很多的意义。
但是我相信区块链未来一定是能改变很多行业的供应链和运营,以及最后制造的很多环节,这些你都不用怀疑。