IOTA真的能實現足夠的算力嗎 - 數位貨幣
![Erin avatar](/img/cat5.jpg)
By Erin
at 2018-01-20T21:56
at 2018-01-20T21:56
Table of Contents
※ 引述《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 而已。
--
: ※ 引述《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 而已。
--
Tags:
數位貨幣
All Comments
![Lauren avatar](/img/girl.jpg)
By Lauren
at 2018-01-23T23:15
at 2018-01-23T23:15
![Frederica avatar](/img/girl1.jpg)
By Frederica
at 2018-01-27T04:36
at 2018-01-27T04:36
![Quintina avatar](/img/girl2.jpg)
By Quintina
at 2018-01-28T01:49
at 2018-01-28T01:49
![Frederica avatar](/img/girl3.jpg)
By Frederica
at 2018-02-01T12:17
at 2018-02-01T12:17
![Oliver avatar](/img/cat3.jpg)
By Oliver
at 2018-02-04T12:47
at 2018-02-04T12:47
![Kumar avatar](/img/girl4.jpg)
By Kumar
at 2018-02-05T13:41
at 2018-02-05T13:41
![Mason avatar](/img/girl5.jpg)
By Mason
at 2018-02-08T09:56
at 2018-02-08T09:56
![Faithe avatar](/img/cat4.jpg)
By Faithe
at 2018-02-11T02:41
at 2018-02-11T02:41
![Yedda avatar](/img/woman.jpg)
By Yedda
at 2018-02-15T21:18
at 2018-02-15T21:18
![Xanthe avatar](/img/cat5.jpg)
By Xanthe
at 2018-02-19T09:36
at 2018-02-19T09:36
![Todd Johnson avatar](/img/dog1.jpg)
By Todd Johnson
at 2018-02-22T01:42
at 2018-02-22T01:42
![Kristin avatar](/img/woman-biz.jpg)
By Kristin
at 2018-02-25T12:41
at 2018-02-25T12:41
![Rachel avatar](/img/woman-glasses.jpg)
By Rachel
at 2018-02-28T06:35
at 2018-02-28T06:35
Related Posts
看到一間小交易所求售
![Ida avatar](/img/cat2.jpg)
By Ida
at 2018-01-20T17:23
at 2018-01-20T17:23
羅特幣Lordcoin?
![Odelette avatar](/img/beaver.jpg)
By Odelette
at 2018-01-20T16:58
at 2018-01-20T16:58
空投電報群/推特號
![Isabella avatar](/img/girl3.jpg)
By Isabella
at 2018-01-20T16:57
at 2018-01-20T16:57
有人拿到乙太靈了嗎?
![Heather avatar](/img/girl3.jpg)
By Heather
at 2018-01-20T15:22
at 2018-01-20T15:22
比特幣商赴約交易遇伏 被箍頸搶走140萬
![Ethan avatar](/img/cat3.jpg)
By Ethan
at 2018-01-20T14:06
at 2018-01-20T14:06