有了智能合约,没人能赖你账
背景
智能合约的理念可以追溯到1994年,几乎与互联网(world wide web)同时出现。因给比特币打下基础而受到广泛赞誉的密码学家尼克萨博(Nick Szabo)首次提出了“智能合约”这一概念。它的定义如下 “一个智能合约是一套以数字形式定义的承诺(commitment),包括合约参与方可以在上面执行这些承诺的协议。”
从本质上讲,这些自动合约的工作原理类似于其它计算机程序的if-then(如果-就)语句。当一个预先编好的条件被触发时,智能合约执行相应的合同条款。
但可惜的是,尼克·萨博关于智能合约的工作理论迟迟没有实现。一个重要原因是,缺乏能够支持可编程合约的数字系统和技术,即可信的执行环境。
发展
直到比特币诞生,大家才认识到,比特币的底层技术区块链天生为智能合约提供可信的执行环境,不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点。
然而,比特币的智能合约过于简单,并不能解决大部分问题。以太坊则对它的应用范围进行了极大的扩展。
与比特币相比,以太坊最大的不同点是:它可以支持更加强大的脚本语言(图灵完备脚本语言),允许开发者在上面开发任意应用,实现任意智能合约。
可以说,比特币引领了区块链,以太坊复活了智能合约。
智能合约是如何实现的?
1.智能合约由区块链内的多个用户共同参与制定,可用于用户之间的任何交易行为。协议中明确了双方的权利和义务,开发人员将这些权利和义务以电子化的方式进行编程,代码中包含会触发合约自动执行的条件。比方说,你把一套闲置的房子租给A,那么,这份智能租约中就规定了A必须在每月5号之前给你打房租、你必须在收到房租时马上给对方钥匙等条款。
2.一旦编码完成,这份智能合约就被上传到区块链网络上,即全网验证节点都会接收到你和A的租房合约。
3.智能合约会定期检查是否存在相关事件和触发条件;满足条件的事件将会推送到待验证的队列中。假设A在4号提前打房租给你,这个事件就成了该合约的触发条件(每月5号以前)。
4.区块链上的验证节点先对该事件进行签名验证,以确保其有效性;等大多数验证节点对该事件达成共识后,智能合约将成功执行,并通知用户。
5.成功执行的合约将移出区块。而未执行的合约则继续等待下一轮处理,直至成功执行。
所有智能合约都是链上行为,所以首先需要通过编程在以太坊上部署智能合约,比如我们常见的DApp就是根据需求开发的程序,其后端就是智能合约。
部署到区块链上的智能合约代码理论上要最小可用,而且逻辑不能过于复杂,虽然以太坊支持各种复杂的逻辑,但是逻辑越复杂的代码需要消耗的以太坊就越多。
怎么理解呢?这就相当于你去定制一套家具,你的需求越多越复杂,需要的价格也就越高。
接着,合约会通过P2P网络扩散并存入区块链,一旦某些条件触发了智能合约,那么它就会自动执行。
智能合约可应用在哪些方面?
智能合约可以应用在以下这些场景:数字身份、贸易金融、衍生品、财务数据分析、财政数据、抵押、供应链、汽车保险等。
在区块链社会里,大家共同维护一个区块链账本,所有交易数据无法篡改、不可伪造,还能减少人工对账的出错概率和人力成本;随着智能合约普及,我们生活将变得更加方便。
MaxiMine是如何使用智能合约的?
MaxiMine 允许 MXM 持有者持有不同期限、不同额度的多张合约。对于每一张算力兑换合约,用户需要质押一定量的 MXM 来获取相应算力的使用权和所有权。在每个合约开始时,用户将会根据质押的 MXM 代币获取一个固定的算力值。
在每个合约到期时,MXM 将被退还给持有者,其中一部分将被用于支付相应的管理费用。一般来说,锁定时间长的合约将提供用户额外的算力。算力兑换合约彼此独立,收益大小和分配将根据预设的参数在区块上自动执行。
需要强调的是,运行在以太坊区块上的收益分配模式不直接使用 Ether 或者比特币,我们提出基于 MaxiMine 系统的衍生代币:MBTC 以及 METH;用户可以随时将该类代币兑换成链上的原生资产。
作者:Jayceon Jiang
编辑:El Caballo