2021-07-13 13:41 | 出处: 洋168998233
在本文中,我们介绍了一种叫作虚拟通道(virtual channel)的新型状态通道结构。虚拟通道不仅使得付费文件流(点击此处,查看 demo!)等新型应用场景成为可能,还可以简化去中心化的 Graph 查询支付、Filecoin 内容检索、带有经济激励机制的状态提供者网络等有趣的应用场景。
动机
让我们来设计一个免信任的付费文件流支付系统。这个系统中有 seeder(上传文件者)和 leecher(下载文件者)。leecher 从多个 seeder 那里付费下载一份文件的不同部分。使用以太坊主网交易来支付费用是不可能的,因为以太坊主网的吞吐量低于每秒 50 笔交易,而且(截至 5月 28 日发稿时)最低转账成本也在 2 美元以上。Optimistic Rollup 和 ZK Rollup 可以提高吞吐量并降低交易成本。StarkEx 的 ZK Rollup 可以将吞吐量提高至每秒 3000 笔交易,同时将每笔交易的成本降至 0.03 美元。假设 leecher 愿意支付 1 美元下载1GB 大小的文件,且整个文件以 256 KB 为单位切分成了多个部分,leecher 需要支付大约 5000 笔费用。当网速为 20MB/s 时,用户每秒支付 80 次费用,且每笔费用为 0.0002 美元。Rollup 的吞吐量达不到许多 leacher 的要求,而且交易成本还是太高了。
为了达到交易吞吐量和成本要求,基础状态通道是个不错的选择。状态通道创建完成后,leecher 就可以免费进行多笔小额付款,且吞吐量只受 leecher 和 seeder 之间通信信道的带宽以及二者所使用硬件的影响。基础状态通道带来的挑战是,leecher 需要提交交易到主网上,与每位拥有他所需文件部分的 seeder 都建立状态通道。由于 leecher 与多位 seeder 都需要短暂交互,创建多条状态通道的成本是极其昂贵的。
虚拟通道可以完美解决我们的设计问题。虚拟通道尤其适用于轴辐式拓扑结构。多位参与者先与一个免信任的中间方建立连接,然后任意两位(或多位)参与者再通过质押的方式创建私密通道。中间方并不知道私密通道内运行的是什么应用。另外,任何参与者都可以发起链上挑战找回自己的资金,即使通道内的其他参与者和中间方处于离线状态或作恶。
1
通过虚拟通道连接各方
总的来说,只要 Alice和Bob之间有经过中间方的路径,无论网络拓扑结构是什么样的,虚拟通道都可以让 Alice 开设与 Bob之间的私密通道。
背景知识
不同的区块链生态系统都将状态通道视为一种可以让少数参与者:
建立链上联系(通道)并存入资金;
私下交换信息,有条件地在参与者之间转移资金;
关闭链上通道,完成各方之间资金结算的方法。
我们之前已经在 statechannels.org 网站上发文介绍了如何构建状态通道(中文译本),以及如何通过一个叫作账本通道(ledger channel)的架构让一条状态通道为另一条状态通道提供资金。这些架构要求通道参与者必须在链上建立直接联系。换言之,如果 Alice和 Bob 之前从未交互过,现在却想开通状态通道,他们必须签署(链下)协议,并将资金存入合约内。