大家都在說區塊鏈(Blockchain),那到底什麼是區塊鏈呢?知道上篇《淺談比特幣(Bitcoin) BTC》裡面提到的特點以外,區塊鏈本身到底是如何構成的呢,這篇就來簡單講講區塊鏈如何组成的,以下的內容都盡量用白話寫,所以說很多部份說實在的沒法細講原理,有興趣的就自行去Google看看吧,會有很多更詳細的解釋。
區塊(Block)
簡單來說,它就是一個打包交易資料的結構,例如我轉給B一個BTC,然後B轉送一個BTC給C之類的,把這些資料的記錄打包起來的東西。
由上可以看每個區塊裡面都會包含著以下幾個內容:
Prev_Hash:上一個區塊的哈希值(Hash值),就是上一個區塊所有資料的濃縮,同時也表示上一個區塊資料不會被竄改的特性,因為每產生任何一個新的區塊都會帶著上個區塊的縮影,而那縮影裡面又有更多以前區塊的縮影。
Timestamp:當前時間/時間戳記,就是用來記錄區塊記錄到交易的時間,如此一來可以幫助區塊鏈進行區塊排列,以減少先後爭議。
Tx_Root:數筆交易資料的記錄,這內容記錄著這個區塊裡面所有記錄到的交易們,然後以名為Merkle Tree的紀錄方式進行紀錄,簡單來說就是把每兩筆交易進行透過哈西方程式(Hash Function)進行加密,就是下面虛框裡面做的事情,最後得出這個內容,有興趣的可以去Google "Merkle Tree",會有很詳細的解釋。
Nonce:由礦工產生的數字,在挖礦的過程中,礦工會一直替換這邊的數字來猜比特幣區塊鏈要求的Hash值(想成解數學聯立方程式的概念),猜對的Nonce就會被記錄下來,生成區塊(下篇講挖礦的話會再細講)
以下兩個內容雖然沒在圖上特別標示出來,但其實也會包含在區塊內部
Difficulty Target:可以說是困難值或者挖礦難度,因為它代表著節點要挖出低於困難值的Hash值,平均需要花多久,而以比特幣系統來說,平均設定是10mins,但當全球算力提升時,比特幣系統就會調整,把難度上調,(如果有時間寫挖礦的內容就會解釋了)
Version:就是區塊數據的版本號,用來追蹤軟體和協議升級
現實情況:
目前一個比特幣區塊僅能記錄大約2,000筆交易內容,然後依據比特幣網路設定的10mins產出一區塊的速度來看,等於一秒中比特幣網路僅能處3~5筆交易內容,這對於現在社會的交易需求是極度不夠用的,因此也出現了擴容情況(如:2017年Bitcoin Cash, BCH的出現)和其他鏈(如:以太鏈)
那什麼是區塊鏈呢?
其實區塊鏈,就是把所有區塊用單一方向且呈線性的方式串接起來,就是區塊鏈,如下圖所示,Block 10 接著 Block 11再連接Block 12,以此類推,網路上如果看到非線性的區塊鏈的圖,可能是錯的。
幣圈 Update
前十大幣種+其市值
根據CoinMarketCap的數據 as of 22:00 pm, 2/16/2020, UTC+8
1.Bitcoin (BTC)比特幣:62.19%
2.Ethereum(ETH)以太幣:10.08%
3.XRP瑞波:4.59%
4.Bitcoin Cash (BCH):2.76%
5.Bitcoin SV (BSV):1.94%
6.Litecoin (LTC)萊特幣:1.71%
7.Tether (USDT)泰達幣:1.59%
8. EOS柚子:1.49%
9.Binance Coin (BNB)幣安幣:1.29%
10.Tezos (XTZ):0.75%
幣圈總市值:$290,931,004,032
有趣的部分在於2017年比特幣大漲到2萬多之前,其市值一直在80%以上,但開始牛市上漲之後,其市值減少40%左右,如今又從70幾%下降到62%,如果一直下降下去,是不是又要開啟另一波牛市?
Sources:
https://www.mile.cloud/zh-hant/what-is-blockchain/
https://bitcoin.org/bitcoin.pdf
https://www.samsonhoi.com/274/blockchain_genesis_block_merkle_tree