智能合约一词是由密码学家NickSzaboTICHUDE提出,区块链智能合约具有通过集成去中心化预言机访问链下数据的能力,而今天为大家介绍的这个智能合约开源就是系统内部代码完全开放,用户可以按照需求更改或添加相应功能。而不开源则指版权是开发人所有,用户不知道源码内容,无法对源码进行修改。一般来说开源的属于主动方,不开源的就是属于被动方。很多投资者可能还不太清楚智能合约开源是什么意思?下面就让小编为大家通俗讲解智能合约开源。
智能合约开源是什么意思?
智能合约开源就是系统内部代码完全开放,用户可以按照需求更改或添加相应功能。智能合约让事先制定的规则被公开、公正、安全的执行,不会被恶意篡改。早在1994年就提出了智能合约的概念。但由于当时缺乏可信的执行环境和制度,智能合约并没有应用到实际行业中。
2009年比特币诞生的时候,比特币交易有简单可执行的脚本,简单的逻辑就可以执行。人们逐渐意识到,区块链的底层技术自然可以为智能合约提供可信的执行环境。但比特币对智能合约的支持仅停留在简单脚本的层面,不具备图灵完备性,无法实现更复杂的逻辑。因此,比特币的脚本只是开启了基于智能合约的应用开发。
随着以太坊的出现,智能合约可以从简单的实验应用到落地。对于成熟的区块链技术体系来说,智能合约是一个非常重要的技术特征,也是区块链能被称为颠覆性技术的主要原因之一。
智能合同的执行流程
(1)用户A发起签名交易,目标账户为B,B为智能合约账户,存储有智能合约代码。假设此时事务被广播和打包,节点需要将事务存储在区块链上,并回放和计算事务。
(2)客户端(定义为用C代码实现)调用ChromeV8引擎,将契约代码加载到引擎中执行。在执行过程中,如果遇到内置接口,会生成回调函数,调用客户端代码。这时就实现了双向交互功能。
(3)在合同执行过程中,可能发生新的交易。比如合同的账户B通过合同内部的接口转账给账户C。如果C账户只是普通账户,那么只需要普通转账;如果账户C是合约账户,会再次触发新的合约,形成递归调用。调用契约的递归深度是3层,超过3层就会出错,整个事务回滚。这是因为合同实现的复杂性和区块链底层的安全性而考虑和设计的。
执行智能合约后,所有涉及的节点都会更新为新状态。智能合约技术通过不可替代代币、DeFi系统、创纪录的投资和市值等应用程序重获新生。然而,由于在整个软件开发生命周期(SDLC)中智能合约实施不力、安全机制不足和漏洞用,许多运行在智能合约上的系统正在受到损害。智能合约安全工作在编写第一行代码之前就开始了在规划、设计和开发阶段,最后保护智能合约免受网络攻击和潜在漏洞的侵害。