官术网_书友最值得收藏!

  • 區塊鏈+技術與實踐
  • 王小峰等主編
  • 4266字
  • 2023-09-26 18:49:58

1.1.1 數字是如何成為貨幣的

貨幣是伴隨著商品價值形式的不斷發展變化而最終產生的。商品價值形式經歷了以下4個不同的發展變化階段,當價值形式發展到第四個階段時,貨幣就產生了。

● 簡單的或偶然的價值形式階段。在這一階段,一種商品的價值僅僅是簡單的或偶然的表現在與它相交換的另外一種商品上。

● 總和的或擴大的價值形式階段。在這一階段,一種商品的價值表現在與它相交換的一系列商品上。

● 一般價值形式階段。在這一階段,所有商品的價值都表現在作為一般等價物的商品上。

● 貨幣形式階段。在這一階段,所有商品的價值都表現在作為固定的一般等價物的金或銀上。

1. 物質成為貨幣要具備的三個貨幣屬性

貨幣的形態如圖1-2所示。自然界中的任何物質(包括實體的和虛擬的),只要它具備了一定的屬性,就都有成為貨幣的資質(注意,貨幣不一定是法幣,法幣的鑄幣權歸主權國家所有,神圣不可侵犯)。例如黃金,早在19世紀之前的數千年歷史中,人類總共生產的黃金不到1萬噸(稀缺性);黃金的化學性質穩定,具有很強的抗腐蝕性(持久性);盡管儲量不盡相同,但黃金普遍分布在世界各地,具備很好的群體認可性(共識性)。正是因為黃金很好地具備了稀缺性、持久性、共識性,因此古往今來人們自然而然地將黃金作為了一般等價物。

圖1-2 貨幣的形態

(1)不可輕易獲得:稀缺性。貨幣作為價值的載體,其本身應該具備稀缺性(不可輕易獲得和替代)。例如木材、石頭等唾手可及的物質,因為不具備稀缺性,就絕不可能成為貨幣。

(2)便于保存與流轉:持久性。貨幣作為價值的載體,會流轉在價值的所有者之間,因此其本身應該容易保存、不輕易流失,即應該具備持久性。例如水銀,全世界的儲量只有70萬噸,但其容易揮發而不具備持久性(毒性暫不討論),因此不可能成為貨幣。

(3)普遍的群體認可:共識性。翡翠、寶石等物質具備一定的稀缺性和持久性,但由于其分布范圍較小,并不為世界各國都承認為價值的載體,因此它們也沒有像黃金一樣成為全球通用的硬通貨。

2. 算法賦予數字貨幣以貨幣屬性(以比特幣為例)

比特幣的工作原理如圖1-3所示。

圖1-3 比特幣的工作原理

比特幣核心程序的工作原理可以簡單表述為如下幾個步驟。

(1)交易消息廣播:所有比特幣的交易結果會作為消息廣播給所有礦工用戶,礦工用戶將這些消息記錄到自己的賬本(這個記錄的過程其實就是挖礦,而作為獎賞,礦工將獲得一定數量的原始數字貨幣)。注意,普通用戶維護自己的賬本,礦工維護世界總賬本。

(2)挖礦(記錄和確認交易):注意,挖礦是比特幣程序最核心、最重要的技術原理。

● 首先,參與維護總賬本其實是通過貨幣發行而獲得原始數字貨幣的方式(另一種獲得的方式,就是通過實際交易轉賬),這就會吸引龐大的群體參與到挖礦工作中來。在這個階段,挖礦的獎賞機制賦予了共識性。

● 其次,廣大的礦工群體會競爭記賬權(獲得記賬權者挖礦成功,獲得算法獎賞。如前所述,這其實就是數字貨幣的發行過程),這個過程采用基于工作量證明的共識算法。在這個階段,獲得記賬權需要投入大量的算力,這就賦予了稀缺性。

● 最后,獲得記賬權的礦工將自己收到的交易打包成數據區塊,并廣播給其他所有礦工,所有礦工對收到的交易數據進行驗證確認后(礦工群體人人參與記賬,賦予了持久性),將新的區塊存入區塊鏈數據庫系統。在區塊鏈數據庫中,由于任何一個區塊都由上一個區塊計算出來,任何區塊的篡改都會牽一發動全身。篡改數據的算力投入的成本遠高于篡改數據的收益,使得礦工沒有作弊的動機,再次加強了持久性。

通過上面的原理剖析可以看到,比特幣通過算法保障被賦予了三個貨幣屬性:①基于工作量證明的共識算法,其哈希難度賦予了稀缺性;②分布式存儲與基于時序的密碼記賬賦予了持久性;③挖礦的獎賞機制賦予了共識性。

3. 關于挖礦的補充說明

(1)新比特幣的生成過程被稱為挖礦,是因為它的產生過程類似于貴金屬的挖礦過程。原始的比特幣是通過挖礦發行的,這種獎勵機制被設計為速度遞減模式:礦工通過創造一個新區塊得到的比特幣數量大約每四年(準確說是每210 000個區塊)減少一半。2009年1月每個區塊獎勵50個比特幣,2012年11月減半為每個區塊獎勵25個比特幣,2016年7月再次減半為每個新區塊獎勵12.5個比特幣。基于這個獎勵機制,比特幣挖礦獎勵以指數方式遞減,直到2140年,屆時所有的比特幣(共20 999 999 980個)全部發行完畢。換句話說,2140年之后,不會再有新的比特幣被發行。

(2)礦工們同時也會獲取交易費。每筆交易都可能包含一筆交易費,交易費是每筆交易記錄的輸入和輸出的差額。在挖礦過程中成功“挖出”新區塊的礦工,可以從該區塊包含的所有交易中得到“小費抽成”。目前,這筆費用占礦工收入的0.5%或更少,大部分收益仍來自挖礦所得的原始比特幣獎勵。然而隨著挖礦獎勵的遞減,以及每個區塊中包含的交易數量增加,交易費在礦工收益中所占的比重將會逐漸增加。顯然,2140年之后,礦工的所有收益都只來自交易費。

4. 共識算法解析

所謂共識,是指大家的意見達成一致。其實在現實生活中,有很多需要達成共識的場景,比如開會討論、投票選舉、雙方或多方簽訂合作協議等。在傳統的軟件結構中這幾乎就不是問題,因為有一個中心服務器存在,也就是所謂的主庫,其他的從庫向主庫看齊就行了。在實際生活中,很多事情人們也都是按照這種思路來做的,比如企業老板發布一個通知,員工照著做。但是區塊鏈是一個分布式的對等網絡結構,在這個結構中沒有哪個節點是“老大”,一切都要商量著來。在區塊鏈系統中,如何讓每個節點通過一個規則將各自的數據保持一致是一個核心問題,這個問題的解決方案就是制定一套共識算法。

如上所述,區塊鏈中的共識算法其實就是一個規則,讓每個對等的分布式節點都按照這個規則去確認各自的數據,并最終保證所有節點上數據的一致性。暫且拋開共識算法的實現原理,先想一想生活中我們會如何解決這樣一個問題:一群人開會,而這群人中沒有領導或者老大,大家都各抒己見,那么最后如何產生決議呢?一般會在某一個時間段中選出記錄員(例如每個人輪流做記錄員),記錄員負責記錄和匯總大家講話的內容,并讓大家就每個意見進行投票表決,最終支持者最多的意見形成決議,這種思路其實就是一種共識思想。對這種思想而言,如果參與人數確定且數值較小,還好處理;如果人數眾多或根本難以確定(動態變化),那就很難達成共識,因為工作效率太低了!這就需要通過一種機制篩選出最有代表性的人,具體到共識算法就是篩選出具有代表性的節點。

如何篩選呢?其實就是設置一組條件,就像篩選運動員一樣,給一組指標讓大家來完成,誰能更好地完成指標,誰就有機會被選上。在區塊鏈系統中,存在多種這樣的篩選方案,比如PoW(proof of work,工作量證明)、PoS(proof of stake,權益證明)、DPoS(delegate proof of stake,委托權益證明)、PBFT(practical byzantine fault tolerance,實用拜占庭容錯)等,各種不同的算法,其本質上就是不同的記錄員篩選規則。

(1)PoW挖礦算法及分析。PoW是指獲得多少貨幣,取決于挖礦貢獻的有效工作。也就是說,計算機性能越好,所分的礦就會越多,這就是根據工作證明來執行貨幣的分配。大部分的數值貨幣,比如比特幣、萊特幣等,都是采用基于PoW算法(算力越高、挖礦時間越長,獲得的貨幣就越多)的共識。

比特幣的挖礦算法其實就是通過一個哈希函數找到一個滿足當前難度的nonce(包含在區塊頭里面)的值,哈希函數的輸入數據的長度是任意的,將產生一個固定且絕不雷同的值,可將其視為輸出的數字指紋。對于特定輸入,哈希函數的結果每次都不一樣,任何實現相同哈希函數的人都可以計算和驗證。每個加密哈希函數的主要特征就是不同的輸入幾乎不可能出現相同的數字指紋。因此,相對于隨機選擇輸入,有意地選擇輸入去生成一個想要的哈希值幾乎是不可能的。

礦工用一些交易構建一個候選區塊,接下來這個礦工會計算這個區塊頭的哈希值,判斷其是否小于當前目標值,如果這個值小于目標值,礦工會修改這個nonce的值,然后再試一次。通常來說,一個礦工會做成千上萬次哈希運算來得到一個合適的nonce的值,使得區塊頭的哈希值滿足當前難度。這也是PoW算法的由來。

可見,PoW要求出示一定的證明來表明礦工付出的工作量,這個證明可以是直接記錄,也可以用概率表示,其中對于由小概率事件累計的工作,出示結果等同于證明了工作量(因為不太可能直接得到小概率結果)。在比特幣和其他類比特幣的系統中,PoW是以合乎要求的哈希值作為工作結果。由于礦工要取得合法的計算結果需要一定量的計算,因此得到合法的計算結果就已經可以證明其完成了一定量的計算。

(2)PoS挖礦算法及分析。簡單來說,PoS就是一個根據持有貨幣的量和時間,發放利息的制度。在PoS算法中,有一個名詞叫幣齡,每個幣每天產生1幣齡,比如持有100個幣,總共持有了30天,那么此時幣齡就為3000;這個時候,如果驗證了一個PoS區塊,幣齡就會被清空為0;每被清空365幣齡,將會從區塊中獲得0.05個幣的利息(可理解為年利率5%)。那么在這個案例中,利息 = 3000 * 5% / 365個幣 = 0.41個幣。

以現有的比特幣運行發展情況來看,比特幣每年的挖礦產量都在不斷減半,可以預計隨著比特幣產量不斷降低,礦工人數也會越來越少,這樣就會導致整個比特幣網絡的穩定性出現問題。PoS算法鼓勵大家都去打開錢包客戶端程序,因為只有這樣才可以驗證PoS區塊并獲得利息,同時也增加了網絡的健壯性。還有一個擔憂就是當礦工人數降低,比特幣很可能會被一些高算力的人或團隊進行51%攻擊,如果采用PoS算法,即便有人擁有了全網51%的算力,也未必能夠進行51%攻擊,因為這還要求攻擊者持有全球51%的貨幣量,而這是更加難以達到的門檻。比特幣好像是一個永遠不會膨脹的體系,因為它的貨幣總量看起來貌似是固定的,但實際上比特幣是一個貨幣緊縮的體系,因為其總存在丟失(錢包密碼丟失、貨幣私鑰丟失等)的可能,而PoS采用類似年利率這樣的方式,則可以在一定程度上緩解這個問題。

(3)DPoS挖礦算法及分析。DPoS是一種保障加密貨幣網絡安全的算法。它在嘗試解決比特幣采用的傳統工作量證明機制以及以太幣2.0所采用的股份證明機制問題的同時,還能通過實施科技式的民主以抵消中心化所帶來的負面效應。

通俗地講,DPoS機制是讓每個貨幣持有者對整個系統資源中想當代表的人進行投票,而獲得最多票數的若干個代表進行交易打包計算。這可以理解為有若干個礦池,而礦池彼此的權利是完全相等的。那些握著選票的人可以隨時通過投票更換這些代表(礦池),例如只要他們提供的算力不穩定(計算機宕機或者試圖利用手中的權力作惡),他們將會立刻被憤怒的選民們踢出整個系統,而后備代表可以隨時頂上去。從某種角度來看,DPoS有點像一些國家的議會制度,只不過不是每四年選舉一次,而是時時刻刻都在選舉過程中。

主站蜘蛛池模板: 酉阳| 唐海县| 乌审旗| 永平县| 江口县| 崇左市| 济源市| 宁波市| 永清县| 万山特区| 惠东县| 兰西县| 曲水县| 金寨县| 和硕县| 泾源县| 华宁县| 丹江口市| 密云县| 渝北区| 特克斯县| 吉隆县| 松阳县| 乐昌市| 庆阳市| 浦江县| 石渠县| 平乡县| 句容市| 汝州市| 泸溪县| 年辖:市辖区| 永兴县| 台北县| 中超| 五台县| 盐亭县| 花垣县| 浙江省| 和林格尔县| 凤城市|