作者 | Jerry Qi
來源:btcwires
當我還是一個七年級的學生時,我就已經被加密貨幣的世界吸引住了。起初,我覺得這簡直就是一個免費的貨幣生成器,只要我讓我的筆記本電腦像風火輪一樣呼呼地運行Crypto-mining軟體,它就會給我免費的加密貨幣。
最後,我的筆記本電腦確實產生了加密貨幣,然而,只有非常非常少的加密貨幣。
我用我的筆記本電腦做的事情,本質上是 "加密挖礦"。
"挖礦"
你可能聽說過加密貨幣比特幣,也聽說過一個叫 "挖礦 "的名詞與這類加密貨幣有關。
加密貨幣挖礦,簡單來說,就是礦工或個人使用設備從事支持區塊鏈網絡的 "工作",以獲得加密貨幣獎勵的過程。
Onenote上的小型P2P網絡草圖
區塊鏈:它是一種網絡分布式記錄或分布式帳本,記錄那些人們在網絡上的行為。因此,對於加密貨幣的區塊鏈網絡來說,區塊鏈的功能將是記錄網絡上個人的交易。
在這篇文章中,我將以比特幣為例,解讀挖礦背後的意義。
回到礦工的 "工作 "這個話題。為了讓礦工獲得比特幣的獎勵,礦工要做的簡單 "工作 "就是對比特幣區塊鏈上的交易進行驗證。
在驗證時,挖礦者將執行一系列檢查,以確保分配的交易是合法的,並且交易參與者不會支付相同數量的加密貨幣兩次。例如,當Joe給Brandon發送了12個比特幣,而Brandon試圖給Tony發送7個比特幣和Max 8個比特幣,這將被認為是一筆欺詐交易,因為7+8>12。我剛才給出的情況是 "雙花問題 "的一個例子:Brandon試圖兩次消費同一個比特幣。
在礦工已經驗證了0-4兆字節之間的比特幣交易(大約1500-3000筆交易),相當於一個區塊的近似最大大小。他們已經完成了比較容易的一半工作,以獲得比特幣獎勵。然而,在驗證之前的任務是最複雜的,使礦工有資格驗證交易。
挖礦業的運氣部分
通過率先解決一個字符串序列的計算,也就是所謂的創建工作證明(Proof of Work)。創建工作證明(Proof of Work)是礦工們最需要計算力的過程。(下面我將在後面的章節中解釋為什麼叫工作證明(Proof of Work))
為了理解工作證明(Proof of Work)算法,你必須先熟悉區塊鏈中的 "哈希 "一詞。
網絡檢測區塊鏈中區塊的篡改的方式是通過其哈希值 ; 由區塊中的信息定義的數字和字符組成的長字符串。通過把數據通過哈希函數,比如比特幣使用的SHA-256使用,就會產生一個針對該特定輸入的序列。意思是說,如果輸入數據哪怕改變一個字符,輸出的哈希值就會完全改變。另外,哈希是一個可加密但不可解密的結果,因此,它不能用來獲取原始數據,只能作為驗證哈希的輸入數據是否相同的一種方式。
創建工作證明(Proof of Work)需要礦工運行哈希算法來 "猜測 "問題的合適答案。對於比特幣區塊鏈網絡來說,礦工必須率先創建一個符合一定要求的哈希值,這個哈希值被稱為 "目標哈希"。
猜測目標哈希的必要信息就存在於新區塊的區塊頭中。包含:區塊版本號,時間戳,前一個區塊的哈希值,以及目標哈希值。
onenote上的猜測過程草圖
目標哈希的答案是由前一個區塊的哈希值、現區塊交易數據,加上0-4,294,967,296的整數(簡稱nonce),然後放入哈希算法中生成的。
如果答案符合目標哈希的要求,該區塊就會被添加到區塊鏈中。最先驗證交易並找出添加到該區塊哈希中的那個nonce的礦工,就會得到比特幣的獎勵。否則,他們就會不斷嘗試尋找有效的目標值。由於哈希算法的隨機性,我們需要做大量的隨機猜測來確定滿足目標哈希的數值。
來源:Investopedia
儘管自己想找到nonce已經相當困難,並且在同一個網絡上還有≥百萬的其他個體與你競爭,使得一個設備獲得比特幣獎勵的機率類似於中彩票的機率。因此,你可以通過提高處理能力或使用多臺設備來獲得更快的Hash Rate(單位包括:KH/s、MH/s、GH/s等)。
Hash-rate一詞可以解釋為一個或一組設備計算數字和驗證交易速度有多快的量(是計算能力的衡量標準)。
共識機制
像比特幣區塊鏈這樣去中心化P2P的網絡,沒有中心主要人物,只能根據不同的共識機制進行決策。共識機制在交易驗證的同時,也奠定了挖礦的目的。
來源:維基百科
共識機制有很多形式,但它們都是為了同一個目標:"核實並確保記錄的真實性和完整性"(來源:Tech in Asia)。
目前主要有三種機制:工作證明(Proof of Work)、權益證明和權力證明。在本文中,我將重點介紹共識的工作證明(Proof of Work)方法。
說到挖礦,這總結了工作證明(Proof of Work)模式的工作原理:個人首先要創建一個工作證明(Proof of Work),然後他們驗證比特幣交易以確保區塊鏈中的記錄是真實的。然而,在驗證交易之前先讓我們深入了解一下工作證明(Proof of Work)的目的。工作證明(Proof of Work)的歷史和目的
這種工作證明(Proof of Work)的想法在1993年就已經出現,由Cynthia Dward和Moni Naor在一篇論文(On Memory-Bound Functions For Fighting Spam)上提出,文中解釋了阻止垃圾郵件的不同方法。這篇論文的重點是通過計算能力來發送電子郵件的想法。
例如,如果你想通過電子郵件給我發送一條信息,那麼你必須證明你僅僅為了給我發送這條信息就花費了比如說30秒的計算能力。
由於現代計算機的速度很快,在這種情況下,垃圾信息/郵件/交易就成了一個大問題。但是,通過給每個操作設置一個 "工價",就可以大大減少垃圾信息。
在onenote上驗證勤勞的門鑰匙例子
簡而言之,"prover "向 "vercker "證明他們在一定的時間間隔內投入了一定的計算能力。
隨著時代的發展,比特幣的創造者 "中本聰 "修改了讓比特幣礦工生成數據片段的想法,這是比較困難的部分。而網絡上的其他人要驗證它是否真的滿足目標哈希值就很容易了,因為他們只需要把需要的數據通過SHA-256算法。
通過這種工作證明(Proof of Work)系統,就能夠保證區塊鏈等系統的安全性並建立一個驗證共識,因為真正驗證區塊的將是一個投入了巨大計算能力的設備。這就給了網絡一個保持公平和誠信的經濟理由。
如何做到這一點呢?
舉例來說,如果發生了欺詐交易並被批准,用戶就會變得 "猶豫不決"轉而使用其他加密貨並且降低價格。從經濟上來說,礦工,也就是做比特幣 "生產 "的人,會因為價格下跌而不開心。而與此同時,只有控制礦工才有足夠的計算能力來觸發欺詐性驗證。所以,礦工們的工作動機就會轉向保護交易,以確保幣價不跌。
工作證明(Proof of Work)機制的劣勢
雖然工作證明(Proof of Work)被用於一些最大的加密貨幣(比特幣、以太坊等)上,但這並不意味著其是最高效、最安全的系統。