區塊鏈1.0|比特幣 Bitcoin


一、區塊鏈技術

區塊鏈:一個去中心化、去信任化,且集體利用互聯網維護的可靠資料庫技術。

區塊鏈的原則是不相信任何中心機構,因為機構會腐敗;不相信任何個人,因為人性會貪婪。傳統實體貨幣是由國家創造,但為什麼只有國家創造的貨幣才有價值?以及人們會把實體貨幣存放在第三方的銀行,但第三方的銀行就一定可信嗎?

顯然是因為人們相信國家創造的貨幣是有價值的,所以法定貨幣才有價值;因為人們相信第三方的銀行是公正,所以人們願意將貨幣寄放在銀行裡。但歷史告訴我們,這些實體貨幣有可能因為國家腐敗,而變成廢紙;這些貨幣有可能因為銀行破產,而追討無門。

如果國家與第三方機構都不能相信,那麼我們該怎麼辦?區塊鏈技術正試圖解決這問題的方法。

二、區塊鏈1.0:比特幣 (Bitcoin)

(一)比特幣交易

比特幣交易的標的是UTXO (Unspent Transaction Output, 未花用的交易輸出),UTXO可視為尚未使用的貨幣。因為UTXO是我從某人那邊得來的,故稱作交易輸出;而我給別人錢,就稱作為交易輸入。交易輸入(input UTXO)會紀錄這筆UTXO和解鎖資料,解鎖資料是要證明這筆UTXO是屬於我的。交易輸出(output UTXO)會紀錄多少錢和鎖定條件,對方必須滿足鎖定條件,才能獲得這筆錢。

(二)比特幣使用者

比特幣的使用者擁有私密金鑰、公開金鑰與比特幣地址。我自己會產生私密金鑰,私密金鑰會對input UTXO做簽章與產生公開金鑰,公開金鑰能產生比特幣地址。因此對方可以利用公開金鑰去驗證簽章,以表示這筆UTXO是我的,而對方可將錢付到我的比特幣地址。

(三)比特幣驗證

如果(1) input UTXO存在於區塊鏈上、(2) input UTXO沒被花用、(3) input  UTXO屬於對方,則這筆交易即為合法的。如果交易的金額大於等於對方所擁有的金額,則這筆交易即為合理。

驗證通過後,交易會被加入到區塊上,區塊會被記錄到區塊鏈上,交易被礦工執行(input UTXO移出,output UTXO移入)後,則這筆交易的資金及為轉移成功。

(四)比特幣區塊鏈生命週期 

比特幣區塊鏈生命週期:交易產生→生產傳播→交易收集→採礦競賽→採礦優勝者→採礦失敗者。

一開始使用者產生交易,並透過P2P網路廣擴此交易,其他人對交易作初步驗證交易合法性與合理性後,再傳播以達集體驗證。

礦工會收集交易、驗證交易、收集交易小費+出礦之獎勵、產生創幣交易(把這些獎勵付給自己)、將收集之交易(含創幣交易)加上區地頭,包裝成一候選區塊(每10分鐘一次)。

第一個採礦成功者,將區塊鏈接,執行每一筆交易(比特幣轉移)、改變區塊狀態(消耗舊UTXO,產生新UTXO),將優勝區塊放在區塊鏈最上端。將優勝區塊廣擴,此時在此區塊中之創幣交易被確認、優勝獎勵(6.25BTC加所有小費)會付到礦工同的公開金鑰上。

採礦失敗者將驗證優勝區塊是否正確、合法、合理。若驗證無誤,將優勝區塊放在區塊鏈最上端,更新UTXO pool,再接再厲,期待下一回合勝利。

(五)比特幣缺點

1.圖靈不完備(Turnning Incomplete) 

為避免羅輯炸彈,無法設定太複雜之鎖定條件(只有五種),邏輯炸彈會使電腦陷入無限迴圈,最終可能導致當機。

2.價值盲(Value-blindness)

無法依尚未發生的情況,設定付款條件。

3.缺少狀態(State-blindness) 

UTXO僅已用/未用兩個狀態。

4.區塊鏈盲(Blockchain-blindness)

區塊鏈上無區塊之標示或指標,不易搜尋。

相關文章

留言