03.02 中文分析比特幣最早的文章之一是我寫的,七年後的今天我寫了第二篇

寫過上一篇暗網的文章之後,按照大家的預期,我順理成章應該寫到區塊鏈了。實際上也是如此,在去年這一年裡面,我幾次寫到了相關話題,比如互聯網中心化偏離了最早的預期,比如分佈式系統上建立的暗網代表了一種自由,但是一直沒有專門寫一篇關於區塊鏈的文章。區塊鏈的話題很有意思,值得多寫幾篇,就把本文算作第一篇吧。

去年年底開始,區塊鏈熱潮席捲世界,幾乎每個人都在談論它。但很少有人真正說清楚它,我看很多人寫的文章用各種奇怪的東西來描述它,用一些更復雜,人們更不熟悉的概念來描述一個相對簡單的概念,那當然越說越糊塗。區塊鏈是非常有意義的發明,但是它的本質是簡單的。除了少數關於數學證明和純技術的話題有一定複雜性,要理解它是什麼,進而理解它如何影響社會,沒有那麼困難。所有其他試圖把它講的非常複雜的人,要麼自己不懂,要麼就是故意讓別人看不懂。

中文世界裡,除了翻譯的新聞之外,第二篇認真分析比特幣的文章,是我寫的。寫於 2011-05-23 ,在我過去的blog上仍然可以看到這篇文章。(第一篇是雲風寫的)有意思的是,在我2011年這篇文章裡面寫到的話題,到今天還有很多人在爭論。當然,2011年和今天人們對比特幣的理解是不一樣的,那個時代還是遠古時期,我在文章裡面寫著“用我的MBP一週能挖到5個比特幣”。那個時代人們還在思考如何讓更多人接受它,使用它進行交易。比特幣買Pizza也出現那個時候。當時Blogger之間互相贈送比特幣,我還在當時的公司盛大創新院送了不少給同事,很多人甚至連裝個錢包收下它都不肯。郎閒平那張“你給我比特幣我是不會要的”的截圖實際上是當時人們普遍心態,和今天的情況是完全不一樣的。

這些年的變化非常有趣,人們對區塊鏈世界的認識也變得完全不同。它不再是地下世界的玩具,而是真正開始影響了太多人的現實世界。是時候寫一篇新的了。

今天我們看到了各種名詞,區塊鏈和什麼結合,智能合約如何如何,各種業務如何發展,眼花繚亂,但如果說背後的道理,仍然非常簡單。這些概念都不是突然冒出來的,而是有漫長的歷史爭執和妥協。看明白了這個過程,就明白了今天的一切。所以,我們不說複雜的技術名詞,回到2009年,看看歷史。

2009年,比特幣成功建立起了一種不依賴中心認證的交易系統,並且創造了一種在局部被承認的貨幣。從2010年開始,人們就在討論是不是可以在比特幣的網絡上,存儲一些交易之外的數據。後來一些人決定仿照比特幣建立一個獨立的系統去做這件事。最終,這形成了比特幣的第一個分叉,叫做Namecoin域名幣。域名幣沒有多火,市值沒有暴漲,不是活躍交易的幣種,沒上多少個交易所,但是它到今天仍然存在,生命力非常頑強,如果你訂閱我公眾號的zeronet版本,在那邊可以使用我的域名 huoju.bit 這就是通過namecoin註冊到的域名,普通DNS無法解析,只能用在幾個P2P系統裡面。

很長一段時間裡,從比特幣分出來的altcoin(山寨幣)裡面,這是唯一一個真正有實際應用場景的幣,然而除了哪些已經消失的,所有存在的早期山寨幣裡面,這是最不值錢的一個。

繼續說回比特幣。從2010年開始,比特幣社區長期存在的爭議就是,比特幣網絡裡面到底是否可以存普通數據。一派人認為堅決不可,比特幣是交易網絡,只應該保存交易數據,否則就是濫用,何況比特幣的數據庫本來就在日益膨脹,增加數據有害無利。另外一派人的看法是應該允許這種行為,這樣會提供更多的可能性,也確實有實際需求。何況,就算你不允許,用戶實際上也在利用比特幣數據結構裡面各種空隙,發明了千奇百怪的存數據的辦法。既然已經發生了,還不如正視這個問題。

最終討論的結果是,幾方妥協,引入了一個字段叫做OP_RETURN,它有80個bytes長,非常小,而且按照團隊的說法,它本意設計出來並不是存其他數據的,而是用來標記一筆交易無效的記錄。但不管團隊怎麼說,80 bytes已經足以寫入一些簡單信息了。別小看這一點點夾縫中的信息,因為它在比特幣網絡上存在,不可更改或者消除,這已經可以用來實現很多功能了,比如在裡面存一份合同的hash,然後在比特幣網絡之外存儲這份合同全文,拿到合同的用戶只需要自己計算合同的hash,然後再和之前存放在比特幣網絡上的hash做對比,就可以知道拿到的是不是原始那份合同。

這個時期後來被稱作“染色幣”時期,大約是2014年,染色的意思就是和上面這個例子類似,利用比特幣網絡上存著的這80 bytes的信息,關聯到一個比特幣網絡之外的存儲上,使得兩者被鏈接起來,這就叫染色。比特幣社區對OP_RETURN仍然存在爭議,在被濫用和提供更多功能之間搖擺,最終核心開發組決定縮減OP_RETURN的存儲空間到40bytes,使得能存儲的數據變少。這種方式最大的問題還是過於繁瑣,繞來繞去,對於普通人要理解這個過程都很麻煩,更別說去用它,所以始終沒成過主流應用。

既然類似染色幣的需求確實存在,比特幣又不願意支持它,那麼為什麼不搞一種專門支持這類應用的鏈呢?如果擔心濫用存儲浪費資源,那麼仍然拿出經濟槓桿,要花錢才能用,這不就解決了問題?最終,以太坊誕生了。既然能存儲任意數據,那麼能不能乾脆把可執行的代碼也存儲進去?這樣不就可以實現更多功能了嘛?以太坊就是這麼做的,它實現了自己的圖靈完備編程語言和虛擬機,把這種編程語言編譯之後的二進制代碼存在鏈上,並且計算代碼裡面每一條指令的開銷,以此計費,這樣就形成了一個完整的經濟系統,用戶可以花費代幣購買存儲空間和運算能力,結果也存儲在鏈上。這些都是不可篡改,不能銷燬的。這些代碼就叫做智能合約,智能合約這個詞並不是以太坊的發明,這個構想和這個詞的使用,可以追溯到90年代。並且在染色幣的時代,人們就在鏈外實現了類似的功能。按照歷史推理,這些發展都是順理成章的,但在現實世界中,這已經從2009年到了2015年,按照今天“幣圈一日,互聯網一年”的說法,這可是相當漫長的時期了。

以太坊的發展也並不怎麼順利,中間遭遇了被黑,分叉,DDos攻擊…很多風險,但最終以太坊還是活了下來。以太幣早期沒有這麼熱,如果看價格歷史,可以看到實際上是2017年下半年它才開始飛速漲起來的。在早期,甚至還有基於以太坊的圖床應用,讓人們付一點ETH就可以把一張圖片存在以太坊的鏈上,今天看來簡直喪心病狂。在2017年前半年,還有人做了一個應用,從各種名畫上找露胸的部分截圖存到以太坊鏈上,說用這種方式來提醒人們,區塊鏈的不可篡改特性是雙刃劍,如果有人把你不合適的東西放上去,你也永遠沒法消滅它。(見 https://boobies.surge.sh)

在那一段時期內,以太坊有一個重要的特性被低估了,就是它可以非常容易的發行自己的代幣(token)。在用比特幣代碼分叉的山寨幣年代,還需要一定的開發能力,一定的運算資源保證,才能發行出自己的幣。在以太坊上,只需要100多行代碼,隨手就可以發佈一個新幣。這種特性直到ICO開始火爆起來,才進入普通人視野。而我們今天看到的一切激動的,混亂的,可怕的狀況,都源於此。這時候,已經是2017年下半年了。

回頭看這些年的歷史,區塊鏈改變了什麼?它建立了一個以網絡和算法構成的,無權威中心又不容易被操控的分佈式系統。它的優點、缺點、侷限,也都在這個特性中包含了。無論想進行區塊鏈的投資,還是想實際參與項目,都應該弄清楚它的這些獨特特性,這樣才能在各種眼花繚亂的每天出現的新名詞前面保持清醒,看明白背後的東西。

無論人們把區塊鏈描述成什麼,它仍然是一種分佈式系統,仍然屈從於分佈式系統的鐵律CAP定理,在一致性,可用性和分區容忍性三者中只能同時滿足兩者。而我們知道區塊鏈系統既然要分佈,要防止惡意節點,就意味著已經確定了必須同時滿足分區容忍性和一致性,那麼一定犧牲可用性。翻譯成人話就是:“它就是很慢。” 一些優化可以提高速度,但無論怎麼提高,它仍然是一種很慢的系統。這使得很多簡單疊加的業務模型不存在,也沒有存在的必要,因為傳統的數據庫系統仍然是他們最好的選擇。但另外一方面,在偽需求之外,這些特點也使得一些過去難以實現的需求可以被解決,因為之前難以被實現,所以它的業務模型很可能是我們過去完全沒見過的。90年代,人們可以想象在網絡上賣書,但難以想象社交網絡和雲計算,更難以想象有一天人們能掏出手機上網,隨時使用微信聊天和支付。如何識別這些項目,如何辨別哪些項目是偽需求,這是每一個新時代來臨時候的生存必備能力。

對於經過互聯網前泡沫時期的人,今天的一切完全不陌生。今天不管什麼業務都恨不得加上區塊鏈三個字使之變得更有吸引力,在90年代對應的詞叫做 鼠標+水泥(Clicks and Mortar),鼠標指互聯網商業模式,水泥指傳統商業模式。任何業務只要靠上了互聯網,估值就會飛漲,那也是一個天才、瘋子、偉人

、騙子混在一起的年代。後來發生的事情大家都知道了,並不是所有商業模式都適合互聯網,並不是掛上互聯網三個字,就真的能成為互聯網企業,並不是所有適合互聯網的商業模式,在當時的基礎設施條件下都可以實現。但偉大的企業google、amazon已經從車庫裡探出了腦袋。

這篇本來應該是在兩個月之前寫好的,但是實在太忙了,一直拖到了現在。如果你同時是《神秘的程序員們》漫畫的讀者,應該知道我忙的原因是什麼,是的,我決定和笑來一起做Press.One。這本來是我們在比特幣出現之前就討論過的事情,但之前的條件難以實現,區塊鏈發展到今天,它有了實現的基礎。其實我們認識這些年裡面,有很多次討論過類似的想法,上一次討論是2017年下半年,那時候我忙於別的事情,沒法參與。後來出了一些大家都知道的事情,項目也暫停了。年初的時候,笑來問我,區塊鏈技術現在已經大不一樣了,願意再來做點事嗎?於是我就這樣接下了重啟的Press.One。到現在為止,它仍然非常早期,但是已經能看出來一點點有意思的東西了。我們完成了去中心、基於社交身份的身份驗證,可以用自己的錢包文件(私鑰)來簽名一份文件,這些信息保存在區塊鏈上之後,就可以輕鬆確認發佈者是誰,什麼時間發表。還記得本文開頭的時候,我說我寫了中文關於比特幣分析的第二篇文章嗎?如果不是我在上面放了一個比特幣錢包地址接受打賞,而且確實當時就收到了打賞,恐怕今天我已經沒辦法證明那篇文章真的發表在2011年而不是後來偽造的。那個時候的比特幣玩家都會在Blog上放上自己的地址,並且互相讚賞。順著我的地址,能看到來自雲風的讚賞以及我讚賞給莊表偉、笑來、朱峰的記錄。這些記錄組成了一個網絡,沒有一個權威機構證明我們在那時候研究過比特幣,但是大家用這種方式互相證明了對方的存在,儘管這種證明和我當時寫過那篇文章之間的聯繫仍然是比較弱的。有了Press.One之後,要證明這樣的事情就容易多了。

並且,在我的Profile頁面上,可以看到我簽名的所有文件,這些都是我打算公開讓所有人看到的信息,所以只要你跟蹤我的Profile,就知道我發佈了哪些我覺得重要的事情,那些我沒打算賴賬又不怕公佈的事情。簡單的可能有在一個群裡面證明我是我,複雜的比如這篇文章最初的發佈版本和作者是誰…所有我認為值得簽名存證、聲明我擁有著作權的東西,最終都會出現在這裡。

當然,這仍然只是一小步,有意思的事情還在後面。而且…發佈入口還沒完成,雖然我自己現在已經能以內測為名義簽名這篇文章,你也能看到我的feeds了,但距離完全開放,還有一點點距離。

如果這篇文章裡涉及技術的部分你覺得理解起來有困難,不要緊。《神秘的程序員們》漫畫正在畫一個區塊鏈的科普系列,用漫畫的形式每期回答一個人們真正關心的區塊鏈相關的疑問。講技術,但不限於技術。

這篇文章的簽名:

https://press.one/file/v?s=e33bed558719ae4f2fbe4f82b988ed514cf005a6591f39102ce0b787cdeeb1785a0abe2a664400727800441701a26806977da69ccc10eac34d5b0413702ebf2e0&h=bb3fb252698633b3072fe65b3bccf64a0397d81883e69d51dc9d6603c3cd5377&f=P1&v=1

你可以順著這個簽名去驗證我的數字簽名,看本文原始快照,以及到我的profile頁面看看我還簽名了什麼。

ps,我的Profile頁面的feeds,是json feeds格式,它可以被理解成新時代優化過的RSS,所以如果找到合適的訂閱器,是可以訂閱我的Feeds的。如果找不到,沒關係,等Press.one的App吧。

區塊鏈是個好話題,以後我還會再寫的。如果你有問題,也可以留言告訴我,我將來一起寫。

參考備註:

  • 兇險、罪惡還是自由?暗網到底是什麼?

  • 互聯網完蛋了,已經。

  • 和程序員打官司是一種怎樣的體驗

本文來自霍炬的微信公共帳號“歪理邪說”,用微信添加 wxieshuo 公眾號即可訂閱。轉載必須保留作者、公共帳號信息,內容必須與本文保持嚴格一致,不得修改/替換/增減本文包含的任何文字,不得擅自增加小標題、引語、摘要等。本公眾號一切內容禁止摘編、衍生及演繹。


分享到:


相關文章: