热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

Cell是CKB的状态储存单位,是更通用的UTXO。在本篇文章中,Nervos社区神秘人物张亚宁用通俗易懂的语言,为我们介绍了Bitcoi

640?wx_fmt=jpeg

Cell 是 CKB 的状态储存单位,是更通用的 UTXO。在本篇文章中,Nervos 社区神秘人物张亚宁用通俗易懂的语言,为我们介绍了 Bitcoin 和 Ethereum 的账户模型,以及 CKB 的 Cell 模型。在他看来,Cell 就像一个被施展了魔法的盒子,在这个盒子之上,有着更多的玩法等着我们去发掘,快来一起探索吧!


UTXO: 只能存放数字的盒子


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


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

总结而言,在 Bitcoin 的账户模型中,
盒子表示 UTXO,数据保存在 UTXO 中,而锁(私钥)用来表示所有权


640?wx_fmt=png


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


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


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

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

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

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


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


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

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 模型呢?别着急,神秘的伙伴亚宁会在接下来的文章中,继续为大家讲解,让我们一起期待吧!


文:张亚宁 

编辑:Kelly


640?wx_fmt=png


?点击「阅读原文」,参与更多探讨~



推荐阅读
author-avatar
手机用户2702936363
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有