
區塊鏈的底層設計中有一個“不可能三角”,安全性、去中心化和性能三者只能取其二,目前最為普遍的POW 機制、DPos 機制均如此。現有的解決方案能夠打破這個不可能三角嗎? 9 月5 日,在由Odaily主辦、36Kr 集團戰略協辦的POD 大會上,Nervos 創始人太檑給出了自己的答案。
太檑認為,區塊鏈Layer2 擴展是解決性能問題的良藥,即通過對共識機制的分層,用不同層次去滿足不同的需求。其創始的Nervos 項目正聚焦於把區塊鏈底層基礎設施分為兩層,分別是layer1 和layer2。 layer1 不關注效率,只關注安全及為上層鏈做優化, layer2 則關注效率性能和易用性。
在太檑看來,不是所有的消息都需要做全球共識,所以不是所有的事情都放在Layer1 去做,大量事情是可以放在Layer2 去做的。 “共識是有層級的,有一些共識是需要在小範圍達成,有一些共識才需要全球範圍,而需要全球範圍的共識是非常少的。”
二級標題
二級標題
以下為太檑演講實錄:
大家好!有點緊張,首先很高興來到這裡,給大家介紹我們的項目,叫Nervos,這個發音很奇怪,我們自己的人也經常說錯。我演講的題目是,為Layer2 而生的下一代區塊鍊網絡。
首先做一下自我介紹,我叫太檑,名字比較奇怪,我是一個程序員,寫代碼快十年了,一直寫代碼為生,今年稍微寫的少一些。
這個不可能的三角好像被提的很多,我們從這裡開始。在分佈式系統當中,有一個所謂的三能問題:你很難同時獲得安全、性能和自動化。失去一個安全的系統是沒有意義的,而且作為區塊鏈的系統來講,你很難在安全上做妥協。問題剩下來,你怎麼在性能和去中心化之間去做一個取捨?大家知道這一定是一個取捨,而不是兼得。
我們從現在的一些項目當中去看一些取捨,我這裡說的POW,腦子裡想一想這是中本聰做的那條區塊鏈,他放棄的是性能,選擇極度的安全和極度的去中心化,這樣得到的是一個性能相對比較差的區塊鏈,確實也非常差。
然後我們看一下右邊,DPos,它是怎麼做取捨的呢?它放棄了一些去中心化,換取了一些性能,所以它獲得了相對比較好的性能,但是放棄了去中心化。這個好不好呢?我們不好說,是比較有意思的一個抉擇吧。
我們在一個系統當中,當你做共識的時候,怎麼去做一個完美的Train-Off 呢?我們覺得非常難,我們怎麼做的呢?用分層的方式解決這個問題:在Layer1,它只做驗證和成熟的共識,Layer1 選擇了極度的安全,所以我們用了POW;Layer2 有非常多種,可以是中心化的,可以是個手機,不管怎麼樣,狀態是在產生,在Layer2 的話,也可以提高到非常高的性能。我們覺得,問題不應該在一層去解決,而是應該在多層去解決的。
我們還可以從另外一個角度來看,不是所有的消息都需要做全球共識,所以不是所有的事情都放在Layer1 去做,而是大量事情是放在Layer2 去做的,比如我給你發消息只需要你知道就OK 了,不需要所有人都知道。我們認為共識是有層級的,有一些共識是需要在小範圍達成,有一些共識才需要全球範圍,而需要全球範圍的共識是非常少的。
為什麼我們要同時去做Layer1 和Layer2 呢?我們是這麼考慮的,現在所有的Layer1 它們其實在創建的時候,並沒有為Layer2 去考慮,但是這個不能怪他們,因為這個是時間的原因,當他們在創建的時候,並沒有這麼多的Layer1 。我們現在做的這個Layer1,是要非常好的為Layer2 去設計,並且第一天就能夠同時的設計它們之間交互的協議,在程序上講,這當然是吃自己的狗糧,所以我們同時會做Layer1 和Layer2 ,但是會隨時保持跟做Layer2 的同事溝通。
我們Layer1 是長什麼樣子呢?大家看這個Layer1 CKB(Common knowledge Base)。我們從一個問題開始,為什麼我們在一個數據庫裡面存一個數據這麼便宜,而在一個區塊裡面存一個數據這麼貴?因為你在區塊鏈上的數據是全球共識的,經過全球共識的數據本來就是非常昂貴的。不管時間怎麼推移,它的絕對成本會下降,但是它相對成本一定是比較高的。
那麼
那麼
那麼和中本聰造的那條區塊鏈比起來,CKB 只是多走了一小步,它把UTXO(Unspent Transaction Output,即未消費的交易輸出)做了泛化。UTXO 有LOCK 和AMOUNT,CELL 多了一個data,只在UTXO 的基礎上走了非常小的一步。這就是我們的一個理念,就是說我們認為未來Layer2 會大放異彩,我們發現目前並沒有一個非常好的為他們量身打造的Layer1,所以我們希望能做一個非常優秀的Layer1 去支持Layer2 。
OK,我演講就到這裡,謝謝!