当前位置:首页 > 物联网 > 区块链
[导读] 随着移动互联网技术的成熟,后移动互联网时代的代表——区块链技术则是这个时代的又一重大创新,尽管这项技术目前还处在非常初期且神秘晦涩的阶段,但充满想象力。 什么是智能合约?

随着移动互联网技术的成熟,后移动互联网时代的代表——区块链技术则是这个时代的又一重大创新,尽管这项技术目前还处在非常初期且神秘晦涩的阶段,但充满想象力。

什么是智能合约?

1995年Nick Szabo首次提出智能合约的概念,即:合约参与方同意的(经常是相互的)权利和义务。以销售合约为例,卖家承诺发送货物,买家承诺支付合理的货款。当一个预先编好的条件被触发时,智能合约则执行相应的合同条款。

随着区块链技术的发展和核心价值的进一步被挖掘,智能合约将不仅仅只是传统合约的数据化。在区块链世界,智能合约将扮演更多核心的工作,本文接下来将通过剖析区块链3.0中的智能合约技术细节,来展示区块链世界未来的智能合约形态。

从技术方面剖析智能合约——以Ultrain智能合约为例

在Ultrain的合约体系中,我们无法在自己的合约中嵌入其他合约的代码,那当我们不得不在自己的合约中使用其他合约的时候该怎么办呢?这里Ultrain提供了三个方法,允许你从自己的合约中调用其他合约的代码。在这里,将主要介绍有关交易的三个方法以及它们的特性。

1. Action.requireRecepient

首先介绍Require-recepient()方法。从名字中我们可以得知,这是一个通知。当这个方法被调用时,To合约上部署的同名方法将被调用。举个例子,现在我们编写了含有以下方法的两个合约,将一个合约部署在账号jack上(如图1),另一个部署在合约rose上(如图2)。

通过发起一笔交易来进行测试,如果一切正常,将会看到在打印的log中jack和rose的recepient同名方法都被调用(如图3)。

从结果中我们可以得知:

(1)jack的同名方法recepient也被调用了;

(2)传递的参数和交易发起时的参数messi是一致的,不需要明确地传递这个参数;

(3)rose和jack的recepient方法都在同一个transacTIon调用;

(4)rose和jack的recepient方法都有rose的权限。

2. AcTIon.sendInline

从AcTIon.requireRecepient()的测试结果中,可得知requireRecepient()方法只能用相同的参数调用同名方法,但这个方法在很多时候是受限的。因此,需要另一种方式来解决这个问题,即能够调用任意参数的方法。这个方法就是AcTIon.sendInline(),同样的,我们用例子来说明。

在rose的合约中调用jack合约中的任意方法,并且传递了任意的参数,账号部署完成后,执行rose的合约,执行成功后,会看到rose的执行log中确实存在jack合约方法的执行(如图6),这就意味着sendInline这个方法确实可以调用其他合约的任意方法,参数任意,而且双方具有相同的权限,同recepient一样,交易是在同个transaction中执行。

3. Transaction.send

前文分别介绍了requireRecepient和sendInline的使用方法及它们的特点,其中一条就是它们都在同一个transaction中被执行,这也就意味着,整个执行链条上如果有一个action失败了,那么整个transaction也就失败了。有些情况下,我们并不想所有的action作为一个事务来进行处理,这时候Transaction.send的好处就体现出来了。接下来来演示这个方法是如何使用的。

部署完成后我们可以执行rose的deferred方法,注意要将rose的active权限代理给utrio.code,否则这个方法执行时会失败。方法执行成功之后,会发现结果中只有rose的log信息(如图9),那么jack合约中打印的log信息在哪里呢?可以看看节点的log信息,会发现jack的log信息存在节点之中(如图10)。

这也说明这个方法确实可以不在同一个transaction中执行,并且具有以下的特性:

1)Transaction.send()可以调用jack任意的方法。

2)调用方法时,可以传递任意参数。

3)jack中的方法被调用时,具有发起时一样的权限(rose)。

通过以上三种方法的阐释,再次总结这三个方法各自的风格和特性,在不同场景中则可运用不同的方法(如图11)

综上,通过对区块链3.0中的智能合约技术的剖析,不难看出智能合约在区块链技术中起到的重要作用,以下为我个人对于智能合约的展望。

对智能合约的展望

以Ultrain为代表的区块链3.0,在智能合约技术基础上进行了不少改进和突破,从而让智能合约能够实现更加复杂逻辑的业务,这就意味着智能合约不再是为传统合约做相关的数据化这么简单,它可以实现技术上的逻辑互通,为各个行业搭建了桥梁。也正因如此,区块链技术才可真正实现承载高性能、低成本、高服务质量并支持大规模数据资产化商业帝国的构建。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

物联网设备数量呈指数级增长,其身份认证安全与区块链智能合约的可靠性成为制约行业发展的关键瓶颈。本文将从区块链物联网身份认证的底层原理出发,结合Hyperledger Fabric智能合约漏洞扫描与性能基准测试技术,系统阐...

关键字: 区块链 物联网 身份认证

在万物互联的M2M(机器对机器)通信时代,设备间的安全交互成为核心挑战。传统中心化认证体系因单点故障、数据泄露风险及高运维成本,难以满足物联网设备指数级增长的安全需求。区块链技术凭借去中心化、不可篡改和智能合约自动执行等...

关键字: 区块链 M2M

当前电力行业正经历着前所未有的变革。新型电力系统的建设加速推进,分布式新能源、电动汽车、储能设备等新型电力元素大规模接入,使得电力系统的供需互动更加复杂。与此同时,区块链技术凭借其去中心化、不可篡改、可追溯等特性,在金融...

关键字: 电力鸿蒙 区块链

香港2025年4月13日 /美通社/ -- 香港应用科技研究院 (应科院) 于第50届“日内瓦国际发明展”中成绩斐然,荣获16个奖项,其中包括1项评审团嘉许金奖、4项“金奖”、7项“银奖”及4项铜奖。今届获奖项目涵盖人工...

关键字: 人工智能 感测器 区块链 模型

在马来西亚获得政府间(G2G独特 认可的人工智能实验室将汇聚全球领先区块链、人工智能及机器人企业的合作 马来西亚吉隆坡2025年4月11日 /美通社/ -- 马来...

关键字: 人工智能 智能实验室 区块链 身份验证

在数字化时代,物联网(IoT)和区块链技术都备受关注,前者将无数设备连接成庞大网络,后者则以去中心化、不可篡改等特性重塑信任机制。当这两者相遇,碰撞出了创新的火花,区块链技术在物联网领域展现出巨大的应用潜力,为物联网的发...

关键字: 物联网 区块链 数字化

对于奢侈品牌,假冒伪劣产品和恶意灰色市场交易是一个长期存在的挑战。事实上,如今假冒市场被视为全球最大的非法贸易领域。经合组织(OECD)估计,2019 年其规模约为 4640 亿美元,占世界贸易总额的 2.5%,显然,对...

关键字: NFC防伪技术 半导体 区块链

区块链科普系列活动(一) 北京2024年12月24日 /美通社/ -- 在这个日新月异的科技时代,区块链与先进计算正以前所未有的速度推动着各行各业的变革。为了助力区块链及先进计算领域的创业者、从业人员把握时代脉搏,引领...

关键字: 区块链 亚马逊 数字化 AWS

区块链技术在物联网中的应用日益广泛,其去中心化、数据不可篡改和透明性等特点为物联网带来了诸多优势。以下将详细介绍区块链技术在物联网中的几个主要应用领域:

关键字: 区块链 物联网
关闭