根据CoinMarketCap术语表中的定义*,“跨链是一种通过允许信息和价值交换来增强区块链网络之间互连的技术”。*我们创建了一个多链 Web3 世界,其中一些链是竞争对手,而另一些则服务于不同的目的。很难预测未来是否也会是多链的,但我们需要为当前情况提供工具。这就是为什么许多产品(包括 RedStone Oracle)将自己定位为跨链。
经常出现的一个问题 是预言机如何跨链?预言机不负责在网络之间交换信息,但它们可以同时向不同的区块链提供相同的数据。这不是一个小问题,因为每个网络都需要额外的工作和集成。更重要的是,如果预言机使用存储合约来保存可用于智能合约的最新值,那么它会变得非常昂贵。在这种情况下,可扩展性受到严重限制,因此,当前大多数预言机实现都集中在一个网络上。
为了创建真正的跨链预言机,RedStone 决定不使用存储合约。这一决定是开辟无与伦比的可扩展性之路的关键因素之一。那么,我们如何向智能合约提供数据:
他们本身无法与外部世界沟通;
没有其他合同包含必要的信息吗?
我们可以通过实现应用于合约方和客户端的特定于链的连接器来实现这一点。
说到合约,我们准备了自己的合约,应该由用户的合约继承。在我们的合同中,有负责四个主要功能的函数:
从 calldata 中提取数据,
数据提供者验证,
时间戳验证,
来自多个提供商的数据聚合。
这些功能使我们能够在智能合约中使用来自多个提供商的经过验证的数据。这里唯一的问题是信息如何出现在合约的调用数据中。
在客户端,我们准备了一个库,负责将专门准备的数据附加到事务calldata。目前,它主要关注 ethers.js 并作为合约实例的包装器。每次您与包装的合约交互时,我们的库都会从 RedStone 缓存层获取信息并将其添加到交易数据的末尾。随后,交易被发送到合约,如果我们的合约扩展了该合约,则该合约可以提取信息并将其用于任何链上目的。
上述整个过程如图所示:
在 RedStone,我们坚信摆脱存储合约是构建下一代预言机的正确途径,下一代预言机通过设计提供跨链功能和无与伦比的可扩展性。然而,将数据传递给合约的过程并不是我们与其他预言机提供商的唯一区别。查看我们的其他文章并关注我们的社交活动以了解更多信息!
与我们一起踏上构建下一代预言机的旅程!
推特:
discord: