poa挖礦是什麼意思
❶ 挖礦挖的是什麼
首先,網路里挖礦是指礦工通過特定的設備進行一定工作量的運算,計算出符合要求的區塊哈希值從而爭取記賬權,並獲得相應的獎勵,也可以將其看成是一個向記錄著數字貨幣過往交易的賬本中添加新交易的過程。
上面的定義,局限性在於:沒有明確指出挖礦挖出的到底是什麼。挖礦挖出的是區塊,既然這些區塊由數字元號組成,那麼也可以說挖出的就是一串數字而已。但是,這些數字代表著礦工可以獲取的獎勵,或者說是收益,所以,挖出的又可以說成收益。但是區塊獎勵隨著幣價的波動而波動,影響幣價的最大因素在於受眾范圍的大小。比特幣在誕生之初,隨便一台電腦每月就可以挖出成百上千的比特幣,由於無人問津,礦工買個披薩都需要上萬枚比特幣。但是,隨著接受比特幣的人群增加,比特幣的價格翻了上萬倍!所以,最終我們可以說:挖礦挖的就是未來社會對某一數字貨幣的共識預期。
礦工,是指一群專注於「挖礦」的人,可以指一個人,也可以是一個群體。隨著技術的不斷進步,礦工不再僅僅局限於使用硬體設備挖礦,投入時間、精力、甚至腦力等,都可以在一些項目中挖出數量不一的數字貨幣。既然挖的是未來社會對某一數字貨幣的共識預期,這個收益也就充滿了不確定性。為了更好區分,筆者從「硬體」挖礦和「軟體」挖礦進行區分。
一、「硬體」挖礦
這個挖礦由於需要投入大量的硬體設備,所以基本上是前期接觸的人群獲利最大,而且要求很高,逐步向專業化過度。目前,單獨的某一個礦工已經很難在拼算力、拼硬體、拼迭代速度的礦工軍備競賽中生存下去,所以大部分礦工會選擇合作,通過共建的礦池來達到盈利的目的。
由於是挖的共識預期,這讓價格波動尤為劇烈,而硬體礦工的設備投入、維保、迭代、場地租賃、人工、水電費等都需要真金白銀的付出,所以這類礦工壓力巨大,一不小心可能會血本無歸。影響共識的因素是多方面的,為了實現穩定、可持續、最大化的利益,硬體礦工通常的選擇是:牛市將手中的幣賣出,換成法幣或者其他穩定幣,靜靜等待熊市;熊市中,則盡可能的屯幣,並用之前的積累的法幣或穩定幣來「過冬取暖」。
作為硬體礦工,對牛市期盼,同樣也不拒絕熊市的到來。牛市中,礦工大量增加,同樣會提升挖礦的難度,獎勵銳減;熊市中,幣價腰斬,但是挖礦的獎勵會因為礦工的減少而增加。通過牛熊交替,他們才能實現收益的最大化。而牛熊交替,即使四年一個周期,也需要付出常人難以忍受的堅持。
二、「軟體」礦工
這類礦工,是指通過投入資金、時間、精力、腦力等非硬體進行挖礦的行為。
隨著技術進步,POW機制已經不能滿足人們的需求,目前市面上已經被大量應用的共識演算法有三十多種,POS、DPOS、POI、POB、POA等可以看成是對POW機制的補充。在這類挖礦行為中,礦工通常是需要買入、持有一定量的數字貨幣,並通過數字貨幣的增值來獲取收益。為了實現利益的最大化,這個持有時間通常也是以年為單位,以幣市的牛熊交替為大周期,所以沒有耐心的礦工,註定會被淘汰出局。
這裡面還有一類礦工,藏寶閣想重點闡述一下:就是不投入資金而在各個項目初期進行擼糖果、薅羊毛的礦工(後面為便於闡述,統一用Token代替),當然在UGC平台進行創作,也歸於這類礦工之中。
數字貨幣目前除了有主流幣、山寨幣之分,還有世界幣、競爭幣之分。目前我們擼糖果、薅羊毛獲得的Token基本為競爭幣:項目方為了項目發展融資、推廣而發行的數字貨幣(不是為了彌補數字貨幣技術的不足)。這類數字貨幣首先會有一個中心化的團隊進行管理;其次會經歷一個由幼小到強大的成長過程;最後,是該項目的成長結果影響用戶手中幣的最終價值。這類挖礦中,礦工付出的是時間、精力、腦力等,獲得的Token 可以看成是股權、或者帶有分紅性質的權益證明。那麼,決定礦工收益的就是這個項目能否落地活下來,並最終被越來越多的群體所接受,如果能成長為區塊鏈行業中的獨角獸,那帶給礦工的收益就足以實現財富自由了。
但是,有競爭就會有優勝劣汰,競爭幣的項目方中,註定會有大量的項目死去,這樣礦工手裡的Token就是數字而已,不能產生任何的價值。所以,礦工通常面臨的選擇是:盡早賣出手中的Token換成BTC等主流幣或是耐心持有,等待這些Token像瑞波幣一樣,實現驚天大逆轉。五元投資,上億收益,這樣的機會用白日做夢已經不足以形容,但是幣圈就是一個造就神話的地方,所以藏寶閣的做法就是屯!畢竟手中的Token賣個十塊八塊的也沒什麼意思,藏寶閣更願意陪著項目一起成長,同時廣撒網,想辦法獲得更多的項目Token,提到錢包,靜靜等待項目成長帶來的紅利。
三、結語
從文中可以總結出:不論是採用 「硬體」,還是 「軟體」,挖礦挖出的都是對未來收益的預期:未來認可的人多,該幣帶來的收益就好;未來無人問津,這個幣就有可能歸零,礦工收益為負。但是預期,通常需要很長的時間來驗證,包括隨之而來的機會,也往往蘊藏在最初的平淡無奇之中。區塊鏈必然帶來顛覆性的社會變革,這是加入幣圈的礦工最基本的信仰,所以不妨放棄眼前的雞毛蒜皮,耐心持有數字貨幣,以牛熊更替的周期為操作頻率,這樣,才能獲取最大的收益。
❷ 區塊鏈共識演算法——(四)PoA共識(Proof of Activity)
PoA共識(Proof of Activity)也稱為活動證明,其結合了PoW工作量證明與PoS權益證明的特點並進行了相應擴展,PoA共識具有更為復雜的記賬節點選取,同時有更為公平的獎勵機制。
PoA活動證明,主要的優勢是利用公平的激勵措施保證節點保持在線狀態,調動節點積極性,線上礦工即使不挖礦也有一定的概率獲取收益。大大提高了全網維護質量。
step1:每個礦工先利用自身算力通過工作量證明機制後得出nonce並生成一個空區塊頭,這個區塊頭除了沒有交易信息數據外其他數據與正常區塊一致。
step2:最先生成空區塊的節點廣播全網節點,全網節點接收到消息後,將此區塊的hash值與上一區塊的hash值進行拼接,然後加上n個固定後綴值進行再hash,最後得出n個值作為輸入,進入follow-the-satoshi程序,然後可輸出n個隨機權益持有者。
step3:前n-1個隨機權益持有者對空區塊進行簽名,第n個隨機權益持有者即為獲取到記賬權的節點,他將在空區塊的基礎上添加交易數據與簽名。
step4:第n個隨機權益持有者將打包好的區塊廣播全網,全網節點接收到區塊後進行驗證,驗證成功後上鏈。
step5:產生空區塊的礦工與第n個隨機權益持有者以及前n-1個已簽名的隨機權益持有者共享交易費獎勵。
❸ POA(Proof of Activity)區塊鏈共識演算法
POA(Proof of Activity)演算法是一個區塊鏈的共識演算法,基本原理是結合POW(Proof of work)和POS(Proof of stake)演算法的特點進行工作,POW演算法和POS演算法的具體內容可以參考:
POW演算法 : https://www.jianshu.com/p/b23cbafbbad2
POS演算法 : https://blog.csdn.net/wgwgnihao/article/details/80635162
POA演算法相比於其他演算法可以改進網路拓撲,維持在線節點比例,需求更少的交易費同時減少共識演算法過程中的能量損耗。
POA演算法需求的網路中同樣包含兩類節點,礦工和普通參與者,其中普通參與者不一定一直保持在線。POA演算法首先由礦工構造區塊頭,由塊頭選出N個幣,這N個幣的所有者參與後續的校驗和生成塊的過程。
從這里可以看到POA演算法不僅與算力有關,後續的N個參與者的選舉則完全由參與者在網路中所擁有的幣的總數量決定。擁有越多幣的參與者越有機會被選為N個後續的參與者。而後續N個參與者參與的必要條件是這N個參與者必須在線,這也是POA命名的由來,POA演算法的維護取決於網路中的活躍節點(Active)。
POA演算法的一個理想的基本流程是,類似於POW協議,礦工構造出一個符合難度要求的塊頭,通過礦工得到的塊頭計算衍生出N個幣的編號,從區塊鏈中追溯可以得到這幾個幣目前所述的參與者。礦工將這個塊頭發送給這N個參與者,其中前N-1個參與者對這個塊進行校驗和簽名,最後第N個參與者校驗並將交易加入到該塊中,將這個區塊發布出去,即完成一個區塊的出塊。
一個理想過程如下圖所示:
在實際運行中,無法保證網路上所有參與者都在線,而不在線的參與者則無法進行校驗和簽名,這個無法被校驗和簽名的塊頭則會被廢棄。
即在實際運行中,應該是一個礦工構造出塊頭後廣播給各個參與者簽名,同時繼續重新構造新的塊頭,以免上一個塊頭衍生的N個參與者存在有某一個沒有在線,而導致塊頭被廢棄。
因此,在這種情況下,一個塊是否被確認不僅與礦工的計算能力有關同時也與網路上的在線比例有關。
與純POW相比,在與比特幣(POW)同樣10分鍾出一個塊的情況下,POA由於會有參與者不在線而產生的損耗,因此,10分鍾內礦工可以構造的塊的數量會更多,即塊頭的難度限制會降低,那麼礦工在挖礦過程中會造成的能量損耗也會降低。
與純POS相比,可以看到POA的出塊流程並不會將構造區塊過程中的相關信息上鏈,可以明顯減少區塊鏈上用於維護協議產生的冗餘信息的量。
本節對上訴協議中一些參數設置進行分析
在礦工構造出塊頭後對塊頭進行校驗和區塊構造的N個參與者的數量選定比較類似於比特幣中每一個塊的出塊時間的選取。比特幣中選擇了10分鍾作為每一個塊的期望出塊時間並通過動態調節難度來適應。
這里N的取值同樣可以選擇選定值或者動態調節。動態調節需要更加復雜的協議內容,同時可能會帶來區塊鏈的數據膨脹,而復雜的協議也增加了攻擊者攻擊的可能性。另外暫時沒有辦法證明動態調節可以帶來什麼好處。靜態調節在後續的分析(4 安全分析)中可以得到N=3的取值是比較合適的。
從上面的描述可以看到,構造新的區塊的除了礦工還有從塊頭中衍生出來的N個幣所有者。在構造出一個新的區塊後,這些參與者同樣應該收到一定的激勵,以維持參與者保持在線狀態。
礦工與參與者之間的非配比例與參與者的在線狀態相關。給予參與者的激勵與參與者保持在線狀態的熱情密切相關,越多參與者保持在線狀態,能更好地維持網路的穩定。因此,可以在網路上在線參與者不夠多的時候,提高參與者得到的激勵分成比例,從而激發更多的參與者上線。
如何確定當前參與者的在線情況呢?可以最後第N個參與者構造區塊時,將構造出來但是被廢棄的塊頭加入到區塊中,如果被丟棄的塊頭數量過多,說明在線人數過低,應當調節分成比例。
同時最後第N個參與者與其他參與者的分成同樣需要考慮,第N個參與者需要將交易加入區塊中,即需要維護UTXO池,同時第N個參與者還需要將被丟棄的塊頭加入新構建的區塊中。
為了激勵其將廢棄區塊頭加入新構建的區塊中,可以按照加入的區塊頭,適當增加一點小的激勵。雖然加入更多的區塊頭,可以在下一輪的時候增加分成的比例,應當足夠激勵參與者往區塊中加入未使用的塊頭了(這里參與者不可能為了增加分成而更多地加入區塊頭,每一個區塊頭都意味著一位礦工的工作量)。
一個參與者如果沒有維護UTXO池則無法構造區塊,但是可以參與前N-1個的簽名,因此為了激勵參與者維護UTXO池,作為最後一個構造區塊的參與者,必須給予更多的激勵,比如是其他參與者的兩倍。
從3.2的描述中可以知道一個用戶必須在線且維護UTXO池才可能盡可能地獲得利益。這種機制勢必會導致一些用戶將自己的賬戶託管給一個中心化的機構。這個機構一直保持在線,並為用戶維護其賬戶,在被選為構造區塊的參與者時參與區塊的構建並獲取利益。最後該機構將收益按照某種形式進行分成。
上面說到參與者必須用自己的密鑰進行簽名,而託管給某個機構後,這個機構在可以用這個密鑰簽名構造區塊的同時,也有可能使用這個密鑰消費用戶的財產。這里可以採用一種有限花銷的密鑰,這個密鑰有兩個功能,一個是將賬戶中的部分財產消費出去,另一個是將所有財產轉移到一個指定賬戶。在託管的時候可以使用這個密鑰,在被通知部分財產被花費後可以立即將所有財產轉移到自己的另一個賬戶下,以保證財產的安全。
從上面的分析可以看到,POA的安全性與攻擊者所擁有的算力和攻擊者所擁有的股權有關。假設攻擊者擁有的在線股權佔比為 ,則攻擊者的算力需要達到其他所有算力的 倍才能達成分叉。假設攻擊者股權總佔比為 ,網路中誠實用戶的在線比例為 ,則攻擊者的算力需要達到其他所有算力的 倍才能達成攻擊。
攻擊的分析表格如下:
從上文的分析可以看到,POA演算法相比於其他演算法可以改進網路拓撲,維持在線節點比例,需求更少的交易費同時減少共識演算法過程中的能量損耗。同時,PoA協議的攻擊成本要高於比特幣的純PoW協議。
參考文獻:Proof of Activity: Extending Bitcoin』s Proof of Work via Proof of Stake