我還是把前面的推文用回文回應好了。
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若要達成真正的抗審查去中心化,可能最後還是要使用類似利益驅動的區塊鏈架構。