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

公开金钥加密(Public key encryption)

公开金钥加密的每一位使用者必须自行产生自己所拥有的金钥对(Key pair),包括一把「私密金钥」(Private key)与一把「公开金钥」(Public key),加密与解密使用不同的金钥,使用者必须秘密地保存自己的私密金钥,并且在网路上发表公开金钥。公开金钥可以用来加密,也可以用来验证,验证的流程如图一所示,传送端使用自己的「私密金钥」对文件(明文)进行加密(签署文件)产生密文再传送到网路中,接收端使用传送端的公开金钥解密(确认签署者)得到明文,如果可以解密代表确认文件真的是传送端的某人传送出来的,数位签章就是使用这种方式来验证文件的真伪。

交易识别确认

假设Alice 支付Bob 金额10btc 购买一颗苹果,则她的手机应用程式(比特币电子钱包)使用Alice 自己的私密金钥将讯息加密,这个动作称为「数位签章」(Digital signature),想想这不就好像我们在交易文件上签名一样吗

接下来再将讯息传送到节点A,节点A再使用Alice的公开金钥将讯息解密,如图二所示,如果真的可以解开代表这个讯息确认是由Alice发出来的,而且Alice也不可否认,因为只有Alice的公开金钥能够解开Alice私密金钥加密过的讯息。

比特币帐本(BTC ledger)

比特币帐本是由一个一个的「区块」(Block)连接而成的「链结」(Chain),因此这种技术又称为「区块链」(Block chain),如图三所示,每一个区块记录着付款人与收款人以及交易金额,每一个区块都记录了许多笔交易,区块与区块之间再链结起来,例如:区块3链结到区块2,再链结到区块1,最后再链结到区块0。

值得一提的是,实际上比特币帐本并不是像Excel一样的表单,基本上比特币是一种虚拟电子货币,因此比特币帐本其实就是一个电脑程式,里面有许多栏位,其中包括:

1.表头(Header)

previousblockhash:前一个区块的杂凑值(Hash value)。

difficulty:杂凑(Hash)必须小于「困难指数」(Difficulty)。

time:代表这个区块形成的时间,以Unix作业系统格式表示。

nonce:计算杂凑值所使用的参数。

merkleroot:储存「交易」(Transaction)的「摘要」(Summary)。

2.交易(Transaction)

tx:储存「交易」的栏位,每一个区块可以储存多笔交易。

3.其他栏位

confirmations:代表这个区块已经被35,561个节点(Node)确认过了!

height:代表这个区块在比特币区块链中的排序为第277,316个。

4. hash:利用杂凑演算法(Hash algorithm)计算出杂凑值。

杂凑演算法(Hash algorithm)

杂凑演算法是一种从资料中建立「数位指纹」(Digital fingerprint)的方法,可以将任何长度的资料转换成一个长度较短的「杂凑值」。某一段资料对应到某一个杂凑值,不同资料具有不同杂凑值,就好像不同人具有不同指纹一样,所以称为「数位指纹」,我们可以利用杂凑值来确认资料有没有被篡改。

区块(Block) 的意义

「区块」是指电脑中的一组资料,以事先设定好的栏位与格式储存,我们可以将图四的比特币帐本看成是一个区块,我们的目标就是要将这个区块的资料「封锁」(Block)起来让别人无法篡改。

问题是,如果「重新计算杂凑」很简单,则这整个保护机制就无效,而且我们不只需要「资料篡改可以检查出来」,更需要「资料无法篡改」,因此科学家发明了「条件杂凑」(Conditional hash),规定「杂凑」必须小于「困难指数」,让杂凑很难重新计算,而保护「交易」的内容不被篡改。

【参考资料】封锁的方法是利用杂凑演算法结合条件杂凑,由于流程比较复杂,有兴趣的人可以参考《知识力专家社群:区块链的原理》。

比特币的采矿(Mining)

讲到比特币大家一定常常听到网路上有许多人在「采矿(Mining)」,到底什么是比特币的采矿呢各节点熟悉电脑操作的自愿者计算「杂凑」小于「困难指数」的动作称为「采矿」,而我们所要采的「矿」就是计算出「杂凑」小于「困难指数」。进行采矿的人称为「矿工」(Miner),计算出一个区块可以获得50btc 的酬劳,如果其他支付交易有给手续费,则矿工还会获得手续费。比特币设计大约每10 分钟采出一个区块,每采出21 万个区块(大约4 年)酬劳减半,因此比特币总数不超过2,100 万个(btc) ,总数固定可以提升比特币的价值。

【参考资料】比特币采矿是利用不停的重覆计算找出「杂凑」小于「困难指数」,由于流程比复杂,有兴趣的人可以参考《知识力专家社群:区块链的原理》 。

比特币2009 年发行矿工酬劳50btc,2012 年12 月第一次减半酬劳剩下25 btc,2016 年7 月第二次减半酬劳只有12.5btc,酬劳下降使手续费成为采矿动机。为了维持大约每10 分钟采出一个区块,产生新区块的难度会定期调整,每采出2,016 个区块(大约两周)会自动调整接下来2,016 个区块的采矿难度。比特币矿工最早使用Intel 或AMD 的中央处理器(Central Processing Unit,CPU)产品来挖矿,2013 年矿工开始使使用图形处理器(Graphics Processing Unit,GPU)、现场可程式化逻辑阵列(Field Programmable Gate Array,FPGA)来进行,甚至特定应用积体电路(Application Specific Integrated Circuit,ASIC)投入,使个人矿工已经没有收益。

区块链(Block chain)的限制

区块链的技术是电脑科学家创造出来的东西,它有许多优点产生许多创新的应用,但是同样的也有许多限制,目前比特币遭遇到的困难主要有下列几项:

比特币大约每10 分钟采出一个区块,可储存1MB 的资讯,由于每一个区块容量是有限制的,随着交易量愈来愈多,容量的限制会使处理速度受到影响,这个问题可以经由变更比特币的设计来解决,但是目前比特币社群尚无共识。 由于区块容量的限制,再加上工作量证明也需要时间处理,因此比特币无法处理超过每秒7次的交易,和目前广泛使用的VISA这样能够每秒处理数万次交易的支付系统相差很多,因此比特币不适合即时大量的小额交易。 使用「可验证的匿名制」,可验证代表可以确认这笔交易的真实性,匿名制代表并不知道发动这笔交易的人是谁,因此容易造成交易追踪断线变成不法人士的洗钱管道,例如日前的勒索病毒「WannaCry」肆虐全球,怪客向受害者勒索价值300美元的比特币,使用比特币就是因为不容易追踪。 分散式拓朴没有中央控管机制会造成交易不确定性、究责与赔偿困难,而且服务提供者(节点或电子钱包)的技术可能会有落差,那一天真的发现自己的比特币不见了!或是已经完成的交易却无效,基本上很难找到负责的人。 由于比特币在法规上存有疑义难以被主管机关接受,因此有人将比特币的部分技术抽离出来寻找新的应用,并且取了新名字:区块链(Block chain),后来发现区块链落实困难,也很难直接套用到现用的其他应用上,因此开始演化并且出现新名字,例如:分散式帐本(Distributed ledger)、分享式帐本(Shared ledger)、超级帐本(Hyper ledger)等。 比特币(Bitcoin)的目标明确,就是要取代传统货币扮演货币支付的角色,但是仍然有许多困难必须克服,包括:重复支付、结算确认、交易同步等。

区块链(Block chain)的应用

比特币主要必须达到3 个特性:

交易识别确认:使用可验证的匿名制,确认交易真实,使用者不可否认。 不可篡改否认:使用区块(Block)与链结(Chain)确保交易资料无法篡改。 节点资料同步:使用工作量证明(Proof of Work,POW)达成收敛同步。

区块链是集合了几种软体程式的技术,由全世界许多节点(电脑主机)组成的的系统,只要满足3 个特性的应用都可以用区块链来做,由于区块链落实困难开始演化,并且出现新名字:分散式帐本(Distributed ledger)、分享式帐本(Shared ledger)、超级帐本(Hyper ledger)。

比特币在法规上存有疑义难以被主管机关接受,因此有人将比特币的部分技术抽离出来寻找新的应用,并且取了新名字:区块链,可能的应用包括:

加密数位货币(Crypto currency):必须考量主管机关接受程度,例如:比特币、美国邮政货币(Postcoin) ;考量是否适合应用在高频交易,Ripple将其应用在非即时的跨国金融机构外汇交换业务可能更合适。 有价资产登录(Value registry):Factom、SmartContract将分散式帐本应用在所有权与存在证明(Proof of Existence and Possession,POEAP),这类的应用该是目前区块链最成功的例子。 价值型联网(Value web):进行有价资产登录(Value registry)、智慧型合约(Smart contract)、国内支付(Domestic payment)、国际支付(International payment)、贸易金融(Trade finance)、资本市场(Capital market)。 价值生态系(Value ecosystem):应用在非金融服务,Ethereum将其应用在公开帐本(Public ledger)提供各种商业应用;R3CEV将其应用在私密帐本提供各种金融应用。