進度條

網頁偷塞挖礦程式正夯,但什麼是虛擬貨幣所謂的挖礦呢?

懂比特幣一定要懂的兩件事,去中心化技術及挖礦原理

作者: Vincent Ke 更新日期:

從上一篇文章裡,我們了解到了比特幣的起源,也透過了比特幣了解到了「去中心化」這個讓比特幣價值天漲的「區塊鏈」的概念,但獲取比特幣的方法,除了用台幣購買當做投資外,其實還有另外一個管道,也就是所謂的「挖礦」

 

挖礦是什麼呢?當然不是叫你真的去好事多買一組工具組來挖,他是一門密碼學的概念,用來保護所有比特幣帳本上的交易,你該做的是去光華商場買一台頂規電腦,並使用程式作業囉

 

 

由於比特幣的交易都存在在帳本(BTC ledger)上,帳本中不但記錄了所有的歷史帳戶訊息,而且任一節點只需要發起一個交易,都需要將交易行為訊息,透過加密的方式傳遞到區塊網路中其他的每一個節點,才可以確保交易訊息可以保存於所有節點上的帳本,並能精確地更新且驗證這一筆交易行為,由各種節點串接起來的區域,當然就可以稱之區塊鏈囉。

 

而這個帳本對於所有的節點而言都是公開的,所有交易都需要透過電腦運算來驗證並記錄到此公開帳本上,所以提供此服務所需的運算力的電腦,就可以稱為礦機,而使用礦機的你當然就是礦工囉。礦工在提供電腦資源確保比特幣交易系統運作時,就有一定機會獲得比特幣作為報酬,因此該礦工的礦機在運算時獲取比特幣之過程即為「挖礦」,所以稱挖礦是一門加密技術,似乎也不為過。

 

而挖礦的目的是什麼呢?

 

剛有提到區塊鏈是一種去中心化的機制,過去我們所有的交易,不管是時間還是帳號訊息,都被記錄在銀行裡,而現在使用區塊鏈的機制後,帳本都是透明公開化的,那交易的過程都必須依賴所謂的買賣雙方,銀貨兩訖的共識,那挖礦加密的重點,就是為了決定記帳權的共識:先確認交易,並把交易納入區塊鏈之中。並確保區塊鏈時間順序的正確。

 

 

而有些待確認的交易資料會被打包至某個區塊之中,而為了防止區塊有心人士惡意篡改,區塊則必須滿足一項嚴格且縝密的密碼學規則,而遭受隨意篡改的區塊,當然會因為不符規則變得無效,藉由這個機制,沒有一個人能控制區塊鏈中能包含哪些交易,也因為區塊鏈有所謂的共識以及共享,更是無法任意更動區塊鏈的某一部份。

 

當然,只是單純的密碼就仍然只是密碼,像「模仿遊戲」電影裡,僅管德軍每天都更換密碼,卻仍然有被破解的風險,對吧,若是一昧的使用困難的密碼,加密解密的效率也可能會影響到交易的效率,如果交易驗證過久,那使用者一定會大幅反彈。

 

所以我們可以想像比特幣的挖礦過程,就像是一場多人參加的猜謎遊戲,一但有人順利的解出答案,就會依據答案解出的時間來調整難度,若太快就會被調難,反之就會調簡單,讓每一道題目被解出的時間都座落在約十分鐘左右,而這也是區塊鍊解謎裡面最重要的機制。而這中間的謎底為了符合匿名性,就有所謂的三大要素:公鑰、私鑰以及地址。

 

 

1.私鑰(Private Key)

私鑰的用途為管控相對地址的所有資產,從資產的傳送到交換,都需要用私鑰來做簽名認證。基本上私鑰可以寫成256位元的二進位數,所有符合此一格式的私鑰就會有2的256次方個,若改寫成十進位的話足足有78位數(暈),基本上雷同機率很低。從私鑰到地址的過程中,私鑰會先透過一組橢圓曲線加密的對應函數得到一個長度為512位元的公鑰。

 

2.公鑰(Public Key)

公鑰最主要的功能,為驗證財產的擁有權。當交易時需要轉出任何一筆財產時,都須提出公鑰來做該財產擁有權的認證,並和私鑰對整筆交易簽名認證,用以確定財產擁有者同意轉出。而當礦工在驗證交易時,當然就會檢查該公鑰是否配對於要轉出的該筆財產,且因為公鑰、私鑰及地址都是連動的,所以也會一並驗證是否可與該資產的地址對應,並同時檢查此一簽名是否屬於該擁有者。

 

雖然私鑰可能單向轉換成公鑰,但公鑰是取得私鑰的最後一道防線,所以我們會希望公鑰盡可能不要太常出現在公開的區塊鏈上,而前言提到,在轉出財產的時候一定需要公鑰來驗證,所以我們只保護收入端所顯示的公鑰。在收入財產時再對公鑰做一層的雜湊函式來保護公鑰,此一雜湊函式的輸出即為地址。

 

 

3.地址(Address)

在區塊鍊的定義中,在一筆交易中,一個收款者能夠擁有不只一個地址,所以地址與收款者並無法做到100%的對應。而每筆交易的付款與收款對象均可以有一人以上,在這樣的交叉比對下,來達成區塊鍊基本的匿名性。而地址的產生,是私鑰透過SHA256與RIPEMD160所組成的雜湊函式,一個512位元的公鑰將會先由此雜湊函式轉換為160位元後,再編碼為地址,因此轉換途徑依序為私鑰>公鑰>地址,僅由後者是不可能回推出前者的。而地址可用於收取別人轉交給你的財產,擁有此地址相對應的公鑰與私鑰,便可以再把裡頭的財產轉出。

 

在這樣的結構下,我們可知道其中密碼的慎密性其實是相當高的,而其中最關建的機制就是所謂的"工作量證明"(Proof of Work,POW ),這也是為了完成去中心化的目的,使每一個參與的節點可以共同驗證交易的方法,做法是透過工作量證明,讓任一運算節點,花費時間和運算資源來計算出一組上述加密的結果,一旦這個數值被算出來後,就可以讓其他節點去驗證這個值是否有效,也會透過這樣的機制去調整每一次加密的難度,讓他可以維持在解一次約十分鐘左右。而也因為這個難度都可以維持在一定的水平,所以礦工必須完成一定量的工作才可以收到新的比特幣當報酬。

 

當然這時候比特幣的數量有受到管控,目前總數是兩千一百萬顆,但區塊鍊的應用卻已經蒸蒸日上,例如美國有部分的系統就透過區塊鍊的技術來做私人股票交易,使交易更透明,而最著名的範例也是美國的音樂平台Ujo Music,透過區塊鍊串接金流及上架的技術,讓音樂家可以更透明的分享自己的音樂做品。

 

現在應用的例子已經不勝枚數了,而區塊鍊技術本身也是Open Source,但只有懂得技術核心,才能做出符合產業趨勢的客製化區塊鏈產品。這樣去中心化的技術,已經深深改變了人類對交易行為上的認知,也許未來的工業革命前哨戰,就在這時候悄悄開打了。

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Medium vincent

Vincent Ke

喜歡把混亂的事情變的簡單 用嘴巴做事其實很可以 但要結合靈活的腦袋思考 就一起來拆解吧