他们开了二十小时的车,一整路都在聊加密货币和区块链技术,将如何改变世界。

他们聊着一个接一个的概念,每个概念都比前一个更疯狂。随着新奇的点子源源不绝地冒出,他们的大脑仿彿不断受到震撼。

「像万事达币那种以比特币为基础的开发,可以创造出那么多的可能性。现在还有一些完全独立的区块链也出现了,例如合约币和未来币(NXT)。」乐文说,「每个人都想把区块链技术扩展到P2P现金以外。」

他们聊到布特林的《以太坊白皮书》时,东诺弗里奥花了点时间阅读那份白皮书,他说:

「所以这个东西想成为我们一直谈论的所有代币及区块链应用的平台,但它没有为各种用法设计特定功能。」

「没错,它是以一台机器做为核心。」乐文说。

以太坊虚拟机(Ethereum Virtual Machine)。」东诺弗里奥一边说,一边翻着那份白皮书。

「对,它具有图灵完备性(Turing-complete),可以处理你扔给它的任何程式码片段。」乐文说。

打开网易新闻 查看精彩图片

图灵完备性是以数学家艾伦.图灵命名的概念。具有图灵完备性的机器,能执行任何程式码。比特币有一种支持某种运算的手稿语言,但以太坊的图灵完备语言,是为了支持程式设计师梦想的任何东西,而且依然以分散的方式运行。

「具图灵完备性的机器有个问题:无限迴圈可能毁了它。例如,你叫电脑做X+X,只要结果小于五就一直加下去,你也告诉电脑X等于一。电脑会一直加X,加到机器当机为止。」乐文说。

东诺弗里奥说:「哦,所以它很容易遭到攻击。」

乐文回应:「对,但以太坊用其内部加密货币”以太币“解决了这个问题。每个运算步骤都有成本,用户需要拿以太币付费。每次你叫以太坊执行一段程式码时,你也要告诉它,你最多愿意支付多少以太币。如果它得不到足够的钱来执行程式,机器就会停下工作。」

「所以,以太币不单只是像比特币那样的P2P兑付而已,也用来让网路运转?」东诺弗里奥说。

「对,所以布特林把以太币称为”加密燃料“,它是推动以太坊网路运作的燃料。」乐文说。

东诺弗里奥把身体靠向椅背,手指抵着太阳穴,大脑再次感受到震撼。

以太坊和比特币一样,是采用工作量证明的区块链,这表示矿工会因为验证交易而获得以太币做为奖励。矿工决定要不要为了赚酬金而去处理那笔交易。以太坊把燃料跟以太币分开,用意是即便加密货币的价格会随着市场上的供需波动,运算成本仍可持平。

例如,一笔交易的运算成本是100 gas,它永远需要100 gas,但是发送者付给矿工去处理交易的以太币数量,则根据以太币的市价而定。

(gas是以太坊用于衡量程式执行一个动作所需「计算量」的单位。当你执行交易时,必须支付矿工处理费,而处理费就是以gas计算,并以「以太币」支付)

打开网易新闻 查看精彩图片

比特币和以太坊的帐户模式,就像钱包和存折

比特币和以太坊的帐户模式,就像钱包和存折

以太坊与比特币区块链的一个显着区别,是帐本记录方式不同。

比特币是使用「未花费交易输出」(Unspent Transaction Output, UTXO)模式。比特币帐户的每一笔余额,是由其他交易剩余未花用的比特币所组成。一笔余额通常包括许多UTXO,就像一个实体钱包,里面可能包含许多面额的钞票和硬币。用比特币买东西,你可能必须使用UTXO的组合,就像你用十美元和五美元的纸钞去买价值十二美元的东西。这笔交易余下的三美元,将成为一个新的UTXO。

以太坊则是使用「帐户/余额」(Account/Balance)模式,追踪每个帐户的总余额或「状态」。如果说比特币的UTXO模式类似钞票和硬币,那么以太坊的模式比较像支存帐户,可以针对可领取的金额进行细腻的掌控,更容易执行较复杂的程式。

布特林在白皮书中举例,避险合约(hedging contract)就比较适合采用以太坊,而不是比特币。例如,当A和B都投入价值一千美元的比特币,三十天后,指令码会把价值一千美元的比特币发送给A,其余的发送给B。因为UTXO只能选择全有或全无。

但以太坊则有两种帐户:外部拥有帐户(externally owned account)与合约帐户(contract account)。外部拥有帐户是由人们的私钥所控制,不含程式码。合约帐户是由程式码控制,每次合约帐户收到一则讯息,程式码就会啟动,让它把讯息读写到内部储存中、发送其他讯息,或创造新合约。

这促成了以太坊和比特币的另一个关键差异,布特林称之为以太坊的「第一类公民」(first-class citizen,程式语言中的术语,亦称First-class object,指能在程式执行期间,创造并做为参数传递给其他函数或存入一个变数的实体)——合约帐户和外部帐户拥有同等的权力,而这个特征也使得自动执行程式码的应用程式变得更加容易使用。如果区块链技术的目的是去掉中介者,这个概念就深植在以太坊的核心中。

打开网易新闻 查看精彩图片

这些部分一起组成一个基础层:内建有图灵完备性程式设计语言的区块链,能让任何人编写智慧型合约及分散式应用程式。

布特林写道,有些应用程式可以建立在以太坊的基础上,例如数位货币、避险合约、网域名称系统、信誉系统(reputation system,一种由实体相互给出看法和评价,以确定这些实体的等级和类别的合作性筛选机制。

例如eBay的信誉系统,是在每一对用户完成一次交易之后,记录下双方的评级)、股东经营的公司(资金要转移到哪裡,可由法定人数的投资者来决定),「甚至有可能成为社群网路的基础」。

另一个例子是农作物保险。「怎么做?很简单,就是依据天气资料、而不是任何价格指数」,换言之,就是一种分散式的交易市场。类似的例子不胜枚举。

布特林想铺好轨道,让你能想像的任何交易都能以P2P、不可篡改、不被审查的方式运作。

他想像的是一台世界电脑,把权力从那些傲慢的公司与政府的手中拿回来,让世界变得更有效率、更公平。可能性无限宽广。

「其他加密货币的目的是增加复杂性,以及增加”功能“的数量。」他写道。

以太坊则反其道而行,取消了一些功能。以太坊的协定不支持多签交易、多重输入与输出、杂凑码、锁定时间、甚至连比特币提供的许多功能也不支援。

所有的复杂性都是来自一种有图灵完备性的全能组合语言,这种组合语言可以用来打造任何可用数学描述的功能。

白皮书写到最后,布特林的兴奋之情溢于言表。

「因此,我们有一种加密货币协定,它的程式库非常小,但是它可以做任何加密货币所能做的一切。」白皮书如此总结。