世界上最早的銀行誕生於1171年的義大利,名為威尼斯銀行,掐指一算,中央銀行的機制已存在世界上846年,你曾想過這個已經存活八個世紀的銀行也有派不上用場的一天嗎?而區塊鏈的存在,證明這一天極有可能到來。

要知道如何設計區塊鏈,就要從了解什麼是區塊鏈開始。簡單來說,區塊鏈就是去中心化的資料庫。

值得注意的是,在區塊鏈的設計中,帳簿管理人分散在世界各地,不用記名,彼此也互不相識,且對帳簿管理也沒有所謂的權利和義務,在這麼分散的管理機制下,如何確保帳簿的交易資料不會被竄改,也不致發生雙重支付(double spending)的情事,是件困難事。

為了確保正常運作,在區塊鏈裡存在三個靈魂人物,第一個是專門產生交易紀錄的人、也就是客戶(client)。

其次是現在最紅的挖礦者(miner),負責將資料庫的交易紀錄以事先設定好的欄位與格式儲存起來,並使用「條件雜湊(conditional hash)」,計算出小於困難指數(difficulty)的雜湊值(hash value),所有的挖礦者都在比賽誰先算出雜湊值,算出雜湊值就可得到區塊鏈獎勵,也就是最近飆翻天的比特幣。挖礦者找到新區塊的雜湊值後,就可以數值送交給參與者(participants)來驗證,以維護區塊鏈的正確性。

為了讓所有的區塊都串起來,挖礦者算出新區塊的內涵還不夠,還要再加上上一個區塊的雜湊值,從而得出一個新的雜湊值才行。新算出來雜湊值的內涵,必須隱含上一個區塊的雜湊值,這樣才有可能將盤古開天以來的區塊全都串起來,形成真正的區塊鏈,而且每一個區塊緊緊相連,一旦有人想修改某個區塊內容,其他區塊也須同步異動,使得要更改區塊鏈上的任一個內容,變得極為困難。

兩大重要機制

形成區塊鏈中有二個重要機制,第一是獎勵,這就是要花很多時間和電力去「驗證系統」(proof-of-work)的挖礦者足夠的誘因,才能誘使挖礦者源源不絕地投入挖礦,而區塊鏈中的獎勵指的就是比特幣。

另一個機制是民主表決(voting),工研院資訊與通訊研究所所長闕志克強調,儘管多數的區塊鏈都朝線性發展,但有時也會出現分枝,這種狀況在區塊鏈中是被允許的。

不過分枝一般不會持續太久,因時間一拉長,挖礦者就會往多數的方向聚集,因為在挖礦過程中,愈多人去算就能夠愈早解謎,愈有可能贏,這就是民主表決。

一般來說,一個新的區塊如果後面可以順利再接上二個區塊,意味著這個新區塊已獲得確認,而在區塊鏈形成的過程中,到底接下來哪一個區塊才是正主?全憑挖礦者的自由意志決定,也就是說區塊鏈的形成每一個步驟都是透過挖礦者民主表決的結果。

隨著區塊鏈應用逐漸成熟,區塊鏈的形態也會愈來愈多元,除了公有鏈、私有鏈外,就連混合鏈也會應運而生。

所謂公有鏈,指的是任何人都進行讀取並隨意發送交易資料,一切運作端賴信任機制運行的區塊鏈,不過因為從交易完成到交易紀錄被存取,中間必須經過很多關卡,較不具效率,比如現行的比特幣採行的就是公有鏈。

而私有鏈則全然相反,只限定特定個人可以參與,由於私有鏈的成員在參與私有鏈前,就已經通過身份認證,所以在交易時就可以免除掉一些認證的繁複手續,資訊處理速度相對較快,不過缺點是不夠開放,很多產業、包含銀行在內,就對私有鏈很感興趣。

未來公、私有鏈之間的界限會愈來愈模糊,不再是所有節點都擁有一樣的權限,而會針對不同的節點做不同的分工,以致部分節點只能查看部分區塊鏈數據,僅有小部分的節點可以下載完整的區塊鏈數據,也從而產生了全新的混合鏈。

舉例來說,如果有五個人各自享擁有不同資料來源,卻不想對外分享內容,但如果可以將五個人的資料整合形成混合鏈,就能產生全新的經濟效益。此時可以透過第三方安全精算(secure multi party computation)機制,既可以讓所有人保有資料的私密性,又可以透過資訊整合產生綜效,這種所有權保留的合併(ownership-preserving data amalgamation)是工研院現正在研究的新模式。

兼具公開隱私為一大難題

要維護區塊鏈上資料能同時兼具公開與隱私特性則是另一難題,區塊鏈上的交易基本資料為交易雙方帳戶與交易金額,若要滿足僅有交易雙方能夠看到該交易實際內容,而驗證者又必須在不知道交易雙方帳戶與交易金額的條件下確認該交易的合法性,則需加入許多資訊安全與密碼學的技術,舉例而言,橢圓曲線加密(elliptic curve cryptograph,ECC)性質可達到隱匿地址與交易金額遮罩,或是透過環簽名(ring signature)機制混淆交易雙方帳戶。

無論區塊鏈上的資料公開透明或具隱私性,亦需考量資料監管與追蹤追溯的問題。例如在金融相關應用當中,監管單位的存在即有其必要性與適法性,因此需設計監管單位具備觀看所有交易資訊的權限,而資料的追溯分析則有助於地方政府在必要時能追查交易與帳戶的流動,藉以遏止非法交易的事件。

此外,區塊鏈的處理效能太慢,因為要完成每筆帳本記錄都需要經過好幾道流程,以致區塊鏈存放資料的速度,遠比傳統資料庫要慢上許多。另一個問題是挖礦者必須花費很多時間和電力去做驗證系統,是不環保的資源利用。

再者,區塊鏈的資料正確性(data veracity)也存在著盲點。闕志克指出,雖然區塊鏈可靠著數學演算法來驗證資訊的正確性,確保寫入的資料日後不會遭到竄改,但無法驗證一開始輸入的資料是否正確,若一開始寫入的資料本身就錯誤卻無法被查覺,都是區塊鏈發展可能會面臨的阻礙。(摘自工業技術與資訊第316期)

#私有鏈