APP
关注小程序

关注小程序

微信公众号
二维码 无锡不锈钢网

「火星公开课」第77期 | Armors联合创始人丁春妹:智能合约除发币外,还可实现很多事情

火星财经 ·

08月23日

热度:

智能合约不仅可以用来发币、锁币,还可以用来定义及实现全套去中心化产品解决方案。

5月29日21点,Armors智能合约安全生态联合创始人丁春妹做客「3点钟火星财经创始学习群」,开展主题为"智能合约:要更安全还是要更智能?"的互动问答。

丁春妹表示,智能合约是区块链生态安全中最重要的一环,而安全不仅仅在于漏洞的发现,更为重要的是漏洞的预防。智能合约除用于发币外,白皮书上的很多功能都可以用智能合约实现,比如数字货币理财、购买保险、租赁、投票、众筹、以及量化交易等等,并详细讲述了如何设计智能合约。

春天.jpg

Armors智能合约安全生态联合创始人 丁春妹

嘉宾介绍:丁春妹、Bitben、Rico,Armors智能合约安全生态,联合创始人。

Armors Labs 是一个智能合约全生态实验室,创始技术团队由360核心安全小组成员及百度、腾讯架构师级别程序员组成。Armors 从经典软件工程的黑白盒测试理论入手,依托超过十年的过亿级产品安全运行、海量并发及整体架构经验,对智能合约安全提供全链条支持。解决方案囊括智能合约撰写标准、安全测试、发布与运行监控、异常发现、止损与合约升级等五大步骤,构成完整的Armors 入侵防御系统。Armors-solidity智能合约开源底层代码库已经发布,并在持续迭代中。未来,Armors将致力于构建一套智能合约安全规范,让智能合约开发不再危机四伏。Armors一直在寻求及拓展全球各地的合作伙伴,共同构建区块链安全生态。

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

丁春妹:想和大家分享这个话题,起源于我昨天的一条朋友圈:

11111.jpg

朋友圈发出以后,两个小时我的电话没有断过,被硅谷、深圳、上海还有北京的朋友打爆了。

猛小蛇:第一个点赞的就是你们第一个客户么?

春天:有人问我:“我拥有过亿的用户,想用来做区块链项目,如何设计更合适啊?”有人问:“我做精酿啤酒,想做区块链,怎么写智能合约哦?”有人问:“我刚招聘了十来个程序员,是不是就可以自己写智能合约了?”有人问:“智能合约可以实现敏捷开发么?”——口干舌燥回答完之后,我和团队的小伙伴就这些问题聊到了凌晨,我们觉得是时候来和大家分享下,Armors团队这七个月以来,都做了些什么,我们对于区块链、区块链安全以及智能合约撰写、智能合约安全,都有着什么样的思考,对于想做区块链的项目方来说,智能合约如何写、如何用、要注意哪些问题、还能解决哪些问题。

 智能合约之所以被称为智能合约,我们要注意的不仅仅合约安全,还有就是何为智能合约,智能合约究竟智能在哪里?

首先,和大家介绍下我们是谁。我们是谁?Armors的团队是怎么形成的?——我们是一群来自于百度、腾讯和360的小伙伴,每个人都负责过几款过亿级项目的技术构架或者产品设计,我们会定期聚会,2017年五月开始,我们的聚会主题就逐渐演变成了区块链技术探讨,而这些年一起玩耍,日久生情,让我们在项目方向上很容易达成了共识

2017年7月20号,Parity 的多签名钱包合约被曝漏洞,导致3200万美元的数字货币被盗。这个问题让多多少少每个人都拥有数字币的我们感觉到了机会和使命感,于是我们走到一起,组建了Armors团队。

第二个问题,Armors做什么?

Armors Labs作为全球唯一的智能合约全生态实验室,我们在对整体区块链市场进行了深入缜密的分析以后发现,由于所有代币都由智能合约生成,所以,毫无疑问,智能合约是区块链生态安全中最重要的一环。

安全无小事,Armors发现,超过45%的区块链项目团队,对区块链的技术还处在比较懵懂的状态,或者是,没有意识到看起来代码很简单的智能合约,背后的深坑和规则。所以,Armors决定提供全方位的智能合约解决方案。解决方案囊括智能合约撰写标准、安全测试、发布与运行监控、异常发现、止损与合约升级等五大步骤,构成完整的Armors 入侵防御系统(IPS)。

实际上,我个人认为,安全不仅仅在于漏洞的发现,更为重要的事情是,漏洞的预防。就像如果我们每个人都很注意身体健康,饮食和锻炼,那么,也许我们去医院的次数会少很多。

所以,我们致力于打造一整套智能合约完整生态链,争取在最开始的时候,就对可能出现漏洞的地方做出最有效的防范。

ok,第三个问题,也是我们希望本次分享能给大家带来直接收益的地方。Armors都已经做了什么事情,可以帮助项目做些什么?完成什么需求?作为工程师组成的团队,我们崇尚的是有效性和可应用性,我们精力付出最多的地方是在于如何尽快给用户提供出来一套可以使用的产品。目前,Armors-solidity智能合约开源底层代码库已经发布,并在持续迭代中。有感兴趣的大咖,可以私聊我,我发github地址给您。项目方的技术人员可以便捷调用我们的代码,组成一个完整的智能合约。每一行代码,使用我们的底层库来开发的合约,不会出现类似之前bec、edu等币的漏洞,并且,我们的合约库,会一直维持更新。同时,我们在持续开发适用于各个底层公有链的智能合约模版,最大力度上保证以后不会再发生程序员祭天事件。

同时,我们已经开发出了一整套自动化审计模版,并且已经完成了对一些主流代币的审计。

第四个问题,回到开始的话题,智能合约都能做什么,只能发币么?相信大家都看过一些金融类、保险类项目的白皮书,实际上,其中很多功能,都是可以通过智能合约来实现的。比如,数字货币理财,如何回收本金和收益到个人账户?比如,购买保险的货币,如何获得有效的监控和资金流向追溯?又比如,租赁一个东西,押金监控和退回机制如何保障?又比如投票(火币的hadax上币机制大家都了解吧~)、众筹、以及量化交易——这些事情,都可以通过智能合约来保证安全、合理、流程化的实现。

仙女棒:你们已经给谁提供智能合约系统了(涉及保密的,可以悄悄透露)?

春天:目前很多网红的币啊,大家都听说过的红姐姐,币圈网红小彬哥,币圈著名帅哥Sky哥的DACC。

BitBen:区块链最初的功能是去中心化记账,后来V神天才般地构建了以太坊智能合约。于是就有了ERC20代币、投票、众筹、盲拍。甚至是DEMOCRACY!!!大家才发现原来区块链还可以这样玩。就好像缘木取火的人类打开了潘多拉魔盒,一时间各种智能合约项目、ICO井喷,直到有一天TheDAO给玩脱了。

仙女棒:第四个问题再讲讲,只能发币么?

春天:智能合约不仅仅可以用于发币。还可以实现很多事情哦。之前咱们群曾经有一个分享嘉宾,那个嘉宾的项目是区块链众筹,整个项目实际上就是基于智能合约来实现的。另外,去中心化交易所,本身就是一个智能合约。

猛小蛇:他用你们的服务没?

春天:我们在为一些类似的项目做解决方案。

BitBen:甚至企业的OA、CRM等等都可以用智能合约来实现    比如财务流程到谁那了  批没批 谁批的  出了事儿甭想赖账,部门活动费用怎么花 什么时候话的  花到哪去了  都可以记链上 谁也贪污不了。

仙女棒:高薪养廉不好使了,还得上智能合约!智能合约还能理财?

春天:智能合约可以实现很多事情,只是很多人之前不清楚。

BitBen:去中心化的就是把人性的恶放大到极致 拜占庭将军问题 节点之间的传输信息真真假假,智能合约就是完全不会信任人民的自觉性 代码就是law, law没写的事儿你随便干 记下来的事儿谁也赖不掉。

春天:接着说第五个问题,如何设计智能合约?设计智能合约的时候都要注意一些什么?目前智能合约使用的solidity代码本身,看起来很简单,所以很容易就被大家不重视了。之前bec的事故,很大程度上也是源于此。曾经有朋友的技术人员用两个小时完成了一个合约,交给我们审计,我们用Armors自动审计程序跑了一下,发现了16个漏洞报警。在智能合约开发,甚至是整个区块链的开发方面,和传统的互联网有着一个本质性的不同,传统互联网产品的设计,讲究敏捷迭代,我们可以用两个程序员,一周开发出来一个app,上线,然后再不停的发现问题、修改、完善问题,再次提交。

但是,智能合约不一样,智能合约讲究不可篡改性。也就意味着,我们一旦发布了一个智能合约,就不能再随意迭代。这就要求我们一开始就要设计好完整的合约生态,并保证其中的逻辑关系极其缜密和完整。毕竟,一旦出现问题,往往就会伴随着大量资金的瞬间流失。

BitBen:智能合约如果想更加“智能”,那肯定需要更多复杂的业务逻辑来支持。了解软件工程的朋友一定都知道一个常识:逻辑关系越多,算法复杂度成指数型增长。智能合约就是区块链上运行的一段代码,代码逻辑约复杂,出现bug或漏洞的可能性就越高。当工程庞大到一定程度的时候,很难保证100%没有漏洞的。(使用过Windows系统的朋友,一定深有体会。)当我们把互联网那套“功能大而全”、“极致用户体验”的模式照搬到区块链上来的时候,突然发现暴露出来的安全问题造成的损失,远远大于去中心化给我们带来的那些好处。于是有人唱空区块链,怀疑去中心化是伪命题。汽车终究会取代马车,技术进步的道路是无法阻挡的。

222222.jpg

安全和智能就好比是智能合约这架天平秤的两端。我们只要把握好“智能”和“安全”两者之间的平衡点,就可以放心使用智能合约,享受区块链技术给我们带来种种价值。

春天:关于合约安全,我们做的更多的努力就是——我们提供合约升级服务~~如果EDU开始是找我们来写的智能合约,第一是肯定不会出这么大的问题,第二是即使万一出了一些问题,我们也可以帮他们及时实现升级,止损。

BitBen:智能合约 的不可篡改性 和 可升级 也是一把双刃剑,可升级就违背了不可篡改性 不可篡改就导致出了问题 hold不住。BEC、EDU犯的错确实不应该,但是上所前不审计,投资他们之前根本不看他们合约内容,这事儿更不应该。买币不看智能合约就相当于买了部苹果手机不看用户许可协议一样,不可篡改是指智能合约一旦写到区块链上 就不应该被修改,比如一个ERC20合约发币 大家都买了币 而且在交易所各种翻炒,如果合约发布者可以篡改合约内容的话 一行代码就可以 把所有用户的token归零或者转移给他们自己,升级就是像BEC、EDU这样,一个方法的逻辑写的有漏洞,想改也改不了 只能重新搞个币 求交易所爸爸改地址等等,我们的可升级智能合约在不可篡改和可升级之间找到了平衡点。巧妙地使用传统软件架构设计里的一些设计模式就可以完美解决这个问题。

春天:现在我们来讨论最后一个话题,Armors和目前市场上的区块链安全公司的区别在哪里?首先,非常欢迎周鸿祎教主加入火星创始群这个大家庭,也非常期待明天教主和王峰总的巅峰对话,我已经备好小板凳学习。Armors最核心的定位其实不是区块链安全,是智能合约全生态。相比360,我们相对比较少关注交易所安全、钱包安全,我们关注点主要还是智能合约本身,不仅仅是安全,更包括如何撰写最安全的智能合约,如何保障智能合约安全稳定的运行,以及未来智能合约的整体生态如何打造。

BitBen:智能合约安全的市场就足够大了 ,甭管什么链 ,以后都离不开智能合约。

春天:我们的目标是打造一个全球化的智能合约开发者社区,我们设定了完整的代码提交及漏洞提交激励机制,以后哪怕Armors的工作人员全部休假了,开发者也能持续不断的贡献自己的力量,提升Armors系统的完整性,并获得足够的token激励。

BitBen:主链自带形式化验证 很长一段时间是不会存在的 在这之前 大家拥抱区块链 都避不开智能合约安全这个坎。

刚才有个朋友发我这张图问我对这几点的看法。我有一些不同的看法。1,VM虚拟机其实就是容器化、沙盒化的设计思路,本来就是要和主程序做功能隔离的。2,DSL语言开发智能合约,不利于技术的普及。比特币当年只支持几个简单的脚本命令 于是V神搞出了以太坊和智能合约 才有了今天行业的蓬勃发展。就好比如果没有php,java,nodejs,go,python, 大家都在用古老的汇编语言做开发的话,我们现在也不可能趟在床上一边刷朋友圈,一边在群里和朋友聊天了。3,没毛病。可是什么是复杂繁琐?这个度谁来定义?打开浏览器看网页繁琐吗?可是背后的技术逻辑,设计多少次客户端服务端的数据交互,权限验证等等,如果丢给一个普通人看,繁琐死了。4,智能合约嵌套复杂度拒绝执行的问题,呵呵,如果PNT的人从早期就关注ETH社区的话,应该知道当年这个问题ETH是怎样封堵的。

你可以多重递归,你可以作恶,因为这就是去中心化的魅力,但是我增加了你作恶的成本,让你不可能去作恶。

 33.jpg

春天:子曰:“工欲善其事,必先利其器。”——想要保证您组建或者投资的区块链项目的顺利运行,请务必重视智能合约,还是那句话,安全无小事。真的等问题发生了,才开始注重就晚了。以上这些就是我们今晚分享的全部内容啦。——欢迎群里各位大咖随时联系我们,探讨智能合约相关任何问题。

BitBen:其实不是批判啦 社区的活跃需要我们百家争鸣 各抒己见啊

威廉居士:同意,讨论啊。回复Ben兄,代表Penta回复您的观点。David回美国了,估计在睡觉

1、我这里强调的是要采用成熟的容器或沙盒技术,EOS自己写的WASM引擎,就是因为不够成熟才会出这么大的BUG,还需要更长时间的实践检验,现在匆匆上线主网有点操之过急。当初比特币和以太坊的总市值不高,可以通过主网进行试验,但EOS不能这么做

2、现在以太坊和EOS的智能合约都是用的通用语言,而DSL是更高级的语言,功能受限但更加简洁、安全,也对程序员更加友好,好比SQL与C++的区别,用在数据库领域哪个更好呢?

3、智能合约仅用于实现区块链共识部分的功能,并不需要太过复杂的功能,因此在设计智能合约虚拟机时要简化指令集、舍去不必要的功能,要学习中本聪设计比特币操作码时那样多做减法。

4、这纯粹是设计理念上的区别,经济机制是一种手段,语言层面的限制是另一种手段,不需要贬低任何一个,可以双管齐下。

曹辉宁:智能合约的安全非常重要,我们在尝试用形式化证明降低漏洞率,你们这方面有什么经验?

春天:形式化验证我们已经研究超过6个月了,也一直在做各种尝试。但是自动化生成形式化验证的数据模型,在现有的硬件条件下,可行性不高。如果在形式化验证算法上您这边有更好的解决方案,欢迎随时找我们讨论。

陈登科:哈哈,在跟群里某技术大拿聊天。如果不是bm把代码来源了,安全人员都不会找到这个漏洞。漏洞的影响,也绝不是是媒体所说的那样的。

春天:然而,区块链的魅力正是来源于开源。

威廉居士:所以我说Eos是非常好的区块链实践,区块链的估值是看对区块链技术和区块链世界的贡献,不应该是传统的商业软件的估值体系,微软卖光盘的估值方法不适用于区块链。这是Eos的贡献。至于所谓社区运营虽然成功,但我不苟同。Eos选节点,好比独联体国家刚开始搞民主选总统,韭菜们以为从亿万富翁中选出来的点总统,最后发现是搜刮的皇帝。

蒋海:请教各位大咖,除了ICO发币,目前智能合约用起来的有哪些典型?

陈登科:哈哈,俺一直认为区块链的估值,基本是神学,求科普可量化的区块链估值体系。

陈怀远:转篇今天下午分析师在参加360同步会后对EOS的评级更新。漏洞并没有那么致命,360的白帽子行为也特别有典型的互联网精神。同时,我特别接受(威廉居士) 的说法,科技一定是在不断试错中前行的。群里大多数人应该都走过了互联网、移动互联网疯狂试错的时代吧。个人感谢你(威廉居士)的分享!提出问题,预判影响,给出解决方案建议。这比一味批评要有意义的多,尽管作为评级机构我们只能找问题,不能给建议。

威廉居士:我个人认为区块链估值体系是开源后对行业的贡献!不是所谓构建闭关的排他的生态。很多自称是区块链的投资人喜欢用社区多少人,多少Dapp,多少用户数里估值区块链,这本来还是停留在古典互联网思维,是伪区块链,有悖区块链开放开源的思想。还有去申请专利的。这还搞什么区块链?还是拿着微软甲骨文的思维在玩区块链。

中本聪收过谁专利费了么?好的代码达成共识,比特币就赚钱了,还申请什么专利?

陈登科:否定批判容易的,俺的问题是,求科普可量化的区块链估值评价体系。价格,懂的,操盘的套路也知道些。

威廉居士:关于炒币我外行。

估值就是有没有实质推动区块链本事发展,中本聪区块链1.0实现了可信的价值

以太坊的智能合约实现可信的代码,数据上链不能篡改,谁来保证数据上链前真实?3.0或许是要实现可信的设备,或者是可信的数据,目前应该都在在2.0阶段,智能合约不断出现漏洞,说明还没有实现可信的代码。

曹辉宁:EOS是伪区块链,我会给出我对区块链的定义,联盟链、私有链、无币链、中心化币、都是伪区块链,不废话,我从信任,信用,信息来分析,区块链对社会有什么用处以及为什么我认为EOS是一堆狗屎。

玉红:期待。

陈登科:block chain,都不是什么时髦的东西。耶稣在圣经里也没提过blockchain这个词。

春天:智能合约出现漏洞,是因为写合约的人不够严谨,不是代码本身的问题。

威廉居士:现在伪区块链多了,刚刚我说的那些区块链闭环生态思想和估值体系,也是伪区块链,是共享单车思想,有贡献就有价值,Eos第一区块链有贡献,但也有问题。现在看不出什么公链完美,Penta也希望能有一些贡献,DSC在共识上有些公平性的突破。

 春天:欢迎各位大咖随时点击我的头像,咨询任何智能合约相关的问题。最后偷偷的趁半夜广告一句:ARM智能合约生态六月启动私募,欢迎各位老板关注。


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

关键字: 火星公开课