月亮链 月亮链
Ctrl+D收藏月亮链
首页 > BNB > 正文

区块链:知道创宇周启鹏:未来智能合约涉及行业会更广、逻辑复杂度更高、非开发者也能轻松编写 | 区块链P.O.D大会_GAS

作者:

时间:1900/1/1 0:00:00

9月5日,由Odaily星球日报主办、36Kr集团战略协办的P.O.D大会在北京举行。知道创宇解决方案部负责人周启鹏应邀在大会安全论坛上发表题为《智能合约安全现状与未来》的演讲。

在分享中,周启鹏较为系统的介绍了智能合约的产生及应用,安全事件以及安全风险分析,并提出随着智能合约在社会化大规模应用中应对智能合约安全的策略。周启鹏表示,未来智能合约社会化应用的难点主要有三个:一是随着“区块链+”浪潮的到来,涉及的行业将越来越广;二是行业应用所需的合约复杂度越来越高;三是未来的智能合约,除开发者外非开发者也可以编写,这将给智能合约的安全带来很大挑战。对此,知道创宇“404”安全实验室研发了一套智能合约验证系统“昊天塔”。该系统和公链、联盟链等团队深入合作,以提供应用层的安全防护能力,支撑智能合约数量和逻辑复杂度不断增加的应用场景。以下为演讲全文,enjoy:我今天的演讲分为四个部分,第一个是探讨一下智能合约发生了哪些引发我们思考的安全事件,为什么我们要开始讨论智能合约的安全。第二部分会对智能合约的安全风险做一个简单总结,把这个问题向大家做一个描述。第三部分是区块链+应用的情况下智能合约安全又是怎样的。最后一个是未来的智能合约要如何做,我们也提出了自己的想法和建议。首先是看智能合约安全的现状。在此之前我想先解释一个名词——智能合约。智能合约是区块链的核心技术之一。之所以称作智能合约,是因为智能合约在区块链当中是一段能够自动化执行的程序代码,嵌在区块链的顶层架构上。所以我们可以简单的理解为,如果把区块链技术比作现在大家都用智能手机操作系统,或者说区块链底层的技术可以认为是一个网络分布式的操作系统,智能合约就可以理解为是这个网络分布式操作系统中所运行的程序。所以智能合约是一个以信息化的方式传播,验证和执行合同的协议。智能合约基于区块链去中心化的特性,允许在没有第三方的情况下进行可信的交易,同时这些交易是可以追溯、不可逆的,这些因素促进了智能合约技术的发展。智能合约的最终目的是提供比原来纸质合同,或者说合同文本更优的安全方案,同时减少双方毁约和因此产生的纠纷,可大大提高交易的效率。要追溯历史的话,这个概念是1994年的时候由科学家尼克·萨博提出来的。当时互联网还是一个雏形,只是提出智能合约这样一个设想。2008年区块链1.0版本诞生,提供一个天然可信环境,但是这个环境缺失一些东西,没有能够对外提供更多可以被第三方执行和调用的接口,所以可以说区块链1.0只支持一些简单的指令,到2014年区块链2.0版本发布,这个时候就在具备区块链1.0可信环境属性同时,开始支持图灵完备,设计了可供开发者调用和执行的接口,提供了与应用场景解决的可能性。接下来我们可以回顾下智能合约真正被运行起来后,产生的对整个历史进程影响比较大的安全事件,这就是发生在2016年,以太坊中的DAO事件。2016年6月15日,攻击合约被创立。6月17日,攻击开始,VitalikButerin得知攻击消息后立刻通知了中国社区。theDAO监护人提议社区发送垃圾交易阻塞以太坊网络,以减缓DAO资产被转移的速度。随后V神在官方博客发布公告。解释了被攻击的一些细节以及提出软分叉解决方案,不会有回滚。不会有交易和区块被撤销。软分叉将从块高度1760000开始把任何与theDAO和childDAO相关的交易认做无效交易,以此阻止攻击者在27天之后提走被盗的资产。这之后会有一次硬分叉将资产找回。我们看一下合约的本身是怎么被攻击的。首先左边是DAO智能合约的代码片断,这里边写了一个withdraw函数,右边是黑客攻击合约的代码片段,这个攻击合约在执行的时候,可以通过外部直接调用的方式调用DAO智能合约的withdraw函数,一层一层不断执行不断递归调用,使得黑客可以通过合约外部调用方式用攻击合约把原合约很多数字资产做了转移,由此引发DAO事件。最大的影响莫过于对以太坊这条公链,因为产生了一个硬分叉。接下来分析一些智能合约的安全风险。先跟大家交流一下智能合约代码方面的特性,我总结了四类:第一个是账户的设计,智能合约一共设计了两种账户,一种是外部账户,由公私钥体系做控制,另一种叫做合约账户,是由代码本身控制。第二个是在区块链2.0上还有个叫gas的东西。合约代码越复杂的时候,我在执行这个合约过程中所需要花费的gas越多。这就产生一个问题,如果调用者提供的gas不足,这个合约里面已经执行的代码是会被回滚的,这个合约调用者也可以设计自己本身的gasPrice,矿工优先处置gasPrice较高的交易,所以gasPrice如果设计的比较低,或者设计的太高了等等这样一些方式,都是不合理的。接下来是函数,一共涉及几种函数,第一个是fallback函数,同时设计transfer、send、call.value等等这样接收资金的函数,同时还有一个selfdestruct这样一个函数去做合约。最后是函数调用方面,类似于传统的调用方式。接着我们来看智能合约语言的特性。

BlockBank运营主管:没人知道谁在控制萨尔瓦多的BTC密钥:9月28日消息,萨尔瓦多本月早些时候正式承认比特币为法定货币,但许多问题仍未得到解答,其中包括一个出于安全目的的重要问题:谁控制着该国比特币存储的私钥?加密钱包提供商 BlockBank 运营主管 Nolvia Serrano 在接受采访时提出了这个问题,她表示:今天我们的标准是什么?萨尔瓦多会购买更多比特币吗?是不是要等到下个月?我们不知道。他们是否打算购买更多比特币?购买过程是什么?谁在控制BTC密钥?谁在监督这些过程?此外,Nolvia Serrano还成萨尔瓦多政府尚未披露为 Chivo 钱包选择供应商的标准,并认为比特币对透明度的承诺与萨尔瓦多缺乏公开信息的比特币政策存在明显差异。根据弗朗西斯科加维迪亚大学公民研究中心委托今年 7 月进行的一项调查发现,77% 的萨尔瓦多人认为该国总统的比特币法案不是明智之举,今年 9 月进行的第二项调查发现,超过三分之二 (67%) 的受访者不同意或强烈反对比特币成为萨尔瓦多的法定货币。[2021/9/28 17:11:28]

这个语言当中本身涉及的函数默认可见性是public,只要写出一个合约,函数如果没有设计权限,对于用户来说都是公开的public。第二个里面涉及大量数值运算内容。第三个是设计三种异常处理方式,require、assert或者revert这三种。它们各有区别,require一般是写在函数前面,用来检查输入的变量和合作状态变量是否满足条件,如果满足条件的话才会去执行。assert这个函数,从开发者角度会写在函数的尾部,用来检查函数的内部错误,如果出现错误就会强制停止。revert函数更特殊一些,遇到一些无效代码,会回滚之前所有的状态。这三个函数还有一个区别,revert可以返回,合约如果没有执行的话,这个gas是不需要付的。刚才讲到了,合约本身是有一个外部账户和合约账户的区分,所以智能合约风险第一个也是我们认为比较常见的问题,叫做访问控制的问题。访问控制函数应该设定成只有特定的用户才能够调用这样一个情况。我是合约的用户者才能够调用一些挖矿函数,但是我们在代码过程当中能够看到,黑客这边可以通过写恶意合约或者写攻击合约来提升自己权限,使人人都可以成为一个合约拥有者,这样无形当中把整个合约内容函数,或者叫做合约账户函数暴露在外面,就产生后面一系列问题。下面举一个Owner构造函数的错误例子。

灰度创始人回复推特网友称不知道狗狗币:金色财经报道,就推特网友有关“为什么灰度没有狗狗币(dogecoin)信托基金”的提问,灰度创始人、前首席执行官Barry Silbert回复称:“狗狗币是什么?”。[2021/2/7 19:05:55]

构造函数在部署合约的时候才调用,并且本身不上链。普通函数则是能够被任意调用,同时代码也写在区块链当中。大家应该理解一个情况,数据也好,合约也好,一旦上链,都是被允许查看的,所以普通函数写在链上之后可以被任意的团队,可以被恶意黑客或者被白帽子参考和研究。下面做一个简单的代码梳理,这边写了一个构造函数Owner,下面这个函数定义的function中,大家能够看到这个Owner函数的大小写变了,由于大小写原因书写错误,导致了这样一个构造函数变成了一个普通的公有函数。接下来我们整理了一下智能合约中我们认为目前出现安全风险比较大的四个原因。首先第一个是智能合约在整个区块链的架构当中,属于中间协议层的最上层,在上面是我们所谓的分布式应用,所以出现的位置是位于上层应用,上层应用本身出现安全问题的概率,按照以往基于windows操作系统的应用出现问题概率相对会高一些。第二个是语言的发展时间很短,语言本身不够完善。到目前为止,这个语言版本大概在0.4.24,一般能够公开发布的开发语言版本可都是在V1.0或者V1.1等等,所以说从版本本身发展来说还需要一个很长阶段。第三个问题属于国内项目方这边,目前经验不是很充足,语言本身发展时间又很短,基于solidity这个语言产生的示例或范示标准文件比较少,包括官方发布的也存在问题,所以导致开发人员经验更少,又不熟悉语言特性,会拿传统开发互联网的软件开发区块链,缺乏安全经验导致问题出现。最后就是目前并没有一个智能合约代码审核的完善标准,这个标准没有的话,实际上其实还有很多事情大家都是不清楚的,就会产生更多的奇奇怪怪的问题。接下来一个是展示一下开源项目DAPS统计以及公布的分布式应用的安全问题。有递归调用漏洞,访问控制,整数溢出,未检查底层调用,错误随机等等这样十个类。最后一个原因是智能合约本身也是顶层应用,包括本身的安全问题都还有很多未知未觉的领域存在,需要更多项目方,更多的白帽子,更多安全厂商一起努力,不断使技术,还有上层应用更加健壮,为更多社会化应用服务。接下来想把我们智能合约未来应用的场景做一个大的猜想,或者做一个预期。首先现在结合我们社会化的应用来说,区块链也好,智能合约也好,其实已经和我们生活当中一部分事情结合在一起了。首先第一个金融属性,像之前蚂蚁金服在香港的新闻,利用区块链技术做跨境汇款,包括现在保险、证券、股权登记这样一些原有金融领域的应用,现在已经慢慢出现雏形了。第二个物联网应用,现在基于区块链的物联网、汽车租赁应用也逐渐出现。第三个供应链,上午百度介绍的时候,针对百度百科的文件编辑溯源也在落地建设过程当中。能源领域点对点的便利共享的领域,包括公共服务领域,针对我们文化、教育、产权、医疗等等这样一些领域逐渐出现了。下面做几张图的展示,首先介绍一下传统汇款和区块链汇款的差别。在传统汇款当中,境内都还好,速度很快,但是一旦涉及到境外的跨境汇款效率非常低,这里面涉及到一个问题,叫做中间银行和清算网络,作为一个中心化机构解决信任问题,导致效率会有所降低。如果把这个场景放到区块链上,用智能合约实现的话,通过链本身的去中心化信任的机制,资产转移的就可以用智能合约实现,从资产结算任何时间结算,包括资产转移,上次蚂蚁金服那边在做的时候,从菲律宾汇款到香港大概用了几十秒时间。第二个应用在传统供应链金融,我们已经看到国内有一些机构大胆用区块链技术尝试物品溯源,比如之前曝光的疫苗事件。虽然疫苗生产厂商作为源头无法通过区块链技术进行控制,但是疫苗整个在冷链运输,在各个监督站各个医院的数据都可以上传,防止中间有一些个人的恶意行为,导致在传播当中数据的丢失和篡改。第三个针对传统物流,原来传统物流有很多痛点,互相不信任,之前用淘宝的时候最大的问题到底是买方先付钱还是卖方先发货,后来出现了支付宝为来解决第三方信任问题,买房把钱给中间平台。如果有区块链能够和网购支付场景结合的话,互不信任这个问题可以解决,买方可以在收到货的这一刻,订单信息就会在链上做数据提交,这个时候买方账户里面的钱就可以通过智能合约方式直接打到卖方账户上面去,包括订单被篡改风险,还有隐私信息,包括现在大家遇到快递信息泄露个人隐私,将来都可以上链的话,大家面对的都是在链上隐藏数据的信息身份。还有针对疫苗,针对医院,针对医疗体系,从每一个药厂药品信息上链,药房售卖药片都是可以在链上确认的,患者也可以和医生做关联,甚至可以用一个APP知道这个人的健康信息,包括历史服药信息,在哪些医院检查,都是能够被查到的。前面做了一些大胆的幻想,下面看一下未来智能合约会是一个什么状态。第一个是区块链+应用,在未来可能涉及的行业特别广泛,刚才上午百度区块链的平台介绍了几个特点,第一个和版权结合,我们现在很多商用图片都会上链,包括未来可能会有数字音乐版权,数字电影版权都会上链,包括像邮政、游戏等等,和我们生活的结合越来越深,涉及的行业也越来越广。第二个是随着行业越来越多,每个行业都有每个行业的特点,所以行业应用复杂度越来越高,现在智能合约的代码是300行到500行,将来智能合约应用,一个合约可能有几千或者上万行代码,代码逻辑越复杂,产生的逻辑漏洞,安全威胁肯定会越多。最后一个场景是开发者现在还比较少,未来的开发者越来越多,越来越成熟,将来提供很多智能合约的应用,不仅仅是对开发者,也可能对更多普通的民众开放。我们的民众就可以像现在用APP一样,简单输入一些数据,输入一些数量或者输入一些价格,就可以自发产生智能合约,后面其实是公链方针对智能合约、对自己项目所起的标准,这样的人越来越多。所以他们所产生的问题越来越多,通过目前的使用方式就不现实了。我们知道创宇404实验室也是结合之前介绍的,未来预计会有更广泛更复杂的应用,还有更多的智能合约的场景,我们设计研发了一套智能合约智能验证的系统,能够在结合人工审计情况下,更多通过自动化智能化,通过AI方式和很多的公链项目方一起深入的结合,通过深度结合方式,对整个链产生的智能合约标准,和未来所产生智能合约使用的应用,让他们更健康更健壮一些,减少所出现的安全漏洞,让这些智能合约能够给我们生活带来便利性的同时,减少经济上的损失。后面这两个是我们现在目前内部版本的截图,把名字定义为叫做昊天塔,通过这样一个产品,或者这样一个系统,来为更多智能合约开发者和使用者提供安全的服务和保障。今天介绍暂时到这里,希望后续有关心的技术方面的同学或者是项目方,如果有兴趣大家在一起多多交流,谢谢大家。

声音 | 刘昌用:现在Tether是否用储备金给bitfenix填坑还不知道,bitfenix只是承认有资金被冻结:知密大学发起人、重庆工商大学区块链经济研究中心主任刘昌用在微博上发文《USDT事件不会导致稳定币消亡》表示,现在Tether是否用储备金给bitfenix填坑还不知道,bitfenix只是承认有资金被冻结。Tether目前流通市值28亿美元,如果挪用8.6亿,而剩余储备资产流动性较好,能够保证兑付,那也不是致命影响。他们需要担心的是此事引起对其储备资产的进一步调查和冻结。某个国家货币的崩溃,不代表全世界法币都要崩溃。同样,一个稳定币出现问题,不代表稳定币就不成立。稳定币跟任何其他货币一样,都有不稳定性和风险。除非把一种货币当做信仰,否则,我们必须在便利、稳定、保值、风险之间对各种货币做出权衡。稳定币是法币到密码货币的过渡形态,具有法币的稳定性和密码货币的自由度。但是,相应比法币风险更大,比密码货币更依赖个人信用,也带来风险。即使是合规稳定币,也只是接受了主权监管,并不能保证其跟法币同等的偿付能力。就跟雷曼公司合规,却不能保证其不倒闭一样。稳定币是密码货币发展过程中,市场催生的产物,凭借其稳定性和流通于密码网络体系的优势,存在广泛的市场需求。[2019/4/27]

金色独家 知道创宇:应对交易所两类安全威胁 循因施策:金色财经独家专访,目前交易所面临的安全隐患比较多,知道创宇作为安全公司从技术的角度分析认为,安全威胁主要为:第一针对交易所平台可用性的威胁,如:DDoS攻击、CC攻击、Web应用安全攻击等;第二针对交易所用户隐私信息的威胁,如:利用安全漏洞进行入侵获取管理权限,盗取数据或者利用平台用户的安全意识薄弱,通过钓鱼网站取用户隐私信息,还有黑客在交易所平台的运维或开发人员的机器上植入病、木马、后门程序来获取用户隐私信息,甚至交易所平台的私钥等。

对于如何鉴别监守自盗和黑客入侵行为,其认为:黑客入侵时,都需要在服务器或主机上留下操作痕迹或文件,比如病、木马、恶意程序等,可以通过安全服务人员的应急响应服务,对黑客的攻击进行抑制、阻断、恢复和溯源;内部人员监守自盗的情况,往往都和内部人员的管理权限过大同时又缺少监管的情况有关,所以发生的安全事件会是非常明显的非正常时间的正常操作,可以通过审计访问日志记录、操作记录的方式进行排查。[2018/6/16]

网络攻击者并不知道谁真的支付了加密货币:据Mashable中文站5日报道,互联网公司Akamai的安全研究人员最近发现,网络攻击者改变了以前先发动攻击再通过电子邮件或其他方式发出勒索信的做法次序,在攻击的同时将勒索信埋在了攻击数据中一并发出去。据采访称,当勒索门罗币时,由于门罗币固有的匿名性质,攻击者本人也并不一定知道受攻击者谁支付了赎金。[2018/3/6]

标签:区块链比特币DAOGAS区块链存证说法错误的是超级比特币UnityDAO0xGasless

BNB热门资讯
数字货币:高盛有可能推出基于ETH期货的NDF,真假未定,但高盛已成加密业网红_比特币

据ICOJournal消息,高盛正在与以太坊合作,积极研究向客户推出基于以太坊期货的无本金交割远期合约.

1900/1/1 0:00:00
数字货币:俄版“济州岛”?加里宁格勒或设立俄罗斯首个受监管的数币交易所_NFT

上周,专司俄罗斯数字经济监管的RUIE专门成立了一个工作组,以便对所有加密数字货币的法律和监管问题进行集中处理。同时,RUIE工作组将依据现有的“数字金融资产法”草案制定加密数字货币监管框架.

1900/1/1 0:00:00
区块链:星球日报 | 火币HADAX 或将改名为“创业板”?;迅雷链与来电共享充电宝达成合作;日本金融厅发布首例ICO非法集资处罚令_加密货币和数字货币的区别

头条火币高管刷屏告别HADAX照片为事件营销,HADAX或将改名为“创业板”9月10日晚7点左右,火币众多高管,包括火币COO朱嘉伟、火币高级商务总监鲁迈等.

1900/1/1 0:00:00
ETH:ETH的衰落不可避免?_WaleTokeN

编者按:本文来自蓝狐笔记,作者:JeremyRubin,星球日报经授权转载。前言:看到有人这么确定地对ETH下如此结论,非常好奇,供大家一起参考.

1900/1/1 0:00:00
区块链:区块链行业收购战打响,这是对该战役的五大预测_coinw交易所

编者按:本文来自链捕手,作者:龚荃宇,星球日报经授权转载。2018年以来,区块链行业发生的收购事件越来越多,其中有区块链项目之间的收购整合,也有区块链行业外与行业内项目的双向收购,整个行业已经进.

1900/1/1 0:00:00
Tezos:Tezos的LPOS跟EOS的dPOS一样吗?_TOKE

编者按:本文来自medium.com,作者:JacobArluck,翻译:Leo,星球日报经授权发布.

1900/1/1 0:00:00