通用支付通道适用于其它在Layer1上的资产和DApps,这种可组合性让我们可以创造出一些有趣的使用范例,例如将稳定币进行通道化。
原文标题:《一种通用的支付通道结构及其可组合性》撰文:谢晗剑,Nervos首席架构师,秘猿科技首席执行官,前以太坊核心研发团队成员翻译:史迪仔,Williams
通道网络可能是Layer2舞台上最耀眼的角色。一个广泛部署的通道网络可以最大化交易吞吐量,可以最小化交易处理延迟,可以增强交易的隐私性,甚至可以为区块链提供一定的互操作性。简而言之,如果运用得当,通道网络将会是解决问题的灵丹妙药。
不同于基于零知识证明的协议或者其他Layer2链,通道网络的基本思想非常简单:使用直接连接双方的网络进行链下的交易互换,并确保这些交易在区块链上都是可执行的,然后通过这种点对点的连接共同组合成一个网络,在这个网络中的任意两个点之间都有一条或者多条路径连接着它们。尽管通道网络自身也存在一些问题,比如流动性效率和路径问题,但这些问题都是可以解决的,或者说是有近似的最优解的。
相比于Layer1,Layer2协议在部署之后相对是比较容易升级的,因此实现通道网络的最佳方案就是先启动它然后再逐步发展改进它。闪电网络就是一个这样的典型案例。本文将介绍一种简单的、可组合性强的基于CKB网络的通用支付通道结构,希望能够引起更多的研究和关注,引发更多关于通道网络的讨论,促进CKB上通道网络的建设和发展。
介绍
支付通道网络是一个去中心化的支付网络,用来支持全球支付。通道网络的设计主要包含两个方面,第一:通道协议,它规定了两个用户在一个直接相连的通道内的链下信息传递、链上合约和链上链下交互;第二:网络协议,它规定了如何将多个直接相连的通道组合成一个较长的通道,如何在两个用户之间找到一条路径等等。本文主要讨论一种在CKB上的通用支付通道结构。它是通用的,因为它基本适用于CKB上的任意一种资产。
通道结构最主要的问题在于,如何确保只有最新的通道状态才会在链上被认为是有效的。闪电网络使用的Poon-Dryja结构是基于撤销惩罚实现的,这给双方带来了复杂的密钥管理和状态管理,进而增加了正确实现协议的难度和节点操作的风险。Decker-Wattenhofer结构提供了一种基于时间戳的状态更新机制,缺点是只允许有限数量的状态更新,这意味着Layer1和用户都需要付出更高的成本,因为通道必须定时关闭和开启。Decker-Russell-Osuntokun结构的eltoo是一个优雅的基于版本的解决方案,但是它需要在比特币中引入一个新的操作码SIGHASH_NOINPUT。以太坊提供一个有状态的图灵完备的智能合约模型,这使得构造基于版本的解决方案更加容易,如Sprites,ForceMove以及Perun。
3AC创始人被命令于5月22日在英属维尔京群岛出庭:金色财经报道,三箭资本创始人Kyle Davies和Zhu Su已被命令于5月22日在英属维尔京群岛出庭,作为去年倒闭的加密货币对冲基金的清算程序的一部分。如果3AC的创始人没有对该命令作出答复,他们将被认定为藐视法庭。Kyle Davies和Zhu Su还被要求在4月14日前向清算人提供与公司破产有关的所有文件。[2023/3/29 13:33:15]
译者注,ReplacebyVersion缩写RbV,每个状态有一个表示状态版本的单调递增的计数器。在发生争议时,经过授权的具有最高版本的状态被认定为最新状态,如果另一个新的状态具有较大的版本号,那么它将替换先前的状态。
结构
这里描述的通用支付通道结构主要是指一个基于CKB的eltoo端口。然而,我们将看到这样一个几乎相同的想法在CKB上不仅更容易实现,而且还展现出比特币/以太坊的支付通道方案中不存在的可组合性等优点,只是在设计上稍微有一点点谨慎。通道的可组合性是指通道结构可以适用于其他在Layer1上的资产和dapps。通过通道的可组合性,我们可以为所有的Layer1的资产构建一个通用的支付通道网络。
通用支付通道结构由一个通用支付通道lock和三种不同类型的交易组成。
通用支付通道lock
GPClock是通用支付通道的关键组成部分,它是通道内的cells使用的lockscript。它有5个参数:
state:锁状态,一个OPEN和CLOSINGtimeout:关闭周期长度pubkey_a:Alice的公钥pubkey_b:Bob的公钥nonce:一个单调递增的无符号整数一个通用支付通道可以被建模为一个简单的有限状态机,包含了三种状态:OPEN,CLOSING和SETTLED。OPEN是初始状态,OPEN和CLOSING分别用GPClock的OPEN和CLOSING状态进行表示,而没有GPClock就表示为SETTLED。
NFT市场Formfunction宣布将于3月29日关闭,一年前曾完成470美元融资:据官方博客,Solana生态NFT市场Formfunction宣布将于3月29日关闭,用户仍然拥有NFT的完全所有权。Formfunction称:“经过多方讨论和慎重考虑,我们得出的结论是不能继续运行Formfunction。我们将继续维护 Formfunction 直到3月29日。该日期之后,用户将无法再访问我们的网站。”
据悉,Formfunction于2022年2月推出,并在次月宣布完成470万美元种子轮融资,Variant Fund领投,OpenSea Ventures、Solana Ventures、Pear VC、Canonical Crypto和Palm Tree Crew Crypto等参投。[2023/3/16 13:07:17]
当GPClock被解锁时,状态将会发生转变。当GPClock的状态为OPEN时,它可以在两种情况下被解锁:双向关闭和单向关闭。
交易类型
出资交易——一笔出资交易就是打开了一个新的通用支付通道。它有一个fundingoutput,该output的lock就是一个状态为OPEN的GPClock。
关闭交易——一笔关闭交易会消费fundingoutput或者另一笔关闭交易中的output。它会有一个closingoutput,该output的lock就是一个状态为CLOSING的GPClock。它总是会有一笔匹配的结算交易。
关闭交易的独特之处在于它们并不会固定于一个先前的outpoint。当一笔关闭交易被签名时,它的输入被排除在哈希过程之外,因此签名只会包括outputs。这个特殊的哈希过程被称为无输入哈希。例如,当用户想要签署一笔关闭交易时,他/她会序列化输出并对其进行哈希,然后在哈希结果上进行签名。这样在结束交易中的输入不会影响签名交换。正因为一笔关闭交易可以附加到一笔出资交易或者另一笔关闭交易,并且可以在关闭交易签名之后的一段时间后再确认连接。这样的操作可以在CKB上直接实现,无需添加新的操作码,因为一笔CKB交易的哈希和签名是完全可定制的。
PoS联盟发布关于流动性质押法律方面的白皮书:2月22日消息,非营利行业联盟PoS联盟(POSA)发布了两份白皮书,研究存款代币在美国证券和税法中的地位。这些文件是由10多个行业组织的代表撰写的。根据附带的声明,这些文件旨在为“有意义的立法编纂或阐明提供一个框架”。它们还旨在为自我监管标准提供基础。
POSA在“流动性抵押的美国联邦所得税分析”中指出,根据一般原则,流动性抵押应该遵守资本利得税规则。白皮书写道:“票据代币在数字世界中证明无形商品的所有权,与仓库收据、提单、码头担保和其他所有权证明文件在物理世界中证明有形商品的所有权基本上相同。根据资本利得税,只有在出售或其他处置加密资产以换取在种类或程度上存在重大差异的财产时,流动性质押活动才会成为应税事件,这通常被称为资产的变现。”这一推理得到了一个论点的支持,即流动质押协议(智能合约)不应被视为一个独立的实体,因为它缺乏分享利润的第二方。它总结道:“如果流动质押没有如上所述的应税事件,那么流动质押必须努力应对其继续拥有所涉加密资产的税收问题。”(Cointelegraph)[2023/2/22 12:21:15]
GPClock情况1,它要求关闭交易的output0必须与其input0一致,除了它们lock中的nonce和state,这意味着它的input0只能连接到先前的使用类似GPClock的output作为它自己的output0。
结算交易——结算交易消费了一个closingoutput并关闭了一个通用支付通道。它有两个输出,分别将资金给到Alice和Bob。它总是会有一笔匹配的关闭交易。
示例流程
这里我会给出一个交互流程的示例。它只是一个用于解释的草拟协议,而不是一个包含确切步骤的真正的协议。草拟和真正协议的关键区别在于在每次状态转换上是如何达成一致的。考虑到并发性和公平交换等问题,两方协议的问题要比听起来复杂的多。当然也是存在解决方案的,但是它已经超出了本文的范畴,并且和通用支付通道结构毫不相关。我只是假设在必要时会使用这样一种合适的安全协议,例如在交换签名的时候。
NFT项目Cool Cats推出“Cool Score”评分和奖励系统:金色财经报道,NFT 项目 Cool Cats 在社交媒体宣布推出名为“Cool Score”的评分和奖励系统,旨在奖励 Cool Cats 社区的忠诚和活跃成员。Cool Score 评分和奖励系统添加了游戏化机制,这些机制将控制未来藏品投放、IRL 活动、VIP 福利机会和其他产品的访问权限。Cool Cats 表示,评分参考标准包括:持有 Cool Cats NFT 时长、酷宠是否完全进化、在 Cooltopia 中囤积的物品类型、社区参与度等,目前 Cool Cats 持有者已经可以将钱包连接到网站来访问和查看自己的 Cool Score 分数。另据 NFTGo.io 数据显示,当前 Cool Cats NFT 地板价已升至 2.24 ETH,过去 24 小时上涨 12%。[2023/2/2 11:42:40]
后续涉及具体流程,包括:开启通道、发送交易、关闭通道等操作,建议前往译文或者原文,以获得更佳的阅读体验。
基本原理
在出资交易被签名之前,任何一方如果不想再继续,都可以在没有任何损失的情况下停止。如果出资交易已经被签名,但是通道的最初开启人还没有广播它,则另一方依旧总是可以发送另一笔交易,消费和等待被广播的出资交易相同的输入,从而使之无效。
一旦出资交易上链并且通道已经打开,通道的任何一方都可以发起单向关闭,如「关闭通道:糟糕的」中所述,由他/她自己关闭所有通道,如果对手发起单向关闭,一方可以等待关闭超时或更新GPClock,前提是他/她需要有一个nonce值更大的余额状态。关闭期为任何一方提供了一个可以提交其最新状态的窗口,在结束时通道将以nonce值最大的状态进行结算。
可组合性
通用支付通道结构可以适用于任意一种CKB上发行的token,无论它是原生的CKByte还是UDT。此结构只涉及cell的lock,cell的data和type字段将留给智能合约开发者们去进行处理。这个小小的接口使得它可以兼容任何只使用了data和type字段的合约。sUDT就是这样的一种合约,未来的UDT标准也将是如此。一个UDT的开发者将不需要再去考量如何将UDTs通道化,因为它随时都可以在不需要做任何改动的情况下被通道化。这代表UDTs生来就是可通道化的,并且通道化和扩容UDTs的开发成本是「0」。所以UDTs不只是Layer1上的一等公民,也是Layer2上的一等公民,因为它可以在不做任何改动的情况下就在Layer1和Layer2之间自由的流入流出。这也给予了支付通道网络最大的流动性,因为所有Layer1上的资产都可以在无摩擦的情况下加入Layer2的池子中。
Filecoin发布2022年Q3季度状态报告,协议收入在2022年第三季度增长9%:10月21日消息,Filecoin 发布2022年三季度状态报告,Filecoin 网络上的活跃存储在2022年第三季度保持了增长,与上一季度相比环比增长82%。存储容量在2022年第三季度保持新高,而存储利用率在过去一年增速比存储容量增速快6倍。协议收入在2022年第三季度增长9%(以FIL计价),而以美元计价则下降43%。由于奖励的降低,存储提供者的总收入在22年第三季度降低4%(以FIL计价),而以美元计价则降低了50%。在2022年第三季度,Filecoin上搭建的总项目数量增加了12%,标志着生态的健康发展。[2022/10/21 16:34:40]
这和比特币和以太坊上面的支付通道完全不同。比特币上的支付通道只有比特币可以运作,因为比特币是唯一的资产,并且这个区块链的能力是有限的。至于以太坊上虽然有非常多种的资产,但是它的ERC20代币和通道的可组合性却是受限的。支付通道必须要和token通过预先已经定义好的接口进行交互,但这些接口对于不同的token而言可能是不同的。举例来说,Celer才刚以硬编码的方式支持ETH和ERC20代币并且需要依赖它的approve/transferFrom的机制。即使ERCtoken遵循同一个标准接口来实现通道化,可能仍然是不安全的,因为接口的语意可能是不一样的,近期的UniswapERC777事件已经说明了这一问题。相反的,CKB上的GPClock,根本不需要去管UDT具体是如何实现的。
通用支付通道结构也能够在anyone-can-pay的lock中运行,也就是说当关闭交易的时候可以用任意的lock作为输出。通用支付通道和UDTs的可组合性,对于用户而言是更便于使用的。例如,他们在打开通道前不需要用「Approve」方法来进行授权。他们的资金可以像往常一样安全地放在自己的钱包里面,在任何需要的时候通过单笔签名交易将资金发送到通道中即可。
这个结构的可组合性让我们可以在CKB上创造出一些有趣的使用范例,例如将稳定币进行通道化。不论你是算法稳定币还是基于信任的稳定币,它从第一天起就是支付通道网络上的一等公民。稳定币的支付通道网络可以带给用户超越Visa,Paypal以及支付宝的顺滑体验,因为它是快速的,可扩展,无需许可的并且有未来的——我说的是基于APIs和IoT的流支付!
双方共同出资
以太坊上的支付/状态通道当通道被打开时也面临了原子性的问题,因为以太坊上的交易只有一个发送方,但通道的资金却可能是来自双方的。为了允许双方共同出资,以太坊的通道可以使用两个独立的出资交易,这也会给交易的对手方带来风险,因为一方可以在另一方已经承诺出资之后终止通道,或通过使用更多的链上交易来模拟原子双方共同出资,从而增加未来打开新通道的成本,同时这又会取决于ERC20特定的接口。CKB上的通用支付通道的出资交易可以拥有多个输入,自然地就可以支持双方共同出资。
有状态的锁定模式
通用支付通道的结构只依赖于lockscript。lockscript是有状态的,它模拟了一个简单的状态机,然后在lockscript中使用args来维持内部的状态。当需要一个适度复杂的状态lock时,也可以在其他地方应用这个模式。
对于具备更复杂的状态机的lock,有两种替代方案可以考虑。第一种是将data变成是一个在lockscript和typescript之间可以共享的字段,这需要预先定义好数据格式,以便每个脚本可以读/写自己的数据,而不与其他脚本发生干扰。第二种方式是使用一个单独的cell来维持lock的状态,并且将锁定的cell和锁定状态的cell一起转换。这两种方案是最明显的,但绝对还有其他可能的模式。
未来工作展望
通用支付通道是一个简单的结构,灵感源自eltoo,然而它不仅在CKB上更容易实现,而且还免费获得了额外的优异性质,如上所述。cells的「状态对象」的本质天然适合通道网络和Layer2,我希望关于通道网络的研究可以吸引到的来自社区的关注。这里还有一些有趣的问题:
状态通道——状态通道是支付通道的一种泛化,用于支持智能合约的链下执行。GPClock不包含支付的特定结构,这会是状态通道建设的一个良好的开端。
通道网络——如何连接通用支付通道,进而任何人都可以通过一些中间节点就可以直接或者间接地向通道网络中的任何一个人进行支付?我们是像闪电网络一样使用HTLC还是有什么更好的解决方案?
瞭望塔——如何通过一种无需信任的方式将纠纷委托给第三方?这样通道的参与者就可以离线去度假了
路径——如何找到通道网络中两个点之间的最佳路径?考虑到通道的开启/关闭和通道容量的变化,整个网络处于不断变化的状态中,而节点对于整个拓扑网络仅拥有部分信息。「最佳」的定义也因人而异。由于这些限制,开发几种不同的路径策略并将选择权留给用户可能会更加合理。这一领域有很多有趣的论文。
多部分支付——一次支付的金额越大,就越难找到一条有足够容量的路径来传递它。多部分支付的概念是将大额支付拆分成数笔小额支付,并通过不同的路径将它们发送到同一个目的地,并确保小额支付们被全部接受或者全部拒绝。
引用资料
https://lightning.network/lightning-network-paper.pdf
https://tik-old.ee.ethz.ch/file/716b955c130e6c703fac336ea17b1670/duplex-micropayment-channels.pdf
https://blockstream.com/eltoo.pdf
https://pdfs.semanticscholar.org/4d5b/9fb1c4205b61060117e3c71b04464c2a1c77.pdf
https://arxiv.org/pdf/1702.05812.pdf
https://magmo.com/force-move-games.pdf
https://eprint.iacr.org/2017/635.pdf
https://docs.nervos.org/technical-concepts/architecture.html#lock-script
https://github.com/bitcoin/bips/blob/master/bip-0118.mediawiki
https://pdfs.semanticscholar.org/208b/22c7a094ada20736593afcc8c759c7d1b79c.pdf
https://talk.nervos.org/t/rfc-simple-udt-draft-spec/4333
https://github.com/celer-network/cChannel-eth/blob/master/contracts/lib/ledgerlib/LedgerOperation.sol#L87-L114
https://defirate.com/imbtc-uniswap-hack/
https://talk.nervos.org/t/rfc-anyone-can-pay-lock/4438/6
https://github.com/celer-network/cChannel-eth/blob/master/contracts/lib/ledgerlib/LedgerOperation.sol#L87-L114
来源链接:talk.nervos.org
以太坊
以太坊
开放的分布式区块链应用平台,通过其专属加密货币Ether以太币提供去中心化的虚拟机,处理点对点合约。允许任何人建立和使用通过区块链技术运行的去中心化应用,没有任何欺诈、审查、第三方监管。以太坊的概念首次在2013至2014年由维塔利克·布特林VitalikButerin受比特币启发后提出,旨在共同构建一个更全球化、更自由、更可靠的互联网。以太坊EthereumETHERCERCERC20ERC721ERC以太坊查看更多Nervos
产品1、PC端,提币主网切换优化,修复挂单延迟;登录报错修复成功;悉尼海外节点服务器进行维护升级,上线项目币种测试;尼日利亚海外节点服务器进行维护升级,上线项目币种测试.
1900/1/1 0:00:00上周我从美国的西北角西雅图飞到了东北角波士顿,在那里待了几天,为了参加USENIX的旗舰学术会议NSDI2019.
1900/1/1 0:00:00GlobalCoinResearch每周发布两次亚洲区块链市场新闻Newsletter,该公司是一家专注于亚洲区块链市场及技术的投研公司.
1900/1/1 0:00:00星标关注加财运★不断学习加能力1.中本聪在设计BTC的时候设定的规则,BTC一共有2100万枚,矿工们最初出一个块可获得50个比特币奖励,21万个Block块左右后,出块奖励就会进行减半.
1900/1/1 0:00:00从比特币的白皮书诞生开始,密码朋克们就给我们描绘了另一种世界可能性的世界可能性场景,而WEB3更是将未来世界在系统层面上做了完整假设.
1900/1/1 0:00:00在关注了DeFi的发展之后,NFT的增长也引起了人们的关注。但是,这两个类别之间的联系可能远比一些人意识到的要更紧密。NFT发展的真正先驱是基于ERC-20标准构建的加密朋克.
1900/1/1 0:00:00