区块链智能合约怎么样什么是智能合约

当前位置:首页 > 币圈百科 > 区块链智能合约怎么样什么是智能合约

区块链智能合约怎么样什么是智能合约

2022-11-14币圈百科321

智能合同是区块链被称为颠覆性技术的主要原因之一。没有智能合约的区块链系统无法在商业领域灵活开展业务。

智能合约

允许事先制定的规则公开、公平、安全地实施,没有恶意篡改。

早在1994年就提出了智能合约的概念,但由于当时缺乏可信的执行环境和系统,智能合约并没有应用到实际行业中。

2009年比特币诞生的时候,比特币的交易都携带着简单可执行的脚本,简单的逻辑就可以执行。人们逐渐意识到,区块链的底层技术自然可以为智能合约提供可信的执行环境。但比特币对智能合约的支持仅停留在简单脚本的层面,不具备图灵完备性,无法实现更复杂的逻辑。因此,比特币的脚本只是开启了基于智能合约的应用开发。

以太坊的出现,让智能合约从简单的实验走向了落地应用。对于一个成熟的区块链技术体系来说,智能合约是一个非常重要的技术特征,也是区块链可以被称为颠覆性技术的主要原因之一。

什么是智能合约

智能合约已经成为区块链系统的基础功能组件,没有智能合约的区块链系统将无法在商业领域灵活开展业务。

在区块链系统中,智能合约是存储在区块链中的一段代码,写在合约的账户中,实现特定的业务操作,可以被触发执行。智能合约的代码不能修改,否则会造成滥用修改的风险。

微信图片_20201222134642.jpg

智能合约由交易触发执行,将在每个完整节点上执行。如果单个节点作恶,那么该节点的数据无效,不会影响其他节点。这使得智能合约的执行始终如一,不能作恶。分散化特性可用于确保业务规则的正确性。

智能合约的执行条件是当其他账户(BU原生资产或asset资产)向该合约账户转账时触蓑衣网小编2022发。智能合约的代码加载到ChainVM中,由chain VM执行代码,最后将执行结果写入区块链,这个过程将在所有节点中执行并存储。

图片

合同执行流程

ChainVM是基于Chrome V8引擎和WebAssembly技术实现和改进优化的,能够更好地满足区块链系统生态友好的需求。

Chrome V8是Google开发的开源JavaScript引擎,可以直接将JavaScript代码翻译成二进制机器码,在物理机上执行,执行效率高;WebAssembly是一种可移植、高效、平台无关的字节码格式,可以在平台上以接近原生的速度执行程序。它是一个全新的Web标准,由谷歌、苹果、微软、Mozilla等几大公司支持和制定。

这两种技术可以为ChainVM提供良好的基础功能支持,但不能直接应用于区块链系统场景。它们主要用于合同执行安全、接口权限、合同间交互、异常处理、语法检查等。为了描述方便,本节将重点介绍一个支持JavaScript语言的Chrome V8引擎来解释ChainVM的实现原理。

微信图片_20201222134646.jpg

如上图所示,智能合约的执行过程如下:

(1)用户A发起签名交易,目标账户为B,是存储有智能合约代码的智能合约账户。假设此时事务被广播和打包,节点需要将事务存储在区块链上,并回放和计算事务。

(2)客户端(定义为用C代码实现)调用Chrome 蓑衣网小编2022V8引擎,将契约代码加载到引擎中执行。在执行过程中,如果遇到内置接口,就会产生回调函数,调用客户端代码。这时就实现了双向交互功能。

(3)在合同执行过程中,有可能产生新的交易。比如合同的账户B通过合同内的接口转账给账户C。如果C账户只是普通账户,那么只需要普通转账;如果账户C是合约账户,会再次触发新的合约,形成递归调用。调用契约的递归深度是3层,超过3层就会出错,整个事务回滚。这是因为合同实现的复杂性和区块链底层的安全性而考虑和设计的。

智能合约安全开发指南

开发智能合约和开发普通程序是有一定区别的。部署后无法修改甚至升级,数据无法篡改。因此,在开发智能合同时应遵循以下原则:

(1)保持合同简洁。复杂的逻辑在外部应用程序中实现,契约只需要保证基本逻辑正确,重要数据安全。

(2)使用安全计算功能。计算数字时,一定要使用内置接口,避免数字溢出。当安全函数遇到溢出问题时,它将终止执行并回滚数据。

(3)发布前一定要充分测试。

(4)对于不可预知的错误,多使用断言,终止程序。

(5)避免重入攻击。当在一个合约中调用另一个合约时,当前合约必须首先改变重要变量的状态,否则,当另一个合约再次发起与当前合约的交易时,仍将使用当前合约状态。

(6)合同转让尽量由普通用户交易触发。如果用户发起的转账请求失败,只会导致当前用户触发的转账失败,不会影响其他人的转账请求或其他逻辑流程。微信图片_20201222134650.jpg

经过11年的发展,区块链科技已逐步走出数字货币等传统应用领域,逐步向数字金融、物联网、智能制造、供应链管理等商业领域拓展

目前,区块链技术正处于大规模商业应用的前夜。我们很有必要探蓑衣网小编2022 讨一下商用区块链技术的技术进步和发展趋势。

区块链智能合约怎么样什么是智能合约 | 分享给朋友: