智能合约并不是一个新的概念,早在1995年就由跨领域法律学者尼克萨博提出,是对现实中的合约条款执行电子化的量化交易协议。智能合约设计的总体目标是满足常见的合约条件(如支付条款、留置权、机密性以及执行等),以及最大程度地减少恶意和偶然地异常,最大限度地减少对可信中介的依赖。智能合约已经在电子投票和供应链管理等很多领域得到应用,且前景广阔。
基于区块链的智能合约
本质上来说,智能合约是一段程序,它以计算机指令的方式实现了传统合约的自动化处理。简单讲,智能合约就是双方在区块链资产上交易时,触发执行的一段代码,这段代码就是智能合约。“智能合约程序不只是一个可以自动执行的计算机程序,它本身就是一个系统参与者,对接收到的信息进行回应,可以接收和储存价值,也可以向外发送信息和价值。这个程序就像一个可以被信任的人,可以临时保管资产,总是按照事先的规则执行操作。”
简单的来说就是,你可以提前规定好合约的内容,当在满足触发合约条件的时候,程序就会自动执行合约内容。
“智能合约的工作理论迟迟没有实现,一个重要原因是因为缺乏能够支持可编程合约的数字系统和技术。区块链技术的出现解决了该问题,不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点,天然适合于智能合约。因此,也可以说,智能合约是区块链技术的特性之一”
摘录来自: “区块链:从数字货币到信用社会”。
基于区块链的智能合约优势
区块链2.0以后提出的智能合约,让区块链应用更具便捷性和拓展性。主要优势体现如下:
1.将合约以数字化的形式写入区块链中,因区块链的特性,数据将无法删除、修改,只能新增,整个过程透明可跟踪,保证了历史的可追溯性;
2.因行为将被永久记录,可极大程度避免恶意行为对合约正常执行的干扰;
3.去中心化,避免了中心化因素的影响,提高智能合约在成本效率方面的优势;
4.当满足合约内容时,将自动启动智能合约的代码,既避免了手动过程,同时又保障了发行者无法违约;
5.由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。
智能合约安全吗?
然而,对于智能合约这项新技术而言,其本身也存在一定的安全风险。目前智能合约已经发生过重大安全事件,黑客手法是利用漏洞入侵系统,进而对智能合约用户造成巨大损失。其中较为严重的两大事件有:
- Bitfinex在8月2日凌晨发布公告,发现了安全漏洞。该漏洞导致bitfinex全面停止交易,这将导致每位用户的账户平均损失36%。
- 黑客智能合约存在的漏洞攻击The Dao,造成价值逾5000万美元的损失。ETH市场价格从记录高位21.50美元跌至15.28美元。
目前智能合约存在的四大安全风险:
- 隐私泄露:智能合约对区块链上的所有用户可见,包括但不限于标记为private的资源,存在造成隐私信息泄露的风险。
- 交易溢出与异常:由于智能合约本身的约束条件,如条件竞争、交易顺序依赖等,可能会造成交易溢出与异常。
- 合约故障:由于智能合约代码中可能存在不合理的故障处理机制,从而导致异常行为。
- 拒绝服务:由于各种原因导致的拒绝服务风险。
如何保障智能合约的安全性?
智能合约这项新技术充满了安全挑战,所以对智能合约进行大量的白盒审计是非常必要的。通过智能合约审计来确保合约的安全性,并确保所有合约得到高效的执行。针对以上四大问题我们提出了四大解决方案:
- 函数可见性审核,包括:敏感函数继承权限检测和函数调用权限检测。
- 合约限制绕过审核,包括:使合约失效,删除地址字节码和将所有合约资金发送到一个目标地址。
- 调用栈耗尽审核,包括:检测栈高度限制,是否出现栈耗尽情况。
- 拒绝服务审核,包括:过多货币交易发生异常,导致交易回滚,最终导致合约拒绝服务。
By 知道创宇