链抽象Omnichain就是把跨链规则写入智能合约
随着公链和layer2链的数量越来越多,资产和Dapp的跨链需求也开始增多,跨链桥自然是一种比较常见的解决方案,但以Zetachain为代表的Omnichain走出了一条完全不同的道路,本文将以Zetachain为例,解释Omminchain是如何把跨链规则写入智能合约从而实现跨链互操作的去中心化的。几种跨链技术方案跨链(Cross-Chain)技术的核心目标是实现不同区块链之间的互操作性(Interoperability)。互操作性是指不同的区块链系统能够相互理解和使用对方的资产(如代币、加密货币等)和数据,或者在不同的区块链平台上运行的应用能够相互交互和协作。这一目标的实现,可以极大地增强区块链生态系统的灵活性和扩展性,打破不同区块链平台之间的孤岛效应,从而促进更加广泛的应用和发展。 根据跨链消息的处理方式以及相应资产的签名授权方式的不同,可以分为以下几个技术方案:跨链桥(Cross-Chain Bridges): 跨链桥是一种使资产能够从一个区块链转移到另一个区块链的技术。它通过锁定在源链上的资产,并在目标链上发行相应的代表性资产(或等价资产)来实现这一过程。这种方式支持资...
全链上游戏2023年度总结
2023年全链游戏发展介绍全链上游戏在2023年有了非常显著的进展,日益吸引了大家的注意力。我们认为有以下几个原因,Jump Crypto 在年初明确了全链游戏这个概念的内涵和外延,使全链游戏和GameFi两个链游子赛道做出了明确的区分。ECS架构的游戏引擎在年初开始出现,使得建立链上复杂应用更加方便。Ticking Chain 的出现使得全链游戏的逻辑帧刷新率有了质的飞跃,从而制作全链游戏的类型从回合制扩展到了需要高刷新率的即时策略类。AA钱包在2023年开始普及,可以极大的提高全链游戏的操作体验,从此不用再对每一步上链操作进行签名授权。ZK技术随着ZK-Rollup的普及得到迅猛发展,帮助全链游戏从制作信息对称的游戏扩展到“非对称信息游戏”。自主世界(Autonomous Worlds)这个叙事从极客圈层开始渗出到VC圈层,主要归功于两次比较大的行业事件,第一个是5月份 ETHGlobal 和 0xPARC 以及 Lattice 举办的名为“Autonomous Worlds Hackathon”线上黑客松。另一个是11月份在伊斯坦布尔举办的名为“Autonomous Wor...

全链游戏101: 预编译合约
什么是预编译合约?预编译合约是 EVM 中用于提供更复杂库函数(通常用于加密、散列等复杂操作)的一种折衷方法,也可以理解为一种特殊的合约,这些函数不适合编写操作码。 它们适用于简单但经常调用的合约,或逻辑上固定但计算量很大的合约。 预编译合约是在使用节点客户端代码实现的,因为它们不需要 EVM,所以运行速度很快。 与使用直接在 EVM 中运行的函数相比,它对开发人员来说成本也更低。 如下代码可以看到, evm.go的合约中run函数有两个分支:第一个分支是通过预编译索引来实例化索引参数从而指定预编译合约,第二个分支是如果它不是预编译合约那evm将会被调用。// run runs the given contract and takes care of running precompiles with a fallback to the byte code interpreter. func run(evm *EVM, contract *Contract, input []byte, readOnly bool) ([]byte, error) { if contract.Cod...
<100 subscribers
链抽象Omnichain就是把跨链规则写入智能合约
随着公链和layer2链的数量越来越多,资产和Dapp的跨链需求也开始增多,跨链桥自然是一种比较常见的解决方案,但以Zetachain为代表的Omnichain走出了一条完全不同的道路,本文将以Zetachain为例,解释Omminchain是如何把跨链规则写入智能合约从而实现跨链互操作的去中心化的。几种跨链技术方案跨链(Cross-Chain)技术的核心目标是实现不同区块链之间的互操作性(Interoperability)。互操作性是指不同的区块链系统能够相互理解和使用对方的资产(如代币、加密货币等)和数据,或者在不同的区块链平台上运行的应用能够相互交互和协作。这一目标的实现,可以极大地增强区块链生态系统的灵活性和扩展性,打破不同区块链平台之间的孤岛效应,从而促进更加广泛的应用和发展。 根据跨链消息的处理方式以及相应资产的签名授权方式的不同,可以分为以下几个技术方案:跨链桥(Cross-Chain Bridges): 跨链桥是一种使资产能够从一个区块链转移到另一个区块链的技术。它通过锁定在源链上的资产,并在目标链上发行相应的代表性资产(或等价资产)来实现这一过程。这种方式支持资...
全链上游戏2023年度总结
2023年全链游戏发展介绍全链上游戏在2023年有了非常显著的进展,日益吸引了大家的注意力。我们认为有以下几个原因,Jump Crypto 在年初明确了全链游戏这个概念的内涵和外延,使全链游戏和GameFi两个链游子赛道做出了明确的区分。ECS架构的游戏引擎在年初开始出现,使得建立链上复杂应用更加方便。Ticking Chain 的出现使得全链游戏的逻辑帧刷新率有了质的飞跃,从而制作全链游戏的类型从回合制扩展到了需要高刷新率的即时策略类。AA钱包在2023年开始普及,可以极大的提高全链游戏的操作体验,从此不用再对每一步上链操作进行签名授权。ZK技术随着ZK-Rollup的普及得到迅猛发展,帮助全链游戏从制作信息对称的游戏扩展到“非对称信息游戏”。自主世界(Autonomous Worlds)这个叙事从极客圈层开始渗出到VC圈层,主要归功于两次比较大的行业事件,第一个是5月份 ETHGlobal 和 0xPARC 以及 Lattice 举办的名为“Autonomous Worlds Hackathon”线上黑客松。另一个是11月份在伊斯坦布尔举办的名为“Autonomous Wor...

全链游戏101: 预编译合约
什么是预编译合约?预编译合约是 EVM 中用于提供更复杂库函数(通常用于加密、散列等复杂操作)的一种折衷方法,也可以理解为一种特殊的合约,这些函数不适合编写操作码。 它们适用于简单但经常调用的合约,或逻辑上固定但计算量很大的合约。 预编译合约是在使用节点客户端代码实现的,因为它们不需要 EVM,所以运行速度很快。 与使用直接在 EVM 中运行的函数相比,它对开发人员来说成本也更低。 如下代码可以看到, evm.go的合约中run函数有两个分支:第一个分支是通过预编译索引来实例化索引参数从而指定预编译合约,第二个分支是如果它不是预编译合约那evm将会被调用。// run runs the given contract and takes care of running precompiles with a fallback to the byte code interpreter. func run(evm *EVM, contract *Contract, input []byte, readOnly bool) ([]byte, error) { if contract.Cod...
Share Dialog
Share Dialog

众所周知,铭文技术目前主要是用来发行资产,但是最近在研究BTC生态的时候,发现合并挖矿其实使用的也是铭文,本文将以BTC二层的 Rootstock (@rootstock_io)为例来探讨合并挖矿的工作原理。
Rootstock 也是一条兼容EVM的侧链,基于SHA256 的 POW 共识,生态角色有三个,1) Miner,和BTC共用矿工来创建区块。2) Powpeg,负责和BTC链资产的双向锚定。3) Node Operator,运营全节点,广播交易,验证区块。因为和BTC共识一样,所以采用了合并挖矿。
在刚听到合并挖矿的时候,我的第一印象是,既然使用同样的挖矿算法,那么矿工(矿机)会比较挖矿收益,谁的收益高就挖谁,但仔细研究之后才发现这个想法是错的。合并挖矿的真实流程其实和制作铭文非常类似:如果说铭文NFT是把一个图片或者文字铭刻到BTC链上空间的话,那么合并挖矿其实是把RSK这个区块链的区块头相关信息铭刻到BTC链上空间。
合并挖矿的工作流程如下:
准备阶段:
a. 矿工创建比特币区块:首先,矿工准备一个新的比特币区块,包括交易、前一个区块的哈希等标准组件。
b. 创建RSK区块模板:同时,矿工也会从RSK网络获取一个RSK区块模板。这个模板包含待处理的RSK交易和其他必要的区块信息。
组合区块:
a. 矿工将RSK区块模板转化为一个小的数据片段,称为“RSK标签”(或称为合并挖矿标记)。然后,矿工将这个标签插入到比特币区块的coinbase交易中。coinbase交易是每个区块中的第一笔交易,通常用于奖励矿工。
b. 这样,比特币区块现在含有了关于RSK区块的信息,但这并不影响比特币区块的正常功能。
挖矿:
a. 矿工开始像往常一样为比特币区块进行工作量证明(PoW)挖矿。因为比特币区块现在包含了RSK的信息,矿工实际上是同时为两个链进行挖矿。
验证和提交:
a. 提交比特币区块:当矿工找到有效的工作量证明,成功挖掘出一个新的比特币区块后,他们会像往常一样将其提交给比特币网络。
b. 提交RSK区块:矿工同样需要提取出coinbase交易中的RSK标签,并使用它来构建一个完整的RSK区块。然后,这个RSK区块被提交到RSK网络。
RSK网络的验证:
a. RSK网络接收到新的区块后,首先检查它是否包含了有效的比特币区块的引用(通过RSK标签)。
b. 然后,RSK网络验证比特币区块的工作量证明。这是可能的,因为RSK网络可以检查比特币区块的哈希值是否满足比特币网络的难度要求。
c. 如果一切有效,RSK区块被接受并添加到RSK区块链上。这意味着在不增加额外计算的前提下,通过比特币的PoW挖矿过程同时保障了RSK网络的安全性。
从上面的讨论我们可以看到,合并挖矿和Ordinal NFT稍有不同的地方在于
合并挖矿铭刻的是RSK标签(包含有RSK区块的相关数据),而Ordinal NFT一般铭刻的是图片或者文字。
合并挖矿储存数据的地方在一个区块的Coinbase交易的脚本区,而Ordinal NFT储存数据的地方在Segwit脚本空间。
也许有人会产生一些疑问,既然是合并挖矿,BTC链是10分钟一个块,RSK是30秒一个快,那么假设在过去一分钟RSK出了两个block,那这两个block要如何构建?毕竟BTC miner是10分钟才能构造一个block。
这其实涉及到合并挖矿中不同链区块时间间隔差异的处理。RSK的区块时间大约是30秒,而比特币的平均区块时间是大约10分钟。这确实意味着在比特币挖出一个区块的时间里,RSK可以产生多个区块。
在合并挖矿中,是这样处理的:
RSK区块的产生:虽然RSK的区块平均每30秒就能产生一个,但并不是所有这些区块都直接与比特币区块“绑定”。RSK使用一种称为“装箱”(commitment)的机制,在比特币区块中记录RSK区块的信息。
区块“装箱”:在比特币区块的coinbase交易中,矿工可以包含一个特殊的RSK区块信息(这通常被称为“装箱”或“提交”)。然而,由于比特币的区块时间远长于RSK,这个信息通常代表了多个RSK区块的状态。简而言之,一个比特币区块可能承载一个或多个RSK区块的信息,但这主要关乎于在特定时间点的最新RSK状态或区块的合并提交。
解决时间差异:因此,虽然多个RSK区块可能在一个比特币区块时间内被产生,但合并挖矿过程主要是关于在比特币区块中记录RSK网络的最新状态。每当比特币区块被挖掘出来并且包含RSK的信息时,这个信息会反映在RSK网络上,允许RSK区块得到确认。
RSK网络的确认和安全性:每当一个比特币区块被成功挖出并且包含对RSK区块的引用时,相应的RSK区块就会被网络确认。这不仅为RSK区块提供了额外的安全性,还允许RSK利用比特币网络的强大挖矿能力。
在比特币网络中,矿工确实通常也运行全节点。这是因为为了有效地挖矿,他们需要访问完整的区块链数据来验证交易和防止无效的区块产生。因此,在比特币生态系统中,矿工和全节点运营商的角色经常重叠,尽管理论上,运行一个全节点并不一定要参与挖矿。
在RSK网络中,情况稍有不同:
矿工(Miners): 在RSK中,矿工同样对网络的安全性至关重要。RSK允许比特币矿工通过合并挖矿同时为RSK网络提供安全性,这意味着他们可以在挖掘比特币的同时挖掘RSK,而不需要额外的计算资源。这些矿工验证并打包RSK的交易,并通过工作量证明机制对RSK区块链进行维护。
全节点运营商(Node Operators): 虽然RSK矿工在网络中扮演重要角色,但全节点运营商也非常重要。全节点运营商在RSK网络中运行完整节点,这意味着他们保持网络的一个完整的、更新的区块链副本。他们帮助网络达成共识,传播交易和区块。不过,与比特币不同,在RSK中运行全节点并不直接等同于挖矿。你可以运行一个全节点以支持网络,而不参与合并挖矿。
因此,虽然在RSK中矿工和全节点运营商可以是不同的参与者,但也有可能是相同的。区别在于,尽管所有矿工几乎必须运行全节点以参与挖矿过程,但并非所有运行RSK全节点的人都参与挖矿。这样分开主要是因为合并挖矿允许比特币矿工在不牺牲自己挖矿效率的情况下增加对RSK网络的安全性,而全节点运营商则是为了维护网络的健康和透明度而存在的。
最后,BTC合并挖矿的矿工会收到RBTC充当gas的奖励。Rootstock链治理代币是RIF,充当gas fee 的是1:1锚定的RBTC。这个双向锚定由 15个 Powpeg(数量会变动)管理,存款的时候:将比特币发送到 RSK 的存款多签地址,等待足够多的区块确认即可。在足够多的确认之后,侧链上的一个 Solidity 合约会发现这笔交易,并给侧链上一个你的公钥(你所存入的 UTXO 的公钥)所控制的账户增加余额。取款的流程也由一个智能合约来控制,它会跟联盟沟通,联盟会签名由合约告知的主链取款交易。

众所周知,铭文技术目前主要是用来发行资产,但是最近在研究BTC生态的时候,发现合并挖矿其实使用的也是铭文,本文将以BTC二层的 Rootstock (@rootstock_io)为例来探讨合并挖矿的工作原理。
Rootstock 也是一条兼容EVM的侧链,基于SHA256 的 POW 共识,生态角色有三个,1) Miner,和BTC共用矿工来创建区块。2) Powpeg,负责和BTC链资产的双向锚定。3) Node Operator,运营全节点,广播交易,验证区块。因为和BTC共识一样,所以采用了合并挖矿。
在刚听到合并挖矿的时候,我的第一印象是,既然使用同样的挖矿算法,那么矿工(矿机)会比较挖矿收益,谁的收益高就挖谁,但仔细研究之后才发现这个想法是错的。合并挖矿的真实流程其实和制作铭文非常类似:如果说铭文NFT是把一个图片或者文字铭刻到BTC链上空间的话,那么合并挖矿其实是把RSK这个区块链的区块头相关信息铭刻到BTC链上空间。
合并挖矿的工作流程如下:
准备阶段:
a. 矿工创建比特币区块:首先,矿工准备一个新的比特币区块,包括交易、前一个区块的哈希等标准组件。
b. 创建RSK区块模板:同时,矿工也会从RSK网络获取一个RSK区块模板。这个模板包含待处理的RSK交易和其他必要的区块信息。
组合区块:
a. 矿工将RSK区块模板转化为一个小的数据片段,称为“RSK标签”(或称为合并挖矿标记)。然后,矿工将这个标签插入到比特币区块的coinbase交易中。coinbase交易是每个区块中的第一笔交易,通常用于奖励矿工。
b. 这样,比特币区块现在含有了关于RSK区块的信息,但这并不影响比特币区块的正常功能。
挖矿:
a. 矿工开始像往常一样为比特币区块进行工作量证明(PoW)挖矿。因为比特币区块现在包含了RSK的信息,矿工实际上是同时为两个链进行挖矿。
验证和提交:
a. 提交比特币区块:当矿工找到有效的工作量证明,成功挖掘出一个新的比特币区块后,他们会像往常一样将其提交给比特币网络。
b. 提交RSK区块:矿工同样需要提取出coinbase交易中的RSK标签,并使用它来构建一个完整的RSK区块。然后,这个RSK区块被提交到RSK网络。
RSK网络的验证:
a. RSK网络接收到新的区块后,首先检查它是否包含了有效的比特币区块的引用(通过RSK标签)。
b. 然后,RSK网络验证比特币区块的工作量证明。这是可能的,因为RSK网络可以检查比特币区块的哈希值是否满足比特币网络的难度要求。
c. 如果一切有效,RSK区块被接受并添加到RSK区块链上。这意味着在不增加额外计算的前提下,通过比特币的PoW挖矿过程同时保障了RSK网络的安全性。
从上面的讨论我们可以看到,合并挖矿和Ordinal NFT稍有不同的地方在于
合并挖矿铭刻的是RSK标签(包含有RSK区块的相关数据),而Ordinal NFT一般铭刻的是图片或者文字。
合并挖矿储存数据的地方在一个区块的Coinbase交易的脚本区,而Ordinal NFT储存数据的地方在Segwit脚本空间。
也许有人会产生一些疑问,既然是合并挖矿,BTC链是10分钟一个块,RSK是30秒一个快,那么假设在过去一分钟RSK出了两个block,那这两个block要如何构建?毕竟BTC miner是10分钟才能构造一个block。
这其实涉及到合并挖矿中不同链区块时间间隔差异的处理。RSK的区块时间大约是30秒,而比特币的平均区块时间是大约10分钟。这确实意味着在比特币挖出一个区块的时间里,RSK可以产生多个区块。
在合并挖矿中,是这样处理的:
RSK区块的产生:虽然RSK的区块平均每30秒就能产生一个,但并不是所有这些区块都直接与比特币区块“绑定”。RSK使用一种称为“装箱”(commitment)的机制,在比特币区块中记录RSK区块的信息。
区块“装箱”:在比特币区块的coinbase交易中,矿工可以包含一个特殊的RSK区块信息(这通常被称为“装箱”或“提交”)。然而,由于比特币的区块时间远长于RSK,这个信息通常代表了多个RSK区块的状态。简而言之,一个比特币区块可能承载一个或多个RSK区块的信息,但这主要关乎于在特定时间点的最新RSK状态或区块的合并提交。
解决时间差异:因此,虽然多个RSK区块可能在一个比特币区块时间内被产生,但合并挖矿过程主要是关于在比特币区块中记录RSK网络的最新状态。每当比特币区块被挖掘出来并且包含RSK的信息时,这个信息会反映在RSK网络上,允许RSK区块得到确认。
RSK网络的确认和安全性:每当一个比特币区块被成功挖出并且包含对RSK区块的引用时,相应的RSK区块就会被网络确认。这不仅为RSK区块提供了额外的安全性,还允许RSK利用比特币网络的强大挖矿能力。
在比特币网络中,矿工确实通常也运行全节点。这是因为为了有效地挖矿,他们需要访问完整的区块链数据来验证交易和防止无效的区块产生。因此,在比特币生态系统中,矿工和全节点运营商的角色经常重叠,尽管理论上,运行一个全节点并不一定要参与挖矿。
在RSK网络中,情况稍有不同:
矿工(Miners): 在RSK中,矿工同样对网络的安全性至关重要。RSK允许比特币矿工通过合并挖矿同时为RSK网络提供安全性,这意味着他们可以在挖掘比特币的同时挖掘RSK,而不需要额外的计算资源。这些矿工验证并打包RSK的交易,并通过工作量证明机制对RSK区块链进行维护。
全节点运营商(Node Operators): 虽然RSK矿工在网络中扮演重要角色,但全节点运营商也非常重要。全节点运营商在RSK网络中运行完整节点,这意味着他们保持网络的一个完整的、更新的区块链副本。他们帮助网络达成共识,传播交易和区块。不过,与比特币不同,在RSK中运行全节点并不直接等同于挖矿。你可以运行一个全节点以支持网络,而不参与合并挖矿。
因此,虽然在RSK中矿工和全节点运营商可以是不同的参与者,但也有可能是相同的。区别在于,尽管所有矿工几乎必须运行全节点以参与挖矿过程,但并非所有运行RSK全节点的人都参与挖矿。这样分开主要是因为合并挖矿允许比特币矿工在不牺牲自己挖矿效率的情况下增加对RSK网络的安全性,而全节点运营商则是为了维护网络的健康和透明度而存在的。
最后,BTC合并挖矿的矿工会收到RBTC充当gas的奖励。Rootstock链治理代币是RIF,充当gas fee 的是1:1锚定的RBTC。这个双向锚定由 15个 Powpeg(数量会变动)管理,存款的时候:将比特币发送到 RSK 的存款多签地址,等待足够多的区块确认即可。在足够多的确认之后,侧链上的一个 Solidity 合约会发现这笔交易,并给侧链上一个你的公钥(你所存入的 UTXO 的公钥)所控制的账户增加余额。取款的流程也由一个智能合约来控制,它会跟联盟沟通,联盟会签名由合约告知的主链取款交易。
No comments yet