Re: [閒聊] IOTA真的能實現足夠的算力嗎
看板DigiCurrency (數位貨幣)作者grapherd (NULL)時間6年前 (2018/01/20 21:56)推噓6(6推 0噓 14→)留言20則, 9人參與討論串12/22 (看更多)
※ 引述《kugwa (kugwa)》之銘言:
: ※ 引述《grapherd (NULL)》之銘言:
: : 這個問題已經回應過了,不會發生這樣的問題。
: : 這種超久的 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時間後就堅決不再撤銷)
: 最終都會造成全網失去共識
: 就像我前一篇說的那種案例
幾點說明一下:
1. IOTA 為「固定」數值的區塊鏈 (區塊鏈不正確,反正就先當區塊鏈吧)
也就是說先不管整體網路如何,一個符合 valid transaction 規則的 double spending transaction,
製作上變得有點困難。
舉例而言,整個 IOTA 網路假設只有 1i,並且有三個 address A (1i), B(0i), C(0i), SUM(1i)
今天正常的交易 A 給 B 1i 的話,會變成:
A(0i), B(1i), C(0i), SUM(1i)
預想中發起 double spending 的話 (A->B, A->C),會變成:
A(0i), B(1i), C(1i), SUM(2i)
整體帳本的總數就不對了,這時候沒被共識到的那個交易,其他節點在收到的時候,就會列為拒絕戶而不使用它。
2. 交易共識改寫
有了固定數值的概念,我們再來看交易共識改寫的狀況。
2.1 正常節點捨棄 double spending transaction:
我之所前面說到,第一個交易已經成立後,第二個 double spending 交易就不會被其他人所接受的原因,
就是基於前面所提到的固定數值概念,都已經知道他是爛掉的交易,正常節點就不會選擇他了。
基於這個基礎,假設目前有 A, B, C 三個節點,B, C 節點已經認同第一筆交易,
這時候 A 節點發起 double spending transaction,B, C 節點收到之後會發現與帳本狀況不符合,
因此在 MCMC 的時候屏棄不用。
2.2. 超強算力讓 double spending transaction 的 weight 蓋掉原本的交易:
前面所提到的一種攻擊方式是,A交易成立後,B交易以超強算力蓋出一條超高 weight 的交易,
來蓋掉前面 A 的交易。
第一個要考慮的是節點,因為如同前面說的,節點會直接看到此交易造成帳本不符合後捨棄不用。
第二個是,有能力造出超高 weight 的交易嗎?
交易的發起流程,可以參考此文:https://goo.gl/pckfc2
可以清楚地發現,tips 就是一個 81 chars 的 tx hash,而 tx hash 產生的時機點是算完 nonce 之後才會產生。
意思就是說,如果我們要蓋出一個超長 weight transaciton,我們是沒有辦法 parallel 去做的:
| A |<---| B |<---| C |<---| D |<---....| X |
的話,先算完 A,才能夠填寫 B,繼續才能填寫 C, D, ....etc
一個算 3 秒,接出來要蓋過去....這時候就是比算力。
2.3. 算力比拼
前面提到攻擊者可以自己做出超長 weight 的交易,但是別忘記,
一個受到 confirm 的交易,還會被後面其他交易給 reference 啊
這時候就是比拼算力的時候,究竟是攻擊者可以壓過去,還是其他節點
reference 起來更快?
這裡就來到 34% attack 的範疇,跟 Bitcoin 一樣,比拼正常人跟攻擊者的多寡。
至於 IOTA 為啥認為比拼一定能贏過攻擊者,就是他的野心是放在全球 IoT devices
想要透過大量節點輾壓掉攻擊者......
2.4 正常人的多寡
另外一個部分是,到底 double spending transaction 會不會其他人選到?
假設有自修改節點,每看到一個 transaction 就給他 reference 一個也不管是不是正確的,
(就是改動 default MCMC algorithm)
那 double spending transaction 有沒有機會變成正確的交易?
這個請參考這幾篇,描述 MCMC 的狀況的文章:
https://blog.iota.org/iota-simulations-first-preview-to-the-community-b888d1f807e4
https://blog.iota.org/equilibria-in-the-tangle-let-me-try-to-explain-b22ad6f00c13
https://blog.iota.org/equilibria-in-the-tangle-let-me-try-to-explain-part-2-6dcc8e7c0ad8
https://arxiv.org/abs/1712.05385
到最後就是比算力跟好人數目,究竟有沒有很多節點會故意去選擇 double spending transaction?
如果有,而且高過數值,那這個項目就完蛋了,這個在 cryptocurrency 都是,不是只有 IOTA 而已。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.12.46.231
※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1516456604.A.885.html
→
01/20 22:31,
6年前
, 1F
01/20 22:31, 1F
推
01/20 22:41,
6年前
, 2F
01/20 22:41, 2F
→
01/20 22:41,
6年前
, 3F
01/20 22:41, 3F
→
01/20 22:42,
6年前
, 4F
01/20 22:42, 4F
→
01/20 22:42,
6年前
, 5F
01/20 22:42, 5F
→
01/20 22:42,
6年前
, 6F
01/20 22:42, 6F
→
01/20 22:43,
6年前
, 7F
01/20 22:43, 7F
推
01/20 23:23,
6年前
, 8F
01/20 23:23, 8F
→
01/20 23:25,
6年前
, 9F
01/20 23:25, 9F
→
01/20 23:31,
6年前
, 10F
01/20 23:31, 10F
→
01/20 23:31,
6年前
, 11F
01/20 23:31, 11F
→
01/20 23:31,
6年前
, 12F
01/20 23:31, 12F
推
01/21 10:56,
6年前
, 13F
01/21 10:56, 13F
推
01/21 13:45,
6年前
, 14F
01/21 13:45, 14F
推
01/21 17:47,
6年前
, 15F
01/21 17:47, 15F
→
01/21 17:47,
6年前
, 16F
01/21 17:47, 16F
→
01/21 17:49,
6年前
, 17F
01/21 17:49, 17F
→
01/21 17:50,
6年前
, 18F
01/21 17:50, 18F
推
01/21 18:19,
6年前
, 19F
01/21 18:19, 19F
→
01/21 18:19,
6年前
, 20F
01/21 18:19, 20F
討論串 (同標題文章)
DigiCurrency 近期熱門文章
PTT數位生活區 即時熱門文章