科普 | 什么是 Drivechain?
摘要: 一种新的比特币侧链构想。
在理解 Drivechain 之前,我们先要转变绝大多数比特币用户已经习惯了的思维定势。理解 Drivechain 的关键不在于 “免信任” 或 “数学确定性”,而是博弈论和激励。(总的来说,比特币也是如此,但是人们往往会忽略这点,沉浸在数学带来的免信任假想中。)
本文将介绍 “算力托管(hashrate escrow)” 的基本原理(简单)和激励(复杂),以及它是如何实现主链(比特币)和多条侧链之间的双向锚定的。
“Drivechain” 的完整概念还涉及盲合并挖矿(blind merged mining)(即,侧链通过将区块哈希值发布至主链来实现自挖矿,无需矿工运行侧链挖矿软件),不过这个概念理解起来要容易得多,而且通过 BIP 301 机制或 Spacechains 机制就可以实现。
从比特币的角度来看,算力托管是如何运作的?
我们需要创建一个新的地址类型。凡是进入这类地址的代币都会被锁定,只有当所有矿工在 6 个月内就 取款交易(WT^
)达成共识时,才可以动用该地址上的代币。每条侧链在比特币区块链上都有这样一个地址。
为了收集矿工的一致意见,bitcoind
会追踪所有想要动用特殊地址上的代币的交易的 “分数”。每当一条侧链上新挖出一个区块,矿工就可以使用 coinbase 交易将一个 WT^
的分数增加 1,同时将其它所有 WT^
的分数减去 1;或者将所有 WT^
的分数减去 1;或者什么都不做。(译者注:此处的 “矿工” 指的是比特币主链的矿工。)
当某个交易的分数足够高时,这个交易就会被发布到链上,将资产从侧链转移到发起取款交易的用户那里。
在 6 个月内分数未能达到阈值的 WT^
会被丢弃。
上述流程有什么意义?
上述流程意味着,用户可以通过将代币存入特殊地址来将它们从主链转移到侧链,然后再通过特殊的取款交易取走侧链上的代币。
特殊交易可以通过某种方式冻结侧链上的代币,然后所有取款请求会被聚合到一个主链 WT^
内提交给主链矿工,以便主链矿工进行投票。过了几个月后,投票通过的WT^
会被发布到链上。
现在,最关键的部分是:WT^
的有效性并非由比特币主链规则验证,即,如果 Bob 已经请求从侧链提款到他在主链的地址,但是有人发布了一个错误的WT^
,将原本属于 Bob 的代币发送到了 Alice 在主网上的地址,主链是无法知晓的。WT^
是否有效仅仅取决于矿工的投票分数。矿工的职责是正确投票 —— 为此,他们可能想要运行侧链的 SPV(简单支付验证)节点,以便见证侧链区块链上存在对 WT^
交易的引用(然后验证其是否有效),或者通过其它方式进行验证。
什么?要等 6 个月才能拿回我的钱?
是,也不是。实际上,想要取回代币的用户可以使用原子交换(atomic swap)、潜水艇交换(submarine swap)或其它类似服务实现代币在侧链和主链之间的双向转移。较长的取款延迟期所造成的成本将由少数想从中获利的流动性提供者承担。
为什么要这么麻烦?
Drivechain 可以解决很多不同的问题:
催化有关比特币的实验和新用例
发行资产、完全隐私型交易、有状态的区块链合约、图灵完备、去中心化游戏、一些 DeFi 想法、预测市场、Futarchy、去中心化且有意义的人类可读域名、包含大量普通交易的巨型区块、专为闪电网络而优化的区块链等等……
这些想法或许具有很大价值,但是从来没有人 真正 尝试过它们,因为它们无法通过真正的比特币来实现或与之交互。这些想法只能退而求其次,要么依托于垃圾币,要么寻求 Liquid 或 RSK 之类的托管方案。或许正是因为这个原因,它们才没能形成网络效应。
解决冲突和内部分歧
有的人希望在 UTXO 模式下实现完全隐私型交易,有的人却想要将自己的名字和声誉与“账户”绑定;有的人想要简单的多签方案,有的人偏好需要读取大堆变量的复杂代码;有的人想要每隔 10 分钟将交易成批上链,有的人想要将资金锁定在通道内实现链下即时交易;有的人想要使用代币,有的人只想持有代币;有的人想要使用区块链技术来解决世界上的所有问题,有的人只想使用区块链技术来重塑货币。
基于 Drivechain 的侧链解决方案可以消除人们之间的分歧,皆大欢喜。与此同时,哪怕再不情愿,人们也会使用同一种货币,为彼此的生态作出贡献。另外,人们还可以自由转换阵营,减少认知失调。
解决扩容问题
很多链(如上文提到的那些)都为了提高比特币的吞吐量而使出浑身解数。我们有可能会看到特殊的闪电网络链,哪怕是由巨型区块组成的普通链或 mimblewimble 链等等也可以做到这点。甚至还有一些笨办法,例如,运行 200 条类似比特币且不具备其它功能的独立区块链(你可以称之为 “分片”),这样就可以将比特币的当前吞吐量提高 200 倍。
解决区块链的安全预算问题
安全预算计算起来很简单:先思考一下如果没有区块补贴,你认为每个区块的合理安全预算应该是多少,然后将它除以一个区块可以容纳的字节数量,就可以算出每个字节的价格是多少 satoshi 。如果预估合理,每笔比特币交易都需要用户支付大量 satoshi,如此高昂的成本不仅使其不适合日常交易,也让开启和关闭闪电通道变得不切实际。
因此,如果没有像 Drivechain 这样的解决方案,你就只剩下一个选择:让 Liquid 和 RSK 之类的可信服务提供商或托管型闪电网络钱包代表你使用比特币。但是,有了 Drivechain,侧链上就有可能发生数千笔交易,并全部打包进一个侧链区块中,然后支付很高的费用(通过盲合并挖矿)发布到主链上。比特币的安全性就有了保障。
维持比特币的去中心化
一旦我们将普通交易都交由侧链处理,主链就只是侧链资产进出的 “枢纽”,然后我们就可以将主链的区块大小上限降到很小的值(比如 100 KB),大幅降低全节点的运行难度。
矿工可以偷窃吗?
可以。如果一群矿工串谋起来掌握绝大多数算力并保持 6 个月,就可以发布一个 WT^
取走侧链上的所有钱,然后转到自己账上。
矿工会偷窃吗?
不会,因为不值得。
虽然乍看之下矿工可以通过偷窃白赚一大笔钱,但是会带来很多成本:
-
停止盲合并挖矿所造成的收益损失 —— 偷窃会毁掉侧链,因此矿工有望在未来几年赚取的所有交易费都没了。 -
与社区正义为敌的成本 —— 一旦参与偷窃,矿工将遭到社区的强烈抵制,这是不容忽视的。如果作恶的矿工是有公开身份的实体,就有可能遭受人身伤害、死亡威胁或是国家司法系统的制裁。 -
串谋成本 —— 假设矿工就是普通业务员,他们只想做自己的工作并获得报酬,但是偷窃需要与其他矿工协作,这种不道德行为存在很多隐患,而且在长达数个月的时间里很容易闹掰。 -
矿工流失成本 —— 我们口中的 “矿工” 实际上指的是矿池运营者,因此他们在开始偷窃之前必须考虑矿工迁移到别的矿池的风险。 -
比特币价格下跌的成本 —— 一旦偷窃成功,就意味着 Drivechain 是不安全的,比特币的可用性随之下降,矿工信誉也会受损,这有可能导致比特币价格下跌,影响矿工的业务和收益。 -
与社区正义为敌带来的另一个影响是,如果矿工为了一己私利试图偷窃,即使最后失败了,也会加深社区对矿工在比特币生态中权力过大的担忧,最终可能会导致社区同意通过硬分叉来改变挖矿算法,或在挖矿过程中引入更多实体(例如,开发新的 ASIC 矿机),这有可能降低当前矿工的利润。
如果矿工偷窃,我们该怎么办?
WT^
作废。这样一来,其它节点不会接受包含该 WT^
的区块,打包该区块的矿工就会被分叉出去。为什么选择 Drivechain,而非其它成熟的免信任型侧链技术?
不,我指的是免信任的双向锚定,由比特币协议验证提款是否正确!
Blockstream 侧链白皮书怎么样?
算力托管难道不是一种复杂的软分叉吗?
为什么我们预期矿工会积极参与投票机制?
如果读完这篇文章后我还是不喜欢 Drivechain 怎么办?
原文链接:
https://fiatjaf.com/drivechain.html
作者: fiatjaf
评论(0)
Oh! no
您是否确认要删除该条评论吗?