唔好意思
隔左幾個月都無出文
上次講bitcoin script好似太深
都係轉番D易入口既topic先
what and why is segwit2x
之前提過一個bitcoin既transaction要等礦工加入下一個block先算得到一次confirmation
而礦工點樣判斷加邊個block入下一個block呢?
好多時都係睇transaction fee, 你肯出越多錢比礦工,礦工咪優先處理左你個交易先
如果大家有留意transaction fee既走勢
2016年年尾,如果你想吸引礦工立即處理你既交易,大概係100 satoshi / byte
黎到2017年年尾,升到去900 satoshi / byte
(sources:
https://bitcoinfees.info)
一個transaction大概有250 btyes, 即係要37500 satoshi 先可以保證礦工優先處理
以1BTC=15000USD黎計,225000satoshi大約係30美金,你都咪話唔貴
導致transaction fee上升,原因好簡單,因為transaction越黎越多
而且bitcoin天生限制每個block既size係1MB,除番開每個block大約裝到1MB/250B=4000個交易
每10分鐘先有一個block出現,所以每10分鐘=600秒只可以處理到4000個交易
即係話每秒鐘處理4000/600=6.667個交易
大家通常round up做7
成個bitcoin network, 每秒鐘只可以處理7個交易,其實真係好廢
唔好講全世界,淨係講搭地鐵,每一秒都有70個人o都緊八達通啦
Fo reference, visa每秒鐘可以處理約1萬條交交易
所以bitcoin既transaction processing power一直都係討論熱點之一
最常見既解決方法係擴大每一個block既容量,由而家1MB提升到2MB甚至4MB
擴大容量有咩好?簡單直接
... MAX_BLOCK_SIZE=1000000
改做
... MAX_BLOCK_SIZE=2000000
完
然後coordinate with 所有礦工,擇個時辰吉日一齊升級,搞掂
擴大區塊容量有咩唔好?
1. 增加做礦工既門檻,block大左,運算能力要求高左,即係少左人做到礦工,導致hashing power更加集中
本黎掘礦應該係去中心化,擴大容量之後會中心化左
2. 網速限制,唔係全世界既網絡都好似香港咁快。
block size大左一倍,傳輸時間會長左接近1倍。而家1MB既block要broadcast到全個network都知,需要大約30秒。唔好睇少呢30秒,因為礦工係基於latest block黎掘下一個block。
假設我起香港成功掘到下一個block, 幾秒之內成個亞洲區都會知道,但係要多十秒呢個消失先去到美國歐洲。
即係話美國歐洲既礦工作遲左10幾秒先開始掘下一個block。
掘礦呢樣野係爭分奪秒,情況就好似考試派卷咁,老師一開始派卷比每行第一個人傳去後面,如果老師唔等到所有人都收到卷先話開始做,而係一收到卷就做得,咁每行第1個人就會比每行最尾果個人多幾十秒時間做卷。幾十秒,夠你答arm 多條mc, 分分鐘就爭一個grade。起bitcoin既世界,講緊幾個bitcoin既reward架啦。
所以唔係所有人都同意擴大block size呢個做法。
大致上分為兩派:礦工同bitcoin developer
礦工支持擴大block size, 因為擴大左之後更加少人可以同佢地競爭
bitcoin developer唔支持,因為block size越大network越centralize, 違反左bitcoin既原意
而就算double block size都好,每個block儲到既交易數會由7條上升到14條,其實仍然遠遠唔夠滿足bitcoin既交易量
咁你話double唔得咪triple, 甚至quadruple
比盡你去到8MB一個block, 好似bitcoin cash咁,咪都係1秒56條交易
(講遠D:所以有班極端份子建議bitcoin umlimited,任由miner 無上限自決block size)
bitcoin developer反對擴大容量,咁有咩建議先?
答案係:segwit (segregation witness, 隔離見証)
想一個block可以裝到多d transaction有兩個方法,一個係個block大D,即係上面講過既野
一個係transaction細D,segwit就係令到transaction細D既方法
witness係密碼學入面既jargon...起bitcoin既世界入面,witness即係transaction入面既簽名
一個transaction 250Btyes入面有大約100Btyes係簽名
segwit就係一個神奇魔術,可以拎走個簽名,free番多D位出黎裝transaction
另外segwit仲fix左bitcoin core一個由來以久既問題:transaction malleability
呢個問題唔死得人,無人會因為呢個問題唔見左錢,但係就提供左一個漏洞比人攻擊bitcoin network
2014年初就發生過大規模攻擊事件,搞到幾個大exchange down左一排過唔到錢比人
唔只添wor, segwit係開發lightning network (閃電網絡)既必要條件
閃電網絡既目的係創造一個payment channel, 起呢個channel發生既交易可以暫時唔擺上blockchain住
我可以同你來回幾十次交易之後先commit上條chain度
例如一間咖啡店可以同你開一條channel, 你買左10杯咖啡之後先confirm
閃電網絡安全在於要求雙方拎保証金出黎先,如果呢個channel上有人想走數,佢可以確保另一方唔會有損失
詳細唔講咁多,但係聽到呢到,你起碼要明白礦工一定唔同意呢個方案
因為閃電網絡想做既就係擺少D交易入blockchain, 一旦成事既話礦工就會賺少好多transaction fee
雖然,大家都知道實行segwit先係真係為bitcoin發展好,先真係可以將bitcoin帶入日常生活
所以bitcoin developer同礦工傾唔掂數
bitcoin developer想做segwit, 但係礦工只係想擴大block size(2x)
直到2016年年頭
有班人出黎搞bitcoin classic, 同bitcoin既分別就係block size =2MB
礦工之間有好人心思思想跳槽唔再掘bitcoin, 轉行掘bitcoin classic
Bitcoin developer就梗係唔會同意啦,但係要知道bitcoin developer其實係無實權在手
只有掘礦既人可以控制掘出一個咩block出黎
所以developer決定安撫佢地,於是佢地出黎開會,會後出現左bitcoin round table consenus
https://medium.com/@bitcoinroundtable/bitcoin-roundtable-consensus-266d475a61ff
Developer同礦工開會既地方,係香港既數碼港
真係唔講你都唔知bitcoin既歷史事件係起香港發生
雙方達成既共識係:爭咩丫,溝埋做segwit2x丫,笨
礦工當初話轉投bitcoin classic其實都係想大下班developer, 無人夠膽真係企出黎話帶頭轉過去
始終developer先係bitcoin community既精神領袖,至少起2016年既時候bitcoin先係玄門正宗,無人夠膽搞分裂
講番班bitcoin developer, 其實呢班人都係一個個獨立個體,無話邊個係大佬
當然會有幾個有名氣D,但係唔等於佢地可以控制其他developer做咩
當日出席數碼港既bitcoin roundtable既只係其中幾個developer
呢幾個develoepr雖然答應左會幫手搞2x, 但其他無出席會議既developer其實唔係幾同意
developer一直開發segwit, 仲宣佈2017年8月1日之fork一次
Developer:「如果你班礦工唔願意接受segwit, 隨你,你鐘意就自己fork 條chain,但係後果就係會有兩隻bitcoin出現,後果自負」
而家睇番轉頭可能覺得咁講法無乜殺傷力
因為而家有太多種由bitcoin main chain fork 出黎既bitcoin-alt coin
但係果時無人真係夠膽咁做,大家都驚萬一搞左bitcoin1 bitcoin2出黎大家會好混亂
會嚴重影響bitcoin發展
但係呢個世界就係有人咁大膽,一班2x既支持者覺得2x先係皇道
唔理developer既警告,反而大番佢地轉頭:
「好,你地8月1日fork丫麻,我早過你,我地7月28日就fork, fork出黎既叫bitcoin cash(BCC),睇下你點」