繼續 如何加入礦工行列? 的討論:
顧慮到許多網友都是比特幣新手,許許多多的專有名詞挺叫人迷糊,有誰可以為大家白話解釋一下「確認」的意義?
我也好想知道,如果都沒網友願意解釋可不可以請論壇主加以白話文註解說明一下?
以彰顯台灣比特幣第一把交椅並非浪得虛名,<==哈哈這句亂講的不用理會
wiki的下面這段?
挖礦[編輯]
比特幣礦工通過解決具有一定工作量的工作量證明機制問題,來管理比特幣網路:確認交易並且防止雙重支付。中本聰在他的論文中闡述說,「在沒有中央權威存在的條件下,既鼓勵礦工支援比特幣網路,又讓比特幣的貨幣流通體系也有了最初的貨幣注入源頭。」中本聰把通過消耗CPU的電力和時間來產生比特幣,比喻成金礦消耗資源將黃金注入經濟。
比特幣的挖礦與節點軟體主要是透過對等網路、數位簽章、互動式證明系統來進行發起零知識證明[來源請求]與驗證交易。每一個網路節點向網路進行廣播交易,這些廣播出來的交易在經過礦工(在網路線上的電腦)的驗證後,礦工用自己的工作證明結果來表達確認,確認後的交易會被打包到資料塊中,資料塊會串起來形成連續的資料塊鏈。中本聰本人設計了第一版的比特幣挖礦程式,[18]這一程式隨後被開發為廣泛使用的第一代挖礦軟體Bitcoin,這一代軟體從2009年到2010年中旬都比較流行。[19]每一個比特幣的節點都會收集所有尚未確認的交易,並將其歸集到一個資料塊中,礦工節點會附加一個隨機調整數,並計算前一個資料塊的SHA-256雜湊運算值。挖礦節點不斷重複進行嘗試,直到它找到的隨機調整數使得產生的雜湊值低於某個特定的目標。由於雜湊運算是不可逆的,尋找到符合要求的隨機調整數非常困難,需要一個可以預計總次數的不斷試錯過程。這時,工作量證明機制就發揮作用了。當一個節點找到了符合要求的解,那麼它就可以向全網廣播自己的結果。其他節點就可以接收這個新解出來的資料塊,並檢驗其是否符合規則。如果其他節點通過計算雜湊值發現確實滿足要求(比特幣要求的運算目標),那麼該資料塊有效,其他的節點就會接受該資料塊。
「驗證」(verify)是指付方地址有錢(比特幣)可付給它人、收方收到錢的數額是付方支的額度、没有同一筆錢同時支付給不同的人、没有一錢多用⋯⋯等等。
在許許多多已經被「驗證」(verified) 過的新交易中,「確認」(confirm) 的目的在眾多「驗證」過 (verified) 的交易中,要選定哪些「驗證」過的比特幣的支付交易要被確定加到區塊錬上。
「確認」(confirm) 的動作是由「礦工」來做,每一批次許多被「確認」過的交易合在一起視為一個區塊,一個「確認」過的區塊連著下一組「確認」過的區塊,就形成一個區塊鏈了,這個鏈中有的資料就是所有發生過、驗證過、也被確認過的所有收付交易記錄的合集,好比一本大流水帳本。
没錯,所有,所有發生過收付交易都公開地存在區塊鏈中,每個全結點(full node)上都有一份。
當一筆交易(transaction)被發送到比特幣網路,首先會被接收到的節點記錄到一個暫存區,稱作mempool (memory pool)。
節點在建造新的區塊,進行運算的時候,就會把mempool中的交易紀錄加入建造中的區塊。
須注意各個節點都有自己的mempool,且每個節點之間會彼此交換mempool的內容。
確認(confirmation) 就是當一筆交易被從mempool納入新生成的區塊,並加入區塊鍊。
因為區塊練的串列的結構,如果交易被納入最後一個區塊,稱之為1-confirmation (一次確認),
之後下一個區塊產生,原本的最後一個區塊,就變成倒數第二個(倒數第二出生),稱為2-confirmation,以此類推。
某筆交易的確認越多,表示該交易歸屬的區塊在區塊鏈中的"輩份"越高。"歷史"被修改的機率越低。
而尚在mempool中的transaction被稱為0-confirmation transaction。因為完全不在區塊鍊上,而且每個節點的mempool各自不同(甚至大小都不一樣),所以基本上完全不受比特幣協議的保護。