工作量證明在比特幣中的應用
垃圾郵件中的工作證明
例如,我非常了解如何使用工作證明來防止電子郵件垃圾郵件。推理是因為為單個電子郵件計算正確的散列(例如,使用預定義的零個數)是昂貴的,因此人們不希望向數百萬收件人發送垃圾郵件來計算每封電子郵件的散列。現在這個推理完全有道理。
比特幣工作證明
但是,我不知道工作量證明系統是如何在比特幣中使用的,更準確地說:
- 它試圖解決什麼問題
- 更重要的是它如何解決這個問題
有人可以解釋一下嗎(用外行的話)?
為了有一個有用的支付系統,如果我有一些系統支持的資產,如果她是該系統的使用者,我必須能夠將它發送給 Alice。如果 Bob 是該系統的使用者,我還必須能夠將其發送給 Bob。但如果我能同時做這兩件事,這個系統就不再有用了。因此,對於比特幣,以某種方式向 Alice 發送比特幣必須阻止我將它們發送給 Bob,反之亦然。
傳統上,這將由中央機構完成。例如,我的銀行可以按照收到支票的順序處理支票,如果我有足夠的餘額就批准它們,然後從我的餘額中扣除該金額。銀行可以阻止我在兩個地方寄同樣的錢。但比特幣沒有中央權威。
比特幣的解決方案有幾個部分。
首先,它將交易分組到塊中。其次,它將塊連結到區塊鏈中。
第三,它有關於什麼是或不是有效區塊鏈的規則。例如,包含兩個衝突交易的鍊是無效的。因此,在我的範例中,區塊鏈可以包含我對 Alice 的付款或我對 Bob 的付款,但不能同時包含兩者。這是可行的,因為所有交易和狀態資訊都是公開的,所以除非他們選擇愚蠢地傷害自己,否則沒有人會接受任何有衝突交易的區塊鏈。
但是我們還有一個問題——如果有一個包括支付給 Alice 和一個包括支付給 Bob,我們如何讓每個人都同意哪個區塊鍊是有效的?這就是工作量證明(挖礦)的用武之地。
它由兩個步驟組成:
1)要向區塊鏈添加一個塊,你必須做大量的計算工作。
2)你會因為完成大量工作而獲得比特幣獎勵,但前提是包含你添加的區塊的區塊鏈成為每個人都同意的區塊鏈。
最後,還有一條規則:我們同意需要最大計算能力才能生成的有效區塊鏈。
在合理的條件下,這確保了每個人最終都會同意兩個交易中的哪一個是有效的。礦工被激勵建立在他們所知道的最長、有效的區塊鏈上,因為這給了他們獲得獎勵的最佳機會。因此,較長的鏈往往會變得更長,而較短的鏈往往會被忽略。最終,一條鏈將比其他所有鍊長得多,以至於我們每個人都在它上面挖礦,沒有人在另一條鏈上挖礦,更短的鏈不可能更長。
一旦發生這種情況,並且較長的鏈包含我在鏈中足夠深的兩個交易中的一個,我們都可以同意我的比特幣的去向。並且不需要中央權威。
它試圖解決什麼問題?
想像一個所有節點都連接在一起的 P2P 系統。現在,任何對等點都可以提出一個塊(這些交易集)並說它是有效的並且應該添加到區塊鏈(包含這些塊的分類帳)。現在,哪個節點提出這個新區塊的問題?. 如果我們隨機選擇一個節點來提議這個區塊,它很容易受到女巫攻擊(創建多個節點)。
輸入PoW(工作證明):我們近似地選擇一個隨機節點,而不是選擇與我們希望沒有人可以壟斷的資源成比例的節點。那是什麼意思?好吧,如果我們正在談論的資源是計算能力,那麼它就是一個工作量證明系統,我們以某種方式選擇與其計算能力成比例的節點。
我認為 PoW 是一種抗女巫攻擊的方法,用於選擇一個區塊來提議下一個區塊。就像垃圾郵件保護一樣,它是從選擇對等點來提議下一個塊的垃圾郵件保護。其他部分,如塊獎勵、雙花等與博弈論激勵有關。我希望您可以將其與電子郵件垃圾郵件保護聯繫起來
編輯:在垃圾郵件保護中:您可以通過強制伺服器為每條消息提供有效的 PoW 來防止發件人對伺服器進行 DOS 攻擊。這可以防止許多女巫的 DoS 攻擊。在這裡,您只選擇要由您的伺服器處理的有效消息。您從收到的垃圾郵件中挑選獲勝者(有效消息)。
在比特幣中:它是一種決定哪個塊應該是下一個塊的方法。您從同行可能提出的許多塊中選擇獲勝者(只有 1 個,第一個提供有效 PoW)。