您好,登錄后才能下訂單哦!
這篇文章主要介紹“區塊鏈中比特幣技術寫入流程是什么”,在日常操作中,相信很多人在區塊鏈中比特幣技術寫入流程是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”區塊鏈中比特幣技術寫入流程是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
0)用戶提交交易(個人補充):A 是一個真實的人,他想給 B 轉賬,A 需要使用比特幣的客戶端,選擇轉賬的金額和 B 的錢包 ID,點擊發送。比特幣客戶端可以獲得 A 的地址,也就是 A 的錢包ID和電子簽名。于是,一筆交易所需要的信息除了上一個交易的輸出就都具備了。
1)節點廣播交易:這筆交易通過比特幣客戶端發給比特幣的一個系統節點 N1。N1 接收到這筆交易信息后就廣播給其他節點,這是異步的,不用等其他節點回復,其他節點接收到新的交易信息后也會做廣播。
2)節點打包交易:這里假設系統的每個節點都有向區塊鏈上寫入數據的能力(其實某個節點往區塊鏈里寫數據就是往本地磁盤寫)。每個節點將自己收到的有效交易信息放入一個區塊里,存到本地,我們稱為候選區塊。
3)挖礦:(proof-of-work) 挖礦這個詞很火。我們之前提到每個區塊頭部有一個 nonce,挖礦的本質是使用計算機的計算能力找到一個合適的 nonce,使得這個區塊的所有信息 hash 后的小數足夠小,比如前70位都是0。因為 nonce 的改變會影響整個 hash 值,所以改變這個 nonce 值就可以改變 hash 后的值。由于這個閾值足夠小,需要大量的計算,一般10分鐘才會挖到這個 nonce,而挖到 nonce 的節點就有資格向本地區塊鏈上寫入這個候選區塊了,即證明了工作量。這個挖礦的節點就可以叫做礦工。
為什么這些礦工不合作呢,每人分一段范圍的數挖?這是不可行的,由于每個礦工都本地的候選區塊都不一樣,因此每個候選區塊適用的 nonce 值也不一樣,可能你分到了一個根本挖不到礦的范圍,所以每個礦工只能自己挖。
為什么會有人想當礦工呢?人們不會干費力不討好的事,因為礦工挖到礦會收獲比特幣。這筆錢會以一個賬單的形式記錄在每個區塊的開頭。所以,其實各個礦工需要的就是CPU的計算能力和電,誰的計算能力越高,誰能挖到礦的概率越大,誰就越有錢,誰就能繼續增加計算能力。
這樣看,礦被挖到的時間會越來越短,因為計算機的計算能力是逐年升高的。這里,中本聰又設計了可以動態調整挖礦難度,也就是 hash 之后的值需要小于的那個閾值是可調整的。你挖的快了就調低一點,挖的慢了就調高一點。使整個區塊鏈穩定在每10分鐘增加一個區塊這個水平。
因此,挖礦這個過程總結一下就是:挖屬于自己候選區塊的礦,并將這個候選區塊寫入本地區塊鏈。
4)廣播區塊:當寫入這個區塊 B 后,礦工需要廣播 B 給其他節點。
5)驗證區塊并寫入:節點接收到一個區塊 B 時,會驗證 B 是否滿足要求,且交易合法,交易合法的意思是沒有重復消費比特幣。如果不滿足要求則不承認 B。如果滿足要求,就把 B 寫到本地區塊鏈的末尾。
6)繼續寫:第 5)步只將這個區塊寫到了本地,那如何告訴別人我承認這個區塊了?方法如下:如果產生新的區塊就追加到 B 的末尾,繼續廣播新的區塊。也就表明這個節點是相信 B 的有效性的,原意往 B 后邊加數據。
理想的運行方式
一種理想的工作模式是:嚴格按照每10分鐘有一個節點挖到礦,且一個區塊在10分鐘之內可以到達所有節點。
舉個例子:比特幣節點有幾千個,1點有一個節點挖到礦了,可以向區塊鏈中寫入區塊,并在 1點10分之前將這個區塊廣播給所有其他節點,而其他節點也都驗證過了這個區塊,并把這個區塊加到本地鏈上。此時所有節點數據都一致了。1點10分又有一個節點挖到礦了,繼續這個循環。
這樣整個分布式系統中的數據總是一致的,不一致的時間不超過10分鐘,由于嚴格控制了寫入速度,使系統沒有沖突。系統就這樣幸福快樂地永遠運行下去了。
但是,現實并不是這么美麗,可能10分鐘有兩個節點挖到礦了,鏈會出現沖突,即數據不一致了。我們下節介紹沖突解決和雙重支付問題。
到此,關于“區塊鏈中比特幣技術寫入流程是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。