量子链的优点

比特币和以太坊分别验证了两个概念:比特币验证了数据是可以达成全球共识的,对应的应用是虚拟货币,以太坊验证了运算是可以达成全球共识的,对应的应用场景是智能合约。这两个实验的成功,给人类插上了两扇翅膀,让人类学会了飞行,而一旦人们会飞了,就再也忘不掉会飞的感觉了。所以未来社会的游戏规则也必将是在这个基础上重新来玩。但是,这并不是说比特币和以太坊都是完美的平台。后续出现的多种多样的的公链项目,其实都是在努力的去进行改进,而量子链就是其中一个代表。

什么是量子链

先来看看量子链官方给出的定义。

QTUM 是一个基于比特币UTXO模型的去中心化区块链项目,同时也支持以太坊的智能合约虚拟机。QTUM通过创新性地引入账户抽象层(Account Abstraction Layer,AAL)使得比特币网络和以太坊网络可以兼容。

好,来简单解释一下。QTUM ,也就是量子链,首先继承的是比特币的经典的 UTXO 模型,这个咱们在前面介绍过了,所以量子链跟比特币一样,是可以发行数字货币的。同时,量子链也支持以太坊的智能合约虚拟机,意思是使用以太坊的 Solidity 语言写的合约代码,也是可以在量子链上来跑的。你可能会说,以太坊平台也是既能发币又能发跑智能合约啊,那么为何量子链还要支持比特币的各种特性呢?答案就是,比特币,至少在一部分人看来,很多设计是比以太坊更加优秀的而且经历了时间的洗礼,例如这里重点强调的 UTXO 模型,很多人认为就要比以太坊的账户模型要好。所以量子链继承了下来,但是问题来了,以太坊的智能合约平台功能跟它的账户模型是关联的,现在直接改成 UTXO 怎么成?所以才有了定义中所说的 AAL ,也就是账户抽象层。

最终达成的效果是,量子链同时继承了比特币和以太坊的优势。

x86 虚拟机

但是继承也是为了进一步的发展。从2017到写作本文的2018年,量子链搞得最大的一个技术革新就是 x86 虚拟机。x86 虚拟机明显要革的是以太坊虚拟机,也就是 EVM, 的命。必须要提一下的是,下面所说的 x86 虚拟机的很多功能还处在实验阶段,因为毕竟是发展早期嘛,但是它的整个思路还是非常让人眼前一亮的。

x86 我们都知道,就是最为流行的计算机指令集架构。日常咱们用的 PC 电脑基本都是这个架构。如果使用以太坊虚拟机,那么写合约的时候,就只能使用以太坊规定的那一两种比较新的智能合约专用语言,例如 solidity 。但是如果在量子链上开发,使用 x86 虚拟机,那么平常咱们用的 C/C++/Java 这些就都能用了,你喜欢函数式编程,没问题,erlang/haskell 也可以。不得不承认新语言固然有新语言的优势,但是几十年来大家在普通电脑上用各种语言开发,总结的这么多的编程思想,以及那么多的已有项目,如果能跑在智能合约平台上,那么能带来的想象空间也是无限的。

solidity 等这些新语言写程序,没有标准库,这意味着很多常用功能,开发者都得从头造轮子,开发慢,而且也让最终部署到区块链上的代码量大大增加了。x86 虚拟机之上,量子链提供标准库给大家。这个也是方便开发者的一大举动。

利用量子链来发币

我们的课程关注的是发代币,所以最后一部分来聊聊量子链发币的具体思路。

好,先来明确一下币这个概念。这里我们要发的代币,跟比特币,或者以太坊上的以太币还是有很多区别的。第一个区别是技术上的,比特币或者以太币,或者量子链上的量子币都是公链币,也就是说这些币是基于公链的,要拥有这种币,需要自己发行和维护一条公链才行。而我们要发的代币是基于已有公链的。实际情况是这样,只要是支持智能合约的公链,例如量子链或者以太坊,就有发币功能,所以我们接下来要发的代币,就基于量子链来发即可,不需要拥有自己的公链。第二个区别是功能上的,比特币或者量子币或者以太币,这些公链币天然的具有较多的用户,所以天然的具有比较强的金融性,或者简单点说,这一类的代币,代表的是钱。而我们要发的代币,代表的是公司的股份或者是一定量的公司的服务,例如一吨钢材,或者一个电子书的阅读权限,属于前面我们讲代币的那一节所谓的股份币或者功能币,这种代币发行基本零成本,小企业可以发行自己的代币做 ico 或者做项目内的功能币。

量子链可以发布符合以太坊标准的代币,发布的过程也和以太坊比较类似,是比较通用的一种发币形式。所以你学过这个课程之后,如果再去其他链上发币,相信也是轻车熟路的。具体如何发,后续课程中会有详细的介绍。

总结

这一节介绍了量子链的几个优点。首先是量子链延续了比特币的 UTXO 思路,同时又加入了以太坊的智能合约功能,可以说功能很强。其次,智能合约的平台上传统上只能支持 EVM 相关的 solidity 等为数不多的几种新语言,而量子链的 x86 虚拟机,目标在于摆脱 EVM 平台限制,让大家可以用任意的计算机语言去书写智能合约,这样,以前的各种语言的优秀编程思路,例如函数式,已有的标准库,甚至是已有的项目代码,都能够继承下来。应该说,如果智能合约写的比较简单,solidity 肯定就够用了,但是未来的趋势越来越庞大的合约会不断出现,所以 x86 虚拟机的这种多语言支持的能力肯定不是过度设计,虽然任务艰巨,但是意义非凡。最后聊了基于量子链发币是怎么回事。