小白都能读懂的 Cell 模型:一个被施展了魔法的盒子

设计一条好的底层公链,必须从技术角度、经济角度、以及共识角度进行全方位的考量。咱们花了 4 期(第 16/ 17/ 18/ 19 期)向你们解释了底层公链 CKB 技术实现中的关键点之一:Cell 模型。为了让你们更好的理解公链 CKB 的 Cell 模型,咱们为你们带来两期小白都能读懂的 Cell 模型文章。(PS:该篇是小白都能读懂的 Cell 模型系列文章之一)

秘猿科技区块链小课堂第 20 期编程


UTXO: 只能存放数字的盒子

咱们先从区块链鼻祖 Bitcoin 提及。Bitcoin 是一个点对点的电子支付系统,它的帐户模型叫 UTXO,也就是未花费交易输出(Unspent Transaction Output)。segmentfault

咱们能够把 UTXO 当作一个带锁的盒子。是的没错,是一个盒子,而不是帐本,不要慌。这个盒子里存放的是一个数字,用来表示这个盒子的面值。另外,这个盒子上还有一把锁,只有拥有对应钥匙的人,才能够打开这个盒子。在进行转帐时,全部者使用钥匙打开锁,接着从新找到另一个空盒子,将新的面额放进去,并配上一把属于接收者的新锁(私钥)。如此一来,咱们能够将交易过程简单理解为「打开盒子,取出里面的钱,销毁原来的盒子,放到另外的盒子里」。区块链

总结而言,在 Bitcoin 的帐户模型中,盒子表示 UTXO,数据保存在 UTXO 中,而锁(私钥)用来表示全部权。spa

图片描述

密码学实在是一项伟大的发明,它把物理世界锁的概念映射到了虚拟世界。设计

Account: 存放数据与逻辑的 ATM 机

在理解 UTXO 模型后,咱们再来介绍一下 Account 模型,其中最出名的当属 Account 模型的独创 Ethereum。在 Ethereum 中 Account 模型存储的也是数据,不过与 UTXO 不一样的是,Account 中除了数据还有逻辑。所以,相对于比特币脚本而言,他能够执行更丰富的智能合约。对象

以 ERC-20 的智能合约为例,咱们也能够将它比喻成一个盒子,不过在这个盒子里存的并非钱,而是一套复杂的逻辑和数字。与 UTXO 不一样,Account 模型的盒子是一直被重复利用的,而且没法打开。就像在盒子的出厂设置时,咱们就已经将一套逻辑写到盒子里,只留几个固定的按钮给外界,外界的用户只有在特定的状况下才能触发这些按钮。blog

Account 的特性就像一台 ATM 提款机,当咱们须要转帐时,就须要一张可以标示身份的银行卡,以及对应的密码,而后输入转帐金额以及收款方等信息,最后点击转帐。盒子在接受到这些信息以后,就会将对应的金额从转帐发起方的余额中扣除,在收款方的余额中增长,并同步更新内部数据,用户的金额会一直保存在盒子中。熟悉编程的同窗很快就会发现,Account 模型就是现实世界中的面向对象模型,具备图灵完备的性质。继承

在 Account 模型中,盒子负责保存逻辑和数据,而且借此更完备的执行智能合约。出厂设置将逻辑写入盒子后,就永远没法更改。若须要修改数据,只能经过外部的条件去触发。全部人的钱都会集中记录在盒子里,交易过程当中,交易双方只须要输入交易信息便可,盒子负责处理和更新数据。图片

Cell Model: 被施展了魔法的智能盒子

接下来,咱们要有请出本篇文章的主角 Cell 模型,也许如今你对它还很陌生,不过我相信很快你就能熟悉它的设计了。get

Cell 是 CKB 的状态储存单位,咱们也能够把 Cell 当作一个盒子。还记得咱们以前提到的 UTXO 模型么?咱们把它的概念所有照搬过来,再施加一点小小的魔法,就能变成咱们的 Cell 模型。

UTXO 的盒子里存放的只是数字,而在 Cell 模型中,咱们为每一个盒子都带上了一套逻辑,也就是说,Cell 盒子里的数据不只能够表示金额,还能够承载其余的信息和资产,好比虚拟猫咪等。

另外,UTXO 用的都是同一类型的普通锁,而在 Cell 模型中,用户能够 DIY 本身的锁,玩出不一样的花样,好比能够是指纹或者刷脸的形式,是否是特别期待!

总结来讲,Cell 模型是更通用的 UTXO 模型,它体如今两个方面:

  1. Cell 模型中的锁能够 DIY;
  2. 能够在 Cell 模型的数据上施展魔法。

因此说 CKB 的 Cell 模型是继承 Bitcoin 简洁的 UTXO 模型,同时还吸取了 Ethereum 可编程的优势。

可能有人会问,Cell 模型这样的设计会有什么优势呢?咱们该怎样更好的使用 Cell 模型呢?别着急,接下来的文章中,继续为你们讲解!

相关文章
相关标签/搜索