近年,區塊鏈的技術受到不少人的關注,而且一致看好它未來。其實區塊鏈不是單一的創新技術,它是由不同範疇的舊有技術互相配合所組成的,當中包括了密碼學、演算法、經濟模型等等。
大家有接觸加密貨的朋友,都應該聽過區塊 (Block)、挖礦 (Mining)、挖礦難度(Difficulty)、錢包 (Wallet) … 但究竟它們當中有什麼關係呢?就讓我們逐一看看。
1. 區塊鏈 Blockchain
區塊鏈的是一整個去中心化帳簿系統,由一本又一本的小帳簿連在一起。「中本聰」使用客戶端軟件,開採了第一個區塊 ( 創世區塊 Genesis Block ) ,往後開採的所有區塊 ( Block ) 都會一直連接下去,形成一條鏈形,這便稱為區塊鏈 ( Blockchain )。
區塊的用途是儲存網絡上的交易記錄,而網絡中所有用戶都能擁有整個區塊鏈的帳簿,達到去中心化帳簿的目的。在區塊鏈的所有交易亦是公開和透明,方便大家可以追尋交易的來源。
2. 挖礦 Mining
而每個區塊是由挖礦 ( Mining ) 的過程所創建,比特幣的區塊鏈是使用SHA-256演算法,它是Hashcash ( 雜湊現金演算法 ) 中的其中一個演算法。
挖礦就是讓礦工 ( Miner ) 花費電腦的運算資源,和用上一定的時間,去計算出算式結果,目的是搶得新區塊,從而得到區塊獎勵,並且礦工亦可幫忙確認區塊中的轉帳交易,得到用戶所付出的交易費用。
3. 挖礦難度Difficulty
每一個區塊的生成時間相隔約10分鐘,儲存交易容量為1MB。比特幣的區塊鏈不斷有大量的礦工加入運算,這情況會令礦工能更快搶得區塊。為了維持區塊生成的時間在10分鐘左右,區塊鏈技術加入了挖礦難度 (Difficulty)。挖礦難度是隨著礦工的總挖礦算力調整的,透過提升或減低運算結果的難度,去控制區塊成生成間盡量接近10分鐘。
4. 錢包 Wallet
比特幣的錢包分為私鑰 (Private Key) 和公鑰 (Public Key)。
私鑰是代表錢包的擁有權,所以要小心保管,並不要透露給任何人。它是由SHA-256生成32 bytes位元的隨機亂數,生成的亂數當中亦有本身的規定,例如:數值要在之某個大小之間放為有效。
公鑰是等同錢包的帳戶地址,用來接收其他人的加密貨幣轉帳,公開了亦不影響錢包的保安問題。公鑰是由自己的私鑰經過「橢圓曲線乘法」運算而成的。所運算出的公鑰,很容易便可對應自己的私鑰,從而得知應該把比特幣送到那一個私鑰 (錢包)。因為「橢圓曲線乘法」不可能進行逆推算,所以黑客不能由公鑰推算出私鑰是什麼。