<menuitem id="dtdv5"><dl id="dtdv5"><address id="dtdv5"></address></dl></menuitem>
<cite id="dtdv5"><span id="dtdv5"></span></cite>
<del id="dtdv5"><noframes id="dtdv5"><del id="dtdv5"></del>
<ins id="dtdv5"></ins><ins id="dtdv5"></ins>
<ins id="dtdv5"></ins>
<var id="dtdv5"><span id="dtdv5"></span></var>
<del id="dtdv5"><noframes id="dtdv5"><ins id="dtdv5"></ins><del id="dtdv5"></del>
<del id="dtdv5"><noframes id="dtdv5"><ins id="dtdv5"></ins>

你有沒有想過區塊鏈的挖掘過程如何進行的,或者你的交易如何得到確認并添加到了區塊鏈?好吧,我也是如此。由于我找不到任何明確的逐步解釋這個過程文章,我決定深入研究并自己編寫指南。以下是區塊鏈交易如何通過七個步驟從你的錢包處理到區塊鏈中。

區塊鏈礦工如何通過七個步驟挖礦并進行交易-LMLPHP

步驟1

用戶注銷交易從他們的錢包應用程序,嘗試從他們發送某個加密幣或代幣給其他人。

步驟2

交易由錢包應用程序廣播,現在等待礦工在相應的區塊鏈上接收。只要它沒有被挖掘,它就會在“未經證實的交易池”中徘徊。此池是網絡上等待處理的交易的集合。這些未經證實的交易通常不會收集在一個巨型池中,但更常見的是在小型細分的本地池中。

步驟3

網絡上的礦工(有時稱為節點,但不完全相同?。倪@些池中選擇交易并將其形成“塊”。除了一些元數據之外,塊基本上是交易的集合(此時,仍然是未經證實的交易)。每個礦工都構建他們自己的區塊,但是多個礦工可以選擇要包含在他們區塊中的相同交易。

示例:兩名礦工,礦工A和礦工B。礦工A和礦工B都可以決定將交易X包含在他們的區塊中。塊具有最大數據大小。在比特幣區塊鏈中,塊的最大大小是最大1MB的數據。但在將交易添加到其塊之前,小型企業需要根據區塊鏈歷史檢查交易是否有資格執行。如果發件人的錢包余額根據現有的區塊鏈歷史記錄具有足夠的資金,則該交易被認為是有效的并且可以添加到該塊中。礦工通常會優先考慮設置高交易費的交易,因為這會給他們更高的回報。

步驟4

通過選擇交易并將其添加到其區塊,礦工創建一個交易塊。要將此交易塊添加到區塊鏈(以使所有其他節點和礦工注冊交易),該塊首先需要簽名。此簽名是通過解決每個交易塊所特有的非常復雜的數學問題來創建的。每個塊都有不同的數學問題,這意味著每個礦工都會處理他們構建的塊所特有的不同問題,但所有這些問題同樣難以解決。為了解決這個數學問題,需要大量的計算能力(因此需要大量的電力)。這是稱為挖掘的過程。如果你想了解更多有關其工作原理的信息,請繼續閱讀下面的內容,否則請跳至第5步。

挖掘aka哈希(工作量證明算法)

當嘗試向區塊鏈添加塊時,每個礦工面臨的數學問題是找到其塊中的數據的哈希輸出(也稱為簽名),其以一定量的連續零開始。這聽起來很復雜吧?但實際上并不那么難。讓我試著用一個簡單的方法向你解釋。

在我們繼續之前,解哈希函數是什么很重要。不用擔心,我不會涉及太多的技術細節。哈希函數只是一個很難解決的數學問題,但答案很容易驗證。

哈希函數接受數字和字母的輸入字符串(字面意思是任意字符串的隨機字母,數字和/或符號),并將其轉換為由隨機字母和數字組成的新的32位字符串。這個32位數字符串是哈希輸出。如果輸入字符串中的任何數字或字母發生更改,則哈希輸出也將隨機更改。但是,相同的輸入字符串將始終提供相同的輸出字符串。

現在考慮塊內的數據作為哈希輸入(一串數據)。當對此輸入進行哈希處理時,它會提供哈希輸出(32位數字符串)。比特幣區塊鏈的一個規則是該輸出字符串需要以連續數量的零開始,以便有資格作為塊簽名。這是每個礦工在嘗試向區塊鏈添加區塊時所尋找的東西;以一定量零開始的輸出字符串。但是如果塊的數據字符串沒有哈希到以零的數量開頭的輸出字符串中呢?好吧,這就是為什么礦工們反復更改其塊內的一部分數據,稱為nonce。由于隨機數會一直在變化,因此哈希函數的輸入數據也會發生變化,從而導致不同的哈希輸出。最終,礦工希望找到一個輸入字符串(塊數據和字符串的字符串),這些字符串哈希為符合條件的輸出字符串(以零的數量開頭)。下面的例子使用七個零,但這個零的數量實際上取決于區塊鏈的區塊難度。如果你還沒準備好,請不要點擊它。

這就是礦工們需要找到符合條件的簽名的方式,這也是解決這個數學問題需要如此大的計算能力的原因。猜測這么多不同的nonce需要花費大量的時間和計算能力。如果你順利完成了很好的工作,現在讓我們繼續前進到第5步。

注意:此過程實際上并未定義為數學問題,而是定義為確定性事項——計算機正在對數字執行預定操作以查看輸出是否合乎需要。

步驟5

礦工首先為其區塊找到符合條件的簽名(解決方案),將此簽名廣播給所有其他礦工。

步驟6

其他礦工現在驗證該解決方案是否與發件人塊的問題相對應(如果哈希輸入實際上導致該簽名)。如果有效,其他礦工將確認解決方案并同意該塊可以添加到區塊鏈中。這就是“工作量證明”定義的來源。找到解決方案的礦工將其“工作量證明”(又稱解決方案)發送給其他礦工,然后他們將驗證解決方案是否合法。如果是,那么其他礦工將同意并且就區塊鏈達成“共識”?,F在可以將塊添加到區塊鏈中,并將其廣播到網絡上的所有其他節點及其簽名。只要塊內的交易與該時間點的當前錢包余額(交易歷史)正確對應,其他節點將接受該塊并將其保存到其交易數據中。

步驟7

如果大多數礦工達成共識,則塊被添加到區塊鏈中。每次在此塊的頂部添加另一個塊時,它將被視為其下方塊的另一個“確認”。例如,如果我的交易包括在塊502中,并且區塊鏈是507個區塊長,則意味著我的交易有5個確認(507-502)。這也是Etherscan在向你展示交易詳情時所指的內容。你的交易確認越多,攻擊者就越難以改變它。當新區塊被添加到區塊鏈時,所有礦工將不得不在第3步重新開始,形成一個新的交易區塊。礦工們不能繼續(好吧,他們可以,但這是無關緊要的)采礦也解決了他們正在研究的區塊問題,原因有兩個。

  • 1.它可能包含已被添加到區塊鏈的最后一個塊確認的交易,因此其中一些交易現在可能無效,使得整個塊無效。
  • 2.每個塊都需要添加哈希輸出添加到區塊鏈的最后一個塊到其元數據中。

這就是它成為區塊鏈的原因。如果礦工繼續挖掘他們已經在處理的塊,其他礦工會注意到哈希輸出與區塊鏈上最新添加的塊的輸出不對應,因此將拒絕該塊。

======================================================================

分享一些以太坊、EOS、比特幣等區塊鏈相關的交互式在線編程實戰教程:

匯智網原創翻譯,轉載請標明出處。這里是原文區塊鏈礦工如何以七個步驟處理挖掘工作并進行交易

01-04 09:00
护士巨好爽好大乳 - 成男女人看片免费视频播放人 - 久青青在线观看视频国产 - 97中文字幕在线