Re: [閒聊] BCH遭受51%攻擊?
看板DigiCurrency (數位貨幣)作者DarkerDuck (達克鴨)時間5年前 (2019/05/26 22:01)推噓18(18推 0噓 23→)留言41則, 15人參與討論串2/2 (看更多)
因為有人說我不會回文啦,所以還是回一下好了。雖然這些人都是嗆一句就落跑了。
首先,orphaned block本來就不是什麼天崩地裂的事情,BTC自己也時常發生。
https://www.blockchain.com/btc/orphaned-blocks
最近一次也不過就今年的2月11日,而且BTC已經是所有區塊鏈貨幣裡面最穩的了。
Ethereum uncle block更是恐怖,每幾分鐘就有一次。
https://etherscan.io/uncles
因此要跟Bitcoin一樣在Ethereum接受零確認交易不可行的主要原因就在這邊。
而這也是各個交易所也都會要求不只一個確認的主要原因。
就算是BTC這麼穩定的加密貨幣,通常至少也要三個確認,甚至要六個確認。
不然交易一個確認被reorg後丟棄了怎麼辦??
但是這次BCH orphan block高度高達2個blocksㄝ,超嚴重ㄝ~~~
那其實BTC歷史上有發生過因為新釋出的節點軟體有bug,
因而發生深度高達24 block的reorg,這才是真的超嚴重。
https://bitcoin.org/en/alert/2013-03-11-chain-fork
因為交易所的六個確認都還不夠安全了,有可能造成交易所資金損失。
而一般交易所對於BCH都要求三個確認以上,所以高度為2的reorg大家根本無感。
而且這次reorg其實也符合中本聰白皮書發生的行為。
https://bitcoin.org/bitcoin.pdf
The system is secure as long as honest nodes collectively control more CPU
power than any cooperating group of attacker nodes.
Nodes always consider the longest chain to be the correct one and will keep
working on extending it. If two nodes broadcast different versions of the next
block simultaneously, some nodes may receive one or the other first.
In that case, they work on the first one they received, but save the other
branch in case it becomes longer.
The tie will be broken when the next proof-of-work is found and one branch
becomes longer; the nodes that were working on the other branch will then
switch to the longer one. (reorg)
也就是說在攻擊行為發生的當下,blockchain reorg反而是一種保護機制。
這些攻擊礦工或許可以長出深度個位數的攻擊鏈,但是確認數一拉長,
那這些攻擊鏈終究會被誠實的礦工所丟棄,保護整個網路的安全。
白皮書最後面甚至算機率給你看了。
而這次的事件,無論Bitcoin abc還是Bitcoin Unlimited都沒有做出任何的"指令"
根本和"中心化"無任何關係,反而體現了中本聰當初白皮書所實現的去中心化安全機制。
我只能說這種白皮書連看都不看,惡意亂定義的行為真的很Blockstream Core。
那為什麼會發生這種攻擊,問Blockstream Core的偉大發明,軟分叉segwit啊。
軟分叉為什麼是軟分叉??
因為segwit交易的驗證機制並沒有強迫所有節點遵循為consensus rule
當然是"軟"的啊,我礦工想驗證就驗證,不驗證也沒差,大家憑"良心"啊
XDDD DDD DDD
把segwit交易的簽章搬離主鏈共識,丟到segwit data,大家想驗再來驗,
甚至該給的礦工手續費還少給一點,真的很有創意呢~~~
這就造成了對於一些懶得驗的礦工,segwit地址的比特幣是anyone can spend it。
但是因為BTC的算力巨大,在礦工普遍都有驗證segwit簽章的狀況下。
惡意礦工想要搬走所有segwit coin的攻擊鏈要長出來,是非常困難的。
很不幸的是,BCH的開發者決定出來攪這坨屎,雖然BCH的cash address已經實施很久了。
還是有很多人把BCH丟到了BTC的segwit地址,而且數量高達好幾千BCH了。
BCH的dev覺得總該要有一些救援機制,可以讓所有者把BCH救回去。
所以就新增了BCH segwit的救援交易,可以讓本來的所有者將BCH救援回原本的BCH。
並開放六個月讓大家來救援。
https://tinyurl.com/y3omab7k
這就是問題的來源了,我BCH的礦工幹嘛要去驗這個沒在共識機制內的segwit交易。
有些礦工就偷懶不驗了,而且攻擊的利益高達數千BCH,這次的攻擊行為就這樣產生了。
首先有個未知的礦工要將本來segwit地址的BCH都占為己有。並且產生了區塊。
然後ProHashing這個礦池沒有驗segwit data,也在繼續上面挖礦,長到了高度2。
但是後來佔算力多數的BTC.com和BTC.POP不承認這些具有竊取交易的攻擊鏈。
當然就是從前兩個未包含竊取交易的鏈繼續挖,因為誠實礦工佔有的算力較多。
因此攻擊鏈就被整個網路orphan掉,整個網路被誠實礦工所保護。
這本來就是白皮書裡寫的安全機制正常發揮,完全是跟所謂的51%"攻擊"顛倒過來的事件。
--
simpleledger:qryeahexpqszdt9ffech6jhxu6wsfp0fnyhgd44ahf
Bitcoin: 1GxtyprMfcxE366BDUsg1skQyuAnxktZjc
https://www.blockchain.com/zh/btc/address/1GxtyprMfcxE366BDUsg1skQyuAnxktZjc
Bitcoin Cash: bitcoincash:qp928h4q4xasa5wh2x88xhsxgc4vwj6g95uzq0ak97
https://goo.gl/2qNr43
Ethereum: 0x4A2B1e35eb64141bbad4C58cB7D79692bC5Dbbc2
https://etherscan.io/address/0x4A2B1e35eb64141bbad4C58cB7D79692bC5Dbbc2
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.201.139
※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1558879266.A.022.html
※ 編輯: DarkerDuck (61.227.201.139), 05/26/2019 22:12:19
※ 編輯: DarkerDuck (61.227.201.139), 05/26/2019 22:17:34
→
05/26 22:19,
5年前
, 1F
05/26 22:19, 1F
推
05/26 22:21,
5年前
, 2F
05/26 22:21, 2F
→
05/26 22:21,
5年前
, 3F
05/26 22:21, 3F
→
05/26 22:21,
5年前
, 4F
05/26 22:21, 4F
推
05/26 22:46,
5年前
, 5F
05/26 22:46, 5F
推
05/26 23:00,
5年前
, 6F
05/26 23:00, 6F
推
05/26 23:27,
5年前
, 7F
05/26 23:27, 7F
→
05/26 23:30,
5年前
, 8F
05/26 23:30, 8F
→
05/26 23:30,
5年前
, 9F
05/26 23:30, 9F
→
05/26 23:32,
5年前
, 10F
05/26 23:32, 10F
→
05/26 23:33,
5年前
, 11F
05/26 23:33, 11F
→
05/26 23:34,
5年前
, 12F
05/26 23:34, 12F
推
05/26 23:34,
5年前
, 13F
05/26 23:34, 13F
推
05/27 00:14,
5年前
, 14F
05/27 00:14, 14F
推
05/27 01:13,
5年前
, 15F
05/27 01:13, 15F
推
05/27 07:24,
5年前
, 16F
05/27 07:24, 16F
以前BTC的零確認支付的確是產業標準
Bitpay和coinbase都普遍支援BTC的零確認支付
https://youtu.be/ZWcezOH06Ds?t=105
因為BTC支付實在是太穩定可靠了,
大部份交易只要一發出幾乎可以肯定在下一個區塊被確認。
但是零確認支付當然有些先決條件:
首先支付交易必須不能被Replaced by fee,且礦工也要普遍遵循First seen的規則。
區塊鏈必須非常穩定,orphaned block和blockchain reorg的情況必須非常少見。
另外很重要的就是區塊鏈不能夠塞車,沒有那種交易塞在mempool一個月的鳥事。
那這樣就可以肯定符合標準的交易可以99.99%安全地進到區塊鏈內。
但是現在BTC的交易很多都有RBF,然後更嚴重的是常態性的塞車。
那根本不可能安全地的接受大部分的交易。那支付處理商自然就乾脆不支援了。
目前的確也有其他加密貨幣是可零確認支付的,不過那些幾乎都是中心化貨幣。
譬如Ripple, Stellar, EOS
因為驗證節點幾乎都是官方認可的,當然沒有所謂的雙花攻擊問題。
而去中心化的貨幣,最容易實現零確認支付的是BCH。
因為BCH直接把RBF這個anti-feature移掉了,
而且BCH只要1 sat/byte就幾乎確保這個交易可以在下個區塊被確認。
只是因為常常受到攻擊,使得BCH的區塊鏈不若BTC那樣的穩定。
目前Bitpay有些商家的確允許BCH的零確認支付。
但交易所為了安全性普遍不接受去中心化貨幣的零確認存款。
唯一的例外是CoinEx可接受BCH的零確認存款。
不過目前BCH正在研發avalanche pre-consensus
到時候BCH的零確認支付將會達到比以前的BTC零確認支付更安全的地步。
因為連礦工自己想要雙花交易都難以實現。
到時候大概就可以實現第一個被交易所普遍接受的零確認存款的去中心化加密貨幣。
只要數秒,交易所可以存款入帳。
https://tinyurl.com/y2kdgxsq
推
05/27 09:06,
5年前
, 17F
05/27 09:06, 17F
※ 編輯: DarkerDuck (36.237.86.196), 05/27/2019 12:39:31
推
05/27 13:46,
5年前
, 18F
05/27 13:46, 18F
推
05/27 17:14,
5年前
, 19F
05/27 17:14, 19F
推
05/27 19:50,
5年前
, 20F
05/27 19:50, 20F
推
05/27 20:45,
5年前
, 21F
05/27 20:45, 21F
→
05/27 20:45,
5年前
, 22F
05/27 20:45, 22F
推
05/27 20:53,
5年前
, 23F
05/27 20:53, 23F
→
05/27 20:56,
5年前
, 24F
05/27 20:56, 24F
→
05/27 20:56,
5年前
, 25F
05/27 20:56, 25F
其實要解決SPAM問題,有非常多種的解決方案,偏偏Core那些天才選擇一個最爛的方法。
而且那些方案甚至中本聰還在的時候就都想出了,Core卻完全不提變成黑歷史。
要知道早期比特幣可以是免手續費的,再重複一次,免~~手~~續~~費~~
那要怎麼避免這些免手續費的交易塞爆區塊鏈?
當時就是用Coin Days Destroyed來排序這些免手續費交易的權重。
簡單的講假如你有一筆數量夠大,放得夠久的比特幣,那你發出的交易優先權就會比較高。
因為SPAM交易都是頻繁、小金額的交易。
就~~是~~這~~麼~~簡~~單~~
※ 編輯: DarkerDuck (36.237.86.196), 05/27/2019 21:03:07
→
05/27 20:59,
5年前
, 26F
05/27 20:59, 26F
粉塵攻擊是指發出一些金額非常小的交易,塞爆UTXO set,
所以BTC和BCH理論上的最小單位是1 sat,但實際上你不能發出低於546 sat的交易
低於546 sat就當你是粉塵。
假如真的有人閒著沒事做出嚴重的粉塵攻擊,那就提高就可以解決了。
※ 編輯: DarkerDuck (36.237.86.196), 05/27/2019 21:06:58
推
05/27 21:37,
5年前
, 27F
05/27 21:37, 27F
→
05/27 21:37,
5年前
, 28F
05/27 21:37, 28F
→
05/27 21:37,
5年前
, 29F
05/27 21:37, 29F
→
05/27 21:37,
5年前
, 30F
05/27 21:37, 30F
https://coinsalad.com/bitcoincash/halving 一樣會減產
上限和Bitcoin一模一樣,都是兩千一百萬。
維持未來安全性的想法也是和Bitcoin一模一樣,靠全球擴容的手續費來支撐礦工安全。
※ 編輯: DarkerDuck (36.237.86.196), 05/27/2019 21:41:42
推
05/27 21:40,
5年前
, 31F
05/27 21:40, 31F
→
05/27 21:40,
5年前
, 32F
05/27 21:40, 32F
其實以本來Bitcoin的想法,本來就沒有卡在mempool裡,需要fee market往上競標的鳥事。
本來的fee market是指往下競標。是完全的消費者市場。
因為中本聰早就說過Bitcoin的擴容 "沒有極限"
假如你的交易沒有很急,你大可以設定一個非常低的手續費,等某個缺錢礦工撿走。
在早期的想法裡甚至是零手續費,讓礦工做功德 XDDD
反正在早期的年代,參與比特幣的礦工很多都是非常有理想的。
總會有些公益型礦工出現。
像是現在的bitcoin.com,你可以直接發出低於1sat/byte的交易給他。
他有機會接受你這個低於最低標準手續費的交易,甚至是零手續費。
https://tinyurl.com/y5k5vq99
就算真的block滿了,也大可不必使用RBF這個爛方法,
比較好的方法是縮短mempool的expire time為48小時,那這筆交易就會timeout被踢出。
使用者就可以用更高手續費重發。
或甚至使用者可以直接自訂expire time為多少block,超過就直接被踢出。
這實作上根本也沒什麼難度,就Core那些天才想不出來而已。
※ 編輯: DarkerDuck (36.237.86.196), 05/27/2019 22:30:04
※ 編輯: DarkerDuck (36.237.86.196), 05/27/2019 23:14:23
推
05/28 00:12,
5年前
, 33F
05/28 00:12, 33F
→
05/28 00:12,
5年前
, 34F
05/28 00:12, 34F
→
05/28 00:12,
5年前
, 35F
05/28 00:12, 35F
→
05/28 00:13,
5年前
, 36F
05/28 00:13, 36F
→
05/28 00:13,
5年前
, 37F
05/28 00:13, 37F
推
05/28 00:14,
5年前
, 38F
05/28 00:14, 38F
→
05/28 00:14,
5年前
, 39F
05/28 00:14, 39F
在我剛認識比特幣的時候,BTC是可以發出免手續費的交易的。
連當時的bitcoin.org都這樣寫。 Zero or low processing fees
https://web.archive.org/web/20140122225824/http://bitcoin.org/en/
有付手續費當然就依照sat/byte手續費的高低來決定優先權。
假如是比較不想要處理交易的礦工,甚至可以設定一定手續費以下的交易都不爽收。
但是因為區塊空間還很大,所以很多礦工都還會留一定比例的區塊空間給零手續費的交易。
那要決定那些交易可以進來,就是依照幣齡,幣齡夠高的交易才能享受到免手續費的優惠。
當然現在這些優惠全都毀了,因為1MB連塞高手續費的交易都不夠用了。
還給你塞免費交易喔,礦工腦袋又不是壞了。
現在BTC基本上不會收任何的免費交易,都是直接依照sat/byte手續費高低來決定優先權。
→
05/28 00:15,
5年前
, 40F
05/28 00:15, 40F
※ 編輯: DarkerDuck (36.237.120.237), 05/28/2019 00:57:58
→
05/28 01:06,
5年前
, 41F
05/28 01:06, 41F
※ 編輯: DarkerDuck (36.237.83.39), 05/29/2019 01:31:04
※ 編輯: DarkerDuck (36.237.92.96), 06/01/2019 16:39:35
※ 編輯: DarkerDuck (111.255.218.160 臺灣), 08/13/2019 09:03:29
討論串 (同標題文章)
DigiCurrency 近期熱門文章
PTT數位生活區 即時熱門文章