【白皮书拆解-3】可无限扩展的Pascal Coin是个什么东西?

in pascal •  6 years ago 

声明:无任何利益相关,纯粹客观中立看待此项目的设计思想以及解决方案。同时也是对区块链的具象化认知。

昨天被俱乐部小哥推荐了一些有趣的项目,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.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!