比特幣交易如何驗證?


比特幣網絡巧妙地使用了一種機制來解決雙花問題,它基本上允許創建一個不需要第三方(例如銀行)驗證交易的貨幣系統。

據說這個系統是沒有信任的,為了實現它,它需要礦工。

簡而言之,礦工是一台專用於驗證網絡內交易的專有任務的計算機,從而禁止不良行為者參與。

我們知道交易是加密貨幣保護的,並被發送到網絡與礦工進行通信。然後將它們中的一些整合到一個比特幣區塊中。

從那裡他們執行一個數學過程,使他們能夠驗證區塊,從而能夠添加構成區塊鏈的其他區塊鏈。

為此,礦工除了從交易中獲得的佣金外,還會獲得在該區塊中創建的新BTC 的獎勵,以及所有為網絡貢獻計算資源的獎勵,使其更加安全。

這將是如何驗證它們的簡短摘要,但深入研究其他主題(例如他們必須解決的數學問題)以了解如何驗證交易是很有趣的。

塊和哈希

區塊的兩個主要組成部分是交易列表和頭部。

標題由以下部分組成:

比特幣使用一種稱為SHA-256 的哈希算法,它將我們在此函數中輸入的信息轉換為256 位數字。

這意味著我們可以在算法中輸入任何類型的信息,我們將收到一個唯一的256 位數字來標識該信息。

例如,如果我們輸入該網站的名稱(加密貨幣),我們將獲得:

fcb0f8294feb79131321d3bb38934e97315c808c1b5d19e3c07b13d0b9b5baa3

但是,如果我們更改名稱中的任何字符或只是添加一個新字符,即使我們將第一個字母大寫,我們也會得到完全不同的東西(Cryptotary):

64c107e7d001846a0823c402e553cb1bd43c16fdf2ae67cc98baf129329eb19b

如你所見,兩個散列(依次以十六進制格式表示,這就是字母)彼此沒有關係。

這意味著我們不能使用SHA-256 哈希函數從結果中獲取輸入。但是如果我們可以重新輸入相同的信息並檢查我們是否得到相同的結果。

這是區塊鏈技術背後一個非常重要的概念。

假設我們有兩個區塊,A 和B。首先,A 被添加到網絡中。礦工收集一系列交易並將它們整合到區塊A 中,然後生成A 的哈希,這是唯一標識它的數字。

然後另一個礦工創建建立在塊A 之上的塊B。為此,他選擇他想要集成到塊中的交易,並將A 的哈希添加到塊B。

現在,礦工生成具有交易集的B 的哈希值加上A 的哈希值。

比特幣區塊方案

現在,如果一個人想做錯事,比如修改A 交易的一些小細節,那麼A 的哈希值會完全改變,這也會使B 的哈希值做錯。這是因為創建B 的哈希的信息發生了變化。

因此,由於創建一個區塊並將其添加到網絡中需要大量的計算能力(我們稍後會看到這一點),因此不僅需要大量的計算能力來挖礦區塊A,還要挖礦區塊B .

所有這些攻擊者必須在另一個礦工發現塊C 之前完成,否則復雜性會堆積起來。

數學題

並不是礦工向區塊添加任何哈希值,這足以將其添加到網絡中。根據礦工能否找到下一個區塊,他有必要贏得一場比賽,他必須在比賽中找到正確的哈希值。

一個是從解決一個困難的數學問題中獲得的。

因為你不能從一個目標哈希開始,然後反向尋找需要修改哪些信息才能得到結果,比特幣協議使用這個特性來創建要解決的問題。

該問題規定,第一個生成具有一定數量0 的哈希的礦工是下一個區塊的贏家,並且能夠將其添加到網絡中。

我們知道散列只是一個256 位的數字串,通常以十六進制格式表示。

因此,這個數字可以從0 到9 的任何數字或從A 到F 的字母開始。

由於難度要求必須大於0,因此隨機找到開頭為一系列0 的數字的可能組合呈指數增長。

例如,如果我們創建一個哈希並且它有一個前導0,但是難度告訴我們它必須是3,那麼我們必須繼續測試。

比特幣哈希示例

問題是我們不能從那個散列繼續找到另外兩個,我們必須繼續創建其他散列,直到我們最終找到一個前面有三個0 的散列。

隨機數

但是現在你想知道如果礦工總是輸入相同的信息,他是如何獲得不同的哈希的。也就是說,交易不會改變,其他信息(例如前一個區塊的哈希值)也不會改變。

這需要一個除了每次簡單地更改散列之外別無其他用途的值。這就是所謂的隨機數或僅使用一次的數字。

nonce 是作為變量添加到每個塊的數字,礦工可以修改它以獲得不同的哈希值,從而能夠解決我們之前看到的數學問題。

通過這種方式,我們可以嘗試不同的隨機數,直到最終達到必要的目標。

該隨機數在塊內發送,因此可以與其餘信息一起使用,以便任何人都可以使用哈希函數並驗證結果是否正確。

挖礦難度

因為這是一個非常有利潤的競爭,更多的是當比特幣價格上漲時,更多的人嘗試參與是正常的。

這意味著將有更多的計算資源在網絡上工作來解決這個問題,即尋找隨機數。

另一方面,如果你想獲得優於其他設備的優勢,將使用具有更大容量(以每秒哈希數或哈希功率來衡量)的更高效的設備來更快地找到解決方案。

隨著網絡總哈希能力的增加,問題的解決越來越快。這就是為什麼需要一種機制來增加難度(也可以降低難度)。

比特幣協議旨在以每10 分鐘一個或每小時6 個的速度添加塊。

為了維持這種新區塊的流動,該協議有一個稱為難度的參數,該參數根據添加新區塊的速度或慢來向上或向下調整。

這種計算每2,016 個區塊(大約2 週)進行一次,然後審查這些最後的區塊,並衡量它們解決問題的成本。從那裡,調整難度以接近理想值。

如果你想了解更多關於挖礦難度的信息,請閱讀這篇文章。

區塊獎勵和佣金

使用挖礦設備和消耗大量電力來驗證區塊交易的激勵是區塊獎勵和交易費用。

對於礦工正確開采的每個區塊,他都會收到加密貨幣形式的獎勵。一開始,每個區塊是50 BTC,但每4 年,在稱為減半的事件中減少一半。

這個想法是,這種獎勵減少得足夠多,以便將來不會產生新的比特幣,因此貨幣基礎是恆定的。

目前,在2020 年最後一次減半後,獎勵為6.25 BTC。

第二種激勵形式是人們為要發送的交易支付的佣金。

比特幣協議在其代碼中規定該塊的最大大小為1 MB(儘管實際上由於進行了一些更改,它會更大一些)。

如果大小固定,但交易需求增加,那麼你需要一種方法來確定每個塊中包含的交易的優先級。

這就是佣金收費的重要之處。我們支付的佣金越高,礦工就越感興趣並將其整合到他們的區塊中。

單獨挖礦對比團體

隨著網絡的發展,以及挖礦需求的普及,隨著時間的推移,一個人發現新區塊並獲得獎勵幾乎是不可能的。

今天作為一個孤獨的礦工競爭的唯一方法是購買大量的哈希能力,這是相當昂貴的。

然而,對於那些不願意花這麼多錢的人來說,如果他們想成為網絡的一部分並賺取一些東西,那麼有一個更有吸引力的解決方案。這是加入礦池。

這些,也稱為礦池,基本上是一組礦工,他們共同努力共同獲得下一個區塊。

通過這樣做,他們將更頻繁地獲得區塊,從而在參與者之間分配獎勵。這允許那些不認為這是一個嚴肅的項目而更多地將其作為一種愛好的人參與並贏得一些東西。

該組的每個成員將單獨執行他們的任務,尋找使哈希正確的隨機數。但是,有一種監控形式可以控制每個礦工對該礦池的貢獻。這樣,當發現區塊時,可以計算每個礦工按比例支付的貢獻。

假設難度為17 個零。然後,團裡會有一個迷你版的這個成員之間的比賽,難度會低很多,比如3個零。

因此,每次成員發現3 到17 個零之間的隨機數時,他們都會收到一份。

這種參與證明了該成員正在努力解決真正的問題。

一旦成員找到解決方案,該小組就會查看每個人擁有多少份額並按比例分配獎勵和佣金。

資訊來源:由0x資訊編譯自CRIPTOTARIO。版權歸作者Criptotario所有,未經許可,不得轉載

Total
0
Shares
Related Posts