摘要:對于想證明自己工作量的人,只能一個個嘗試,大概枚舉220次(大約100萬次)之后,他才能算出結(jié)果。計算工作量:每個礦工開始嘗試找到一個特定的數(shù)字nonce,通過將這個nonce與新區(qū)塊的其他信息(包括前一個區(qū)塊的哈希、新的交易列表等)進行組合,并通過SHA-256哈希函數(shù)進行運算。...
進入Web3.0時代后,我們迫切需要一種客戶創(chuàng)造、客戶擁有、用戶控制的貨幣形式。
有一套機制背誦“信用”,讓人們在交易中達成“共識”。
隨著網(wǎng)上購物的增多,它仍然應該能夠滿足數(shù)字交易的需要。
它應該是分散的,存儲的數(shù)據(jù)應該屬于所有創(chuàng)建它的人。
它應該是安全的,可以驗證,交易系統(tǒng)需要持續(xù)穩(wěn)定運行,沒有人能隨意改變自己的貨幣量。
電子簽名與分布式賬本
為了方便了解后續(xù)比特幣和區(qū)塊鏈的一系列概念,我們將創(chuàng)建一個虛擬場景,模擬貨幣的實際運行,思考存在的問題和解決方案。
場景:小明、小紅、小軍、小李是四個好朋友,經(jīng)常有錢,所以他們建立了一個公共電子賬簿,記錄彼此賬戶之間的交易,到月底統(tǒng)一清算。
現(xiàn)在讓我們看看這個簡單的交易系統(tǒng)會出現(xiàn)什么問題,以及比特幣是如何解決這個問題的。
電子簽名:公鑰和私鑰
第一個問題是如何確保交易記錄準確?
因為電子賬本是公共的,所以每個人都可以秘密地在上面添加記錄。如果小明未經(jīng)小軍允許,在公共賬本上增強了不存在的記錄,說“小軍要轉(zhuǎn)給小明10元”怎么辦?
最簡單的想法之一是,每筆交易都需要這個人不可偽造的電子簽名來確認我授權(quán)了這筆交易。(私鑰簽名,公鑰驗證簽名)
但是,如何實現(xiàn)不可偽造的電子簽名呢?這涉及到密碼學的研究結(jié)果:公鑰和私鑰。每個人的賬戶都有一對字符串,一個叫公鑰,另一個叫私鑰。公鑰是一個開放的賬戶地址,每個人都可以看到,私鑰相當于賬戶密碼,只有你知道這一串數(shù)字,每個公鑰只對應一個私鑰。為了實現(xiàn)電子簽名,需要使用兩個函數(shù):
簽名函數(shù)和驗證函數(shù)。
簽字函數(shù)(交易明細、私鑰)= 該交易的電子簽名
驗證函數(shù)(交易明細、簽名、公鑰)= True/False
破解難度
由于函數(shù)是不可逆轉(zhuǎn)的,沒有其他方法可以獲得公鑰匹配私鑰偽造的簽名,除了一個接一個地嘗試枚舉,完全枚舉需要嘗試2256次。換句話說,如果你想通過枚舉找到這個數(shù)字,假設(shè)使用1000萬億中國峰值性能每秒1.206萬億“天河1”超級計算機,即使花1000萬億年,甚至枚舉量零,這個巨大的計算量從根本上確保了電子簽名的不可偽造性。
電子賬本和數(shù)字貨幣
為了防止這種情況,我們需要像支付寶一樣,讓每個參與該系統(tǒng)的人在交易前將一定數(shù)量的資金存入賬戶,同樣存入賬戶。例如,“小明在賬戶上存了100元”,每次增加交易細節(jié),我們都需要判斷對方賬戶上是否有這么多錢。如果沒有足夠的錢,我們需要宣布交易無效。
在這里,以上是一個支付系統(tǒng)最基本的功能。
分布式賬本和廣播網(wǎng)絡(luò)
電子簽名和電子賬本成功地解決了如何使機制進行信用背書和數(shù)字交易的問題。然而,為了實現(xiàn)“客戶創(chuàng)造、客戶擁有、用戶控制”的概念,我們需要將賬簿分布在網(wǎng)絡(luò)中的每個用戶中。
因為“歷史交易數(shù)據(jù)的總和是貨幣”,所以每個人的賬簿都應該是一樣的,然后,你需要一個廣播網(wǎng)絡(luò)。
比如小明要給小軍100元,小明需要沿著網(wǎng)線“大喊大叫”,把這個消息傳給小紅、小軍、小麗,讓他們在賬簿上添加這個信息,保證大家的賬簿一致。當然,這只是一個形象隱喻,實際上是由數(shù)字貨幣系統(tǒng)自己完成的。
共識機制和區(qū)塊鏈
共識機制
當我們選擇電子簽名和分布式分類帳時,我們使用一個機制系統(tǒng)來解決信用背書的問題。然而,在這個系統(tǒng)的幫助下,我們真的能在交易中達成完全的共識嗎?
構(gòu)想一個場景,小明要給小軍100元,小明沿著網(wǎng)線“大喊一聲”把這條消息傳給大家。但此時小紅的網(wǎng)絡(luò)出現(xiàn)故障,她丟失了這條消息記錄。小軍的賬簿上有這個信息,所以他覺得可以用這個“100元”進行交易。但當他找到小紅時,小紅的賬簿上沒有這個記錄,自然不同意“100元”的價值,也不能完成交易的“共識”。
因此,為了完成交易中的“共識”,有必要建立一套機制,以確保每個人都以相同的順序接收相同的信息記錄,這被稱為“共識機制”。BTC在建立之初設(shè)計的共識機制稱為工作量證明,還有權(quán)益證明、委托權(quán)益證明(Delegated Proof of Stake,簡稱DPOS)、實用拜占庭容錯算法(Practical Byzantine Fault Tolerance,簡稱PBFT)、參與性證實(Proof of Participation,其他形式的共識機制,如PoP)。以下是拜占庭圖片描述:
工作量證明(Proof of Work, PoW)
工作量證明的核心思想是,如果你需要得到認可的“共識”,你需要付出足夠的工作量。在互聯(lián)網(wǎng)世界里,這種工作量就是計算。在這種情況下,計算所消耗的計算率和時間資源是每個人信任的基礎(chǔ)。
那么如何證明自己的計算量呢?此時需要借用一個著名的加密工具——哈希函數(shù)(又稱散列函數(shù))。這個函數(shù)的性質(zhì)很奇怪,你可以輸入任何長度的字符,它會導出一串具有固定格式的字符串。有趣的是,雖然任何輸入只有一個導出,但輸出排列看起來完全隨機,任何微妙的輸入調(diào)整都可能導致導出的巨大變化。
例如,如果你輸入“小明給小軍100元”,結(jié)果是256個0,但如果你輸入“小明給小軍101元”或“小明給小剛101元”(刪除一個“”字),幾十個或幾百個隨機數(shù)字可能會改變。這意味著這個函數(shù)類似于上面提到的簽名函數(shù),幾乎不可能通過導出反向推斷輸入。破解它的唯一方法是一個接一個地嘗試。以哈希函數(shù)“SHA256”為例。對于任何輸入,它都會輸出256位二進制數(shù)列,即需要嘗試2的256方次才能列出。上面已經(jīng)提到了什么樣的天文數(shù)字。由于這一獨特性,哈希函數(shù)也被廣泛應用于密碼學領(lǐng)域。通常,我們注冊網(wǎng)站填寫的密碼和銀行存款密碼可以通過這些函數(shù)加密。
有了這樣一個函數(shù),我們就可以建立一個“工作量證明”的機制,每個人都可以給那個想要證明自己工作量的人一個問題。例如,指定一串20個二進制的0-1字符串,讓解題者找到一個輸入值,使256個導出值與指定字符串完全相同。對于那些想要證明自己工作量的人來說,他們只能一個接一個地嘗試,大約枚舉220次(大約100萬次),然后才能計算結(jié)果。測試結(jié)果的方法對命題人來說非常簡單,不需要列出這樣的重復工作,只需要將答案輸入哈希函數(shù),看看前20名是否與問題完全相同,以確認解決問題的人可能已經(jīng)支付了“220”的工作量。
示例
工作量證明的一個經(jīng)典例子是比特幣網(wǎng)絡(luò)的開采過程。以下是一個簡化的過程表示:
交易發(fā)生:當有人在比特幣網(wǎng)絡(luò)上進行交易時,比如Alice想向Bob轉(zhuǎn)賬一個比特幣。
交易廣播:該交易數(shù)據(jù)被加密并廣播到整個比特幣網(wǎng)絡(luò)的所有節(jié)點。
交易確認:網(wǎng)絡(luò)中的礦工收到交易數(shù)據(jù)后,將其與其他等待確定的交易一起打包成一個新區(qū)塊。
計算工作量:每個礦工開始找到一個特定的數(shù)字nonce,結(jié)合更多關(guān)于nonce和新塊的信息(包括前一塊的哈希、新交易目錄等),并通過SHA-256哈希函數(shù)進行計算。
滿足難度目標:比特幣網(wǎng)絡(luò)將動態(tài)管理采礦難度,需要一定數(shù)量的哈希計算(通常是數(shù)百萬或數(shù)十億)來促進礦工平均水平,才能找到符合條件的Nonce。這一條件通常要求哈希結(jié)果的前幾名為零。
發(fā)覺 nonce:當一個礦工試圖通過大量的計算找到一個合格的nonce時,他們就完成了工作量證明。
新塊生成:礦工將包含正確nonce的新塊廣播到整個網(wǎng)絡(luò)中。
驗證確認:其他節(jié)點收到新塊后,將單獨驗證所有交易以及nonce是否真正滿足工作量證書的要求。如果驗證通過,他們將接受新塊并添加到自己的區(qū)塊鏈副本中。
獎勵費:成功生成新區(qū)塊的礦工將獲得一定的比特幣作為獎勵(現(xiàn)在是6.25 BTC),同時,還可以收取區(qū)塊內(nèi)所有交易的手續(xù)費。
通過這個過程,工作量證明確保只有付出實際計算資源的礦工才能創(chuàng)建新的塊,由于篡改歷史塊需要重新完成之前所有的工作量證明,這使得比特幣網(wǎng)絡(luò)具有更高的安全性。然而,這也導致了大量的能耗,因為礦工必須不斷運行高性能的計算機來競爭解決這些復雜的數(shù)學問題。
2024-2025年注定是區(qū)塊鏈不平凡的一年
如果你對交易技術(shù)感興趣,想擁有和我一樣的交易系統(tǒng),無論是長周期還是短周期,都能得心應手!來吧 我 社 一起交流,讓我們一起擁有更多的BTC
記得關(guān)注你的關(guān)注,讓我有更多的動力和大家分享干貨!我會隨時分享財富密碼。記得查看。#熱點話題 #Web3Wallet #Web3Pay $BTC