用户课堂是RatingToken团队专门针对用户需求而设计的新栏目,在课堂中我们会每周为大家讲解智能合约的相关知识。欢迎大家关注用户课堂的第一讲:什么是智能合约?智能合约真的智能吗?
一.什么是智能合约?
1.智能合约简析:
智能合约(Smart Contract),是一段部署在区块链上的代码,一旦某个事件触发合约中的条款,代码就会自动执行。用人话来讲就是:智能合约是一份基于密码学这种高科技上面的数字化合同,与传统的纸质合同的差异就是: 自动售货机相当于智能合约,售货员相当于纸质合同。
举个简单的例子你就明白了:
假设甲向乙借了一大笔钱,虽然打了白纸黑字的借条。但是到期后,甲以各种理由拒绝还款,此时乙想要拿回借款只能起诉。智能合约就能解决这种问题,如果甲乙双方在借款前把借款金额、还款时间、对方绑定银行卡信息等打包进合约中。到了约定还款日,借款会自动划到乙的账户里,即使甲不想还也没办法。
2.智能合约的背景:
大多数人听说智能合约都是从以太坊开始,其实智能合约的概念早在以太坊出现以前就已经存在了。1993年计算机科学家、加密大师尼克·萨博(Nick Szabo)提出“智能合约(Smart contract)”的概念,1994年他写成了《智能合约》论文,这是智能合约的开山之作。尼克·萨博的研究成果为V神开创区块链2.0时代奠定了基础,因为以太坊就是在比特币的基础上添加了智能合约。
3.区块链与智能合约有什么关系?
01.区块链为智能合约的运用提供技术基础
1993年就诞生的智能合约为何现在才开始落地?因为能支撑它的技术——区块链刚刚问世。试想一段代码怎么保证订立合约的双方信任彼此?区块链的去中心化、公开性、不可篡改等优势,用技术手段解决了智能合约的信任问题,天然适用于智能合约。
02.智能合约为区块链扩展了应用
在以比特币为代表的区块链1.0时代,区块链仅仅用于解决数字货币的去中心化支付问题。但是智能合约应用以后,建立在区块链上面的应用大幅扩展:各类Dapp、钱包、还有大家热衷一时的以太猫等游戏才得以应用。
目前主流的智能合约开发和运行平台是以太坊,据统计以太坊已有智能合约数量大约200万左右。
二.智能合约真的“智能”吗?
在“人工智能”被调侃是“人工智障”的今天,不禁有人怀疑,智能合约到底智能吗?
说它智能是因为:
首先,合约条款由计算机代码评估并执行不用借助人力。
其次,合约代码一旦上链,执行过程和结果都完全公开而且不可篡改。区块链的优势就是透明,目前在以太坊上部署的合约,可以选择开源代码。也就是说,包括张三李四在内的所有人都可以知道这个合约的内容及作用,谁都修改不了。
智能合约并没有想象中那么“智能”:
随着智能合约的广泛应用,人们发现,智能合约有可能出现漏洞,也存在很多的安全风险。一个漏洞如果一旦被黑客利用就可能导致很多严重的安全问题,尤其是大家最关心的——资产安全。大家应该经常听到这些骇人听闻的智能合约漏洞案例:随意转账、无限增发、资产归零等等。
目前,以太坊智能合约的编程语言solidity和以太坊智能合约运行的虚拟环境EVM的设计还不完善,不排除出现安全漏洞的情况。如果智能合约开发者稍有疏忽或者测试不充分,就有可能造成智能合约的代码存在漏洞。这对项目安全来说就像一颗隐藏的炸弹,一旦爆炸,后果将不堪设想。
下面小编来为大家盘点一下近三年智能合约漏洞被攻击的大事件:
例一
2016年6月17日发生了区块链历史上沉重的一次攻击事件。由于以太坊的智能合约存在重大缺陷,区块链业界最大的众筹项目TheDAO(被攻击前拥有1亿美元左右资产)遭到攻击,直接损失达到300多万以太币。你们快拿起手里的计算机算算,大约是多少money?
例二
2017年7月21日,智能合约编码公司Parity警告1.5版本及之后的钱包软件存在漏洞,据Etherscan.io的数据确认,价值3000万美元的15万以太币被盗。这还不算完,4个月后以太坊Parity钱包再次出现重大bug ,导致上亿美元资金被冻结。这么多$啊,瑟瑟发抖……
例三
以美链BEC为例,黑客利用以太坊ERC-20智能合约中BatchOverFlow漏洞中的数据溢出漏洞,攻击了美链BEC的智能合约,通过转账的手段凭空生成原本不存在的巨量Token,还把这些Token转入了正常账户,收到这些“假冒Token“后还可以正常进行交易,与真的Token毫并无差别。以假乱真,就问你怕不怕?
从区块链安全事件统计数据来看,智能合约安全事件占6.67%,虽然占比较小,但造成的资金损失占比达43.3%,共计12.4亿美元!智能合约漏洞会导致如此重大的资产损失,这应当引起我们警惕!
下周我们会详细解释“整数溢出漏洞”,并给出“怎样检测智能合约”的相关教学,敬请期待!