作者:扎克-赫斯, Zack Hess https://github.com/zack-bitcoin/amoveo-docs/blob/master/basics/connecting_blockchains.md
对于构建使用多个区块链的应用程序,有3种流行的策略。
区块链A是区块链B的依赖关系。在这种情况下,B的每个全节点也需要运行A的全节点。
区块链A的轻量级节点是区块链B的依赖,在这种情况下,B的每个全节点也需要运行A的轻量级节点。
跨链原子交换和hashhlocking和通道。在这种情况下,两个区块链都在执行同一个确定性合约,这在两个区块链上会有相同的结果。这种情况下,区块链之间的关系与Amoveo中通道之间的关系相同。所以任何支持这种关系的区块链都可能以同样的方式与Amoveo合约互动。
(如果你想和比特币合作,(1)是最好的,因为比特币的轻型节点对(2)来说还不够好。
(如果你想让你的区块链使用另一个区块链的预言机(oracle),或者你想知道另一个区块链的具体状态,比如当前的挖矿难度,(2)是最好的。
(3)如果你想转移资金或合成资产,或者你想参与市场,那是最好的。
为什么比特币的轻型节点不够好?
2在Amoveo中非常好用,因为Amoveo的轻节点非常轻,比特币的轻节点真的很差,因为生成一个账户的余额证明需要很长时间。比特币的UTXO根本没有为轻节点优化。为了证明一个地址的余额,全节点必须重新扫描每个区块的每一笔交易,这需要几个小时。如果验证B的一个区块需要重新扫描区块链A,那么验证一个区块就需要几个小时。也许在几个小时的工作结束后,你会发现这个区块是无效的。如果矿工们浪费了几个小时,只是为了知道下一步要挖哪个区块,这是一个致命的问题。所以策略(2)现在在比特币上行不通。
Cosmos是一个很酷的项目,当他们想把比特币连接到区块链A时,他们从比特币到C做一个1型连接,然后从A到C做2型连接。https://cosmos.network/