主页 > imtoken官网下载广告 > 秒懂商业区块链关键技术:智能合约

秒懂商业区块链关键技术:智能合约

imtoken官网下载广告 2023-02-25 07:49:49

智能合约是区块链可以称为颠覆性技术的主要原因之一。 没有智能合约的区块链系统无法在商业领域灵活开展业务。 本文选自《商业区块链技术与实践》,带你快速了解这一关键技术。

智能合约

让预先制定的规则公开、公平、安全地执行,不被恶意篡改。

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

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

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

什么是智能合约

比特币具备智能合约功能_比特币合约交易员培训_比特币合约期货交割日

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

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

比特币具备智能合约功能_比特币合约交易员培训_比特币合约期货交割日

智能合约使用交易来触发执行,并会在每个全节点上执行。 如果单个节点作恶,则该节点的数据将失效,不会影响其他节点。 这使得智能合约的执行具有一致性,不能作恶。 去中心化特性可以用来保证业务规则的正确性。

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

比特币合约交易员培训_比特币合约期货交割日_比特币具备智能合约功能

比特币合约交易员培训_比特币合约期货交割日_比特币具备智能合约功能

合约执行流程

ChainVM基于Chrome V8引擎和WebAssembly技术实现、改进和优化,可以更好地满足区块链系统的生态友好性要求。

Chrome V8是谷歌开发的开源JavaScript引擎,可以直接将JavaScript代码翻译成二进制机器码并在物理机上执行,执行效率高; WebAssembly 是一种可移植、高效加载、与平台无关的字节码格式,可以在平台上以接近原生的速度执行程序,是一种全新的 web 标准,被谷歌、苹果、微软和 Mozilla。

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

比特币合约期货交割日_比特币具备智能合约功能_比特币合约交易员培训

如上图,智能合约的执行流程如下:

比特币合约交易员培训_比特币具备智能合约功能_比特币合约期货交割日

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

(2) 客户端(定义为使用C++代码实现)调用Chrome V8引擎,将合约代码加载到引擎中执行。 如果在执行过程中遇到内置接口,会产生一个回调函数调用客户端代码,此时就实现了双向交互功能。

(3) 在合约执行过程中,可能会发生新的交易。 例如,合约账户B通过合约内部接口对账户C进行转账操作。 如果C账户只是一个普通账户比特币具备智能合约功能,那么只需要进行普通的转账操作即可; 如果C账户是合约账户,会再次触发新的合约,形成递归调用。 合约调用合约的递归深度为3层。 如果超过3层,就会出错,整个事务都会回滚。 这是出于合约实现的复杂性和底层区块链的安全性考虑和设计的。

智能合约安全开发指南

开发智能合约和开发普通程序是有一定区别的。 部署后无法修改,升级更难,数据不可篡改。 因此,智能合约的开发需要遵循以下原则:

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

比特币合约期货交割日_比特币具备智能合约功能_比特币合约交易员培训

(2) 使用安全计算函数。 在数字的计算中,一定要使用内置接口,避免数字溢出。 当安全计算函数遇到溢出问题时,会通过函数终止执行,回滚数据。

(3) 发布前必须进行全面测试。

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

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

(6) 合约转账尽可能由普通用户交易触发。 如果用户发起的转账请求失败比特币具备智能合约功能,只会导致当前用户触发的转账失败,不会影响其他转账请求或其他逻辑流程。

比特币具备智能合约功能_比特币合约期货交割日_比特币合约交易员培训

比特币合约交易员培训_比特币合约期货交割日_比特币具备智能合约功能

经过11年的发展,区块链技术逐渐走出数字货币等传统应用范围,逐步扩展到数字金融、物联网、智能制造、供应链管理等商业领域。

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

比特币合约期货交割日_比特币具备智能合约功能_比特币合约交易员培训

《商业区块链技术与实践》一书从商业区块链的核心需求出发,详细介绍了区块链的产品架构和底层关键技术,从行业痛点、解决方案、和核心价值观。 分析了典型的业务案例。

本书对于理解区块链在商业应用场景中的技术定位和实现方式有很好的参考价值!

了解有关本书的更多信息:

比特币合约交易员培训_比特币合约期货交割日_比特币具备智能合约功能