【白皮书拆解-3】可无限扩展的Pascal Coin是个什么东西?
声明:无任何利益相关,纯粹客观中立看待此项目的设计思想以及解决方案。同时也是对区块链的具象化认知。
昨天被俱乐部小哥推荐了一些有趣的项目,PascalCoin就是其中之一。看到一个新的项目,第一感觉自然是去官网看看这个到底想干嘛。
在主页上看到了这样的宣传语:
PascalCoin是一种即时,零费率,可无限扩展,去中心化的加密数字货币,且有高强度的隐私保护以及智能合约能力。SafeBox技术的加持,使其成为全球首个可删除的区块链项目,PascalCoin拥有无限可能。
这是我从官网上摘下来的对Pascal项目的宣传语,对于一个新项目的认知,一定得有立得住的标签,否则这个项目就会淹没在茫茫项目库中,无人知晓。这个号称酒香不怕巷子深的信息时代,恰恰是太多酒香凝聚,使人难以分辨。
相信很多朋友听过视觉锤和语言钉这两个说辞,前者从视觉传播角度,后者主要针对当前痛点,提出针对性的宣传语,包含好的名字,广告语,功能,体验等等。
这也可以解释为什么很多项目一定要强行给自己加戏,甚至在区块链3.0时代刚刚拉开大幕时,就有心急的项目方开始给自己黄袍加身,号称区块链4.0时代的到来了。
在大众普遍唱衰以太坊之时,个人还是打心底里为以太坊投上一票。一方面是V神在社区的个人影响力,另一方面也是以太坊对区块链精神的贯彻。虽然现实世界的不完美,对应到区块链世界里,不完美但高效的EOS更加引人注目,但仔细看一看,单纯从铸币的角度,EOS实际上就是轮番21个超级节点之间的垄断,所谓的共识也是在这21个节点之间达成。而以太坊到今天,仍然是1万+的节点之间的共识,是每个人都有机会成为“铸币人”的项目。
现实虽不完美,但我们从来都对完美心向往之。
需要特别澄清的是,我写过的项目分析类的文章,只是作为一种认知参考,不作为投资建议,因为我们需要看到,市场共识、技术和信仰本身并不完全同步。
现在回到这个项目的解读。
在官网上的这段话,我们很容易抽出几个极为抢眼的关键词:
- 零费率:如何做到的?
- 无限扩展:通过什么手段?
- 隐私保护:有何特别的方法?
- 智能合约:新一代公链的标配而已,这里有什么新花样吗?
- 可删除:这是什么新特性?
- 无限可能:啥可能?
带着这些问题,我们来逐字逐句阅读白皮书,寻找答案。
无限扩展的含义
这里说的无限扩展的含义是:在有限的存储空间上,基于区块链驱动的网络能够无限时的运行。
听起来会有一些拗口,更啰嗦一点说就是,当前的互联网基础设施,存储能力不是无限的,网络的运行必然意味着数据量的持续增长。虽然时代在进步,存储能力也在按照摩尔定律持续增长,需求和供应是能够匹配的,但是现在的数据大爆炸,存储已经成了瓶颈。
区块链网络也必须考虑到这个问题。比特币只做账户资产的清算,运行至今,也有200GB+的数据量,对于自己动手下载过全节点钱包的同学应该知道,这200GB+的数据下载下来,是多么耗时。
浅谈UTXO
PascalCoin的共识算法和比特币一样,也是采用PoW来确保链的安全性。像比特币这样的系统,每个参与挖矿的节点必须拥有从初始区块到当前区块的所有数据,为什么要这样呢?这里牵涉到UTXO账户模型,UTXO这个概念,往简单的方向说就是消费现金的模式,比如说你拿100块钱去买一件15块的商品,你拿递给商家100块,拿回来85块,商家得到15块。从输入输出的角度看,100块是这次交易的输入,15块和85块是输出,输出的对象有两个,你自己和商家。而再深入一层向前思考,你的100块哪里来的呢?是不是也从别人那里得到的?可能是工资,也可能就是拿爸爸妈妈的零用钱。往后思考一层,现在你得到的找零的85块,也可以作为下一次消费的输出,给商家的15块,它也可以用来消费,作为新交易的输入。
这是单次交易的输入输出。
区块链从经济学角度看,逻辑并不复杂,为了跟踪用户的账户余额,单单看一次的交易是不够的,要从根子上开始统计,也就是说,你从开始用钱开始,别人给过你多少钱,然后随着时间,你消费了多少钱,对于你的财务状况,从头开始统计,算一下就知道当前你有多少钱了。比特币里的交易,就是这样串起来的。其实可以每次加一次字段,跟踪你的账户余额,这当然会增加记账的工作量。
我只能做到理解UTXO,而不能做到去评价它与我们日场用到的账户模型的优劣。认知的视野也有待进一步提高。听过很多老一辈的人说UTXO很好,但是我都没有特别懂。而以太坊和EOS这种币都是采用的账户模型,不是UTXO。
UTXO必须要保存每个区块。如果能做到不保存每个区块,数据量是不是就大大减少了呢?是的,PascalCoin就是这么干的。
可删除区块链
初次听说可删除区块链的概念,会觉得很迷茫,不知道要用来干嘛。但是,从数据量存储角度来看,就会明白一些。表面上看起来就是,节点无需保存历史数据,只用保存过去的100个区块即可。
区块本身,里面存储的是账户之间的交易。账户之间的交易数据,可以类比为我们现实记账,交易本身并不重要,而是交易这样的行为导致的账户余额变更。比如A,B,C,D四个人之间,反反复复进行的多次交易,产生的数据量很大很冗余,而实际上最重要的数据是这四个人的账户余额,当前还剩下多少钱,或者在历史的某个时刻有多少钱可以查询就很好了,不用通过保存所有的区块数据来查验。
基于此,PascalCoin的做法就是不保存历史数据,账户余额通过SafeBox来保存。关于SafeBox的一些细节,后面会再展开一点。
节点只保留最近的100个区块有什么好处吗?
好处非常明显:没人会对区块大小是1MB还是8MB或者更大而吵吵闹闹了。之前有写过比特币分叉往事一文,核心导火索就是大家对比特币1MB大小不满,性能瓶颈很严重。而扩大区块大小之后,确实可以提升网络的打包速度,这个之前在群里和大家沟通,有一个很有趣的比喻:
将打包区块类比为拉货,货物是交易事务。之前的1MB区块相当于一个小板车,每次只能拉10件;现在扩容区块之后,是个大卡车,我们假设小板车和大货车跑的一样快,因为比特币10分钟达成一次全网共识嘛。大卡车一下子能拉1000件没啥问题吧,这样的话,性能就提升了100倍呢!
但是,我们不能只看到这个好处,而忽略了背后的代价,一个区块1MB,运行了9年,比特币的数据量是200GB+。如果区块大小变成了8MB,数据的膨胀速度要比之前快得多!
又想快,又不想承担代价,怎么办?
PascalCoin这里,就是删除区块嘛。既然每个节点只用保存100个最近的区块,那区块大小大点也没问题啊,没有历史包袱。
是的,PascalCoin设计的,将来区块可以达到5.4GB,1秒钟可以处理的事务达到7.2万次!
当然,你一算,节点得有540GB的磁盘空间存储区块数据,比比特币的全节点数据200GB+大啊,不要着急,这是未来的设计,当前还只有500TPS。
但是,我们得看到这种机制下,它的可扩展性。
SafeBox: 保险箱机制
可删除机制的背后是什么在支撑呢?SafeBox机制功不可没。SafeBox本质上是一个账户列表,账户列表当前按照N=5,也就是每5个作为一个分段。账户余额的变动是通过在区块里的交易事务修改的。另外,因为PascalCoin的的事务要更复杂,所以称作操作。想象一个Excel表格,每一行记录一个账户的余额,同时记录着是哪个区块导致的变动。
一般区块链的区块,是连向前面的一个区块,这是为了历史可回溯。现在引入了SafeBox机制后,矿工挖到的区块,和SafeBox的某一分段相连,具体这里导致的账户变化等等,不做详细解读。
基于SafeBox可以实现0次验证,从而达到即时支付的效果,这样也就无需闪电网络这样的链下扩容技术了。
账户机制
PascalCoin采用的是账户机制,地址是一串数字,像银行账户,我们银行卡不仅有数字,还有自己的名字,这里也一样。账户名字是64位大小的字符串,包含一个16位大小的类型字段,用于区分账户类型。账户和名字都是独一无二的。白皮书里有写到,数字账户还有靓号,账户是通过拍卖得到。其中PascalCoin的代币称作PASC,账户是PASA。交易所里可以交易PASC,但是买到的PASC想转到自己钱包,就需要一个PASA账户。就像我们在EOS里要花钱买创建账号一样。
整个项目仍然基于非对称加密算法,因此也要公钥私钥记住,一个PASA可以对应多个公钥。
隐私保护
这里主要是说到匿名交易。上面提到的账户机制,并不用对应的真实的个人信息,且不像UTXO账户模型,可以针对过往的消费记录,形成一个网状结构,这是可以作为挖掘来源的。好比说,我不知道某个支付宝账户是谁的,但是根据他的所有消费记录,大致可以得出这是个怎样的人。
比特币并非严格的匿名币。
链上治理
我一直在重复解读的概念是共识分为三层:
- 算法共识
- 决策共识
- 市场共识
其中决策共识还是要依赖持币人,社区来进行综合治理的。比如区块大小的设定,对提议和分叉进行投票等等,SafeBox中的每个分段有多少个账户等等,都是可以通过决策共识达成。PascalCoin这里,是依赖社区投票进行治理的,其中:
1PASC = 1票
1PASA = 2票
任何人均可发起提议,GovBot对提议根据投票自动执行。
这是一个自我增强的系统。
CPU挖矿
CPU挖矿,一人一票,随机哈希函数,抵抗GPU和ASIC。
Layer2操作
有必要解释一下这里的Layer2是指代什么。一般公链之上的交易操作,属于Layer1,也就是最底层的操作。公链上的性能瓶颈是大家津津乐道的,比如以太猫游戏直接堵住了以太坊公链。如果这些复杂的游戏逻辑能够移到链外,在链之上,通过侧链,平行链等机制来完成,这样链上的任务量就会小很多,不会出现堵住的情况。
PascalCoin链上的账户可携带数据。这带来一个便利是,无需通过其他机制,Layer2的操作直接嵌在Layer1里执行即可。
官方提出了一些很有趣的应用场景,比如链上社交。在PascalCoin上,可以在账户之间进行传送文本,文件,音频等等,账户有类型之分,可以定义65536个类型的账户,比如构建聊天室等等。
基于PascalCoin也能实现去中心化交易所,实现现实世界的物联网,构建类似Craiglist这样的分类广告电商平台等等。
值得强调的是,数字身份解决方案,按照上面的账户模型,就可以实现。
总之,将Layer2的协议整合在Layer1的交易中,可以实现各种各样的DApp。
智能合约
PascalCoin支持智能合约,当然基于它来发行代币也是可以的,称作PascalToken,这是类似ERC20的代币。
注:此项目100%开源,且基于Free Pascal语言实现,代币无预挖,无ICO。
最后以一句话作结:
Moving towords Satoshi Vision.
向着中本聪的愿景前进。
END.