您的位置:首页>科技 >内容

Chainlink启动Mainnet以获取进出以太坊智能合约的数据

2019-05-31 11:51:38来源:
导读区块链有可能改写经济并改变各行业的权力平衡。它还具有企业的特定用途。区块链可能是当今最有前景的技术之一,但这也可能就是为什么周围还

区块链有可能改写经济并改变各行业的权力平衡。它还具有企业的特定用途。区块链可能是当今最有前景的技术之一,但这也可能就是为什么周围还有大量的FUD。然而,抛开猜测和加密冬天,在区块链变为现实之前,需要解决许多技术问题,并且数据访问在其中是显着的。简而言之,区块链作为数据存储和检索机制不是很有效。这就是为什么人们一直在尝试使用区块链作为数据库的各种方法,包括改变其结构。然而,无论这些结果如何成功,有一件事是肯定的:今天世界上大多数数据并不存在于区块链中。绝大多数应用程序数据存在于某个数据库中,其中一数据可通过API访问。数据库和API的世界如何以及为什么与区块链世界交流?输入Chainlink。

智能合约和连接问题

您可能听说过智能合约。您可以将智能合约视为完全按其创建者在以太坊区块链上设置执行的程序。智能合约增强了以太坊能够执行防篡改代码,此外还存储防篡改数据,将其转换为“世界计算机”。

智能合约和数据共同构成了分散式应用程序(Dapps)甚至整个分散式自治组织(DAO)的构建模块。有一种用于开发智能合约的编程语言(Solidity),以及可用于构建智能合约应用程序的开发框架(Truffle)。

尽管这仍然不是100%成熟的堆栈,但人们正在使用它来开发Dapps和DAO。智能合约可以相互交互,也可以在区块链上存储和检索数据。但是当他们需要与外部世界交互,并从/向数据库或API检索(或存储)数据时会发生什么?

正如Chainlink所定义的那样,智能合约连接问题是智能合约无法与任何外部数据馈送或在执行智能合约本身的节点网络外部运行的其他资源进行交互。

由于围绕区块链交易达成共识的方法,所有智能合约网络都缺乏外部连接的缺乏,因此对于所有智能合约网络而言将是一个持续存在的问题。

Chainlink由首席执行官谢尔盖·纳扎罗夫和首席技术官史蒂夫·埃利斯共同创立,旨在通过开发一个所谓的神谕来解决这个问题,这个神谕今天正式启动。ZDNet与Chainlink团队联系,讨论这是什么。

Chainlink,区块链oracle

一个Oracle是一个blockchain和现实世界之间的网关。Oracles可以从区块链中获取数据并将其传递给智能合约。当然,问题在于,oracles在分散的,无信任的区块链世界中引入了集中化和信任的需要。

Chainlink的白皮书于2017年出版,试图在技术层面上解决这个问题。Chainlink的部分实施在链上和部分链外运行。有服务水平协议(SLA),数据源选择机制,结果聚合和报告的规定。

有一个API数据提供者可以用来在Chainlink的oracle中提供他们的数据。还概述了权力下放方法和安全服务,以确保Chainlink健壮且安全。我们询问的一件事是,今天的发布与Chainlink白皮书[PDF]中概述的愿景有多接近。

智能合约连接问题:智能合约如何与区块链之外的数据和API互操作?图像:ChainLink

Chainlink团队指出,首次启动的重点是允许智能合约根据他们创建的单个请求的数量从Chainlink节点检索外部数据。虽然这是必不可少的第一步,但它并未完全实现白皮书中讨论的所有功能。Chainlink认为,随着开发的进展,这个过程可以而且应该逐步升级。

为了帮助智能合约创建者,他们接着补充说,Chainlink提供了有关如何创建多个oracles请求和聚合响应的文档和合同示例。该服务协议协议当前处于开发阶段,将允许请求者在设置步骤中为其请求定义参数,以便单个请求可以从多个oracles接收响应。

换句话说,虽然尚未完全实施,但已经存在一定程度的技术预见。部分原因在于确保oracle具有弹性(即它不会在重负载下崩溃),并且它的一部分用于确保它是分散的(即没有单点故障/仲裁者的真相)。

建立生态系统

Chainlink正在推出三种支持的神谕,包括它自己的神谕。其他团队是Fiews和LinkPool。这些团队已在以太坊测试网络上运行Chainlink节点大约一年,并协助开发Chainlink节点。Chainlink指出,他们还将在官方文档中列出已批准的Chainlink节点的入职流程。

其他第三方能够自己运行Chainlink节点,因为Chainlink代码是开源的。第三方可以使用其他列表服务(目前正在开发中)以接收来自智能合约的请求。

任何服务提供商都可以使用Chainlink oracles进行智能合约。如果有人想将自己的数据用于智能合约,他们可以自由连接到自己的数据源。此外,Chainlink团队补充说,这取决于您的观点:

ChainLink不仅提供基础设施来帮助开发智能合约,还围绕这一点建立生态系统。图像:ChainLink

“作为数据提供商,我如何将我的数据出售给智能合约?答案是为我的API创建外部适配器,运行Chainlink节点,并允许智能合约向我的oracle创建请求。

作为一般节点运营商,我如何销售X API的数据?他们要么自己创建一个外部适配器,如果他们不是开发人员(这不是一个要求)可能不可行,或者他们可以找到一个开源实现的他们希望提供的API的外部适配器。

我们已经将Chainlink节点构建为模块化设计,因此节点操作员可以轻松添加外部适配器以扩展其节点的功能,而无需知道如何编写程式。”

Chainlink带来的部分价值在于为任何人提供运行oracle的基础架构,其中一部分来自自己的oracle和生态系统。有各种各样的名字飞来飞去,包括与SHIFT的概念验证项目,以及据称“白标”合作伙伴,如Salesforce和Microsoft Azure。

SWIFT概念验证从五家银行(巴克莱银行,法国巴黎银行,富达,法国兴业银行和桑坦德银行)提取利率,并将数据转换为智能合约,该合约用于支付转换为SWIFT支付信息。

Chainlink澄清了生态系统有三种类型的项目:数据提供者,平台/区块链以及使用Chainlink神谕的项目。虽然Chainlink没有指出一个完整的清单,但他们他指出了一篇提到许多合作者和项目的Decrypt文章。他们补充说,业内有很多猜测,他们只在官方确认。

Chainlink提供的不仅仅是技术基础设施 - 它们还提供了这种基础设施的实例,并且已经过审查的数据提供商。Chainlink强调,他们与顶级数据合作伙伴合作,为正式创建的适配器,如加密价格数据,供应链等。

基本上,有两层选择:一个在oracle网络上,一个在每个oracle中。用户可以选择在oracle网络中使用哪个oracle,oracle节点可以选择要连接的外部服务。

这也带来了一些有趣的技术挑战。从本质上讲,oracles将充当数据中心,数据流入和流出它们。如何对不同的数据提供者和数据流进行编目,集成和管理?那么与数据新鲜度,正确性和性能相关的问题呢?

数据选择和模式匹配

Chainlink目前使用基于JSON Schema的模式系统进行操作,以指定每个适配器需要的输入以及它们应如何格式化。类似地,适配器指定输出模式来描述每个子任务输出的格式。

大规模的模式管理与来自不同领域和来源的数据是一个充分研究和记录的主题,但这并不容易在实践中处理。特别是在使用JSON Schema时,这在模式管理方面不是最先进的解决方案。

ChainLink已被用于概念验证,以清除SHIFT和全球银行的付款。图像:ChainLink

那么当流经Chainlink的数据没有足够的元数据时会发生什么?更不用说,即使是足够的元数据也可能是错误的/误导性的。如果我连接一个数据提供者并声称它是关于主题A会发生什么,但其他人说它确实是关于主题B,或C,或D和E?Chainlink说这是权力下放在oracle问题中起关键作用的地方:

“就像智能合约是如何安全的,因为它们是在多台机器(区块链节点)上运行的,你可以通过多个Chainlink节点检索到的输入来保护智能合约的输入。

所以,如果你是一个请求者,那么你想要来自特定API DPA的数据,您可以定义要检索该数据的Chainlink节点数量。要进一步分散您的输入,并且如果有其他数据提供者具有相同的数据主题,您可以从另一个链接节点检索其他链接节点API DPB协助验证。“

但是,我们认为虽然这确实解决了数据源选择的问题,但它没有解决模式匹配的问题:用于描述DPA和DPB的内容的术语可能不同,但他们的数据可能与一样。基于JSON Schema,没有用于对齐元数据的机制,没有人会知道。

数据流

从数据架构的角度来看,Chainlink看起来像一个数据中心,数据将通过该数据中心瞬时流动。但是,提到了已发布的用例列表,与云中的数据库和数据交互。

我们想知道今天是否有这种用例的实现。此外,如果这种情况起飞,那么流经Chainlink的数据量将相当可观。Chainlink会考虑在oracle中存储任何数据,例如用于缓存吗?

Chainlink认为,他们喜欢将其视为一种链式协议,允许智能合约和节点运营商以信任最小化的方式相互协作:

ChainLink oracle充当数据中心,支持2个级别的数据源选择:oracle和外部数据源。图像:ChainLink

“这意味着节点操作员可以访问的任何端点都可以通过我们的协议由智能合约使用。我们有许多工作实现,使智能合约能够从经过身份验证的数据源检索数据。在数据库中

存储或缓存数据oracle目前还不是一个考虑因素,因为存在许多与之相关的安全问题。数据提供商已经拥有长期存储数据的工具,并具有提供数据的历史和可靠性。“

那反过来呢?如果智能合约想要将数据发送到外部源,而不是将其存储在区块链中,Chainlink可以这样做吗?

Chainlink节点可以将信息从智能合约中继到外部源。但是,这会引入一系列问题,因为在外部系统中存储数据意味着区块链上数据存储的防篡改方面不再适用。

那么Chainlink的智能合约开发会如何呢?是否归结为写作Solidity - 对于大多数人来说,这不是世界上最简单的事情吗?目前,智能合约从链上创建请求,并且Chainlink节点会接收该请求。

Chainlink表示,在不久的将来,他们将允许从脱链服务直接向Chainlink节点发起请求。这允许比以太坊网络的典型块时间更快地创建请求。

它还为更快的区块链打开了大门,以便以原生速度接收数据。Chainlink节点已经可以使用外部适配器查询其他区块链上的数据,唯一需要注意的是请求者需要使用与该区块链连接的Chainlink节点。

总而言之,对于智能合约,以太坊和区块链来说,这是一个非常受欢迎的发展。这意味着现在可以实现这个生态系统发展的下一步。

当然,并非一切都是美好的,智能合约和oracle开发必然会在数十年内引发一些引发软件开发和数据管理的问题。希望这些问题的已知解决方案最终也可用于促进该生态系统的发展。

免责声明:本文由用户上传,如有侵权请联系删除!

猜你喜欢

最新文章