查看原文
其他

华为首席区块链科学家黄连金演讲:区块链即将步入3.0时代,将会颠覆很多“传统”

深圳梦 2020-09-17

作者:洛尘


       2017年11月7日,中国电子学会在京举办中国区块链技术与应用创新发展论坛暨中国电子学会区块链专委会成立大会,此次大会由北京太一云科技有限公司、中电新一代(北京)信息技术研究院、Qtum量子链、星云链等单位协办支持,大会上众多行业从业者从不同的角度分析区块链的本质和未来发展方向。


       作为中国电子学会区块链专委会委员的华为首席区块链科学家黄连金,在此次大会上以《区块链项目的安全落地》为主题进行了演讲。作为布局区块链已久的华为,此次针对区块链项目安全落地将会有哪些自己的见地。


华为首席VP、区块链科学家黄连金


演讲实录:


       区块链不是凭空产生的,它的出现是建立在现有的很多技术之上,P2P网络、点对点网络、哈希算法、分布式数据库技术等现有且成熟的技术造就了区块链这项技术的产生。


区块链即将步入3.0时代,将会颠覆很多“传统”


       区块链1.0是比特币,它把这些技术融合起来,产生了一个比特币。然后1.0有一定的问题,只能做一些简单的币,把比特币从A转到B,稍微复杂一些就需要非常负责的程序和运算。针对这个问题,一个加拿大的俄罗斯籍年轻人,他说比特币应该扩展,应该能够用一些通用程序,但没有人响应他,他自己写了一个白皮书,搞了以太坊,这是智能和约产生。


       区块链3.0大家没有统一说法,到底什么是区块链3.0,有一种说法是现在总得来说1.0、2.0有两个重要的问题,一个是性能,性能不能提高,每秒钟交易不是很高,比特币3到5TPS,以太坊15到25TPS,不是很高。所以这方面有很多研究。包括国外的研究项目,也有一些国内的,性能方面。


       还有就是安全方面,刚才徐教授讲得很对,现在比特币用的加密技术,就是签名和哈希,没有把内容进行加密,你在比特币上从A到B,多少个比特币转来转去非常清楚。但是以后一些新的区块链技术肯定考虑到隐私、安全,肯定会在加密技术上用到。刚才NPC多方计算也有人在研究,包括零知识证明、多方加密。


       区块链技术本身到底是什么,我们没有完全定义,这里可能是一些特征,有可能是高度冗余的数据库,也可能是基于密码学的,是不是去中心化规定,你如果去中心化,很多单位不愿意去中心化,但是有一种讲法是去中介化,没有中介但是还是有中心的。还有价值,它是基于价值的互联网,以前说数据转移,我把数据从A送到B还是有的,你拿到的是拷贝,但是把100美金付给你,你有了我应该没有,以前通过第三方来背书,现在比特币网络里,比如说我把比特币转给你没有第三方,通过共识算法,刚才徐教授讲的共识算法,没有第三方转给你了。


        大概回顾一下,我想强调的一点区块链技术现在还在发展过程当中,也不是非常成熟,它后面的精神,有人说是区块链精神,它是非常有生命力的。它是对信任的重构,人与人之间关系,组织与组织之间关系,人与组织关系,政府与政府关系,政府与组织关系,都会重构。


        如果说不是颠覆性的只能说他对区块链理解不够。现在很多中心化的系统,如果从中心化理念去讲,系统改造的只有5%的应用,可能用到区块链,除非把整个商业模式改了,还有95%的现在还不存在,相当于我们必须通过思维的改变、模式的改变才能做。区块链真正给大家商业模式创新来推动技术模式创新的很好的场景。我们大家现在已经看到了曙光在升起,分布式的商业模式升起,区块链相当于1997年的互联网,那时候我们看到的电子邮件、门户网站,现在我们看到的是比特币、以太坊,小规模的POC,没有大的。因为现在没有看到具体的,像1995年我们没有看到淘宝、没有看到脸书。


CIA三要素将是区块链3.0的重要组成部分


       传统来说我们是讲CIA三要素,也有人说这三要素不够,但是我们现在按照传统的三要素去说,C是保密性,I是完整性,A可用性。


       总的来说,它有一些潜在影响了。因为特别是一些领域Hash of Public Key,经过两次哈希产生地址,因为哈希不可逆性很难从地址推断出公钥,这种角度来说有一定匿名性,但是是伪匿名性,但是交易的帐户地址和内容是公开的。从大数据行为方法可以判断这个人是谁。2014年日本有一个蒙特哥比特币交易所倒闭,因为有一个黑客把比特币偷走,通过大数据分析方法推断出这个人是谁,今年年初被抓。


       所以这个例子是说,从保密、隐私角度来说不一定是对的。但是从不可否认,每个都必须签名,用私钥签名,私钥如果保护得好,签名以后人家用公钥验证,肯定验证到我,但是如果我的私钥没保护好,所以是一个问题。


       私钥保护,比特币没有解决这个问题,我们以后在落地的时候一定要考虑这个问题。因为比特币、以太坊是一种极客活动,不是普及性活动,公共活动一定要考虑这个P放在哪里比较好,要不要放在托管或者其他地方。


       保密性来看原生比特币,也就是区块链,在保密性上没有做任何工作。刚才徐教授讲了它都是签名,没有保密。


       所以在这方面,联盟链我们有一些解决方案,比如说HyperLedger做了一些工作,每次都会产生一些新的公钥私钥对应对,每次都不一样,很难通过大数据分析。这种角度来说,HyperLedger做了这方面工作。后面一些新的发展做到了这一点。


       徐教授讲的零知识证明,用在电子现金,可以把这些全部加密,但是时间需要长一些。现在有一些优化方法,比如说上次上海开会的时候介绍了以色列的一个团队,在这方面做了一定突破。大家可以了解一下。


       所以这方面密码学专家,现在确实是有很多事情要做,包括多方计算、MPC以及不同方式。


       还有同态加密。同态加密好处是我把数据加密了,而且你不需要解密,在数据里进行运算、我把这个结果送给你,只有你能解密,和没有加密运算一样。这个确确实实有很多人在做,传统加密的,在这方面大家都在努力。


       如果能够把这个做出来,区块链技术将会得到极大的提升,对云计算也是一个贡献。云计算以后可以把数据安全存到云上,不用管了,因为只有你才能解密,监管部门要穿透性监管可以。这里不光同态证明,还有反签名、超过一定法子的,比方监管部门要同意,数据拥有者要同意,云提供商要同意,三者有两个同意就可以了。如果监管机构要查一个人,云计算没办法,只能拿它查,有应用场景。


       通过这个状态,状态通道在比特币里闪电网络,以太坊里用的是另外一种,它们基本思想很简单,我和你之间交付,如果我们在主链上有不同,下面一些交付不需要让主链知道,数据不可见,只在侧链上可见。它本来的想法是为了把所谓的性能提高,但是比较好的一个副作用是使得数据不可见。


       目前来看,加密对于区块链1.0、2.0没有做出多大贡献,但是3.0将会起到很大的作用,特别是联盟链、私有链、公有链。联盟链是必须通过验证,私有链是公司内部管理,加密技术对于联盟链非常重要。


       下面讲讲完整性,区块链原生的就是一个完整性,数据不可篡改。每个数据都签名了,别人很难篡改我的数据,我签过名,比特币里有51%的,有51%的算例可以放自己的数,没有别人的私钥不可以改。51%主要解决自己的,你可以把比特币花掉说我还有,这个是51%的意思,但是没有私钥改不了数据。


       刚才说它是链起来的。刚才徐教授非常形象告诉大家,链起来前面那块你一改后面全面要改,所以越前面越好,链越长数据越安全。


       在区块链比特币里有不同的类型的结点,有些结点是所谓的for note,要挂靠,帐本在那里,有的结点太多了,我是一个手机,轻钱包不需要太多的数据,把区块头拿过来就够了,然后可以保证这里面数据和主链一致。这里说你现在比特币网络一万多结点,也有人说四万多,具体一万多结点有的。如果一改马上通不过去了,看你这个没有被改过马上同步。这个是本身的程序写的,不需要人去做。


       可用性也是一个问题,不是说用的时候能够用,一定要响应时间秒级之内,这是一个问题,现在很多区块链拓展技术,有这方面问题。目前区块链解决I的问题,C和A有很多工作要做,技术不够成熟。


安全性是一个区块链项目的基石


       区块链确实有安全的比较好的属性,光这些属性够不够,如果我们公司去做一个区块链项目,因为区块链有很好的不可篡改、可信性我就去落地一个项目,这是一个错误概念。所以要考虑到很多安全因素,工信部为此发布区块链五层架构图。数据层、网络层、激励层、共识层、智能合约层,每一层都要考虑,如果没有考虑清楚黑客可能就进来了,把你的项目黑掉。



     以上为区块链8个至关重要的安全点,如果这八个做好,你区块链项目90%还是安全的。这是安全控制需要考虑到的。


       我刚才讲的是key Management,如果你自己的丢了那是你自己倒霉,但是如果公司的资产丢了,完全是毁灭性打击。所以话都说回来比特币上有很多死的比特币,很多人的硬盘数据丢失没有备份,很多人找不到比特币了,因为私钥丢了。怎么样把私钥防止丢失、被盗是一个重要课题。


       所以落地的时候肯定要考虑这一点,Key应该放在哪里,具体怎么放大家是可以了解的。


       我讲一下智能合约安全,智能合约和传统的编程不一样。因为它可以承受几亿资产在那里,为什么智能合约这么做呢?放在链上很多程序,满足条件可以自动执行。如果把这个放在链上,一旦条件满足就自动成型,有些资产自动转移了。所以会锁定一些资产,锁定资产是通过共识的,很难篡改,如果上面一些逻辑没有写好,就会有问题的。


       比如举一个例子,去年有一个比较大的区块链项目叫DAL,其基于以太坊开发,这个项目一开始成功,筹集到一亿多美金,投很多钱进去。后来黑客看到一个漏洞,DAL初始程序没有写好。黑客看到了,重复调用这个漏洞,将7500万币转走,这个项目就倒闭了,这个原因促使以太坊第一次分叉。以太坊有两派说法,一派说他是合理的,按照智能合约转走的,我按照合约转走是合理的。我们不应该罚他。还有一个方案这是黑客的钱,从这个高度到另外那个高度有他这个,那个就不要了,从前面这个高度分叉了,分成一个新的,这个钱就取不走了,那些人钱还在里面,分出两个开,一个是ETH、一个ETC。


       在今年,多签名钱包,开发者很有名气很厉害,他是以太坊的黄皮书,黄皮书写作人是技术最牛的,黄皮书写了以后,如果看得懂黄皮书又懂语言开发可以把以太坊重新写一下,他搞了一个东西,写了智能合约,有一个小漏洞,有一个函数出现漏洞,黑客重复调用了。这个智能合约登陆也没有问题,最后还是被黑客找到问题了。


       被转走3000万,他说明锁定一亿美金,而且不同的项目筹到的资金都锁定在那上面,三千万美金弄走以后,幸亏有白帽子发现有这个问题,因为智能合约有一个问题,共识以后停止不了,不能说黑客转了,我就停止就行了,除非整个以太坊网络整个停止,他停止不了,幸亏一个白帽子团队把其他七千万转走,否则很多项目倒闭。


       智能合约安全非常重要。这是公有链,另外联盟链我们没有大规模的落地,如果大规模落地这个问题也会存在。


       所以我刚才讲了这还是初级开发阶段,大家开发的时候会讲联合起来开发和运维,但是现在AWS他们讲一种理念要把另外一种加进去,光是敏捷开发还不够,还是要讲安全。


       稍微讲几个例子,这是以太坊的,一个是有限,我们讲最佳的,尽量避免调用外部函数。我们传统的编程所谓的已经使用的,但是智能和约里尽量避免。这里我要调用这个函数,但是有可能把你的控制权拿过去,通过所谓地规取走你的钱。你设置比较好的初始条件,要把钱给我的话,先清零,再去调用,最多只能转走一次。这是一个方案。


       还有代码失败要尽量快,在传统编程的时候,我们为了编程,我找不到什么东西就给你一些缺省的,这个在智能和约过程当中是不安全的,如果找不到这个人的名字,就return五万美金。名字为空的就报警,和Java功能一样。


       还有自动淘汰。某个区块高度,这里不安排了。如果block numbur大于某个的话,就不再用了。你只能取钱取出来,因为这是你的智能和约你可以取出来。


       还有刚才讲了多签名智能合约钱包可以用这样的问题解决,不需要白帽子了,如果有问题智能和约停下来,但是一定要写进逻辑里,这里所谓的条款,only inemergency,把钱转回本来地址,智能和约就停下来了。


       智能合约开发过程多种有一些比较好的建议,要尽量简化,能够循环、和比特币来说有很好很复杂的功能,同时引进了安全问题,安全和功能是对立的,写得越复杂,安全问题越多,要找到平衡点。智能合约代码肯定要审查,通过共识就麻烦了,再拿下来就是问题了。还有尽量使用安全的样本,还有DevSecOps。


个人信息保护是区块链下一个突破口


       传统的身份管理系统确实很多的问题,因为创新不够,现在很多还是用传统的口令,而且你身份的口令,我的身份不是由我控制的,是由第三方控制的,很多第三方,对用户来说碎片化的,这个身份可以在淘宝、微信、谷歌、脸书,我自己都不知道存的是什么,对黑客来说,身份是中心化的,只要某个机构,比如脸书去偷雅虎四亿用户的资料可以这样偷走了。最近美国有一个征信机构有将近两亿人数据被盗。


       现在身份管理系统是有很大问题的,对黑客来说是中心化的数据库。对个人来说是碎片化的。所以很多公司在这方面想把它做好,对个人来说中心化,放在我的手机,可信数据库,放在T1,新的手机都有这样的key,很难偷走,把硬件拿走也不行,那里所有随机数是按照主体产生的。


       所以这是一个创新。美国至少20家单位在做,我自己的身份,我的主权不能拿第三方编写,我自己编写。现在国内也有我的项目,在座有一个THEKEY项目,他们在做区块链上的动态多维生物学身份认证,对接的是政府公权机关的数据,同时结合用户其他的行为和场景数据。这个创新很好,目前很多应用中身份认证的场景用单一、静态的数据是解决不了的。


       有些技术比较强的团队在做通过身份认证,虹膜来验证我的身份。而且这个生物特征信息存在手机里,这样可以保证一定安全。


       还有身份证明是比较昂贵的过程,就是身份验证,我证明我是我,在银行、其他单位叫做熟悉你的客户,对很多企业都是需要做这个步骤,这个步骤非常贵。很多人在这方面能够把这个做一个商业行为。比如提供一个,在用户那里能够给你一个是或者不是,他通过了我的认证,在零知识,用到一些加密技术,零知识好处是我知道你是谁,但是不需要知道有关信息。通过这些不同加密技术做一些密钥。


       另外如果改动某一个属性,要改后台的AD,现在很多人用微软的,如果要改AD,必须说服他,一般来说半年才能通过一个验证。现在是动态的,如果智能和约方法可以把有些属性动态一下。就不用改了。这是一些新的发展,是非常重要的。


       总结:区块链本身确实带来了一些安全的属性,特别是在不可篡改性,数据完整性上做了一些贡献。但是不管是加密还是性能,都需要有一些新的发展。


       现阶段区块链项目的落地,现阶段公有链,大家概念就是炒币,但这只是衍生品。真正的蓝海市场是联盟链和私有链,是真正被商业化的。联盟链、私有链真正需要落地,但安全是首要问题,如果没有万全的安全保障肯定是不能落地。特别是银行,资产的保护最重要,必须保护资产。医院也好,你病人的隐私也很重要,如果用到区块链,用户的隐私,一些个人敏感信息全部放到链上肯定有问题,所以加密、安全方面一定要考虑。


来源:比特中文网


关于深圳的一切,关注深圳城市、精神生长!

我们的使命是:星辰大海,只与梦想者同行!

拥有深圳梦,请关注(微信号ID:SZeverything)

欢迎来稿,合作,畅谈深圳梦,邮箱至:SZeverything@qq.com

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存