你的理解是正确的。ckb希望实现的是矿工可以直接接受UDT做手续费,没有中间转换。
UDT fee实际上是以下三个设计的“副作用”:
- 交易结构中没有硬编码原生token作为手续费支付方式 - 不像ethereum在交易中hardcode gasprice代表了手续费币种,ckb交易类似bitcoin,以inputs/outputs之差来表达手续费。
- 支持多种资产 - bitcoin虽然没有在交易中硬编码支付方式,但是无法支持多种资产。ckb支持UDT,inputs/outputs如果是UDT的话,miner可以用同样的方式收取udt作为手续费。
- 不以手续费作为内在价值的token economics - 如果原生token的价值来自于可以作为手续费使用,那么UDT fee的出现会削弱原生token的价值,进而削弱系统安全性。ckb token economics不存在这个问题。
在这样的情况下,支持什么样的UDT作为手续费,是由miner和user共同决定的。user可以选择任何一种UDT作为tx fee,miner可以选择接受什么样的UDT fee,以及费率高低。UDT fee的出现会将手续费市场彻底的市场化。
上面是必要非充分条件。要实现UDT fee,还有一些工程细节需要考虑,例如:UDT fee放在哪个cell里面?
ckb token economics的一个目标是确保开发者可以租用的方式在合理的成本下获取需要的资源。我认为这是唯一可行的路。
ckb是由全球共识维护的状态空间,天然是一种成本非常高的存储,这是由全球共识决定的,不是上层经济机制设计可以改变的。global consensus的效率决定了这个共识空间的供给,上层的经济机制优化资源的分配,并不能凭空创造新的资源。如果我们能认同这一点,就会发现任何承诺让所有开发者低成本的获得足够链上资源的设计都是不靠谱的。
对于想要从事某种商业活动的人来说,买地盖楼是一种方式,租个店面也是一种方式。对于在ckb上面做开发的开发者来说也一样。有一种可能是在ckb早期capacity成本较低,开发者更多的购买而不是租用,随着ckb的发展capacity成本升高,开发者逐渐倾向于租用而不是购买。
in short,我认为在任何一个全球共识维护的区块链上,链上资源成本随着系统发展越来越高是不可避免的。在这一点上ckb和bitcoin/ethereum没有区别。尽管如此与ERC20相比,ckb上first-class asset的设计会大大降低开发者成本,因为此时开发者只需要负担asset definition的成本,asset ownership是可以存放在用户自己的capacity里面的。
非常认同Jan的想法
- 个人非常希望可以出现UDT fee的出现,CKB本身的价值并不是源自于作为整个系统的 gas,所以UDT fee的产生其实赋予了Nervos整个体系中所有UDT一个基本属性——可以作为整个系统的tx fee。
- UDT fee的产生将会使得手续费市场彻底市场化。高潜力高流通性的value token可能可以以低于原生token的价格去支付手续费,而那些common token则可能需要支付更高的价格才会被miner打包接受。手续费的完全市场化也可能会带动很大一部分UDT的流通性。
这可能是一个非常值得考虑的问题
个人倾向于UDT fee的cell由矿工提供(可能有三种提供方式:1. 矿工自己存ckb来提供UDT fee 的cell,2. 块中其他交易贡献的手续费中包含的ckb,3. 出块奖励中的ckb,不太清楚这三种方式各自在工程上实现的难易程度),只有这样才算是实现正真的UDT fee。
我有一个疑问:
假设基础发行的时候是10亿CKB 也就是1GB的总存储量。
如果Nervos生态发展很好(比如摩尔定律一样快速发展)。
导致状态储存状态存储受限制并且成为了稀缺资源,这个时候我们需要二次发行。如果二次增发少了,可能解决不了问题,过不了太久,又必须的再次进行增发。如果二次增发太多,对目前已经有进行大量数据存储的用户来说,这是非常难以接受的,成本太高。
如何才能做到平衡?对已经使用Nervos储存数据的用户不造成难以承受膨胀亏损,如果膨胀成本太高,对用户来说吸引力就会下降(毕竟成本过高),高企的通胀成本会导致用户离开,也会阻碍感兴趣的用户加入。
再问个问题:
如何根据时间维度来动态计算全网 用于存储状态的比例。因为全网的储存大小一直是变化的,每次出了新节点后全网储存状态的大小就会产生变化
对流动性进行征收 租金 ,会抑制交易所的流动性。就只有很少部分会流向交易所。对CKB的价格和交易流动性影响会比较大
提供一个Nervos市场部经理Ryan的解释:
CKB总量等于当前世界状态的总量,当前世界状态的总量=代币种类*每个代币所代表的状态空间大小。注意用词,是世界状态,而不是区块大小、区块链大小,这里面都是有区别的。当前世界状态就是说,现在这个 CKB 中所有人的 token 余额是多少,有多少合约,每个合约占多大的空间,有多少字节的文字、图片被保存等等。
每个新节点的加入都需要同步当前的世界状态,就是当前状态下所有的UTXO,而暂时不需要去下载之前的交易记录和过去的历史状态数据。可能和你所说的全网存储状态不是一个概念。
我觉得这个问题我们已经解决了。我之前和你说的一个场景是,Miner 只接收 CKB 的场景。所以 A 用户用 UDT 和 B 用户换 CKB(这是一个 atom swap 完成的),然后将这一部分 CKB 给矿工支付手续费。在用户体验上面可以做到不需要持有 CKB 来做手续费。(A 只要有一个小 Cell 能够存放 UDT)。
而现在的场景就是,这个 B 就是矿工自己,矿工收取了这个 UDT……
这是一对一交易的场景,我们可以想象整个市场有大量的 UDT 和 CKB 的交易会以这样的方式出现,自然形成类似 DEX 的交易市场,那么认可度高的 UDT 就会有足够的深度来做交易,特别是稳定币是可以出现这样的情况的。
二次增发会有一个合理的增发量,因此我们现在发布的内容是一个 rfc,是一个大家一起来讨论的提案而不是一个确定的方案。的确,存储数据的用户能够在 Layer 1 之上构建 Layer 2 或者其他的协议通过建设商业应用获得收益,对他们来说成本就是 CKB 使用的成本(流动性成本 & 通胀损失),以及建设 Layer 2 等的成本。他们的收益和成本会需要一个合理的平衡。
这边我质疑的是,我设想的场景是地址A和地址B都只有一个刚好够存放UDT的小Cell,地址B没有多余的CKB去做这样交换,矿工能不能只接受这个UDT,手续费就是这个UDT本身。
我不在乎这个交易对中有没有CKB,矿工如果接受UDT作为手续费,矿工可以选择任意的交易对去兑现这部分UDT,不管是UDT/CKB,UDT/ETH,UDT/BTC,这是一个完全开发的竞争的手续费市场。嗯嗯,稳定币在这个市场上可能会出现非常好的机会。
举个可能发生的例子,假设正常转账手续费为5毛,你可能会发现有人用价值5元的UDT去做手续费支付,可能这个UDT价格不稳定或者只是一个nobody token,这个时候矿工愿不愿意去打包这个交易,这才是真正有趣的地方。
可以啊,那么矿工自己就是用户 B 的场景。
我理解在这个 DEX 中可能不支持 ETH/BTC, 当然出现一种情况是跨链的 BTC、ETH,或者锚定 BTC、ETH 的 UDT。
矿工不会不愿意打包这个交易。我之前提到,这个 atom swap 是先由一个用户创建 partial tx,里面包含他愿意交换的 UDT 的数量以及 CKB 的数量,这个 partial tx 是不完整的,需要另一方来同意签名才会完整(这里有一个撮合的过程),然后发送到矿工那边打包。一般情况是矿工拿 CKB。
如果矿工愿意参与这笔交易,那么矿工就能拿到(一部分) UDT 作为手续费。
对于 nobody token,你发起了 nobody token/CKB 的交易,只要有人愿意来对这个交易签名,把交易作为完整,并且 input 比 output 大一些支付手续费,矿工就是会打包的。
我不知道这个和跨链有什么关系,矿工愿意打包这个由UDT作为手续费的交易,矿工收到的就是UDT,只要市场上存在UDT/ETH,UDT/BTC交易对,就可以完成兑现,这个和atom swap应该没什么关系。
CKB is not only gas, CKB is not the only gas.
我是在回答你这里出现 UDT/BTC,UDT/ETH 交易对的问题,如果需要这样的交易对,是需要跨链或者锚定的 UDT 来做的,因为这个不是一个中心化的交易所,而我们讨论的场景是在 CKB 层面的这个 atom swap 实现的交易。
We do not have gas in our Nervos CKB. Our economics design is for a SoV not a MoE
ok,上面一段我可以理解了。
我所指的gas就只是手续费,我不知道这个和CKB design for a SoV or a MoE有什么关系
So in our Nervos CKB. our design 's not like gas model, which is used to pay for fees.
So 我的意思是手续费只要足够就行,矿工的主要收入会来自于出块奖励,不需要太纠结手续费的问题。
为什么会纠结手续费如何收取,能不能只用UDT,因为这样的改变可能会出现非常多有趣的事情,我相信这种进步会出现很多很有趣的事件和产品。Nervos中的miner在未来,可能会在整个生态里面扮演多重角色。
提问:
系统需要能够不断提高其状态用户的费用,以支付矿工提供这种资源。这有助于平衡矿工的经济收入,同时让用户被激励去清除不必要的状态。
对于用户来说,即使平台在被大幅度采用的假设下,64 CK Bytes 在 Nervos CKB 上的拥有成本也很低。
两点看似矛盾?
这可能是翻译的问题
L178
原文第一句话的意思是,系统需要不断地向那些正在使用CKB的用户(指的state uers)收取租金,来补偿提供状态存储资源的矿工。
所以在这个补偿矿工的基础上会引出后面所说的二级发行,这样其实使用CKB的用户就被变相收租了,因为他们无法获得二级发行,只能承受通胀。
至于说64 CK Bytes的拥有成本是不是一直很低,这就不好说了,和CKB初始总量,二级发行速度,疯狂的市场都有很大的联系。如果某一刻64 CK Bytes都很贵的话,那可能这时候的CKB总市值已经上天了吧
我认为2句话是从不同维度来说的,L178是指整体的世界CKB存储状态,L334是从价格层面考虑的。