title: SOAP 项目 description: Quai 如何通过补贴式公开市场收购协议(SOAP)将合并挖矿转化为代币回购
比特币矿工把他们的硬件指向一条链,在同一条链上竞争求解区块并获得奖励。但如果你能把同样的硬件同时指向多条链,并从两边都赚到奖励呢?这正是合并挖矿(merge-mining)的核心洞察:一种让矿工在不拆分算力的情况下,同时为两条或多条区块链工作并获得奖励的技术。 最著名的例子是 Namecoin,它从 2011 年开始与比特币进行合并挖矿。这个想法很优雅:当你挖比特币时,在比特币区块的 coinbase 交易里包含对一个 Namecoin 区块的引用。如果你的比特币区块有效,你也可以同时领取 Namecoin 的区块奖励。你只做了一次工作量证明计算,却在两条链上都获得记账信用。 之后 Litecoin 和 Dogecoin 实现了一个更复杂的版本,DOGE 矿工可以同时挖 LTC。这创造了一种共生关系:Dogecoin 通过 Litecoin 的算力获得安全性,而 Litecoin 矿工则从 DOGE 奖励中获得额外收入。 但激发 SOAP 的机会在于:在传统合并挖矿中,矿工会把父链(例如 Bitcoin Cash)和子链(例如 Namecoin)的区块奖励直接收进自己的钱包。这意味着子链实际上是在为安全性付钱给矿工,但这些矿工往往会立刻卖出子链代币,从而持续制造卖压。 如果我们能把这股资金流导向对协议的永久性支持呢?SOAP 补贴模型
SOAP 将合并挖矿转化为一种协议补贴机制。矿工不再直接收到父链的区块奖励;相反,SOAP 会把父链 coinbase 输出的 100% 路由到一个由协议控制的地址。该地址随后在市场上把父链代币兑换成 QUAI,并将买到的 QUAI 要么销毁(burn),要么投入时间锁定的质押奖励中。 可以这样理解:当你启用 SOAP 挖 QUAI 时,你照常获得 QUAI 区块奖励,SOAP 并不会改变这一点。SOAP 额外提供的是:通过 workshares/blocks 引入其他链(BCH、LTC、DOGE、RVN)的算力,为协议提供补贴。参与 SOAP 的经济逻辑很直观:你在挖 QUAI、并以 QUAI 计价获得报酬,但你的父链区块补贴会进入协议。

技术结构:AuxPoW
Quai 如何验证一个父链区块确实支付到了协议地址并包含所需承诺?答案是通过 AuxPoW(辅助工作量证明,auxiliary proof-of-work)结构。 AuxPoW 是一种 SPV 风格的证明,包含: * 父链的 80 字节区块头(KawPow 为 120 字节) * 该区块的 coinbase 交易 * 证明 coinbase 被包含在区块中的 Merkle 分支 * 标识父链来源的元数据(BCH、LTC、DOGE、KawPow 等) 当 Quai 节点收到一个包含 AuxPoW 结构的区块时,它会执行若干检查: * Merkle 验证: coinbase 交易是否确实出现在父链区块的 Merkle root 中? * 承诺检查: coinbase 的 scriptSig 是否包含一个 SOAP push(具体为魔法字节 “SOAP” 的 0x01 后接 Quai WorkObject 的 32 字节哈希)? * 支付检查: coinbase 的第一个输出是否把 100% 补贴加上手续费支付给协议指定地址(QADDR)? * (可选)PoW 验证: 父链区块头是否满足该链的难度目标? SOAP 承诺被放在 coinbase 的 scriptSig 中,紧接在 BIP34 高度 push 之后。这个位置至关重要:scriptSig 是矿工构造 coinbase 交易时的一部分,并且在所有 SOAP 父链上都通用,无需特殊的 OP_RETURN 处理,也不必担心不同链的策略差异。 承诺格式极简: * PUSHDATA(BIP34_height) * PUSHDATA(“SOAP” 0x01 || 32-byte WO_HASH) * PUSHDATA(extranonce1) * PUSHDATA(extranonce2) 矿工像往常一样变化 extranonce2,矿池提供 extranonce1,而 SOAP push 由矿池的 job 模板固定。这意味着标准 Stratum v1 挖矿无需固件改动即可兼容。矿池指定接收 workshare 奖励的 QUAI 支付地址。父链 coinbase 的构造(包括 QADDR 支付与 SOAP 承诺)则由 Quai 节点本身处理。
