您当前的位置: > 比特币行情 >

SynFutures 推出 BTC 哈希率期货的往信任预言机,简述其事情道理

发布时间:2021-08-30 22:10

SynFutures 提出了一个完全透明且无需信任的比特币挖矿难度预言机,任何人都可以提交新天生的比特币区块头来更新 BTCHASH 现货指数。

撰文:SynFutures 编译:PerryWang

SynFutures 团队推出的 BTC 哈希率期货(BTCHASH),与给定难度级别下每 PH/s 哈希率在难度重置期(约莫 14 天)的预期 BTC 区块奖励挂钩。矿工可以用 BTCHASH 对冲比特币挖矿难度的颠簸,以锁定将来的挖矿奖励。

按照比特币网络的激励模子,给定每个 BTC 区块头中确当前挖矿难度,可以轻松计较出 1PH/s 哈希率的预期挖矿奖励。比特币挖矿难度仅在 2016 的倍数区块高度重置,在中间区块保持稳定。

这种不活跃的现货指数对链上衍出产品没有指示意义——BTCHASH 更喜欢持续且靠近及时的现货指数。要实现这一方针的简朴要领是让 SynFutures 团队按期上传链下计较的现货指数。但假如这样做,团队将在个生态系统中取得中央化节制,与 BTCHASH 的无需信任特色南辕北辙。

在对比特币的区块链布局和中本聪共鸣的完整法则举行深进研究后,我们确信构建一个为 BTCHASH 提供所有须要信息的链上预言机是可行的,同时保留其无需信任的特质。其设计道理必需确保没有人可以利用现货指数。

这个设法主意很简朴——所有需要的信息都可以从 80 字节的比特币区块头中推导出来。只有满意中本聪共鸣的区块头才会被思量。使用智能合约实现验证逻辑,我们提出了一个完全透明且无需信任的比特币挖矿难度预言机,任何人都可以提交新天生的比特币区块头来更新 BTCHASH 现货指数。

虽然设法主意很简朴,但因为比特币区块链存在潜在重组,以及中本聪共鸣所允许的巨大时间戳漂移,个中的工程事情可能很是庞大。为了处置惩罚重组,我们在宁静性假设下构建了预言机,即 10 个区块后被认为是终极确定。因此,预言机始终跟踪最近 12 个区块头。

当提交新区块头时,预言机要求生意业务中第一个区块头 hashPrevBlock 必需指向预言机已知的最新 10 个区块之一。别的,生意业务中最后一个头部的区块高度必需大于最新头部的区块高度。另外还执行其他查抄,以按照中本聪共鸣验证区块头,包括哈希链验证、针对挖矿难度方针的区块头验证,以及链重组的累积事情处置惩罚。

为了充实理解时间戳漂移问题,让我们回首一下比特币区块头的布局。80 字节的比特币区块头由表中列出的 6 个字段构成。 请注意,Version 字段最初用于指示区块版本,但区块验证历程不会对该字段执行严格的法则。如今,矿工在举行繁重的挖矿事情时倾向于轮回会见 Version 和 Nonce 字段。hashPrevBlock 组成了比特币区块链,hashMerkleRoot 则是该区块中所有生意业务的数字指纹。

nBits 字段是以紧凑格局暗示确当前挖矿难度方针,并将在难度重置期间保持稳定。时间戳(Timestamp) 字段用于记载区块创建时间,因此天然会跟着区块高度的增加而简朴增加。不外,因为缺乏全球网络时钟和差别节点之间可能存在时间漂移,中本聪共鸣在这个字段只执行了一个疏松的法则。

这种疏松的法则导致了巨大的 Timestamp 距离(数千秒),纵然在两个相邻区块之间也会呈现这种环境。Timestamp 字段的这种不行靠性对预言机的构建提出了重大挑战。但我们相信,可以以一种高效而优雅的方式解决这一问题。

nBits 字段所代表的挖矿难度方针仅在 2016 倍数的区块高度处重置,按照上一阶段(之前的 2016 个区块)的开始和竣事区块的 Timestamp 差异。为了得到及时的挖矿难度方针,我们可以很收留易地在每个区块高度遵循沟通的难度方针重置法则。也就是说,我们使用已往 2016 个区块的移动窗口来计较出一个区块加权难度方针,作为现货难度指数。

请注意,已往 2016 个区块可能属于 2 个阶段。假设难度方针用 Target0 暗示,Target1-288 个区块属于上一阶段,1728 个区块属于当前阶段。假如是这种环境,则当前难度方针计较方式如下:

当前难度方针 = Target0 * 288/2016 + Target1 * 1728/2016。

假如 Timestamp 差异是实际时间跨度,则下一个区块的新方针计较如下:

新难度方针 = 当前难度方针 * 实际时间跨度 / 方针时间跨度

这种要领的美妙之处在于,这种区块加权难度方针在重置区块时可以确定地会合成实际难度方针。

现货难度指数与 BTCHASH 现货指数代价直接挂钩,入而影响 BTCHASH 的标志代价。因为标志代价是用来判断账户是否有足够的包管金,因此我们必需绝最大积极消除异常代价跳动,以掩护我们的用户。

仔细调查新难度方针(newTarget)的计较方式,人们会注意到实际时间跨度是按照比特币区块头中上述不行靠的 Timestamp 字段计较的。这意味着矿工可能会滥用有关 Timestamp 字段的宽松法则,来利用现货难度指数。

关于时间戳的宽松法则划定:假如时间戳大于前 11 个区块的时间戳中值,而且小于网络调解时间 + 2 小时,则该被接管为有效。「网络调解时间」是所有毗连节点返归时间戳的中位数。因此区块时间戳并不完全精确,也不需要精确。区块时间只能准确到一两个小时之内。(请注意,用合约来表达网络调解时间限制部门是不行行的,由于在全网层面临网络调解时间没有告竣共鸣。)

如前所述,我们接纳移动窗口要领,仅使用区块头来揣度及时难度方针。直观地说,我们估计开始和竣事区块的时间戳会跟着区块高度的增长而单调增加。不外从 Timestamp 字段的疏松法则来望,两头都没有这样的包管。在这种环境下,我们如何降低时间戳漂移风险?另一方面,计较实际时间跨度需要合约存储和维护最新的 2016 个区块的时间戳,意味着初始化预言机和提交区块头时会耗损相称多的 Gas 用度。

为相识决我们接头的所有问题,SynFutures 针对移动窗口的两侧构建了差别的解决方案。在竣事端,我们只遵循中位数时间戳——也就是说,点难度方针不是按照最新的区块头计较的,而是按照具有中位数时间戳的区块头计较的。这是可行的,由于预言机老是存储最近的 12 个区块头。这样我们获得中本聪共鸣的包管,移动窗口的竣事侧永遥不会过时。在开始端,我们不是存储所有 2016 个区块的时间戳,而是每 144 个区块存储一个区块的时间戳。其他区块头被视为匀称漫衍。

因为没有时间戳漂移会大于 24 * 60 * 60 (秒),我们可以包管移动窗口的左侧将始终延伸到将来。更妙的是,单个区块头的时间戳漂移以这种方式被 144 个区块分摊。我们用约莫 300 行 Solidity 代码实现了这个完整的逻辑。提交 12 个区块头所发生的 Gas 用度约为 27 万单元。现货难度方针平稳移动,并始终如预期的那样,会合到到中本聪共鸣指定的值。

SynFutures 简介

SynFutures 是一个即将推出的金融衍生品协议,今朝处于 V1 关闭 Alpha 阶段。该团队融合了加密原生族与华尔街顶级大咖,其理念是为以太坊和其他第二层(L2)/ 侧链上的将来 DeFi 衍生品构建坚实的基础举措措施。2021 年 6 月,SynFutures 宣布得到 1400 万美元的 A 轮融资,由 Polychain Capital 领投,Framework、Pantera Capital、Bybit、Wintermute、CMS、Kronos 和 IOSG Ventures 参投。2021 年头,SynFutures 宣布了由 Dragonfly Capital 和 Standard Crypto 支持的种子轮融资。

您可以会见该 项目网站,以 注册 V1 关闭 Alpha 抢先体验。或在 Medium / Twitter / Telegram / Discord 上介入接头。

假如您想相识更多信息,我们另有一个关于哈希率期货的常见问题解答。敬请在 Telegram 或 Discord 上接洽我们的办理员。

请点击我们的 官网 或在 Medium / Twitter / Telegram 和 Discord 插手接头。

请插手我们的社区 !????