【大文觀鏈】區塊鏈社群文化遭遇資產安全擔憂,是否還要堅守開源?
鏈得得注:【大文觀鏈】,是鏈得得App新推出的區塊鏈技術分析系列欄目。由鏈得得App獨家作者馬文佩,對區塊鏈、數字貨幣市場中前端技術方案進行應用層講解與熱點事件的技術層分析。每個工作日與大家一同分享“鏈圈技術宅”的那些頭腦日常。
“開源(open source)”這個詞,指的是事物規劃為可以公開訪問的,因此人們可以修改並分享。這個詞最初是起源於軟體開發中,指的是一種開發軟體的特殊形式。但到了今天,“開源”已經泛指一組概念——就是我們稱之為的“開源的方式”。這些概念包括開源專案、產品,或是自發倡導並歡迎開放變化、協作參與、快速原型、公開透明、精英體制以及面向社群開發的原則。
“原始碼(source code)”是軟體中大部分計算機使用者都沒見過的部分,程式員可以修改程式碼來改變一個軟體(“程式”或“應用”)工作的方式。程式設計師如果可以接觸到計算機程式原始碼,就可以通過新增功能或修復問題來改進這個軟體。
有些軟體只有建立它的人、團隊、組織才能修改,並且控制維護工作。人們稱這種軟體是“專有(proprietary)”或“閉源(closed source)”軟體。專有軟體只有原作者可以合法地複製、審查,以及修改這個軟體。為了使用專有軟體,計算機使用者必須同意(通常是在軟體第一次執行的時候簽署一份顯示的許可)他們不會對軟體做軟體作者沒有表態允許的事情。微軟 Office 和 Adobe Photoshop 就是專有軟體的例子。開源軟體不一樣。它的作者讓原始碼對其他人提供,需要的人都可以檢視、複製、學習、修改或分享程式碼。
在區塊鏈的世界裡,面向社群開發是區塊鏈技術從誕生起就擁有的特性。比特幣本身就是開源的,任何開發者都可以為這個專案做出貢獻。開發者只需要閱讀並遵照README中描述的開發流程,提供高質量的程式碼,並遵循所有的開發準則,就可以將自己的程式碼提交到論壇中供社群中所有使用者投票。對於區塊鏈系統來說,開源是一種實現去中心化的手段。
在比特幣之後,眾多的區塊鏈專案,尤其是公有鏈專案也遵循了這個傳統,利用開源實現去中心化和社群共治。以太坊、IBM主導的Hyperledger Fabric、微軟主導的Coco Framework等等專案都是開源的。
除了賦予專案去中心化的特性之外,開源也有很多其他優點,例如:
開原始碼相對可控:基於開源的特性,每個人都能看到軟體的原始碼,這意味著心懷叵測的開發者無法將惡意程式碼藏在軟體當中。使用者也可以通過檢查程式碼來保證軟體正在按照他們希望的方式執行。
開原始碼可用於學習。一個開源的軟體可以讓學習者成為更好的開發者。可以公開訪問的特性使得學生可以從公開的軟體當中輕鬆地學習他們的開發技巧,也可以將他們自身的成果分享給別人獲得評價。同樣一個優秀的開源專案也可以孵化出更多的專案,就像比特幣和以太坊一樣。
開原始碼更加安全。開源軟體往往要比專有軟體更加安全和穩定。因為任何人都可以檢視和修改開源軟體,就會有更多的人發現原作者的遺漏和疏忽。
但相對的,開源軟體同樣存在著問題:因為任何人都可以看到原始碼,一旦程式碼包含了可以被利用的漏洞,惡意攻擊者可能會利用這些漏洞。如果沒有專門的供應商來發布更新,修補程式可能會比較慢。
北京鏈安安全專家Hardman告訴鏈得得App,開源軟體就像是一個剛剛出生的幼兒,如果要讓他進入一個更加複雜的開放世界當中,首先需要的就是打好預防針。尤其是對於和資產有著強相關性的專案來說,開源之前進行安全審計是非常有必要的。
他認為,區塊鏈行業亂象叢生,最終導致解決信任問題的區塊鏈反倒不被人信任了。開源是一種很好的解決信任問題的方式。但隨著行業逐漸成熟,涉及資產託管、安全服務的專案會逐漸減少開源,甚至直接成為專有軟體。
Cobo錢包CEO神魚則認為,區塊鏈行業中涉及資產安全的專案是不應該開源的,安全問題應當通過第三方機構進行審計來解決,面向社會開源也相當於面向黑客開源,會暴露出大量自身的安全隱患,造成財產損失。
開源軟體的精神來自於90年代的自由軟體運動。這個運動的理念在於計算機的使用不應該阻礙人際合作。更直接地說,這個運動代表著拒絕專有軟體並推廣自由軟體。運動的發起者試圖創造一個使用者可以互相幫助並擁有自己對於計算機控制權的社會。這個運動直接推動了一大批在當今社會中影響深遠的軟體誕生,例如作業系統Linux、安卓,程式語言PHP、Python等。這些例子生動的證明了開源軟體的創造力和競爭力。但同樣,安全問題依然伴隨著這些開源專案:與安卓相比,iOS的安全性就令人稱道。在區塊鏈的世界裡,開源暴露出安全隱患導致的惡意攻擊也常常出現。最終,是否開源依然是一個見仁見智的問題。