主页 > imtoken制作冷钱包 > 秒懂商业区块链关键技术:智能合约

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

imtoken制作冷钱包 2023-01-18 14:30:04

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

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

智能合约

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

智能合约的概念早在 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年的发展,区块链技术逐渐走出了数字货币等传统应用,逐步扩展到数字金融、物联网、智能制造、供应链管理等商业领域。

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

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

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

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

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

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