區塊鏈的協定與架構
網友來信詢問到,「存在證明」的區塊鏈應用是如何實現。
問題的描述很正確,「區塊鏈系統是很基層,需要很多節點來維護的系統」;我們的系統是如何運作,以及連結的其他節點為何?
在回答這個問題之前,我們先綜觀一下區塊鏈的本質,以及我們的技術策略。
區塊鏈的本質,簡而言之,是一種去中心化的信任機制,你可以稱它為帳本,或者是資料庫。不論是運作良好的比特幣貨幣系統,Law4TW 的存在證明,或是國內外的其他應用,都離不開「去中心化」與「信任機制」這兩個關鍵因素。至於拜占庭將軍問題、深奧的密碼學原理、時間戳的運用、乃至工作量證明或權益證明機制,都是在這兩個關鍵因素之下的技術策略與運用。
以區塊鏈的開源本質來說,要開發一個新的應用,甚或創生一條新鏈,技術層面上並不是如此遙不可及。從區塊鏈 1.0、2.0、到未來更進一步的高階應用,真正關注的重點,在如何達到去中心化的良好自動化與永續運作,以及會採用區塊鏈技術的應用,所要求的高規格信任機制。
如此一來,問題的界定明確了。我們有以下選擇:
- 拉一條全新的鏈:對岸推出一個相關的應用,稱作「法鏈」。拉一條新鏈,如同已經存在並運作良好的其他區塊鏈,所需要建構的是一個完整的生態系。如果只有少數節點的存在,往上難以達到上述兩個關鍵因素的要求,往下也比不上集中式的資料庫來得有效率。因為這樣的原因,一條新鏈不會是我們現階段的選項。
- 運用既有的區塊鏈或側鏈:簡言之這是我們的現行作法,也是國外相關應用所採取的方式。區塊鏈的選擇,基於上述兩個關鍵因素的綜合評估。列入選項當中的,不外乎比特幣主鏈、以太坊、和其他的替代幣區塊鏈。以太坊的智慧合約,符合我們未來的需求,但幾個月前DAO事件所導致以太坊區塊鏈的硬分岔,回溯到事件發生的當下,從該時間點之後分岔出去,對信任機制要求比較高的應用來說較難接受。其意義在於,在該時間點之後發生的所有記錄全部不算數,都要重來;而以太坊區塊鏈其上的應用相當多元,雖然機率不高,但很難保證在最近的未來不會發生類似的事件。相對來說,比特幣主鏈身為第一條區塊鏈,已經良好運作非常多年,並且生態系完整,整體價值高,整個生態持續維護其良好的運作,因此成為我們在「存在證明」應用的選擇。
決定了技術策略,接著就是實際運作的方式。首先我們來看看在區塊鏈網路運作中存在的主要協定:
- 共識協定:區塊鏈網路中,最主要的構成是爭取記帳權的「全節點」,或稱為礦工。它們透過共識機制,讓出線的節點獲得權限,負責登錄這個期間所發生的交易記錄,產出一個區塊並嵌入既有的區塊鏈之中,並由此獲得新生比特幣或者交易費的獎勵。沒有出線的節點則負責驗證嵌入的區塊正確無誤,並自己保留一份副本。在主鏈的運作中,共識協定所採用的是工作量證明。
- 交易協定:某個位址的一位或多位擁有者,可以發出一條交易記錄,將上一筆交易序號的餘額,發往其他位址,類似一個轉帳動作。並且使用他或他們的私密金鑰,透過ECDSA演算法進行簽署,證明的確是從擁有者所發出來的有效交易。交易記錄會廣播到區塊鏈網路之中,並透過上述的共識協定,嵌入到區塊鏈當中永久存在,成為一筆確定的交易。
- 錢包與位址:位址的產生,直接來自於私密金鑰。經由ECDSA演算法,在轉變為公開金鑰之後,再編碼形成一個有效的位址。
- 點對點網路:屬於最底層的通訊網路,連結區塊鏈當中的各個節點。
「存在證明」避開了相當耗能的全節點運作。實際的作法,是運用上述協定,透過區塊鏈網路中既存節點的中繼,將記錄廣播到區塊鏈網路中,以嵌入下一個形成的區塊。這樣的好處是,雖然技術難度複雜一些,但是可以用相當精簡的方式運作,並為地球的環保盡一份力。
附帶一提,「存在證明」的主要應用範圍,包括:
- 不需要原始文件的揭露,就可以證明文件或權利的所有權。例如:著作權、專利、研發記錄等。
- 透過時間戳記,不需要經由任何的授權機構,就能證明特定文件或檔案存在的時間點。
- 驗證文件或檔案的完整性。例如:軟體的發佈等。
順帶報告以下兩點:
- 歡迎新夥伴的加入。我們也會在近期進行比較大幅度的更新改版。
- 原本預計進行的ICO計畫,將因為上述計畫暫時擱置。