月亮链 月亮链
Ctrl+D收藏月亮链
首页 > KuCoin > 正文

CELL:硬核:CKB 与 Cell 就是 Bitcoin 与 UTXO 的一般化版本_CEL

作者:

时间:1900/1/1 0:00:00

很多人说Cell模型简单得令人感到幸福,如果你觉得自己已经理解了Bitcoin和UTXO,那么恭喜你,你也已经理解了CKB和Cell!在本篇文章中,Nervos创始人谢晗剑深入浅出地将CKBCell模型及其验证做了详细的介绍。欢迎阅读,和谢晗剑一起探索CellModel。

原文标题:《理解CKB的Cell模型》原文作者:谢晗剑,Nervos创始人

janx,谢晗剑,Nervos创始人

在设计CKB的时候,我们想要解决三个方面的问题:

状态爆炸引起的公地悲剧及去中心化的丧失;计算和验证耦合在了一起,使得无论是计算还是验证都失去了灵活性,难以扩展;交易与价值存储这两个目标的内在矛盾,Layer2和跨链的出现将放大这种矛盾,并对Layer1的经济产生非常负面的影响。对这些问题没有答案,Layer1就无法长久运行,区块链给我们的种种承诺自然也是无从谈起。这三个问题根植于区块链架构和协议设计的最深处,很难通过打补丁的方式来解决,我们必须从最基本的数据结构开始,重新审视问题的根源,寻找更合适的地基。

幸运的是,这个更合适的地基简单得令人感到幸福,而且一直就摆在我们眼前。

从Bitcoin中我们学到了什么

Bitcoin把整个账本分割保存在了一个个UTXO里面,UTXO是未花费交易输出的简写,实际上是交易中包含的输出。CTxOut的结构非常简单,只有两个字段:

classCTxOut{public:CAmountnValue;CScriptscriptPubKey;...}

每一个CTxOut代表了一个面值不同的硬币,其中「nValue」代表这个硬币的面值是多少,「scriptPubKey」是一段表示这个硬币所有者是谁的脚本,只有能提供正确参数使这个脚本运行成功的人才能把这个硬币「转让」给另外一个人。

新火科技CEO杜均从Curve创始人处购买1000万枚CRV:8月3日消息,新火科技首席执行官杜均通过社交媒体确认其以400万美元的价格从Curve创始人Michael Egorov手中购买了1000万枚CRV,并将这些代币锁定为veCRV。杜均表示,“我会锁定至少一年,并希望 Curve 变得越来越好。”[2023/8/3 16:16:48]

为什么要给「转让」打引号?因为在转让的时候,并不是简单地把硬币中的「scriptPubKey」修改或是替换掉,而是会销毁和创造新的硬币。每一个Bitcoin交易,都会销毁一批硬币,同时又创造一批硬币,新创造的硬币会有新的面值和新的所有者,但是被销毁的总面值总是大于等于新创造的总面值,以保证没有人可以随意增发。交易表示的是账本状态的变化。

这样一个模型的特点是:

硬币是第一性的;所有者是硬币的属性,每一枚硬币有且仅有一个所有者;硬币不断的被销毁和创建。是不是很简单?如果你觉得自己已经理解了Bitcoin和UTXO,恭喜你,你也已经理解了CKB和Cell!

Cell

Layer1的关注点在状态,以Layer1为设计目标的CKB设计的关注点很自然就是状态。Ethereum将交易历史和状态历史分为两个维度,区块和交易表达的是触发状态迁移的事件而不是状态本身,而Bitcoin协议中的交易和状态融合成了一个维度,交易即状态,状态即交易,正是一个以状态为核心的架构。

同时,CKB想要验证和长久保存的状态,不仅仅是简单的数字「nValue」,而是任何人认为有价值的、经过共识的数据。显然Bitcoin的交易输出结构满足不了这个需求,但是它已经给了我们足够的启发:只需要将nValue一般化,把它从一个存放整数的空间变成一个可以存放任意数据的空间,我们就得到了一个更加一般化的「CTxOut」,或者叫Cell:

pubstructCellOutput{pubcapacity:Capacity,pubdata:Vec,publock:Script,pubtype_:Option

何一:来自传统金融界的从业者认为使用客户资金是正常的,但Crypto不是银行:11月12日消息,币安联合创始人兼Binance Labs负责人何一发推称,来自传统金融(TradFi)背景的人认为使用客户资金是正常的,但Crypto不是银行。简单地将Crypto视为货币或股票可能会导致风险管理出现问题——类似于将您的种子短语放入保险库并希望这能保证安全。

(可悲的)现实是,大多数快速崛起和衰落的团队都是来自TradFi世界的“blue blood(蓝血贵族)”,属于极少数可能最能与监管机构沟通的人。这些人的衰落对处于起步阶段的Crypto行业造成了极其不公平的偏见。(更可悲的是)直到那些人倒下的那一刻,他们都不知道自己为什么会倒下,只是希望“如果牛市来了,我不会死”。[2022/11/12 12:54:41]

在Cell里面,nValue变成了capacity和data两个字段,这两个字段共同表示一块存储空间,capacity是一个整数,表示这块空间有多大,data则是保存状态的地方,可以写入任意的一段字节;scriptPubKey变成了lock,只是换了一个名字而已,表达的是这块共识空间的所有者是谁-只有能提供参数使得lock脚本成功执行的人,才能「更新」这个Cell中的状态。整个CellOutput占用的字节数必须小于等于capacity。

CKB中存在着许许多多的Cells,所有这些Cell的集合形成了CKB当前的完整状态,在CKB的当前状态中存储的是任意的共同知识,不再仅仅是某一种数字货币。

交易依然表示状态的变化/迁移。状态的变化,或者说Cell内容的「更新」实际上也是通过销毁和创建来完成的。每一笔交易实际上都会销毁一批Cells,同时创建一批新的Cells;新创造的Cells会有新的所有者,也会存放新的数据,但是被销毁的capacity总和总是大于等于新创建的capacity总和,由此保证没有人可以随便增发capacity。因为capacity可以转让,无法增发,拥有capacity等于拥有相应数量的共识状态空间,capacity是CKB网络中的原生资产。Cell的销毁只是把它标记为「已销毁」,类似Bitcoin的UTXO从未花费变为已花费,并不是从区块链上删掉。每一个Cell只能被销毁一次,就像每一个UTXO只能被花费一次。

BlockFi雇佣说客来简化与政策制定者的对话:金色财经报道,加密贷款平台BlockFi已从Arnold & Porter Kaye Scholer LLP聘请说客,为数字资产金融服务提供商制定监管和税收政策。BlockFi与Arnold & Porter成立了一个五人政策团队。Arnold & Porter合伙人马克·埃普利(Mark Epley)和法律与游说公司立法与公共政策实践小组主席凯文·奥尼尔(Kevin O 'Neill)组成了这个团队。埃普利表示,Arnold & Porter将成为BlockFi的另一个自我,帮助该公司与立法者讨论行业利益。他指出,政策制定者对听取个别市场参与者的意见不感兴趣,但游说者可以在这类谈判中提供帮助。Epley透露,尽管Arnold & Porter还有其他客户对加密货币感兴趣,但目前它没有为任何其他公司游说。(cryptoslate)[2022/6/12 4:19:43]

这样一个模型的特点是:

状态是第一性的;所有者是状态的属性,每一份状态只有一个所有者;状态不断的被销毁和创建。所以说,Cell是UTXO的一般化版本。

Verify

仅仅有一块可以保存任意状态的空间还不够。Bitcoin之所以有价值,是因为网络中的全节点会对每一笔交易进行验证,使得所有用户都相信Bitcoin协议中写下的规则会得到保证。

共同知识之所以能成为共同知识,是因为每个人都知道其他人认可这些知识,区块链之所以能让知识变成共同知识,是因为每个人都知道其他人都能独立验证这些知识并由此产生认可。任何共识的过程都包含了一系列的验证以及相互之间的反复确认,这个过程正是网络中共同知识形成的过程。

我们如何验证Cell中保存的数据呢?这时候就需要Cell中的另一个字段type发挥作用了。type与lock一样,也是一段脚本,type定义了data字段中保存的数据在状态迁移过程中必须要遵守的规则,是对状态的约束。CKB网络在共识的过程中,会在CKB-VM中执行type脚本,验证新生成的Cell中保存的状态符合type中预先定义好的规则。满足同一种type约束的所有Cell,保存的是同一种类型的数据。

Tether:我们与Terra完全不同,且拥有足够的储备维持USDT稳定:5月23日消息,Tether官方发文表示,稳定币维持稳定的前提是每一个稳定币均可以固定的价值赎回。而USDT和Terra的设计、机制和抵押品完全不同。Terra是算法稳定币,具有旨在实现稳定的机制,但是最终失败了。相对而言,USDT完全由抵押品支持,每一个USDT均可兑换为1美元。

当交易所的USDT的价格不等于1美元时,只能表明用户对流动性的需求超过了该交易所的订单簿,并不意味着USDT脱锚。Tether拥有超过700亿美元的抵押品,以用于这赎回USDT,满足用户的流动性需求。且可以在几天内完成用户超出流通USDT 10%的赎回请求。

此外,Tether宣布USDT的储备中超过55%是美国国债,商业票据的占比不到29%。[2022/5/24 3:36:53]

举个例子,假设我们想定义一个叫做SatoshiCoin的代币,它的状态迁移必须满足的约束是什么?只有两条:

用户必须证明自己是输入代币的所有者;每一次转账的时候,输入的代币数量必须大于等于输出的代币数量。第一条约束可以通过lock脚本来表达,如果有兴趣可以查看这里的示例代码,与Bitcoin的scriptPubKey原理相同;第二条约束,在Bitcoin中是在底层硬编码实现的,在CKB中则是通过type脚本来实现。每个Cell代表的SatoshiCoin数量是一种状态,我们首先定义其状态结构,即每个type等于SatoshiCoin的Cell在data保存的状态为一个长度为8的字节串,代表的是序列化过后的数量:

{amount:Bytes//serializedinteger}

type脚本在执行中,需要读入交易中所有同类型的Cells,然后检查同一类型下的输入Cells中保存的amount之和大于等于输出Cells中保存的amount之和。于是通过lock和type两个脚本,我们就实现了一个最简单的代币。

斯里兰卡央行行长:斯里兰卡不承认加密货币:5月23日消息,斯里兰卡央行行长表示,斯里兰卡不承认加密货币。(金十)[2022/5/23 3:36:30]

lock和type脚本不仅可以读取自身Cell中保存的状态,也能够引用和读取其它Cell中保存的状态,所以CKB的编程模型是一个有状态的编程模型。值得指出的是,Ethereum的编程模型之所以强大,更多是因为它有状态,而不是因为它的有限图灵完备。我们可以把type脚本保存在一个独立的Cell里面,然后在每一个SatoshiCoinCell的type字段引用它,这样做的好处是相同的type脚本只需要一份空间保存,像这样保存数字资产定义的Cell我们把它叫做ADC。

SatoshiCoin的另一个特点是,具体的资产与所有者之间的记录,分散保存在多个独立的Cell里面,这些Cell可以是开发者提供给用户的,也可以是用户自己拥有的,甚至是租来的。只有在共识空间所有权明确的情况下,所有者才能真正拥有共识空间里面保存的资产。在CKB上,因为用户可以真正拥有共识空间,所以用户可以真正拥有数字资产。

Cell是抽象的状态验证模型,Cell提供的存储没有任何内部结构,Cell支持任意的状态验证规则和所有权验证规则,我们可以在Cell模型上模拟UTXO模型,也可以在Cell模型上构建Account模型。lock脚本在验证交易输入的时候执行,确保用户对输入有所有权,有权销毁输入的Cells;type脚本在验证交易输出的时候执行,确保用户生成的新状态符合类型约束,正确生成了新的Cells。由于状态模型迥异,以及计算和验证分离,CKB的编程模型与Ethereum的编程模型有非常大的不同,什么是CKB编程模型上的最佳实践还需要大量的探索。

通用验证网络

Bitcoin是一个验证网络。在转账时,用户告诉钱包/本地客户端转账的数量和收款人,钱包根据用户提供的信息进行计算,在本地找出用户拥有的数量合适的硬币,同时产生一批新的硬币,这些硬币有些归收款人所有,有些是找零。之后钱包将这些花费掉的硬币和新生成的硬币打包到一个交易里面,将交易广播,网络对交易验证后将交易打包到区块里面,交易完成。

在这个过程中,网络中的节点并不关心老的状态是怎样被搜索出来的,也不关心新的状态是怎样生成出来的,只关心这些硬币的面值总和在交易前后没有改变。在转账过程中,计算在用户端完成,因此用户在交易发送时就能确定计算结果是什么。

Ethereum是一个通用计算网络。在使用DApp的时候,用户告诉钱包/本地客户端想要进行的操作,钱包将用户的操作请求原样打包到交易里面,并将交易广播。网络节点收到交易之后,根据区块链的当前状态和交易包含的操作请求进行计算,生成新的状态。在这个过程中,计算在远端完成,交易结果只有在交易被打包到区块之后才能确定,用户在交易发送的时候并不能完全确定计算结果。

CKB是一个通用验证网络。在使用DApp的时候,用户告诉钱包/本地客户端想要进行的操作,钱包根据当前状态和用户的操作请求进行计算,生成新的状态。在这个过程中,计算在用户端完成,计算结果在交易发出的时候就已经确定了。

换句话说,Bitcoin和CKB都是先计算再共识,而Ethereum是先共识再计算。有趣的是,在许可链架构里面也有同样派别之分:Fabric是先计算再共识,而CITA是先共识再计算。

计算与验证的分离同时也使得Layer2与Layer1自然分开了。Layer1关心的是新的状态是什么,并不关心新的状态是如何得到的。无论是Statechannel,Plasma还是其他Layer2方案,其实质都是在链外进行计算,在特定时候将最终状态提交到Layer1上进行验证。

为什么CKB的Cell模型更好?

现在我们得到了一个非常不同的基础数据结构,在这个结构之上我们设计了独特的经济模型,这个结果真的更好吗?回顾一开始的三个问题也许能给我们一些启示。

capacity是原生资产,受到预先确定的发行规则约束,其总量有限;capacity同时又是状态的度量,有多少capacity,CKB上就能放多少数据,CKB状态空间的最大值与capacity总量大小相等,CKB上保存的状态不会超过capacity总量。这两点决定了CKB不会有状态爆炸的问题。在capacity发行规则适当的情况下,网络应该可以长久的保持去中心化的状态。每一个Cell都是独立状态,有明确的所有者,原本属于公共资源的状态空间被私有化,宝贵的共识空间可以被更有效的使用。

CKB是一个通用验证网络,计算和验证得到了分离,各自的灵活性和扩展性都得到了提高。更多的计算被推到了用户端执行,计算发生在离场景和数据更近的地方,数据处理的方式更灵活,工具更多样。这也意味着,在CKB架构中,钱包是一个能做的事情更多,能力更大的入口。在验证端,由于计算结果已经完全确定,交易的依赖分析变得非常轻松,交易的并行处理也就更加容易。

在基于Cell建立的经济模型中,存储的使用成本与占用空间大小和占用时间成正比,矿工可以通过提供共识空间获得相应的收益。CKB提供的Utility是安全的共识空间,价值来自于其安全性和可用性,并不是来自于交易处理能力,与Layer2负责交易的特点相辅相成,在分层网络和跨链网络中具有更好的价值捕获能力。

最后,CKB不是…

IPFS

CKB是一种存储这一点可能会使人感到迷惑:「这不就是IPFS/Filecoin/吗?」

CKB不是分布式存储,关键的区别在于分布式存储只有存储,没有验证,也就不会对其存储的数据形成共识。分布式存储的容量可以随着存储技术的增长而等比例的增长,而CKB的容量则收到形成全球共识效率的限制。

CKB也不需要担心容量不够。在Layer2以及分层技术成熟的阶段,极端情况下,Layer1上可能只需要放一个merkleroot就足够了。在Layer1上进行验证所需要的状态,也可以通过交易提交给节点,节点通过merkleproof验证状态是有效的,在此基础之上再验证状态迁移是有效的,这个方向已经有一些研究。

Qtum

Qtum是尝试在UTXO模型上引入更强大的智能合约的先行者之一,具体做法是保持Bitcoin原有的UTXO模型不变,在其上引入账户抽象层,支持EVM或是x86虚拟机。

在Qtum中,Bitcoin的验证是第一层,EVM的计算是第二层。Qtum对UTXO中scriptPubKey的处理逻辑进行修改,以实现在交易打包后,将BitcoinTransaction中携带的请求传递给EVM进行执行的效果。

Qtum将Bitcoin和Ethereum的执行模型桥接到了一起,网络节点先验证交易输入部分,再调用合约进行计算,状态分散在UTXO模型和EVM自己的状态存储两个地方,整体架构比较复杂。

CKB所做的是继承Bitcoin的架构思路,对UTXO模型进行一般化处理得到Cell模型,整体架构保持了一致性以及Bitcoin的简洁。CKB上的所有状态都在Cell里面,计算在链下完成,网络节点只做验证。

来源链接:谢晗剑

比特币

比特币

比特币Bitcoin,一种去中心化、非普遍全球可支付的加密数字货币,而多数国家则认为比特币属于虚拟商品,并非货币。比特币的概念,诞生于2008年署名为中本聪的一篇论文,并于2009年1月3日,基于无国界的对等网络,用共识主动性开源软件发明创立。比特币协议数量上限为2100万枚,以避免通货膨胀问题。使用比特币是通过私钥作为数字签名,允许个人直接支付给他人,不需经过如银行、清算中心、证券商等第三方机构,从而避免了高手续费、繁琐流程以及受监管性的问题,任何用户只要拥有可连接互联网的数字设备皆可使用。比特币BTCBitcoin查看更多以太坊

标签:CELLCELCKBOINCAPITAL X CELLcel币破产重组代币ckb币怎么获得RPICoin

KuCoin热门资讯
KEN:分布式资本黄凌波:机构视角解读如何捕捉 DeFi 独角兽_TOKE

分布式资本合伙人黄凌波分享DeFi投资机会与该机构投资逻辑。原文标题:《分布式资本黄凌波:资本如何捕捉DeFi等行业独角兽|区块101》受访者:黄凌波,黄凌波无论是「新基建」还是「DeFi」,都.

1900/1/1 0:00:00
比特币:冒志鸿:区块链带领应用再次朝去中心化趋势发展,但 DApp 仍定义不明_Adappter Token

「去中心化应用」成为当前区块链行业的热点,但当你去研究却发现目前DApps都是各类的菠菜、资金盘.

1900/1/1 0:00:00
AKRO:无中生有?DeFi 协议 Akropolis 重入攻击简析_akro币价格

By:慢雾安全团队11月13日,据CoinDesk消息,Akropolis协议遭受黑客攻击,损失约200万DAI,慢雾安全团队已于当天第一时间介入分析,并将结论同步给了相关关心方.

1900/1/1 0:00:00
UFC:关于完成UFC主网切换并开放充提的公告_比特币交易违法吗

尊敬的EXX用户:???EXX已完成UFC主网切换,用户在EXX平台的UFC资产已切换为UFC主网资产,平台现已开放UFC的充值和提币业务.

1900/1/1 0:00:00
区块链:龚鸣:区块链技术和传统金融力量终有一战_去中心化交易所

作为一个备受争议的话题,区块链和数字货币从年初价格的大涨到之后的下跌,为媒体提供了无数可以呱噪的素材。而到现在,行业内的各种萧条也让很多人感到了熊市的寒冷.

1900/1/1 0:00:00
区块链:谢晗剑:我们用区块链解决数字世界信任难题_西格玛币兑换以太坊公告

大家好,我叫谢晗剑,是世界上市值第二大的区块链项目「以太坊」核心研发团队里唯一的中国成员,也是秘猿科技的创始人兼CEO,在这里我想和大家分享一些自己对区块链的看法,我的主题是:信任的自动化.

1900/1/1 0:00:00