区块链Oracle如何与智能合约交互?

2018-12-19 12:17 栏目:经验之谈 来源: 查看()
智能合约的概念在区块链技术领域已经使用了很长时间。比特币允许编写程序代码以迫使各方遵守协议条款。实现更复杂的编程语言来编写合同是为了增加它们的潜力并扩展它们的使用。以太坊本身可以被视为这种智能合约应用的原始模型。

区块链Oracle如何与智能合约交互?

使用智能合约可确保在满足特定条件时自动执行协议。但是,必须验证是否满足这些条件。如果事务只涉及区块链及其组件,则没有问题。不幸的是,区块链不存储有关离线世界的任何信息。因此,这种验证不能完全通过区块链和智能合约来实现。

智能合约有缺陷

一些区块链解决方案允许编写智能合约以便能够处理外部数据源。不幸的是,这涉及各种并发症和不可接受的后果。由于不同地理位置,网络时间滞后,分布式服务等对计算机网络的破坏,同一智能合约的两个实例在计算后可能会有不同的结果。如果不同节点上的两个类似的合同得出不同的结论,则会发生事务不一致。因此,交易可能永远不会被添加到块中,甚至可能导致分叉。此外,智能合约的主要概念有以下缺点::

·合同以区块链为基础;
·正确的目标执行需要考虑变化的因素;
·正确写合同很困难;
·无法更改或删除已激活的合同。

Oracle简介

为了补偿访问限制,智能合约需要区块链和外部环境之间的链接。一个名为“Oracle”的软件扮演着这样的角色。简而言之,oracle是一个提供基于区块链的合同的程序,可以访问外部信息。合同要求Oracle提供有助于其做出决策的信息,Oracle将相应地向合同提供此信息。

Oracle可以被认为是一种特殊类型的智能合约。实际上,oracle代码必须放在一个完整的节点中。它与来自智能合约的请求交互,并根据严格的算法运行。另一方面,oracle本身不会对区块链内容进行任何更改。它只能向外部数据源发送请求,并将响应重新传输到智能合约。

应该指出的是,每个区块链的智能合约都是不同的。这是由于应用了不同的编程语言。就比特币而言,它是一种脚本语言。以太坊智能合约是一个用多种语言编写的成熟程序。其他加密货币可能有完全不同的方法。契约的差异决定了众神的多样性。尽管如此,甲骨文在智能合约中的作用并没有根本的不同。

后记

智能合约是区块链中包含的小型程序产品。每个完整节点所有者都拥有所有智能合约的完整副本。智能合约只能使用区块链内容来制定决策。

Oracle是位于区块链边界的程序代码,可以与智能合约交换数据。 Oracle扮演着硬件或软件界面的角色。显然,区块链上唯一的智能神谕威胁到完全不信任交易对手的原则。为解决此问题,Oracle使用了多种方法,包括验证硬件组件。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发