区块链先锋门户

验证

牛津大学博士后陈邦道:安全是不可见的,唯有不安全可见 | 火星社群

责任编辑:Jan

发布时间: 2018-05-05

关键字:火星社群

收藏

139467

5月5日,“3点钟火星财经创始学习群”轮值群主姜孟君(笨总)、副群主刘函瑜邀请到了牛津大学自组网络安全博士后,Blockhouse项目创建者之一的陈邦道,进行了“ 绿色区块链与智能合约验证”为主题的分享。

嘉宾介绍:

博士.jpg

陈邦道,牛津大学计算机系博士,博士后,专业方向为自组网络安全,支付安全与通讯安全。曾负责多个大型信息安全工程项目建设,熟悉区块链安全与应用。与牛津大学教授Bill Roscoe等专家一起创建了Blockhouse项目,其宗旨是构建低能耗高安全的合规区块链,特点是绿色挖矿技术,抗量子计算机攻击安全技术和智能合约形式化验证技术。

以下内容根据群分享整理:

陈邦道:大家好,我是陈邦道,很高兴在这里跟大家交流,大家在我介绍的时候可以随时提问,我们多点火花。我会从一个从信息安全研究的角度去说一下绿色区块链的概念和智能合约验证,希望能够给大家带来一些比较新鲜的思路。我本科毕业于上海交通大学计算机系,然后去了牛津大学,在那里待了近十年。读了硕士,博士,做了几年博士后,然后也在牛津创过业,从事的方向为自组网络安全,支付安全和通信安全,有兴趣的朋友可以看下之前在牛津创业时候的报道

http://www.oxfordmail.co.uk/news/10972335.Mathematical_skills_pay_off_for_academics__app_venture/

我的专业方向比较有意思,研究如何在不依靠任何可信第三方和现有安全的情况下快速从零建立安全网络,即自组网络,这里面很多概念就是后来大家熟悉的去中心化概念。所以说去中心化的概念和设想很早就有了,很早就接触到了比特币,被它吸引,从2009年开始就做过一些研究,但直到最近两年才开始集中精力去研究区块链技术的应用,越深入越喜欢。比较着迷于它的信任模型:虽然我们看不懂区块链的代码,也看不见区块链,但是相信它所承载的信息是稳定的,有价值的。这其实是一个很伟大的思想转变。这里提一个有意思的概念:安全是不可见的,唯有不安全是可见的。这个概念跟我们后面要介绍的技术是有紧密联系的。做信息安全的人以前都有这个体会,很多时候你说安全再多也没用,客户一句话就给怼回来了:反正用户看不见,别出问题就可以了,不用搞这么复杂,意思一下就可以了。但现在不一样了,区块链经济的繁荣带来了黑客经济的繁荣,黑客攻击空前猖獗,稍不小心就会被攻击。这是个西部蛮荒时代。所以从事信息安全的同志们也迎来了春天,以前做的技术终于可以浮出水面派上用场了。

我们回到正题,绿色区块链是指低能耗,符合政府和金融行业法律和监管,高安全性能的区块链。这个概念是Bill Roscoe教授提出来的。我简单介绍一下Bill Roscoe教授,他是英国皇家工程院院士,原牛津大学计算机系主任,与Tony Hoare爵士一起创立了形式化验证技术,从事信息安全研究近30年,他是我的导师,我们一起共事也有十多年了。

低能耗是指挖矿耗能低;符合监管要求是为了拓展区块链的应用场景,突破限制,阳光化;高安全性能是指能够应对强有力的攻击和破坏。

我们将这些特性统称为绿色区块链:即绿色阳光可靠的区块链。能耗高这个问题对区块链的未来发展制约是比较大的。现在的PoW耗电量已经超过42万亿度电每年,这个是建立在用户人群1000万左右的情况下,这个量继续增长下去是很可怕的。前一段时间国内清查矿场跟这个有关系。怎么降低运算复杂度,又确保公平,这个是个难题。PoS最大的难题是如何证伪。不久前美国NDSS安全大会上,这个成为了一个讨论热点:连接区块链与物理世界的桥梁到底怎么建立,低能耗挖矿是不消耗电力、内存等实际资源,而是根据代币等虚拟资源进行挖矿;工作量证明的主要弊端是消耗了大量的电力,而最终这些电力并没有产生实际价值。因此使用虚拟资源进行挖矿越来越具有吸引力。我们的低能耗挖矿也是同样的目的。矿工需要花费代币购买挖矿的权力。区块的记账者将由具有该块挖矿权的用户中按照他们所花费的代币数量等比例概率选择产生。

这是我们结合计算博弈论设计的一种挖矿模式,同样是消耗模型,但是我们变换了消耗的方式。合规这一块我们认为是区块链发展的趋势:要成为主流必须要考虑法律和监管问题,现在提的比较多的监管科技就是本着这个目的。那么对于区块链的合规怎么入手,技术实现方式是怎样的呢?英国很早就推出了监管沙盒的概念,但这个主要以人工监管为主,自动化的手段不多,我们认为区块链合规的最佳方式是通过智能合约,然后内嵌反洗钱和合法性数字资产托管模块,即用智能合约来监管智能合约。

我举个例子,运行在以太坊公有链上的The DAO智能合约遭遇攻击,该合约筹集的公众款项不断被一个函数的递归调用转向它的子合约,涉及总额300多万个以太币,合计6000多万美元。这是一起严重的智能合约被攻击事件,原因仅仅是智能合约本身存在的一个简单的程序漏洞。如果针对普通交易类型,我们能够提供智能合约的编写模板,用户自定义参数,这种方式就可以解决当前大部分的区块链上交易的漏洞,这个是初级的方式,即通过定义一些安全合约模板来解决安全和合规问题。但是这个应用局限性很大,随着区块链应用的发展,模板的更新肯定会跟不上发展的节奏,那就需要更灵活的检测和合规办法,那么挑战来了:你交易执行的合法性和合规性边界怎么界定?机器怎么知道什么是合规什么是不合规?

典型合同是用自然语言起草。当智能合约执行和典型合同之间出现相应纠纷时涉及法律责任界定就不明确。如A(投资者)与B(金融机构)签订了衍生品智能合约,并规定了B退款的情形和细节,如果投资亏损那么A 就以其不了解智能合约代码含义等为由,认为B存在诓骗合同、承诺收益等理由发起投诉,此时涉及的法律责任界定不清晰。此外,追责主体难确定。成熟资本市场中,任何一个金融创新产品上线都有业务所有权人,而智能合约一旦有漏洞,那么归属智能合约开发者负责还是由运行智能合约的平台来负责,难以界定,这些都是我们在区块链合规过程中遇到的重大挑战。

针对这个挑战,我们提出了一套基于形式化验证方法的合规检测工具和规则编写器。

我们提出了双身份结构,一种是跟传统比特币一样的匿名身份体系,一种是类似爱沙尼亚的基于区块链的电子身份体系,我们提出了双身份结构,一种是跟传统比特币一样的匿名身份体系,一种是类似爱沙尼亚的基于区块链的电子身份体系,两者之间采用弱关联结构:用户自愿连接。比如当完成一笔支付,对方或者系统要求进行反洗钱调查的时候,用户必须提供第二类电子身份,否则支付不能完成。这种方式是采用隐私均衡的办法。我们大家都知道在区块链上有一个悖论,即去中心化,安全性和可扩展性(比如交易速度效率等等)只能三选二,一旦我们接受监管,那么去中心化肯定会受到影响。这个没有完美的解决办法,只有选择一个合适的平衡点,合法性数字资产托管这一块一样有这样的挑战,这里面技术目前不是落地最大的难点,如何设计一个平衡的应用模型是最难的。

接下来讲区块链底层安全,区块链安全有一个难题:到底安不安全你没法可见,我前面提到过唯有不安全是可见的,就是出了问题你才知道:哦,原来不安全,现在大家普遍的判定办法就是:之前没出过什么问题啊,那就代表很安全,比如比特币,比如以太坊,但这个逻辑是不牢靠的。

OpenSSL是业界广泛使用的开源安全代码库,几乎所有的开源服务器系统都用了这个,用了很多年没啥毛病,但是后来暴露出了Heartbleed攻击,大家才吓了一条,因为这个Bug已经存在了差不多二十年,我们假想一下,你全部身家都在比特币上,很久之后有人发现一个存在多年的bug,你会怎么想。中心化系统有个很大的优势,就是可以在很短的时间里面升级,去中心化系统很难做到这点。

但这里安全的天平那个螺母摆的位置可能不一样,也就是考虑安全的视角不一样,我们再进一步深入。今年CES大会上有两家明星企业分别发布了量子计算机,后来过了两三个月又被另外一家明星企业给赶超了,最后那家是Google,他们发布了72量子位的量子计算机,这个意味着量子计算机时代“即将”到来,大家注意这里“即将”两个字,对于传统的中心化信息系统,对于量子计算机风险的考虑是后置的,因为我可以在可预见时间区间里面快速进行升级。而目前真正能够产生实际威胁的量子计算机还没出来,业内一般认为超过1000量子位的计算机才能够产生实际的破坏力:破解非对称密钥算法。

对于去中心化系统,比如比特币,以太币,对于量子计算机的风险考虑必须是前置的,因为这个风险来临的区间不可预见,而我自身的系统没法快速升级,这个就是我们在做安全设计的时候的差异。这里还有一个悖论:越安全的东西越不好用,越好用的东西越不安全。即安全性和可用性是相悖的,增强安全是会带来成本的。那么请问需要达到多安全才是安全。

到底现在区块链系统是否要立即具备抗量子攻击特性,我们是否需要牺牲一部分性能来换取这一部分的安全性?我们认为对于像比特币以太币这种高价值的区块链系统是完全有必要现在就启用抗量子攻击签名。抗量子计算机攻击是指在哈希函数、对称密码算法等抗量子计算机算法上构造签名算法群签名算法、环签名算法、公钥加密算法等。

【问】方军:量子计算机现在是什么状态?

【答】陈邦道:还在试验阶段,Google目前走在最前面,已经做出来了,但是运算性能很低。

图图.png

业内乐观的估计是1000量子位的计算机可能还要4~10年,以此为例,我们看到对于区块链底层安全还有大量的工作要做,比如对于区块链底层代码的检测,是否需要达到EAL 7级,即全部采用形式化方法进行验证,我们认为对于核心代码部分是非常有必要的。但现在流行的区块链代码量普遍在几十万行,验证成本极其高昂难度也很大,所以我们开发了一个小型区块链内核,在资源允许的情况下实现全形式化验证。

【问】刘函瑜:你们的链和以太坊以及其他链相比,优势在哪里?

【答】陈邦道:概要来说,Blockhouse的优势在于: 绿色挖矿机制,即新的PoS共识机制;抗量子安全; 性能提升;隐私性、保密性的强化;合规机制等。 展开来讲,我们提出的绿色挖矿机制,很好的继承了比特币PoW的诸多优点,同时降低了对实际的资源的浪费。Blockhouse包括了抗量子安全的签名算法、加密算法等,保障了用户信息的不可篡改性、认证性、隐私性、保密性等。同时通过改进共识机制,采用制通道、侧链等技术,提升了处理交易的效率。

【问】赵崎儒:类似HSR做的抗量子有没有必要?做出来真的会抗量子吗?

【答】陈邦道:所有的密码签名算法都需要使用哈希函数,进行数据压缩。而哈希函数是学术界公认可以抵抗量子攻击的基础算法。我们的方案仅仅使用哈希函数,所以在抗量子攻击能力是最强的。HSR主链代码我还没看过,还不能确定他们的算法。根据他们发布的文件,他们计划使用Bliss签名算法,安全性基于(1)哈希函数的抗量子性;(2)格理论LWE困难问题抗量子性。而假设(2)的安全性还有待进一步考证,因为格理论具有规律性的数学形式,尚不清楚是否有对应的量子攻击方法。类如Shor近期曾声称找到了破解LWE的攻击方法,不过最后被发现攻击方法有瑕疵,目前LWE问题仍处于不明朗的状态。

【问】Rico:大家现在的安全和挑战主要在公链,甚至是各种定制化的具有很多特性封装的公链。你们开发小型区块链内核做形式验证,对公链安全的贡献度是什么呢?所谓的公链,可能定义为:在公网上运行,并且承载一定现实价值的区块链,这样更好些吗?如果不承载价值和交易,谁都可以叫公链,但是公链本身是没有价值的

【答】陈邦道:我说的小型是代码量规模小,也是公链。这个问题的角度我觉得值得商榷,你说的应该是主流或者流行的公链和新生的或者小众的公链,用的人多了,公链的价值就大了。

【问】Rico:那换一种说法,我是比较关心您开发的小型公链内核,并基于此进行安全的形式验证。对于现有的普及度较高的价值承载公链比如btc、以太坊、eos 等公链的安全贡献度可能在哪方面呢?

【答】陈邦道:可以成为其他链采用的底层模块,比如成为像OpenSSL这样的开源代码库。

【问】Rico:但近期发生的安全事故,比较多是智能合约层的问题,比如 THE DAO 、 PARITY、BEC 等,都是智能合约应用层面的。反而大多和区块链底层代码无关,这个您怎么看?

【答】陈邦道:区块链安全包括了智能合约,智能合约的安全部分跟自身代码相关,部分跟底层代码相关。现在爆出的智能合约安全大部分是跟自身代码相关的,有些错误比较低级,认真的同学就能够避免,我介绍一下使用智能合约形式化验证的方法还有特点。方法: 输入为智能合约代码,和形式化验证属性(如,只有合约主人可以进行转账操作),输出为验证结果,表明该合约是否满足验证属性,若违反,形式化验证将给出交易反例,构建属性违反的具体交易场景。形式化验证方法的特点: 对合约行为的严格的数学化建模,能够对合约状态空间进行系统性遍历,可以应用于不同交易场景和领悟,结论具有完备性和准确性。与传统验证(如测试,静态分析等)的区别: 除了证明合约“有”问题,还能证明合约“没有”问题。具有严格的数理逻辑推理引擎,且覆盖全交易场景和状态空间。这种检测基本可以遍历所有逻辑执行的可能性,所以对智能合约的安全性的提升是非常可观的。

【问】刘函瑜:你们的绿色挖矿机制是什么样子的?和已有的PoS机制相比,有哪些创新和优势?

【答】陈邦道:合规方面的努力是我们最近一年做的研究方向。我们的绿色挖矿机制是一种新的PoS机制,称为Work Your Stake (WyS),很好的实现了比特币PoW共识机制的优势,降低了对实际资源的浪费。 WyS机制包括若干核心设计思想,以及针对其所带来的新的博弈经济而设置的奖励和惩罚法则等。我这里简要列举其中三个核心思想:一、矿工需要花费代币以及缴纳押金购买某个区块的挖矿权力;二、WyS机制利用已有的区块们,生成公正的随机数,从而构造了选择方法用以决定新区块的记账者;三、WyS机制提出一个新的技术HashClock,在结点之间实现了“共享时钟”概念,降低网络延迟不同带来的异步问题。和已有的PoS机制相比,我们在严格的理论证明和分析的基础上, 极大程度上减少了结点之间达成共识所需的协商次数(#Communication),很大的提升了效率性能, 并从理论上保障了安全性和稳定性。

【问】Blues:之前关注过一个项目,是通过移动光伏发电来解决矿机耗电问题:https://www.envion.org/

【答】陈邦道:这个项目我不太了解,我的直观是现在移动光伏挖矿可能会有一个挑战,不过用我们的算法应该没问题,因为我们降低了运算复杂度。这个项目似乎是希望利用一些不能存储的光伏发电进行挖矿,从而降低挖矿本身带来的电能耗费。然而我不清楚这样做是否一定会达到节省电能的目的。当挖矿的单位电能价格下降的时候,矿工很可能会选择投入更多的矿机,即提高自己的计算能力,从而导致更多的电能被耗费。换句话说 ,矿工关心的往往是投入的总成本,即电能单位价格*总耗费电能。 鉴于移动光伏发电总量受限,我不确定这个方案最终是否会达到设计者的初衷。


本文为火星财经原创稿件,版权归火星财经所有,未经授权不得转载,转载须在文章标题后注明“文章来源:火星财经”,若违规转载,火星财经有权追究法律责任。

本文来源: 火星财经

相关新闻
相关新闻