PoW、PoS 和交易衝突解決。它是如何工作的?PoS 在這裡沒有風險嗎?
所以我試圖把頭放在POS上。我有一個關於事務衝突解決的問題,以及這裡是否存在攻擊風險。
如果我正確理解 POS 是如何工作的,如果有兩筆交易在爭奪合法性,那麼投票的人將被帶入區塊鏈的人和投票支持失敗交易的人獎勵。
所以這是場景,我想知道我是否錯過了什麼。想法是這樣的:假設我在不同的機器上發送,但同時交易將我所有的 ETH 從一個賬戶發送到另一個賬戶。因為它在全球範圍內傳播,一些選民將接受交易 x,一些交易 y 和一些其他交易。如果您還沒有其他交易的資訊,您將對其進行驗證並下注。所以將會發生的是,一小部分選民將獲得正確的交易獎勵,而其他人將失去他們的賭注。這可以被用作攻擊來獲得 ETH,以免對方失敗。作為選民攻擊者,我可以輕鬆辨識我的交易(例如通過簽名)並確保我不參與包含我的任何交易的區塊的投票。
在那種情況下會發生什麼?系統如何在不過多懲罰選民的情況下解決這些衝突?
我的觀察是,在 PoW 的情況下,解決衝突不需要任何成本,最終一個區塊會獲勝,這就是它的結束。但是在 PoS 的情況下,每次解決衝突都會導致人們為錯誤的區塊投票而付出代價,而他們卻完全不知道自己在這樣做。
像這樣的攻擊不起作用的三個原因(根據目前的 CASPER 系統。)
首先,不再有“矛盾”的交易。交易需要有效的只是它的格式正確。其他一切,從隨機數檢查到驗證帳戶是否有足夠的 ETH 可以發送,都將由 EVM 完成。所以事務 X 和事務 Y 都可能“發生”。只是一個會發送所有賬戶的 ETH,而另一個會什麼都做不了。
其次,目前系統創建區塊的權利是確定性的。已知驗證器將在每個高度生成塊。因此,要創建兩個相互矛盾的塊,驗證者必須親自完成。這將導致驗證者因失去其押金而受到懲罰。
第三,投注不是全有或全無。驗證者給出賠率,例如“我相信這個區塊有 60% 的機會是正確的”。預設情況下,驗證者會增加機率,因為他們看到其他驗證者以相同的方式下注。如果有兩個相互矛盾的區塊,那麼明智的驗證者將停止投注似乎正在輸掉的區塊,並開始投注似乎正在獲勝的區塊。那些開始押注輸掉區塊的人會輸掉一些賭注,但不會比最初產生兩個區塊的驗證者損失的多。