茍振興:一個老碼農眼中的比特幣
IT之家網站今刊登了程序員茍振興的文章,題:一個老碼農眼中的比特幣。茍振興是一個寫了15年程序的老碼農,擅長嵌入式、多媒體開發,現居濟南。比特幣最近實在太熱了,我們有從經濟角度進行理解,那不妨再看看從技術角度又是如何理解的。以下是原文:
這幾天看到新聞,BTC居然賣到好幾千人民幣了,ORZ,這個世界好瘋狂,真是程序員在改變世界啊。比特幣現在的價格,正應了那句老話,欲讓其毀滅,必先讓其瘋狂。
先看看比特幣為什麼沒有想象中靠譜。
我這個不懂金融的程序員都知道,所有的貨幣都要有依托,美元之前被叫做美金,依托的是黃金,後來不需要和黃金掛鉤了,依托的是山姆大叔的飛機導彈和航母。比特幣有什麼可依托的嗎?坦白來說,啥都木有。沒有依托最大的問題就是貨幣的價值和唯一性。
因為比特幣不是唯一的,還有其他種種去中心花的虛擬貨幣,只不過比特幣是發展最早,被炒作到大眾傳播的貨幣而已。在面對同類貨幣的競爭時,美元有黃金、大棒可以維護其地位,比特幣有什麼核心優勢可以和其他虛擬貨幣競爭的嗎?坦白來說,也沒有。
如果比特幣真想他們想的贏得了競爭還好,如果失敗了,這部分投資只能是血本無歸。所以現在比特幣的持有者,只能自吹喇叭,自擡轎子:比特幣是革命性的,其他的都是山寨。不過他們忽略了一點,比特幣只是個實驗品,是個革命性設想的最初實現,直白來說,只是個自娛自樂的工具。
去中心化的貨幣設想,確實是個瘋狂而偉大的主意,可以說很超前,很烏托邦,這個就不用累牘了,從大眾媒體上聽到最多的就是這個。我相信未來一定會成功,但肯定不是在比特幣這個實驗品身上。
接下來說說為什麼比特幣只是個實驗品。
首先比特幣的技術實現方式並沒有外界傳說中的那樣神奇。可能對於大眾來說,對其工作原理看起來玄而又玄,不過對於程序員來說,那都不算是盤菜。除了對帳戶做非對稱加密外,核心解決客戶端之間信任的手段就是hash、hash、再hash,hash上一億次,看哪次hash出來骰子更可愛。這就是所謂解決工作量證明的hashcash。
就像前面說的,比特幣現有的體系為了保證安全和可信,要求在做交易確認的時候,讓所有的計算機不停的根據一堆相對固定數據外加一個隨機數算hash值,那個hash值的前10位是0,並且這個隨機數足夠大,就認為誰的結果是可信的。為了達到這個結果,機器必須不停的更換隨機數,因為hash的結果前10位為0的幾率太小了,以此就保證了整個過程花費了足夠多的時間,這個hash結果就是扔出的骰子。
從技術角度來將,這個設定可以解決問題,但實際應用卻是很瘋狂的,因為扔骰子的結果會伴隨著獎勵,誰扔的最好,誰就會獲得系統提供的50比特幣獎勵,系統每天大概會提供3500枚比特幣的獎勵,按照現在的比特幣匯率大約是數千萬人民幣。如果真的比特幣被世界認可,會有數以萬計的計算機為了獎勵去扔這個無聊的骰子,包括Intel、AMD、台積電的廠商也會專門設計生產專用CPU去做並行計算的解決方案。
而目的呢?還是為了這無聊的hash算法,並且這種專門架構的機器什麼都不能做,只能去扔骰子,因為這樣才能提高性能。有人會去設計、生產這種專門扔骰子的機器嗎?有的,現在已經有了,不過只是些不入流的小廠家在做。但如果全世界都去做,還有比這更搞笑的事情嗎?
為什麼不把這個運算能力放在更有價值的地方,先別著急斷言SETI、Folding這些分布式運算的結果不容易驗證,算法總能想到的,再不及去算算質數也比全世界都去扔骰子強太多了。去中心化的網絡系統需要解決信任問題,現有比特幣的做法是最簡單也是最笨甚至是最不安全的方式,也只有一個實驗品才會使用這樣的方式來做。
比特幣現有的安全設計,主要使用了sha-256、secp256k1,這些當前被認為安全的加密算法,理由也很充分銀行、金融機構包括NSA也都再用。但是其中忽略了最主要的一點,在於中心化的系統中(現有的銀行),用這些足夠了,因為中心化可以隨時修正、升級系統。
但在於這種非中心化的金融系統中,這些環節中任意一個被攻破,對於整個體系來說都是崩潰式的。就像山東大學的王曉雲老師在碰撞攻破md5之前,大家都認為md5是安全有效的,但是攻破以後呢,就看出誰在裸奔了。設想一下,如果secp256k1被攻破,相當於你可以拿到了所有人的銀行密碼和卡號,並且這個銀行還不能掛失,所有的貨幣連廢紙都不如。不要說私鑰無法破解,量子計算機破解私鑰只是產業化的時間問題。
除了上面提到的東西,比特幣還有很多不完善的地方。比如說私鑰的保存,如果你是個比特幣的持有者,一定要小心保護好你的硬盤,因為上面有你的帳戶私鑰,這個是唯一可以證明這筆錢屬於你的印鑒。在PC升級要更換硬盤時請借鑒越獄第一集中男一號對自己硬盤的處理,一定要砸爛、燒掉、再扔湖裏。因為別人一旦拿到這個私鑰,這筆錢就不屬於你了。
從技術上講,只是把文件刪除甚至格式化硬盤,都無法保護,物理消除是最根本的。另外不要把這個私鑰保存或者法不在雲呀、郵箱呀等等任何地方,網絡管理員一個正則表達式就能把這些東西都找到,然後這筆錢就不是你的了。此外現在所有的比特幣交易網站都是不安全的,他們只承擔道德責任,從法律上講他們可以任意的把你帳戶的錢轉移走,並可以讓你無法追查。
此外使用比特幣付款時,收款方想要安全的確認完成,大約需要一個小時,你還覺得這東西不是實驗品嗎?如果我去咖啡館買杯咖啡,收款員需要用驗鈔機看一下,等1小時再告訴我結果,你猜我們誰會先瘋掉。只是買筆咖啡還好,如果付款數額足夠大,是可以有足夠的成本,通過超強的運算能力和偽造的網絡,欺騙收款方驗證通過,完成一次虛假的交易的。
前面說了這麼多比特幣的問題,肯定有人會想,有問題比特幣不能一點點修正嗎?但這正是去中心化的貨幣最大的難題。協議、規則一旦確定很難做出更改,特別是網絡節點越來越大時,沒有一個獨裁的中央節點,所能進行的改動只能是小修小補。核心是無法被改動的,一旦改動就會出現分裂。另外帳戶私鑰部分的基礎設定,是壓根無法更改的,只能祈禱私鑰無法被攻破,量子計算機無法商業化。
想想Bill Gates在30年前激動的說的那句話:“640KB內存對全世界都夠了”,想想現在一台便宜的多核智能手機也就幾百塊錢,就能知道摩爾定律的威力。在IT這個行當,我們的每個想法和決定,在歷史看來可能都是可笑的。看看IT圈子裏的大牛們,有誰看好比特幣,沃茲、大門、卡馬克······真正明白人都是不屑一顧。現在號稱有全世界10%比特幣的是那2個和扎克伯格(Facebook創始人)打官司的雙胞胎,地道的投機者。
比特幣很酷,但現在把這玩意當真的,都是不求甚解或者不懂裝懂的偽極客;投入真金白銀去玩比特幣的,不是傻子,就是在等比自己更傻的人。比特幣這出鬧劇確實也是看點多多,程序員展現了自己對理想和自由的情懷,投機者表現了對金錢的渴望,一如既往表現出無知無畏的態度。做為看客,我們看個熱鬧就好了。
觀察者
頁:
[1]