区块链从比特币到以太坊,最大的变化是增加了“智能合约”。比特币系统是专为叫做比特币数字货币而设计的,它的UTXO和脚本也可以处理一些复杂的交易,但是有很大的局限性。比特币系统自身有诸多缺陷,诸如此类价值盲、区块链盲、图灵不完备等。而维塔利克创建了以太坊区块链,在完善了比特币系统的缺陷后,还增加了智能合约。维塔利克的核心目标都是围绕智能合约展开的:一个图灵完备的脚本语言、一个运行智能合约的虚拟机(EVM),以及后续发展出来的一系列标准化的用于不同类型通证的智能合约等。
 
以太坊的智能合约并非现实中常见的合同,而是存在区块链上,可以被触发执行的一段程序代码,这些代码实现了某种预定的规则,是存在于以太坊执行环境中的“自治代理”。智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约建立的权利和义务,是由一台计算机或计算机网络执行的。数字形式意味着合约不得不写入计算机可读的代码中,因为只要参与方产生协定情况智能合约才会执行。
 
智能合约的出现使得基于区块链的两个人,不只是可以进行简单的价值转移,而可以设定复杂的规则,由智能合约自动、自治地执行,这极大地扩展了区块链的应用的可能性。当前把焦点放在通证的创新性应用上的项目,在软件层面都是通过编写智能合约来实现的。利用智能合约,我们可以进行复杂的数字资产交易。借用维塔利克的讨论,重复一下我们认同的智能合约的软件性质--它相当于一种特殊的服务端后台程序,在以太坊白皮书中,维塔利克写道:合约应被看成是存在与以太坊执行环境中的“自治代理”,它拥有自己的以太坊账户,收到交易信息,他们就相当于被捅了一下,然后它就自动执行一段代码。
 
区块链,是分布式账本技术。各方共同维护一个共享、互通、互联的账本,在此账本上就价值的确认、交易、分配达成共识。智能合约,区块链是基于分布式账本技术的自治执行机制,即把区块链等同于智能合约。在没有通证的情况下,通过智能合约的自动/自治执行,进行数字资产的交易。在有通证的情况下,通过智能合约的自治执行,进行通证形式的数字资产的交易。如以太坊白皮书所说,它的合约是软件运行环境中的“自治代理”。
 
以太坊的智能合约设计
 
1.任何人都可以在以太坊区块链上开发智能合约,这些智能合约的代码是存在于以太坊的账户中的,这类存有代码的账户叫合约账户。对应地,由密钥控制的账户可称为外部账户;
 
2.以太坊的智能合约程序,是在以太坊虚拟机上运行的;
 
3.合约账户不能自己启动运行自己的智能合约。要运行一个智能合约,需要由外部账户合约账户发起交易,从而启动其中的代码执行。也就是说,智能合约不能自发执行任务,需有外部条件刺激其执行。
 
智能合约的执行流程
 
制定合约(pre-defined contract),各方就条款达成一致,编写智能合约代码,时间触发(events),事件触发合约的执行。比如有人发起交易:价值转移(execute&value transfer)执行合约,根据预设条件,进行价值的转移;清算结算(settlement)如果所设计资产是链上资产,则自动完成结算;如果是链下资产,则根据链下的清算更新账本。
 
以太坊的智能合约有什么用?以太坊的智能合约被广泛应用的一个用途是创建通证,通证对应的多是以太坊区块链之外的资产。一个项目通过智能合约创建通证,这个通证是实体资产或线上资产的价值表示无。投资者发起交易,向智能合约转入以太币,智能合约自动运转,在满足一定规则后,它向投资者账户转入相应数量的通证。
 
知识点汇总
 
1、以太坊的智能合约并非现实中常见的合同,而是存在区块链上,可以被触发执行的一段程序代码,这些代码实现了某种预定的规则,是存在于以太坊执行环境中的“自治代理”。
 
2、智能合约的出现使得基于区块链的两个人,不只是可以进行简单的价值转移,而可以设定复杂的规则,由智能合约自动、自治地执行,这极大地扩展了区块链的应用的可能性。
 
3、合约应被看成是存在与以太坊执行环境中的“自治代理”,它拥有自己的以太坊账户,收到交易信息,他们就相当于被捅了一下,然后它就自动执行一段代码。
 
4、智能合约,区块链是基于分布式账本技术的自治执行机制。在没有通证的情况下,通过智能合约的自动/自治执行,进行数字资产的交易。在有通证的情况下,通过智能合约的自治执行,进行通证形式的数字资产的交易。
 
5、要运行一个智能合约,需要由外部账户合约账户发起交易,从而启动其中的代码执行。也就是说,智能合约不能自发执行任务,需有外部条件刺激其执行。
 
作者:霍玛丽
来源:布洛克科技
 
版权归布洛克科技所有,转载请联系授权注明来源,否则将追究其法律责任。
 

——The End——

 

关注“布洛克科技”