目前大家對於挖礦的印象就是會耗費很多能源(電力)、主要是在挖虛擬的貨幣、因為很多人都用顯示卡去挖礦導致顯示卡一貨難求… 等等。其實這些只是一種對於挖礦這件事而產生的現象而已,並非是原本這項技術主要的目的。
所謂的挖礦,其實就是一種分散式運算系統的概念,或者也可以稱呼做【去中心化】系統。為何要這樣稱呼呢?
其實這只是相對應於傳統的電腦運算架構而產生的稱呼,傳統的電腦計算架構,主要是會有一部伺服器,由伺服器指派工作或是傳送資料給客戶端或運算端的架構,所有的工作分配或是資料儲存的工作都是位於伺服器端,也就是我們稱呼的 Client-Server 架構,這樣的架構雖然分工很明確,但是當Client 連線的數量變多時,Server端的壓力就會非常的大。也因此,相對於 Client-Server 架構,發展出分散式的處理架構,而這中間最夯的就是目前的加密貨幣的運算架構了,以專業一點的名詞來稱呼就稱為【區塊鏈】。
要瞭解區塊鏈的技術,實在是有點太難了,我們可以從P2P的架構來思考,傳統檔案式的P2P架構,就可以說是一種區塊鏈的前身了,而檔案式P2P的發展目的,就是為了能夠分享檔案,卻不需要高額的伺服器頻寬,讓伺服器不會因為同時間多人下載而無法負荷,反之,在P2P的架構底下,檔案同時間越多人下載,在其技術的層面上來看,是會讓總頻寬越大,進而使得下載速度越快,其他的案例也可以想想SETI的外星人訊號運算、Folding@Home的蛋白質摺疊運算系統等等,都是分散式運算系統的一些可以模擬參考的實例。
而加密貨幣及區塊鏈真正的起源,可以說是由比特幣開始,最早比特幣由幾位專業的技術人員包含中本聰等人所發展出來的,最早開始比特幣的區塊鏈只可以說是一種交易的計算與儲存媒介,而參與這個計算架構的每一員,都會因為有付出電腦的運算力,而獲得等值的代幣作為獎勵,最早開始這個代幣並沒有任何價值,而且在早期由於要推廣這個運算架構,提供的代幣獎勵的數量很高,但實質上並沒有太高的價值,可以想像是遊戲中的虛擬幣而已,不存在任何實體的價值。但隨著以太幣的出現,出現了加密貨幣的數位合約開始,開發者可以透過數位合約在以太網上架構自己的服務,從此之後各式各樣的加密貨幣如雨後春筍般的出現,世面上有90%以上的加密貨幣是由乙太網的數位合約衍生出來的。
接下來要探討的是為什麼去中心化在目前這個世代是一個重要的議題?
首先要先說明加密貨幣的一個基本的原理,當今天產生一筆交易後,這筆交易會傳送到網路上的每個節點來運算,當運算量超過一定的次數後,這筆交易才會被認定為一筆成功的交易,而這個交易的資料會分散於整個網路的節點當中,也因此在這個去中心化的網路架構中,就會具備了以下的特點:
1. 不可否認性:由於資料經過許多節點認可後才成為一筆成功的交易,因此要修改這筆資料同時也是必須經過所有的網路節點運算後才能成立,且所有的記錄都是會被存在於整個交易網路的資料中。
2. 不可修改性:所有的交易記錄會儲存於每個全節點的錢包當中,每個人都會擁有一份完整的交易備份資料,也因此光修改個人的錢包是無法讓這個資料生效的,錯誤的資料在網路中將會被多數決的資料修正。
當具備了以上的特性後,我們可以想像,在傳統的資料庫系統中,當駭客要修改單一筆資料時,只需取得相關的權限便可修改一筆交易資料,而在區塊鏈的架構中是相對困難非當多的,同時當網路持續存在時,便可以保障這個資料會永久的存在。
但並非區塊鏈就是完美無缺的,其實也因為每筆交易都必須經過一定數量的節點運算認可後,才能成為一筆成功的交易,那麼一筆交易的時間就會耗費相對長的一段時間,可能是數十分鐘至數小時不定。而且如果短時間內交易量過大時,交易的速度可能會因此更加緩慢。
以上是對於挖礦原理的一些簡述,之後會有專門的主題來討論到底為什麼挖比特幣會很耗電,為什麼顯卡會缺貨,到底拿去挖什麼幣?