※ 引述《grapherd (NULL)》之銘言:
:
: ※ 引述《kugwa (kugwa)》之銘言:
: :
: : 同個系統狀態本來就不會雙花的兩筆交易同時存在
: :
: : 但是設想
: :
: : A已經被大家承認很久很久了
: :
: : A交易的賣方也交貨了
: :
: : 這時突然給你來個 B把A給超越
: :
: : 大家一致宣告A交易不算數
: :
: : 那A交易的賣方不就很幹 拿到的錢沒了 貨也大概拿不回來
:
: 這個問題已經回應過了,不會發生這樣的問題。
:
: 這種超久的 valid transaction V.S. 新出的爆幹 weight transaction
:
: 因為超久以前的 valid transaction 已經改變整個帳本的狀況
: (地址總額,對方地址總額等)
:
: 因此根本不會有收到貨然後又被蓋掉的問題。
怎麼不會有呢
就是會有這樣的問題啊
比特幣的短鏈追上長鏈造成blockchain reorganization
以及我們一直在討論的IOTA攻擊手段(B的累積權重超越A的累積權重)
都是這個狀況呀(雖然說落後很多的情況下追上通常都是惡意去追的)
你所謂的「整個帳本的狀況」
本來就是根據blockchain或Tangle的樣子在解讀的
blockchain的情況中 帳本的狀況就是最長鏈中所有交易一起套用的樣子
blockchain reorganization時 因為長鏈換了一條 帳本會整個被大改動
而Tangle的情況中 A的累積權重比B的還大時 帳本只採計A而忽略B
但是當B的累積權重超越A時 帳本就會改為採計B而忽略A
這種帳本改動一發生 你看到的各種總額就會跟著發生變動 很嚴重的
總之 根本沒有所謂的「某個交易生效一段時間之後就絕對不會被撤銷」的情況
(這應該叫freezed或是finalized)
只要另一方算力夠強 就有辦法撤銷任意的交易
(比特幣拒收落後超過12個高度的block 這個情形先不討論)
finalize之所以難以實現
就是因為很多種方式(例如你規定一個交易t時間後就堅決不再撤銷)
最終都會造成全網失去共識
就像我前一篇說的那種案例