標籤:系統 body 延長 第一個 hang 構建 script ebs on()
一 、什麼是區塊鏈?
區塊鏈(Blockchain)是由節點參與的分散式資料庫系統[1],它的特點是不可更改,不可偽造,也可以將其理解為賬簿系統(ledger)。它是比特幣的一個重要概念,完整比特幣區塊鏈的副本,記錄了其代幣(token)的每一筆交易。通過這些資訊,我們可以找到每一個地址,在曆史上任何一點所擁有的價值。
區塊鏈是由一串使用密碼學方法產生的資料區塊組成的,每一個區塊都包含了上一個區塊的雜湊值(hash),從創始區塊(genesis block)開始串連到當前區塊,形成塊鏈。每一個區塊都確保按照時間順序在上一個區塊之後產生,否則前一個區塊的雜湊值是未知的。這些特徵使得比特幣的雙花(double-spending)非常困難。區塊鏈是比特幣的核心創新。
區塊鏈概念的出現,首先是在中本聰的比特幣白皮書[2]中提到的,但是以工作量證明鏈(proof-of-work chain)的形式而存在,以下是中本聰對區塊鏈概念的描述:
時間戳記伺服器通過對以區塊(block)形式存在的一組資料,實施隨機散列而加上時間戳記,並將該隨機散列進行廣播,就像在新聞或世界性新聞群組網路(Usenet)的發帖一樣 。顯然,該時間戳記能夠證實特定資料必然於某特定時間是的確存在的,因為只有在該時刻存在了才能擷取相應的隨機散列值。每個時間戳記應當將前一個時間戳記納入其隨機散列值中,每一個隨後的時間戳記都對之前的一個時間戳記進行增強(reinforcing),這樣就形成了一條鏈(Chain)。
節點始終都將最長的鏈視為正確鏈,並持續工作和延長它。如果有兩個節點同時廣播不同版本的新區塊,那麼其他節點在接收到該區塊的時間上,將存在先後差別。當此情形,他們將在率先收到的區塊基礎上進行工作,但也會保留另外一條鏈,以防後者變成最長鏈。該僵局(tie)的打破,要等到下一個工作量證明被發現,而其中的一條鏈被證實為是較長的一條,那麼在另一條分支鏈上工作的節點將轉換陣營,開始在較長的鏈上工作。
比特幣錢包的功能依賴於與區塊鏈的確認,一次有效檢驗稱為一次確認。通常一次交易要獲得數個確認才能進行。輕量級(SPV )[3]比特幣錢包, 其用戶端在本地只需儲存與使用者可支配交易相關的資料,而不會儲存完整的區塊鏈。
區塊鏈技術是眾多加密數字貨幣的核心,包括比特幣、以太坊、萊特幣、狗狗幣等。維護區塊鏈的方式,有工作量證明(proof-of-work)、權益證明(proof-of-stake)等。
二、區塊鏈系統核心優勢
區塊鏈體繫結構的核心優勢包括:
- 任何節點都可以建立交易,在經過一段時間的確認之後,就可以合理地確認該交易是否為有效,區塊鏈可有效地防止雙花問題的發生。
- 對於試圖重寫或者修改交易記錄而言,它的成本是非常高的。
- 區塊鏈實現了兩種記錄:交易(transactions)以及區塊(blocks)。交易是被儲存在區塊鏈上的實際資料,而區塊則是記錄確認某些交易是在何時,以及以何種順序成為區塊鏈資料庫的一部分。交易是由參與者在正常過程中使用系統所建立的(在加密數字貨幣的例子中,一筆交易是由bob將代幣發送給alice所建立的),而區塊則是由我們稱之為礦工(miners)的單位負責建立。
三、區塊鏈工作原理3.1 什麼是區塊?
資料通過稱之為區塊(block)的檔案,永久記錄在數字貨幣網路上。它們好比是一個股票交易賬本。新的區塊會被添加到記錄(區塊鏈)的末端,而且一旦書寫就很難修改或移除。
3.2 .區塊結構
大小 |
欄位 |
描述 |
4位元組 |
區塊大小 |
用位元組表示的該欄位之後的區塊大小 |
80位元組 |
區塊頭 |
組成區塊頭的幾個欄位 |
1-9 (可變整數) |
交易計數器 |
交易的數量 |
可變的 |
交易 |
記錄在區塊裡的交易資訊 |
3.3 區塊頭
區塊頭由三組區塊中繼資料組成。首先是一組引用父區塊雜湊值的資料,這組中繼資料用於將該區塊與區塊鏈中前一區塊相串連。第二組中繼資料,即難度、時間戳記和nonce,與挖礦競爭相關 。第三組中繼資料是merkle樹根[4](一種用來有效地總結區塊中所有交易的資料結構)。
3.4 區塊頭結構
大小 |
欄位 |
描述 |
4位元組 |
版本 |
版本號碼,用於跟蹤軟體/協議的更新 |
32位元組 |
父區塊雜湊值 |
引用區塊鏈中父區塊的雜湊值 |
32位元組 |
Merkle根 |
該區塊中交易的merkle樹根的雜湊值 |
4位元組 |
時間戳記 |
該區塊產生的近似時間(精確到秒的Unix時間戳記) |
4位元組 |
難度目標 |
該區塊工作量證明演算法的難度目標 |
4位元組 |
Nonce |
用於工作量證明演算法的計數器 |
3.4 創始區塊
比特幣區塊鏈的第一個區塊,建立於2009年,我們稱之為創世區塊。它是比特幣區塊鏈裡所有區塊的共同祖先,這意味著你從任一區塊,循鏈向後回溯,最終都將到達創世區塊。
每一個節點都“知道”創世區塊的雜湊值、結構、被建立的時間和裡面的一個交易。因此,每個節點都把該區塊作為區塊鏈的首區塊,從而構建了一個安全的、可信的區塊鏈的根。
在chainparams.cpp裡可以看到創世區塊被編入到比特幣核心用戶端裡。
創世區塊的雜湊值為:
0000000000 19d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
你可以在任何區塊瀏覽網站搜尋這個區塊雜湊值,如區塊元(blockmeta),你會發現一個用包含這個雜湊值的連結來描述這一區塊內容的頁面:
http://blockmeta.com/block/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
在命令列使用比特幣核心用戶端:
$ bitcoindgetblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f{ "hash":"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", "confirmations":308321, "size":285, "height":0, "version":1, "merkleroot":"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", "tx":["4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"], "time":1231006505, "nonce":2083236893, "bits":"1d00ffff", "difficulty":1.00000000, "nextblockhash":"00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048"}
創世區塊包含一個隱藏的資訊。在其Coinbase交易的輸入中包含這樣一句話
“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
“財政大臣站在第二次救助銀行的邊緣”
這句話是泰晤士報當天的頭版文章標題,引用這句話,既是對該區塊產生時間的說明,也可視為半開玩笑地提醒人們 , 一個獨立的貨幣制度的重要性,同時告訴人們隨著比特幣的發展,一場前所未有的世界性貨幣革命將要發生。該訊息是由比特幣的創立者中本聰嵌入創世區塊中。
四、區塊鏈分叉
誠實礦工只建立最長有效鏈上的最新區塊。“長度”(Length)指區塊鏈的累計計算難度,而不是是區塊數目。當包括在鏈中的所有區塊以及交易都有效,且是從創世區塊開始的鏈,才是被我們承認的有效區塊鏈。
對於區塊鏈中的任意一個區塊,到達創世塊的路徑只有一條。然而,從創世塊開始,會有分叉的情況出現。當建立兩個區塊的時間差只有幾秒時,經常會建立出一個分叉[5]區塊。當發生這種情況時,節點就會在他們最先接收到的那個區塊上建立區塊。無論哪一個區塊包含在下一個區塊中,它都會成為主鏈的一部分,因為這條鏈更長。
短鏈(無效鏈)中的區塊沒有什麼作用。當比特幣用戶端切換至另外一條更長的區塊鏈時,短鏈中的所有有效交易區塊都重新添加到序列交易池中,且會包含在下一個區塊中。短鏈中的區塊獎勵不會呈現在最長的區塊鏈中,因此實際上他們是有損失的,這就是為什麼需要網路強制的100個區塊的成熟時間來讓產生存在。
在短鏈中的區塊,我們通常稱之為“孤兒塊”(orphans)。這是因為,在長鏈中這個產生交易並沒有父系區塊,因為這些產生交易在交易PRC列表中顯示為孤兒。一些礦池誤解這些資訊,聲稱他們的區塊是”孤兒“。事實上,這些區塊都有父系區塊,而且甚至可能有子系。
五、區塊鏈衍生概念5.1 公鏈(public blockchain)
公鏈,是指全世界任何人都可讀取、發送交易且能獲得有效確認的共識區塊鏈。公鏈的安全由工作量證明機制(pow)或權益證明機制(pos)等方式負責維護。它們是以經濟獎勵與加密數字驗證相結合的方式而存在的,並遵循著一般原則:每個人從中可獲得的經濟獎勵,與對共識過程作出的貢獻成正比。這些區塊鏈通常被認為是“完全去中心化”的。
5.2 共同體區塊鏈:(Consortium blockchains)
共同體區塊鏈,是指其共識過程受到預選節點控制的區塊鏈;例如,有15個金融機構組成一個共同體,每個機構都運行著一個節點,而且為了使每個區塊生效需要獲得其中10個機構的確認。區塊鏈或許允許每個人都可讀取,或者只受限於參與者,或走混合型的路線,例如區塊的根雜湊及其API(應用程式介面)對外公開,API可允許外界用來作有限次數的查詢和擷取區塊鏈狀態的資訊。這些區塊鏈可視為“部分去中心化”。
5.3 私鏈(private blockchain),又稱無代幣區塊鏈(Token-less blockchain)
完全私人的區塊鏈 , 是指其寫入許可權僅在一個組織手裡的區塊鏈。讀取許可權或者對外開放,或者被任意程度地進行了限制。相關的應用囊括資料庫管理、審計、甚至一個公司,但在很多的情形下,公用的可讀性並非是必須的。
關於沒有原生代幣的系統,是否能被稱為區塊鏈,仍然有著很大的爭議。一些人認為,沒有代幣的區塊鏈,可以一種分布式多版本並發控制(MVCC)資料庫[6]的形式而存在。多版本並發控制,可防止兩筆交易在資料庫中修改一個單一列,而區塊鏈,則是阻止兩筆交易在區塊鏈中的單個輸出( output)。
六、 公鏈和私鏈的特點
共同體區塊鏈結合了公鏈的“低信任”和私鏈的“單一高度信任” , 提供了一種混合的模式,而私鏈可以更精確地描述為帶有一定程度數字加密功能,可管理(permissioned)的傳統中心化系統。
公鏈特點:
- 中立、開放、去中心化;
- 不可更改,不可撤銷;
- 擁有網路效應。
- 抗審查性高;
私鏈特點:
- 規則易於修改(交易,餘額等);
- 交易成本低(交易只需幾個受信節點驗證即可);
- 讀取許可權受限;
七、區塊鏈發展及應用
區塊鏈技術作為數字貨幣的底層技術,已引起了金融世界的高度重視,包括高盛、摩根大通、滙豐銀行、花旗銀行、紐約梅隆銀行、巴克萊銀行、瑞銀(UBS)、蘇格蘭皇家銀行、摩根士丹利在內的眾多金融機構,均與區塊鏈公司進行了合作,研究區塊鏈技術在金融市場的應用。世界經濟論壇更是大膽預測,到2027年世界GDP的10%將被儲存在區塊鏈網路上[7]。
當前,與區塊鏈相關的應用及公司,包括但不限於:
公證防偽:公證通(factom)、Monegraph、Stampery、Bitproof、Uproov、Chronicled、Blockai;
智能合約:彩色幣(coloredcoin)、閃電網路(lightning-network)、側鏈(sidechain)、Tendermint、Chronicled、SuperNET、Blocknet、Tezos、Openchain、Crypti、Rubix、MultiChain、超級賬本(hyperledger)、The DAO(the-dao)、WAVES、Synereo、WINGS;
物聯網:ADEPT、Filament、Tilepay、Slock.it(slock-it);
身分識別驗證:BlockScore、Shocard、LaunchKey、BitNation;
預測市場:Augur、Truthcoin、Futarchy;
資產交易:OpenLedger、Medici、SETL、Symbiont、DAH、SETL、小蟻(antshares)、SWARM、Koinify、Lighthouse、Safe Cash(safe-cash)、tØ(t0)、Linq、Colu、元界(metaverse)、瑞資鏈金融(reitschain);
電子商務:OpenBazaar、Eris、BitXBay、Bitmarkets、Skuchain、Purse;
社交通訊:Gems、Codius、位元信(bitmessage)、Twister、Clucker、Diaspora;
檔案儲存體:MaidSafe、Enigma、Filecoin、公證通(factom)、Storj、Tau、BitCloud、IPFS、Mediachain;
資料API:Coinalytics、Blocktrail、BlockCypher、TradeBlock、Scorechain、Gem;
其它:Tierion、Safe Cash(safe-cash)、bitwage、Crypti、IPFS、DECENT、億書(ebookchain);
銀行結算:R3CEV;
注釋 (↵ returns to text)
- 區塊鏈英文維基:https://en.wikipedia.org/wiki/Block_chain_(database)↵
- 中本聰比特幣白皮書:http://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system↵
- SPV、SPV節點和SPV錢包: http://www.8btc.com/spv_spv_node_and_spv_wallet↵
- 精通比特幣:http://8btc.com/topic-mastering-bitcoin.html↵
- http://blockchain.hk/category/blockchain/↵
- 沒有代幣的區塊鏈是否具有價值:http://www.multichain.com/blog/2015/07/bitcoin-vs-blockchain-debate/↵
- 世界經濟論壇預測區塊鏈:http://www.coindesk.com/world-economic-forum-governments-blockchain/↵
區塊鏈(Blockchain)