区块链的原理与应用(上):比黄金还贵的比特币


上周比特币直逼空前1,500 美元,如果我们把每1 比特币对照每1 盎司黄金,则比特币比黄金还要贵了大约200 美元,真的是大胜黄金,虽然这样的对比有点奇怪,但是所有的媒体都是这么形容的,诞生才8 年的比特币坐实了「数位黄金」之名,价值已超越货币史中地位悠久的黄金。每次听到比特币,总会提到区块链,到底什么是比特币(Bitcoin)?什么又是区块链(Block chain)?区块链是「区块」(Block)了什么?又「链」(Chain)了什么呢?

比特币的起源

比特币的发明人Satoshi(笔名,真实姓名目前尚无定论)在2008 年发表了一篇名为《比特币:一种对等式电子现金系统》(Bitcoin: A Peer-to-Peer Electronic Cash System)的论文,提出了称为「比特币」的电子货币及其演算法,由于比特币不适合即时大量的小额交易,而且比特币在法规上存有疑义难以被主管机关接受,因此有人将比特币的部分技术抽离出来寻找新的应用,并且取了新名字区块链(Block chain),这是区块链这个名称的由来。由于区块链这个名称是源自于比特币,因此要了解什么是区块链,就必须先从什么是比特币谈起。

假设Satoshi创造比特币(BTC:Bitcoin)与比特币帐本(BTC ledger)并且给自己50btc,他想要用20btc向Alice买一本书,并且记录在比特币帐本内,如图一所示, Alice第一次听过有这种东西,她好奇的问Satoshi:这个叫什么币的听起来好酷,但是我要怎么用它来和别人买东西呢?
Satoshi告诉Alice:这个很简单,妳可以用同样的方法,支付Bob金额10btc买一颗苹果,并且也记录在我的比特币帐本内,如图二所示。既然比特币真的可以买到东西,因此Alice很开心的收下了这种第一次听过的虚拟货币。
后来Alice与Bob想想,不对呀!我们彼此之间的交易帐本都储存在Satoshi的电脑里,都是他说了算,我们有什么保障呢?听到了这样的质疑,Satoshi说:没关系,那我把比特币帐本复制给你们,如图三所示,让你们手上也有一份,这样就可以了吧!

但是这样真的就没有问题了吗?

  1. 将比特币帐本复制给所有使用者,那电脑记忆体要多少才够?
  2. 每一笔交易都要通知所有使用者,那网路的反应够快吗?
  3. 使用者未必熟悉电脑操作,如何使用电脑进行交易?

比特币的运作方式

为了解决最后的几个问题,Satoshi用这样的方式来解决,如图四所示:

  1. 由Satoshi 发起建位第一个节点(Node),节点指的是在伺服器(Server)内安装「节点软体」(Node software)与「比特币帐本」(BTC ledger)。
  2. 号召网际网路上熟悉电脑操作的自愿者在世界各地建立节点,同时在伺服器内安装节点软体与比特币帐本。
  3. 节点与节点之间经由「点对点网路连线」(Peer to peer network connection)软体进行资料交换。
  4. 使用者安装手机应用程式(App)「比特币电子钱包」(BTC wallet),并且以手机付款与收款,使用非常简单。
  5. 手机应用程式将交易内容回传至节点,节点再将交易内容「溢散传递」(Propagating)给所有的节点。
因此在比特币的生态系里,所有的节点是由网际网路上熟悉电脑操作的自愿者在世界各地建立,节点指的是在伺服器内安装「节点软体」与「比特币帐本」;使用者安装手机应用程式「比特币电子钱包」,并且以手机付款与收款,资料经由网路传送给节点,再以溢散传递的方式传递给所有的节点,最后使全世界的节点内比特币帐本是同步的。

比特币与现有银行体系的差异

如果我们将比特币的生态系比喻为现在的银行体系,那网际网路上的节点就好像各家银行的分行一样,唯一的不同是在目前的银行体系里,世界各国都有中央银行来管理各家银行,属于「集中式拓朴」(Centralized topology),而比特币的生态系没有中央银行这样的角色,而是由分散在世界各地的节点互相沟通自主管理,属于「分散式拓朴」( Distributed topology),也有人称为「非集中式拓朴」(Decentralized topology)。

其实我们静下来想想,如果世界上真的有一个大帐本可以记录每一个人所有的资产与每一笔交易,而且大家都信任这个帐本,我们平常使用的纸纱根本就是多余的东西,其实现在我们常用的悠游卡、Apple Pay 这种电子货币就可以取代纸纱,唯一的不同是目前我们所使用的电子货币仍然是在现有的银行体系里运作,中央银行与各家银行仍然是主角,属于集中式拓朴,与比特币的分散式拓朴不同,这是两者之间最大的差异。

比特币的问题

前面的方法看起似乎可行,但是仍然隐藏了许多问题,例如:

  1. Alice 支付Bob 金额10btc 购买一颗苹果,我们如何确认这个购买的讯息真的是Alice 发送出来的?另外,如果隔天Alice 后悔了,否认她曾经做过这件事怎么办?最常发生这种事情的就是早期投资人经由电话向证券公司的营业员下单买股票,结果收盘股票跌了,这个时候投资人否认曾经打过这通电话,为了解决这个问题,证券公司只有用电话录音,但是在虚疑的电子世界里没办法录音,那么要用什么方法让「使用者不可否认」呢?
  2. 比特币帐本是储存在网路上熟悉电脑操作的自愿者所架设的节点(伺服器)内,这是很重要的东西,就好像银行里的帐本一样,这么重要的东西,我们如何信任这些熟悉电脑操作的自愿者不会去篡改呢?
  3. 比特币的节点是散布在整个网路的世界里,当使用者进行交易改变了某一个节点的比特币帐本,必须把这个改变通知散布在世界各地的节点,要如何把这个改变通知散布在世界各地的节点呢?

比特币的三大特性

上面提到的3 个问题,也就是比特币的三大特性,我们简单说明如下:

  1. 交易识别确认:使用公开金钥验证机制,确认这笔交易的真实性,使用者不可否认,而且是属于「可验证的匿名制」,保留货币交易的特性。
  2. 资料无法篡改:使用「区块」与「链结」确保交易资料无法篡改。其中「区块」主要是利用计算「条件杂凑」(Conditional hash)很不容易来保护资料,而「链结」主要是区块与区块之间利用「前区块杂凑」(Previousblockhash)链结起来,由于篡改区块内的交易资料已经很困难,区块与区块之间又被链结起来,等于篡改一个区块要把所有的区块都一起篡改,因此在合理的时间内根本不可能。
  3. 节点资料同步:使用「工作量证明」(POW:Proof of Work)达成收敛同步,由于比特币使用「分散式拓朴」,因此保留总困难指数高的分支,删除困难指数低的分支最后达成节点资料同步。

由于比特币不适合即时大量的小额交易,而且在法规上存有疑义难以被主管机关接受,因此有人将比特币的部分技术(主要是保护资料无法篡改的技术)抽离出来寻找新的应用,并且取了新名字「区块链」,也有人扩大区块链的定义,把前面提到的交易识别确认、资料无法篡改、节点资料同步3种技术统称为区块链。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。