最近就干兩件事情:寫代碼,招人。代碼不好寫,招人很難招。代碼,是花時間可以干成的事情。招人,招合適的人比較難。想招區(qū)塊鏈里合適的人更難。最近和以前的同事朋友聊區(qū)塊鏈,很多人對區(qū)塊鏈的認識就是炒幣,傳銷。和他們講,區(qū)塊鏈也是有技術的,很多人都半信半疑。有點感慨,認知真的有區(qū)別,要跨行業(yè),走出自己的舒服區(qū),需要很大的勇氣。之前的同事朋友在技術上都很優(yōu)秀,但在創(chuàng)業(yè)這件事情上,現(xiàn)實的壓力都非常大,房貸,穩(wěn)定的收入讓大家都裹步不前。當然不是鼓勵創(chuàng)業(yè),不是每個人都適合創(chuàng)業(yè),也不是每個人都需要創(chuàng)業(yè),做自己喜歡做的,活得開心就好。只是對我來說,我選擇創(chuàng)業(yè)而已。
一直想寫篇文章,講講自己對區(qū)塊鏈的理解,講講對區(qū)塊鏈技術的理解。很多優(yōu)秀的技術人,對區(qū)塊鏈技術即好奇又擔心。區(qū)塊鏈離錢很近,經常和金融的東西混在一起。很多人,簡單的認為區(qū)塊鏈就是炒幣,區(qū)塊鏈就是傳銷。
1. 什么是區(qū)塊鏈?
區(qū)塊鏈是個綜合型跨界交叉學科,由三大塊組成:P2P網絡通訊,加密理論以及博弈論組成。P2P網絡通訊是區(qū)塊鏈的基礎。加密理論,保證賬戶安全,交易安全以及區(qū)塊安全。博弈論,幫助在多個節(jié)點之間達成共識。共識的算法有很多種:POW,POS,DPOS,BFT,PBFT,LBFT等等。經濟模型,在共識機制的基礎上,進一步從經濟激勵的方面,設計穩(wěn)定長久的模型。代幣,是經濟模型的一種展現(xiàn)形式。比特幣的代幣,就是對轉賬支付費用,支付給礦工。礦工有利可圖,從而保持穩(wěn)定的比特幣網絡。以太坊作為世界計算機,增加了智能合約,提出了GAS模型。轉賬或者執(zhí)行智能合約計算都需要消耗GAS,也就是消耗以太代幣。這些代幣,因為有參與方的博弈,天然的是一種標的,也就是“商品”。從而,代幣就有了價格。
推薦大家看看Bitcoin的源代碼,最少看看《精通比特幣》。能對比特幣或者區(qū)塊鏈技術有大致的理解。
2. 區(qū)塊鏈有沒有價值?
很多人(了解區(qū)塊鏈的,不了解區(qū)塊鏈的)都會問同樣的問題。不同的人,有不同的答案。有些人說,區(qū)塊鏈的價值是去中心化,提高效率。有些人說,區(qū)塊鏈的價值在于共識,有共識就有價值。有些人說,區(qū)塊鏈沒有任何價值,就是騙局。
從技術人的角度,區(qū)塊鏈的價值在于區(qū)塊鏈是一種新的“媒介”。區(qū)塊鏈,作為一種媒介,能讓信息透明,不可篡改。麥克盧漢的《理解媒介》告訴我們,媒介可能會改變人和人的協(xié)同方式。剛開始,被區(qū)塊鏈的技術吸引,因為區(qū)塊鏈作為一種“工具”,能讓更多的人彼此信任協(xié)作。至于,這種新的協(xié)同方式,具體會發(fā)展到什么形態(tài),還不知道。去中心化,也只是新的一種協(xié)同方式。
區(qū)塊鏈的價值和代幣的價格,是兩回事。區(qū)塊鏈的技術有價值。代幣的價格,目前更多是一種標的,在目前沒有監(jiān)管的情況下,和區(qū)塊鏈的價值幾乎沒有太多的聯(lián)系。
區(qū)塊鏈,再牛,也只是一種媒介。不需要妖魔化,也不可小看它。沒有什么技術是一步到位的,允許它慢慢發(fā)展和演進。但也沒有什么技術就是最后的形態(tài)。
3. 區(qū)塊鏈的未來怎樣?
區(qū)塊鏈的未來怎樣,應該沒有人能現(xiàn)在說清楚。未來需要一步步探索,區(qū)塊鏈本身也是在發(fā)展。去中心化,是否能完全顛覆中心化?我不確定。中心化提供服務,有更好的效率和用戶體驗。去中心化,更強調數(shù)據(jù)的透明安全。未來可能是一種中心化和去中心化的結合的模式。
4. 幣圈和幣價
在區(qū)塊鏈行業(yè)野蠻生長的這幾年,我自己也無奈的得出一個樸素的觀點:幣價和技術幾乎沒有關系。幣,作為一種標的,慢慢的變成了炒作。發(fā)現(xiàn)有個神奇的現(xiàn)象,剛開始的時候,技術人還有心思辨別,項目方是不是真的是傳銷幣。后來好像都麻木了,甚至有的時候,自己也糊涂了,究竟是交易模式的創(chuàng)新,還是傳銷的新變種。現(xiàn)在都是事后英雄了,成功的項目就是創(chuàng)新,失敗的就是傳銷。
技術人,看不大懂,這么簡單粗暴的賺錢方式。甚至有些氣餒,區(qū)塊鏈這個行業(yè),充斥著這么多“騙人”的把戲,還能好好的做技術嗎?
5. 區(qū)塊鏈有技術嗎?
區(qū)塊鏈當然有技術,而且區(qū)塊鏈是個復雜的交叉學科。先不談,區(qū)塊鏈的人文,社會,經濟方面的技術,我不太專業(yè)。就純粹從計算機技術來看,區(qū)塊鏈的技術也非常的龐雜和專業(yè)。
先從編程語言開始。2018年,go語言在區(qū)塊鏈流行,幾乎大點的公鏈都是用go進行開發(fā),確實簡潔好用,網絡處理,命令行處理,都有非常豐富的庫。2019年,rust語言慢慢流行起來。Facebook的libra項目全部采用rust語言開發(fā)。零知識證明的一些庫也是由rust語言開發(fā)。Rust語言類型預先定義,避免安全隱患;數(shù)組定長,防止溢出攻擊。Rust語言有個新的概念,所有權(Ownership)的內存管理方式。內存的所有權管理方式,能讓編譯器在編譯的時候檢查。所有權是管理堆上數(shù)據(jù)。通過所有權的設計,Rust在編譯的時候,能檢查和避免 數(shù)據(jù)競爭情況(多個地址訪問同一數(shù)據(jù),數(shù)據(jù)寫入的時候必須有效等等)。區(qū)塊鏈開發(fā),經常在多種開發(fā)語言之間切換:go,rust,C++,python。有的時候,代碼開發(fā)有點恍惚:變量類型的定義在變量的前面還是后面?表達式后面需不需要分號?表達式后面是否要加冒號?
數(shù)據(jù)結構,區(qū)塊鏈中有兩個比較重要的數(shù)據(jù)結構:Merkle樹和DAG結構。Merkle樹,通過葉子節(jié)點兩兩計算hash結果,生成上一層的節(jié)點,直至樹根。Merkle樹數(shù)據(jù)結構,有很明顯的好處,葉子節(jié)點的任何改動,都會改動樹根。Merkle樹還有個優(yōu)點,在給定某個Merkle path,能證明某個葉子節(jié)點確實在以某個樹根的merkle樹上。Merkle樹,也有很多變種。以太坊管理賬戶信息(世界狀態(tài)),使用的是MPT樹。MPT樹通過增加或者合并節(jié)點,優(yōu)化了Merkle樹的深度。Merkle樹一般是兩叉樹,其實還可以擴展為多叉樹。
DAG,有向無環(huán)圖。傳統(tǒng)的區(qū)塊鏈(比如,比特幣,以太坊),使用的單序的區(qū)塊鏈接方式,也就是后一個區(qū)塊依賴前一個區(qū)塊。這種傳統(tǒng)的區(qū)塊鏈組織方式,限制了交易的性能(TPS)。為了提高TPS,DAG是一種新的區(qū)塊組織的方式。如何在DAG的區(qū)塊結構方式下,確定區(qū)塊/交易的順序,有很多相關的研究和算法。
虛擬機和智能合約,虛擬機是在區(qū)塊鏈上安全執(zhí)行“程序”的環(huán)境。智能合約,就是在虛擬機中執(zhí)行的程序。不同的公鏈提供了不同類型的虛擬機,比如以太坊的EVM,星云鏈的JVM,EOS的基于WASM的虛擬機等等。不同的虛擬機有不同的編程規(guī)范。
共識算法,共識算法讓數(shù)據(jù)在一定的網絡環(huán)境下達成共識。最傳統(tǒng)的是BFT/PBFT共識算法,基于投票以及少數(shù)服從多數(shù)的原則,只要超過2/3的節(jié)點簽名的數(shù)據(jù)就是達成共識的數(shù)據(jù)。PBFT共識算法,需要有幾個階段,每個階段都需要收集超過2/3的節(jié)點簽名。這種方式,安全可靠,不會有區(qū)塊分叉,但是效率比較低。PBFT共識算法的復雜度是O(N^2)。為了提高共識算法的性能,提出了其他很多基于BFT思想的共識算法,比如HoneyBadgerBFT算法,LBFT算法。Algorand也是PBFT算法中的一種變種,先隨機抽取節(jié)點,然后讓這些抽取的節(jié)點用PBFT算法形成共識。POS/DPOS共識算法,采用和PBFT算法完全不一樣的共識原理。POS/DPOS共識算法,采用誰抵押多,誰出塊概率高的思想,簡單粗暴。抵押越多,貢獻越大,也有相應的出塊獎勵。
加密算法,區(qū)塊鏈中的加密算法比較多。橢圓曲線加密,各種簽名算法(BLS,盲簽,環(huán)簽等等)。
零知識證明,零知識證明的理論基礎就更多了:橢圓曲線,大數(shù)計算,群論,同態(tài)加密,配對函數(shù),零知識證明的各種算法(zkSNARK,zkSTARK,BulletProof等等)。零知識證明的理論可以追溯到1985年。目前有兩個方向的應用:隱私和數(shù)據(jù)壓縮。Zcash就是利用零知識證明實現(xiàn)交易隱私,交易的雙方信息以及交易金額只有交易雙方可知。Loopring的去中心化交易協(xié)議3.0,就是利用零知識證明實現(xiàn)了鏈下計算,鏈上驗證的思想。Filecoin利用零知識證明實現(xiàn)”數(shù)據(jù)的壓縮“,用戶存儲的數(shù)據(jù)(數(shù)據(jù)量很大)不需要直接上鏈,只需要將數(shù)據(jù)證明(數(shù)據(jù)量比較小,幾百個字節(jié))存儲在鏈上。在零知識證明技術之前,區(qū)塊鏈世界是區(qū)塊鏈世界,現(xiàn)實世界是現(xiàn)實世界。零知識證明的技術,提供了一種方式,將現(xiàn)實世界,部分映射到了區(qū)塊鏈世界。
很多人問我,為什么堅持做區(qū)塊鏈技術,因為我對區(qū)塊鏈技術感興趣。僅此而已。
來源: 星想法