您现在的位置:kastop>> Kas信息 Kaspa应用>>正文内容

Kasplex数据插入机制

Kasplex 使用“Commit-Reveal Scheme”将任意数据插入 Kaspa 区块链。该方案涉及两个交易:一个是提交交易,用户创建一个赎回脚本和一个包含定义操作的“信封”,另一个是揭示交易,其中提交交易的输出被花费,揭示链上的“信封”内容。

信封

可以使用多种方法创建“信封”。Data Drop 方法将数据推送到堆栈上,并在脚本执行期间将其从堆栈中删除。在此方法中,每个操作码将具有相同数量的操作码。另一种方法涉及将数据推送操作包装在结构中。这在比特币的 Ordinals 协议中被广泛使用。OP_PUSHOP_DROPOP_FALSE OP_IF … OP_ENDIF

由于 Kaspa 上可推送到堆栈的最大字节数为 520 字节,因此使用起来比推送嵌套的 JSON 字符串然后删除它更实用。OP_FALSE OP_IF … OP_ENDIF

我们使用字节“kasplex”来表示此信封属于 Kasplex 协议。信封应插入 P2SH 交易中赎回脚本的末尾。这实际上是:

复制

<pubkey>OP_CHECKSIG     
OP_FALSEOP_IF OP_PUSH "kasplex" OP_PUSH 1 OP_PUSH "text/plain;charset=utf-8" OP_PUSH 0 OP_PUSH "Hello, world!"OP_ENDIF

OP_PUSH 1表示下一个推送包含额外的信息(该字段当前是保留的,可以作为空字符串传递),并表示后续的数据推送包含内容本身。可推送到堆栈的最大字节数为 520 字节。OP_PUSH 0

提交事务

在提交事务中,用户创建一个 Redeem 脚本,然后将 OP_BLAKE2B 算法应用于此脚本。然后,输出脚本为:

复制

OP_BLAKE2B <RedeemScriptHash> OP_EQUAL

揭示交易

在 reveal 事务中,用户创建一个输入脚本(引用上面的 UTXO),该脚本由赎回脚本本身(作为单个堆栈元素,因此限制为 520 字节)组成,前面是一系列脚本操作,这些操作将使赎回脚本在执行后仅结果为 true。然后,输入脚本为:

复制

<signature> <RedeemScript>

完整的 Commit-Reveal 方案是这样的:

P2SH交易的两个阶段:创建UTXO和花费UTXO



感动 同情 无聊 愤怒 搞笑 难过 高兴 路过
【字体: 】【收藏】【打印文章】 【 打赏 】 【查看评论

相关文章

    没有相关内容