上周末在台北有三場很精采的講座,三場中都有人提到環繞著公鏈的主題在走,其中更是包含V和以太坊的核心團隊;另外還有來自杭州的Nervos團隊,他們都對於公鏈的發展有長期的關注,是前輩中的前輩,也有很深的造詣,而且現場還有很多比我聰明、努力都超過百倍的朋友前來,像陳老闆和PO,讓我對公鏈的設計原則得到很多的感悟。
好記性不如爛筆頭,因此還是決定當個知識的搬運工,把我吸收後的理解寫了下來。
公鏈的起源:萬劍歸宗比特幣
公鏈(public blockchain),也就是隨便一個路人,都可以參與成為節點的區塊鏈。不管是公鏈還是區塊鏈的概念,都來自中本聰的比特幣白皮書,一個能夠讓全網參與共識的貨幣機制也孕育而生。不斷的有人在挑戰比特幣,例如質疑過高的手續費、交易速度、壅塞等等問題。但其實這些問題都與他為了確保「安全」(Security)以及「去中心化」(Decentralization)。
安全是確保所有的比特幣能在鏈上安全的交易,已經讓交易資料安全的被記載與存放的最重要法則,往後的其他區塊鏈也脫離不了要點,他幾乎是任何區塊鏈的命脈;去中心化則是比特幣論文的創作者(們?),還有長期以來的Cypherpunks組織視死如歸擁抱的真理。
比特幣的安全靠什麼樣來維護?礦工
更細緻一點說,是靠維護能獲得足夠利益的礦工,所以有了出塊獎勵,有了手續費等方式,讓礦工與比特幣的價值形成利益共同體,背後犧牲的則是電等等的成本。因此,比特幣至今為什麼看似不靈活,卻能恆久不墜,關鍵在於他們花了非常大的成本和心力,將比特幣礦工與比特幣系統產生雙贏的局面。我想這可能也是Bitcoin Core這群神秘的高人們,會想讓比特幣系統維持著如此簡單的架構的原因,因為簡單是安全最好的朋友。
所以其實很多人批評比特幣的缺點,可能在許多Bitcoin Geeks的眼中並不存在。但從比較後設的觀點來看,比特幣系統也比較難參與所謂的區塊鏈應用,例如智能合約,當然硬寫是可以的,有人曾經在比特幣上寫了一個私人市集,當初在Bitcoin magazine的少年Vitalik也無法說服比特幣社群做擴展,於是有了以太坊(Ethereum)。
開啟千帆相競的區塊鏈航海時代 — 以太坊(Ethereum)
以太坊問世以後,靠著V、Gavin Wood等人還有一干熱情的以太坊社群開發者和擁護者,創造了風起雲湧的區塊鏈時代,在以太坊以前,除了照著比特幣的腳本乖乖發幣以外,其他的應用或噱頭都沒有人敢想,我認為以太坊開啟了大家對於區塊鏈的腦洞,尤其是ICO,非常多有想法沒資源的靠著雙手寫代碼、白皮書開啟了自己的新事業(還短暫擺脫了一創業就要被股東控制的命運?)。
以太坊公鏈上逐漸充滿各種項目各種項目的交易資料,和被記載的智能合約內容,雍塞(Congestion)的問題徹底爆發了,例如在某些ICO興起,或者某些明星項目發起時,沒有龐大的手續費,唯一陪伴用戶的就是無窮無盡的Pending,像是CryptoKitties和去年的Fomo3D,應該都讓大家很有感。
慢,以太坊核心開發團隊看到了,其他團隊也看到了。
同時用戶也感覺到了。
這時候在區塊鏈圈除了有更多人再擘劃美好的區塊鏈願景外,也有更多人開始公鏈存在著解決不了的不可能三角(Blockchain Trilemma)。很多新興公鏈跳了出來,說他們能夠做得更好。
八仙過海,各顯神通:共識演算法與人心的博弈
當然我們都知道,解決這個問題最好能夠三者都滿足,於是很多新興的公鏈開始展開了,大致可以分為兩種路線,一種是改變最基礎的共識演算法,告別中本共識Nakamoto consensus去尋找新世界;另一種則是利用改變區塊鏈的架構來處理不可能三角的問題。
一、改變最基礎的共識演算法
陸陸續續我們看到很多公鏈,開始採用權益證明(Proof of Stake)的方式,或者是委託式權益證明(DPOS),當然,這時候DPOS系的公鏈我們能夠看到,普遍的都擁有了速度;另一種DAG-BASED體系的,例如IOTA,一樣能夠達到Scalability。關於這些新的演算法的安全性問題,我不會在此多說,因為可能不久後會有高人做出更好的詮釋。
但還是有很多聰明人,知道很多人其實除非大難臨頭,不然對於安全性存在著僥倖心理,因此透過犧牲部份的中心化,全力去標榜速度與效率。
有部分公鏈也受到這樣的質疑,但他們也不是吃素的,甚至透過礦池和算力等問題,去反質疑了比特幣和以太坊的去中心化。因此,我認為這也是人心的博弈,目前還是有許多Dapp開發者,會選擇去速度更快的公鏈,不一定會在乎安全性,或者甚至將重要程度不一樣的資料上了不同安全性的鏈。
二、改變區塊鏈的架構
另外一種方式是認清楚區塊鏈的治理架構,進而讓區塊鏈分出很多不同的層(layer),並且在不同的層面解決不同的問題。
這點是許多對於公鏈有長期著墨的先行者們選擇的方向:並非要讓安全、去中心化、擴展性這三者同時在第一層的區塊鏈上面滿足,因此開展出了新的篇章:Layer2。
所謂的Layer2,就是希望能夠讓Layer1這種全球的共識上,能夠死守住安全、以及去中心化這兩個特性;剩下的問題交給Layer2,或者Layer2–2、Layer3解決。
最早有這樣的思想,是來自比特幣的閃電網絡(Lightning Network),也就是說我們在Layer1之上,可以在自己打開一個在鏈下(off-chain)的支付通道,過程中我們能夠用簽名的方式來保障個人的權益,並且當通道關閉時,能夠重新讓這些狀態回到區塊鏈上。
後續以太坊也展開了很多Layer2的應用,例如State channel、Plasma,其實這是一個對於區塊鏈的重新理解,我們可以在不同的區塊鏈層,透過不同的共識協議,去完成更多的事情,這樣一來可以避免在一個協議上要處理太多的問題,而讓協議變得過於複雜,進而產生漏洞。
簡單而言,可能的畫面如下圖所示,這也是這個周末被醍醐灌頂而後有的小心得。我
們也能夠發現,Layer2的概念日益受到重視,越來越多人投入基於Layer2的專案,像去年的以太坊開發者大會Devcon4,除了Layer1的Sharding等問題外,Layer2已經成為了一個重要的討論主題。甚至連跨鏈交易也越來越多人想在layer2層面實現。
我們可以想像,未來在這種架構下的區塊鏈,Layer2會像是基本的支付交易,可以日常中順利運行,而Layer1則像是法院,當張三和李四的交易出了問題以後,基於我系統的安全性、不可竄改,Layer1可以成為解決爭端的仲裁空間。
誰是抱著黃金走在大街上的小孩?
安全的問題很重要,常常很多在質疑POW的價值,包含其可能浪費電不環保等都是被質疑的問題,但卻不可以否認的是,挖礦的成本也造就了他的價值,而有價值,並且能夠讓更多的礦工和驗證者分享價值的公鏈,他就造就了大家願意為了自己的利益,去努力維持整體的利益。
然而目前的公鏈依舊是存在危險的,區塊鏈的發展時間越長,會有越來越多人想到更美好,也更有價值的應用;但如果在鏈上的項目token的價值比某公鏈的價值,或者說比該鏈的礦工獲益還要值錢,很多礦工也可能因為收益,或者驗證交易的價值不值錢而退出維護區塊鏈交易的工作,那麼安全性可能就會受到挑戰,此時該條公鏈就有如一個小孩抱著黃金走在大街上,只要有能力、有野心的人就有機會去搶奪運行在其鏈上的資產,例如透過51%Attack,有機會讓鏈上的Token產生安全疑慮。
所以不得不說,在PoW下,讓比特幣和目前的以太坊還能夠具有安全性。
但或許其他的公鏈仍然具有補救的方法,例如將明星項目和自己的幣掛勾,有點像是讓一個壯漢服了毒藥,叫他當你的保鑣,好好保護主人才能獲得解藥,在這點上其實Tron和BitTorrent的關係,有點像是這個概念的開創者,但其實BT在串流時代下,也已經沒有當年的地位,公司內部也存在著很多問題,可能不是那麼好的例子。
還有一些項目正在等孩子長大,但別忘了,去中心化的公鏈中共識要達成,需要兼顧各方陣營的利益,因此,如果區塊鏈的系統有大規模的變動,在達到共識上,也特別的花時間,不然一不注意,可能就會從硬分叉變成社群分裂在兩條鏈上了。
例如以太坊的硬分叉,有底層的作業所需的時間,還有形成硬分叉的共識,也需要時間,如果在其中又發現安全疑慮等問題,可能又要在推遲更久。
可能以太坊最大的敵人是時間,從Beacon Chain的Phase0、一路Phase1、Phase2、Phase3…,這樣的升級過程,其實與算是以太坊煞費苦心,尤其在Sharding的部分,以太坊並不希望產生一種情況,就是認為達到可擴展性以後,例如速度從原本的X提高了Y倍,但最後一樣雍塞,他想採用的是二次分片( quadratic sharding)的想法,也就是X的2次方,但也因此在架構上特別費事,但能達到不再被擴展性問題困擾的境界。
然而,要完全到Eth2.0,應該會需要數年的時間,這些時間裡就給了其他公鏈一些生長的時間,但Ether經年累月的價值,會是以太坊可以「用過去的時間換未來的時間」的一個重大籌碼。
總結:一枝獨秀的公鏈尚未存在
我們如果從互聯網的發展歷程,我們可以發現在這個領域中,會產生「細分壟斷」的現象,最後在特定的區域,甚至全球市場,特定的服務將由少數幾家公司提供,但目前在區塊鏈的公鏈領域還不會有誰能一枝獨秀的情況,因為各個公鏈的共識演算法都有各個演算法遇到的問題,有的是速度、有的是安全性,總之區塊鏈的底層技術還存在瓶頸,同時應用場景仍不明確,我認為隨著其他技術更成熟,我們會找到其他更合適於區塊鏈使用的載體,像是來自兩方的人工智能進行包含交易的重要合作時,他們的運作過程可能比較不存在Garbage In,Garbage out的問題,屆時或許更多的區塊鏈服務能有更好的載體,還有更好的Sensor和通訊技術(例如5G),可能也都會是區塊鏈能夠搭載的新天地,當然這是我自己開的腦洞,實際上會不會還有待觀察,我相信是會的。
另外,未來的公鏈設計Layer1和Layer2該保持著什麼樣的關係,能夠讓Layer1繼續存在著價值,讓驗證者、礦工有激勵去維護,這又考驗著每個公鏈的經濟模型設計了。中本聰在白皮書的最後一句話是這麼形容著中本共識。
Any needed rules and incentives can be enforced with this consensus mechanism.
期待有人去挑戰他。
?相關報導?
以太坊創辦人 Vitalik Buterin 來台演講,首次介紹「ZK ZK Rollup」以太坊擴容方案
以太經典(Ethereum Classic)與以太坊之間的「和平之橋」
《BlockTempo動區動趨》LINE官方號開通囉~立即加入獲得第一手區塊鏈、加密貨幣新聞報導!