探討區塊鏈的興起,我們必須先了解比特幣的運作方式和原理。比特幣是一種全球通用的加密網際網路貨幣和線上支付系統,它是經由一種稱為「挖礦」的密碼技術產生,參與者貢獻他們的計算能力處理交易驗證並記錄到公開帳本中,獲取比特幣作為報酬。使用者可利用電腦、手機、平板上的電子錢包軟體來進行比特幣的交易。2009年1月比特幣網路正式上線後,由於比特幣缺乏法定監管的機制,且比特幣基本上屬於匿名交易,所以常被用於地下經濟,成為不法分子洗錢或黑市買賣的管道,加上比特幣的匯率波動十分不穩定,較不具價值儲存等功能,故非大眾普遍接受的交易媒介。

區塊鏈

在比特幣的應用中,區塊鏈是一個分散式的帳本系統,採用密碼技術(挖礦)來確保交易的正確性(挖礦的原理將在後面介紹),不同的區塊鏈技術採用不同的共識機制。最早使用區塊鏈這個技術的例子即是比特幣的交易系統,比特幣參與者們集體維護一個具時序性的帳本系統(區塊鏈)。之中的每一個區塊網路之參與者都是一個節點,一套完整的帳本因為這些節點而得以保存,帳本中記錄了所有的歷史帳戶訊息,任何一個節點要發起一個交易行為都需要將交易行為訊息傳遞到區塊網路中其他的每一個節點,如此可以確保保存於所有節點上的帳本能精確地更新且驗證這一筆交易行為。

挖礦

最古老的區塊鏈共識機制是由一種稱為挖礦的過程產生,目的是決定記帳權共識:確認交易並把交易納入區塊鏈之中。挖礦能確保區塊鏈時間順序的正確、保護網路的中立性。

有待確認的交易資料會被打包至某個區塊之中,而為了防止區塊被惡意篡改,區塊必須滿足一項非常嚴格的密碼學規則,隨意篡改的區塊會因為不符規則都變得無效,藉由這個機制,沒有一個人能控制區塊鏈中能包含哪些交易,或是任意更動區塊鏈的某一部份。

Andreas M.Antonopoulos在《精通比特幣》一書中對挖礦有很好的比喻,我們可以把挖礦想像為一個大規模的多人數獨遊戲,一旦有人解出答案,這個數獨遊戲會根據解出所花的速度自動地調整困難度,若太快被解出則增加難度,若太慢被解出則降低難度,使得每次遊戲需要大約10分鐘被解出。一個幾千行乘幾千列的數獨,就需要很多時間才能被解出。一個已經近乎被完成的數獨,則可以很快地被驗證。我們認為這每十分鐘進階一次State的State Machine,可說是用算法算力保護的State Machine,形成強大的Trust Machine,是區塊鏈的最重要的創新點。所以我們認為區塊鏈的本質是這個State Machine和Trust Machine,而非應用層面的Database或P2P Network觀點。

用算法算力保護的State Machine,形成強大的Trust Machine,是區塊鏈最重要的創新點。

公鑰、私鑰、地址

在一筆交易中,我們只會看到收款對象的地址,一個收款者能夠擁有不只一個地址,也就是說,地址與收款者並無法做到準確的對應。每筆交易的付款與收款對象均可以有一個或多個,由於我們無法得知這些對象實際上是否為同一人,故能達成基本的匿名性。相對於傳統中心化機構的會員申請,要產生一個地址是相對容易很多,只要符合一定的格式,都會被網路所接受。地址的產生,是私鑰透過一連串的雜湊函式產生,後段我們將對私鑰(Private Key)、公鑰(Public Key)和地址(Address)的產生方式,做進一步說明,並介紹他們之間的關係。

私鑰(Private Key)

私鑰可以用來管控相對地址的所有資產,從資產的傳送到交換,都需要用私鑰來簽名認證。私鑰基本上可以寫成256位元的二進位數,所有符合此一格式的私鑰約有2的256次方個,寫成十進位的話足足有78位數,所以只要隨機程度足夠,非常不容易跟別人相同。要產生一個隨機程度足夠的私鑰,最簡單的方法是丟一枚硬幣,人頭取1,字面取0,這樣一直丟個256次,就會得到一組跟其他人不一樣的私鑰。從私鑰到地址的過程中,私鑰會先透過一個橢圓曲線加密的對應函數得到一個長度為512位元的公鑰,橢圓曲線加密的數學式在此不再贅述。

公鑰(Public Key)

公鑰最主要的功能,為驗證財產的擁有權。每筆交易中需要轉出任一財產的時候,須提出公鑰以認證該財產擁有權,並以私鑰對整筆交易簽名認證,用以確定財產擁有者同意此一財產的轉出。當礦工在驗證交易時,會檢查該公鑰是否配對於該財產,也即要能與該資產的地址對應,並同時檢查此一簽名是否屬於該擁有者。雖然私鑰僅能單向轉換成公鑰,但由於公鑰對私鑰而言,公鑰是取得私鑰的最後一道防線,所以我們會希望公鑰盡可能不要太常出現在公開的區塊鏈上,而前言提到,在轉出財產的時候一定需要公鑰來驗證,所以我們只保護收入端所顯示的公鑰。在收入財產的部分,我們再對公鑰做一層的雜湊函式,用以保護公鑰,此一雜湊函式的輸出即為地址。

地址(Address)

透過由SHA256與RIPEMD160所組成的雜湊函式,一個512位元的公鑰將會先由此雜湊函式轉換為160位元後,再編碼為地址,因此轉換途徑依序為私鑰、公鑰以及地址,僅由後者是難以回推出前者的。此地址可用於收取別人轉交給你的財產,擁有此地址相對應的公鑰與私鑰,便可以再把裡頭的財產轉出。

小結

區塊鏈技術最早是由於比特幣的流通為人們所認知,但是區塊鏈的應用卻不僅於此。過去幾年比特幣與其他使用區塊鏈技術的虛擬貨幣(統稱為Altcoins)的發展熱潮逐漸消退,市場也開始發覺區塊鏈的真實價值遠遠不僅是促成一個無政府虛擬貨幣的流通。北美與歐洲的投資人、科技新創、金融機構、以及政策制定者目前關注的方向,已經從比特幣轉移到區塊鏈技術與既有產業生態的連結。

區塊鏈技術應用範疇

延續上面介紹,讀者對於區塊鏈當有初步認識,本段落將就其現階段的發展狀況進一步闡述。區塊鏈在現階段的發展,其實已漸漸不再是一項新的技術,若以交通舉例,最初的區塊鏈可能是一家汽車公司推出的一款高級車內之技術,此款車有特別的引擎系統與路線規劃能力,能幫助駕駛人更快也更有效率的到達目的地。然而現在的區塊鏈發展已不僅於此,除被廣泛應用在其他的車款,甚而如店家等其他定點,當更多的車款與商家加入這項系統和使用其路線規劃技術,路線的規劃就更為準確,也因此,區塊鏈相形而言是一項基礎建設。本段落將就幾項較知名的應用做較為詳細的介紹和討論,發揮一些筆者的想像力,以期望協助讀者更加明白其中意涵。

以Nasdaq之Linq為實例探討

知名美國證券交易單位Nasdaq亦以區塊鏈技術為基底,發展了一項相關應用產品「Linq」,在去年年底問世,為業界首個在證券領域使用區塊鏈技術的私人企業。以證券交易為例,當每筆交易被數位化,且紀錄時間能被更加細化且有效率的被整理並記載於帳本中,舉例而言,從以日為單位的紀錄到以10分鐘為單位的紀錄再甚至到秒鐘等更小的時間單位,此技術不但大幅降低了記錄時間成本、金錢成本,也由於每筆交易被更有系統地記錄著,在未來若要追蹤某筆交易時也大幅提升了效率。

讓我們以搜尋引擎舉例做比喻,試想過去在尋找資料時,我們若想知道某個時期貨幣的發展狀況,例如「唐朝的貨幣」,我們得從大批的圖書分類中先找到商業類別,再找到其中的金融類別,接著再從金融類別的圖書中找到所需要的和貨幣關聯之書籍,最後再去尋找貨幣發展歷史,然而有時此項資訊沒有記錄在貨幣的專書中,我們若想找到這項資訊反而得去尋找歷史書籍,找到唐朝的歷史,再於其中尋找關於其貨幣的使用與發展,如此才可找到我們想要的資訊,既耗時又費心力,而搜尋引擎直接幫助我們把所有資料系統化完整地記錄儲存,我們僅需在搜尋列上輸入貨幣、空格、唐朝即可找到相關的訊息,大幅降低了搜尋的成本。而此項應用的關鍵在於搜尋引擎如何將龐雜的訊息整理收納,讓不同類型的資訊互通,並在搜尋時有效率地提供我們所需要的資訊。

在金融領域和區塊鏈的應用中,我們可以想像我們想查詢某家在Nasdaq上市之公司某一天某一時間點的證券交易狀況,由於系統化的整理歸類,我們可以更有效率地找到該家公司在我們所期待的交易日時間的交易狀況,此項優勢除了讓公司自己有更好的參照數據,還讓相關投資人能更快速的針對該公司做研究,此外,對於懷疑其犯罪的相關單位,例如當相關單位質疑其有內線交易之嫌,也可以透過搜尋該期間交易狀況並和其他數據做比對,基於交易紀錄時的不可竄改性和可追蹤性,讓資訊更加透明,也因事後被找查紀錄更加容易,協助降低犯罪的可能性。「透過此項區塊鏈應用,我們將革新資本市場的基礎系統」Nasdaq的執行長Bob Greifeld在Linq推出並使用後振奮的如此說著,當提及的是在Nasdaq應用中最大的改變是降低其清算交易所需的成本。

上述介紹的乃是區塊鏈對於資料庫技術革新所可能造成的改變,除了資料庫外,區塊鏈仍有其他應用範疇。

作者簡介


Advertisement

更多 iThome相關內容