看板 DigiCurrency 關於我們 聯絡資訊
我還是把前面的推文用回文回應好了。 IOTA本身還是用PoW去確保帳本安全,最大的問題在於整個網路安全並非是由"利益"驅動。 在一般的PoW區塊鏈系統下,自私的礦工將會不斷膨脹自己的算力直到"無利可圖"。 專業化的礦工負責維護網路安全,把帳本的難度提高到幾乎是不可逆。 一般使用者只要用SPV錢包簽章交易然後發出就好,剩下都免煩惱。 但在IOTA的架構下,這利益驅動部分被拿掉了。 這使得整個網路的算力無法像比特幣那樣誇張,因此就有可能讓交易可逆。 為了解決這個問題用了中心化的協調者去發milestone,直接把惡意的tip排除。 那這其實就已經不可能達到跟比特幣一樣自由抗審查去中心化的目的。 無論用什麼方式去喬,甚至是把Min Weight Magnitude調高或是用高效能server去創造PoW 那其實結果就是把本來礦工的工作丟給大家做而已 也就是IOTA所謂的免手續費只是把本來礦工的成本加到每一筆交易上而已。 這反而影響了交易發送和被確認的效率。而且嚴格來說這並非"零手續費成本" 因為要不就是發送交易要比較高的PoW,要不就是要需要可信的協調者挑選tangle流向。 這兩者都會對交易效率或去中心化造成影響。 不過我覺得假如用在本來區塊鏈上的零確認交易上倒是很實用的點子: 我一直認為中本聰已經把比特幣設計得近乎完美,根本不需要什麼太多上架構修改了。 頂多做些效能改進就可以變成全球性的金流網路。 專業的礦工將可以用專用機房專用線路處理全球的交易。 一般使用者付款時則可以透過零確認交易,在不到五秒內確認交易。 這零確認交易在2016年前是一直都可行的。直到比特幣被莫名其妙塞死之前。 也就是Bitcoin真的絕對可以變成跟"現金"一樣方便的。 不過還是有些缺憾。就是零確認交易靠的是礦工的自律。而不是礦工的自私。 礦工預設會排除所有後來看到的雙花交易。 譬如已經礦工已經看到交易A,後來又看到試圖雙花交易A UTXO的交易B。 那麼礦工預設就會排除雙花交易B。 但這只是原則。自私的礦工假如看到交易B有較高的手續費的話。 那礦工還是可以在交易A未被區塊鏈確認前,用雙花交易B來取代。 那假如把Tangle這個概念加到所有的未確認交易上的話。 將可以讓零確認交易也具有相當高的安全度,而且最重要的是這符合"自私的礦工"理念 原本Tangle需要更動的部分其實也不多,就是把PoW這個權重用傳輸手續費替代。 因為其實手續費就是來抵銷礦工PoW開支用的, 本來就沒有必要花額外的運算成本去計算PoW,只為了達成虛假的"免手續費" 同樣發出交易要去驗證前面兩個未確認交易串,並加上手續費即可。 礦工開始收集未確認交易形成tangle graph,假如覺得太大了,就停止接收新交易。 並且在產生區塊的時候把這些確認的tangle graph 交易集合廣播出去。 那這些交易就會被納入區塊鏈了。並且產生類似IOTA milestone的效果。 在交易尚未被確認的時候。 假如同樣有一個試圖雙花A的交易B進來了,那他就必須產生一個比交易A權重還高的graph 而交易權重就是手續費,以比特幣而言的話,一秒鐘就好幾千台幣的手續費。 那這就是雙花交易A的成本,對於一般的日常零確認小額交易來說,等個一兩秒就夠了。 這個初步的構想將可以達成非常高安全性的零確認交易。 因為礦工必定會挑選總權重高也就是手續費比較多的的tangle graph。 這符合礦工的終極利益。 缺點的話 就是礦工無法依照自己的喜好任意排除不喜歡的交易(通常是手續費較低的交易)。 以及此方案對於礦工的同步性要求比純PoW區塊鏈來得高很多。 以及稍微增加SPV節點所需要的頻寬和記憶體消耗。 不過像這種零確認交易的改進方案其實也有weak block等其他方案。 IOTA若要達成真正的抗審查去中心化,可能最後還是要使用類似利益驅動的區塊鏈架構。 -- 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), 來自: 36.236.95.81 ※ 文章網址: https://www.ptt.cc/bbs/DigiCurrency/M.1516198578.A.BC8.html ※ 編輯: DarkerDuck (36.236.95.81), 01/17/2018 22:18:01
blueseas: 推 01/17 22:22
※ 編輯: DarkerDuck (36.236.95.81), 01/17/2018 22:23:10 ※ 編輯: DarkerDuck (36.236.95.81), 01/17/2018 22:26:29
Ayukawayen: 雙花可以靠不同地點幾乎同時發送交易製造嗎? 比方一個 01/17 22:29
Ayukawayen: 在中國發 一個在美國發 就會有些礦工覺得中國交易比較 01/17 22:29
DarkerDuck: 可以啊,同一時間出現的雙花交易就等一下 01/17 22:30
Ayukawayen: 早發 有些覺得美國交易比較早? 01/17 22:30
DarkerDuck: 看這兩個conflict交易誰長出來的graph權重高 01/17 22:30
DarkerDuck: 而實務上支付處理商看到真的雙花交易就會直接等確認了 01/17 22:34
DarkerDuck: 反正是少數的可疑的惡意節點,就讓他等吧 01/17 22:34
DarkerDuck: 在這個架構下,就算交易沒被確認 01/17 22:41
DarkerDuck: 等越久,未確認交易也會越安全 01/17 22:41
kugwa: 推見解&點子! 01/17 22:54
goldflower: push 01/17 22:55
rand: 推 01/17 22:59
Ayukawayen: 了解 收到交易等幾秒 如果有同時雙花很快就可以發現 01/17 22:59
Ayukawayen: 發現雙花就等確認 如果幾秒沒雙花又小額就當做OK 01/17 23:00
ctes940008: 會不會變成跟www網路一樣?有幾台root伺服器處理認證 01/17 23:06
Fice: 當初看iota白皮書時,發現沒利益驅動吸引算力,整個怪 01/18 09:06
Fice: 然後有些問題,官方又說算力高就能解決,沒誘因怎麼高? 01/18 09:15
Fice: 不過iota一開始就表示是用在物聯網,可能是想走廠商合作模式 01/18 09:25
Fice: 不過這樣一來就不是去中心化了 01/18 09:26
kuma660224: IOTA為了追求物聯裝置負擔輕減 01/18 10:50
kuma660224: 他的裝置運算量必須降到很低。 01/18 10:50
kuma660224: 就算海量裝置上線,大概算力還是很少 01/18 10:50
kuma660224: 沒利益趨勢,所以認為難度不會大增 01/18 10:51
kuma660224: 但若遇到惡意的暴力運算裝置?? 01/18 10:52
wusyong: POW在IOTA中不是拿來當作security,重點是在網路上的tips 01/18 11:46
wusyong: 要交易驗證成功要讓幾乎所有的tips都認同,有惡意的spam 01/18 11:47
wusyong: 攻擊的話,他們要選擇最有利的tips或其他方式讓之後進來 01/18 11:48
wusyong: 的交易都認同他們,這關係到整個網路拓樸,白皮書有解釋 01/18 11:49
wusyong: 各種可能的攻擊方式,更不用說要如何在如此動態的結構拓 01/18 11:50
wusyong: 樸找到對自己最有利的tips或是部位 01/18 11:51
wusyong: POW對IOTA來說只是個進入tangle的證明,你甚至可以自己用 01/18 11:53
wusyong: curl完成交易,但最終驗證成功與否是看tangle後續進入的 01/18 11:54
wusyong: tips來決定 01/18 11:55
kugwa: 重新讀了板大這篇 覺得有些思路頗厲害 01/20 05:24
kugwa: 尤其是利用手續費來重新規定自身權重和累積權重的計算方式 01/20 05:26
kugwa: 大幅提高雙花成本 以大幅提昇零確認交易的可靠度 01/20 05:32
kugwa: 到這邊應該沒有理解錯吧? 01/20 05:33
kugwa: 待我繼續消化消化 01/20 05:34
kugwa: 啊 我想問 01/20 06:01
kugwa: 礦工選A或選B 01/20 06:02
kugwa: 應該是發生在挖礦開始前 收集交易進入區塊的階段? 01/20 06:02
kugwa: 所以你的實作會變成 01/20 06:06
kugwa: 挖礦(不斷試nonce)的過程中 01/20 06:06
kugwa: 收到新的交易時 可以暫停挖礦 01/20 06:08
kugwa: 把新的交易包進挖到一半的區塊之後 然後再繼續挖礦嗎 01/20 06:09
kugwa: 雖然我想了一想覺得好像也沒有不行 01/20 06:09
kugwa: 打斷挖礦 改區塊內容 再繼續挖 應該不會增加挖礦時間 01/20 06:10
不需要暫停挖礦,這問題其實就是我說的需要礦工要更高的同步性而已。 本來可以幾十秒才更新一次block template,若要這種高效率的零確認交易。 可能兩三秒就要更新一次。 就是挖礦一直都在進行,只是收到新的交易會更新block template然後挖新的。 舊的block template可以同時多工繼續挖,挖到當然就產生區塊而已。
kugwa: 哦 然後我又有個想問的欸 01/20 06:25
kugwa: 你這樣把Tangle包在Block裡面 你說可以讓零確認交易更安全 01/20 06:26
kugwa: 但不管Block裡的交易用什麼形式串起來 01/20 06:28
kugwa: 交易的確認數不夠高時 01/20 06:29
kugwa: 仍有面臨blockchain reorganization而被撤銷的可能 01/20 06:29
kugwa: 這樣不就沒意義了嗎 01/20 06:32
這問題本來就是零確認會有的。Bitpay和Coinbase為什麼不怕死? 因為交易處理商敢用零確認交易當然就是這機率非常低,甚至比信用卡詐欺比例還低的多 而比特幣本來就極端少出現blockchain reorganization。 而原因就是比特幣最為大家所詬病的10分鐘才產生區塊一次。 所以比特幣的區塊鏈是極端穩定的,才不會像ETH整天產生uncle block。 對於交易處理商而言,這風險小到可以忽略。 https://blockchain.info/orphaned-blocks 平均一個月才出現一兩塊的orphaned blocks 更不要說因為這樣產生雙花的可能性。 因為orphaned block產生雙花交易成功的例子在比特幣歷史上幾乎不存在。 (當然因為現在blockstream整天惡搞比特幣,現在這機率已經大幅提高) (導致bitpay和coinbase不敢再用零確認交易) 這也就是為什麼我一直認為中本聰版本的比特幣在全球金流網路上已經近乎完美了。 十分鐘一個區塊:在擴容上非常容易,不會因為擴容就導致區塊鏈不穩定。 足夠擴容到可支撐全球交易。 零確認交易:日常交易不需要確認,所以大部分的交易都是即時完成的。 很多錢包都允許你將未確認的交易直接轉給別人。在區塊鏈不塞住時這是非常安全的。 這就足夠解決一切支付問題。這也是為什麼我在比特幣2013年崩潰後仍然覺得潛力無窮。 但到現在我只想說 https://youtu.be/mCllEvfvgUY
kugwa: 謝謝板大回應!我再思考思考 01/20 11:11
※ 編輯: DarkerDuck (36.237.86.94), 05/04/2019 04:33:49