開源世界裏亂象橫生,該如何規制?_風聞
吃瓜群众40447-2022-04-02 12:53
來源 | 微信公眾號“ OpenTEKr 開源星系”
作者| 狄安
Mar. 31, 2022
5,698 字 | 大約需要 15 min
當交易費用為零時,責任規則的改變並不會影響資源配置。
— 《社會成本問題》/
科斯定理
最近一段時間以來,開源世界的人們似乎置身一片火海。
在《如何直面真實的開源世界?|瞰道@莊表偉》一文中,莊表偉老師對於近期開源世界的種種現象,甚至可以説是亂象,給予了客觀全面的闡述和思考。如在Nginx 對俄羅斯的制裁中,我們看到了政治局勢對於開源的滲透;烏克蘭戰爭聲援中對於開源的武器化使用中,我們看到了意識型態對於開源的挾持等等。
凡此種種,不一而足。除了聽到人們的驚呼:開源怎麼了?今天,我們就接着莊老師的文章,繼續來談一談開源世界裏的衝突與秩序,自由和規制。
1
開源下被忽略的公共屬性
是的,依然會有一些烏托邦的理想主義者堅守在那片想象中的熱土上。但也正是我們自己的每個選擇讓現實如颶風般呼嘯而來,一切美好的願望都隨之被捲入無情的漩渦,終將把開源帶到一個也許連我們都未知的地方。其中一些可能會讓我們無比失望,也會有一些讓人歡欣鼓舞。歷史也總是這樣上演。
正是因為不管盡頭在何處,我們也許才更需要了解那些背後的真實:是什麼在決定着開源的改變?而這些改變又將如何決定着開源的未來?
在回答這兩個問題前,我們有必要再複習一下開源的屬性。開源,作為公認的一類公共資源存在。很多人會説,不就是源代碼的開放共享嗎?也有人會務實地評論,開源不就是一種高效協同的開發模式和一種軟件分發模式嗎?的確,這些已經很清楚了。但我們似乎還可以繼續追問一下:開源除了這些,還有什麼嗎?

在關乎這個問題的追問上,1999年的萊斯格在**《思想的未來(網絡時代公共知識領域的警世喻言)》**一書中給出了很有意義的借鑑路徑,他把因特網作為公共資源的屬性做了相當深刻而有洞見的剖析。現在,就讓我們沿着他的思考軌跡去尋找一下,就可以發現,其實開源軟件作為公共資源,除了作前面提到的公開的代碼屬性之外,實際上還有另外兩個隱藏的而可能被我們忽略的更為重要的公共屬性:
公開代碼所包含的開放和共享的思想及知識經驗
公開代碼所提供的公共和平等的創新及競爭機會
萊斯格隨後進一步闡述道,
每一種公共資源的出現都與文化以及代碼(網蟲們所製造的東西)密不可分。文化,主要是指用來規制早期網絡世界的規範;代碼的特性,就是指代碼的本質。
與因特網現象類似,開源同樣如萊斯格所説的。它與文化和代碼的特性密不可分。它的出現是因為文化和代碼特性,而今的那些改變背後的原因也正是因為文化和代碼特性。
直接原因一:開源文化價值觀-反”公地悲劇“
對傳統公共資源的保護目標一般是為了防止公共資源的過度使用而免於 Hardin提及的 “公地悲劇”的發生。但開源,由於代碼的零成本可複製性,它實際上是一個反公地模型,即最初的黑客精英們關注的是軟件代碼自由,倡導的是將軟件代碼無限擴大使用共享和提供更多公共平等的創新機會。所以,開源文化價值觀中對於軟件代碼作為公共資源的保護實際上不是限制使用,而是在努力防止代碼的使用受限制以避免“開源悲劇”的發生。
直接原因二:代碼特性下的開源生產者經濟激勵問題
開源,本質上是在****財產私有制下,開源生產者以私有的生產要素來向社會提供具有公共資源屬性的軟件代碼。那麼,開源生產者出於自身的經濟學模型構建和經濟激勵問題需要,必然會產生對於代碼權利再分配的衝動。
所以,正是基於這兩個直接原因導致了今天的開源世界中不地發生着矛盾和衝突,並最終反映在以下幾個爭議上:
1)代碼使用的受限和不受限之間
2)代碼分發時義務的強制性與非強制性之間
3)開源生產者經濟激勵設定的控制和非控制之間
雖然爭議的具體表現形式各異,但衝突之後利益平衡構建的一般特徵基本就可以概括在下面這個表內:

而這些爭端的最終都指向開源軟件中被我們忽略的那兩個公共屬性問題上:即通過利益再平衡,來重新設置公共代碼下思想和知識的開放共享程度以及公共和平等創新機會的供給程度,並因此達到各自的經濟和政治等方面的訴求。
即使在某個階段這些衝突會通過各類博弈而得到緩解或平衡,但只要外部條件一發生變化,平衡就會隨即被打破,利益格局也就將被再次重建。
2
開源世界的規制體系
開源作為一種社會形態,它從出生到現在,不過三十年,人類歷史長河中的一瞬間而已,它的進化程度也還是在很初級階段,所以我們需要理性看待當下發生的各類開源亂象,需要重視,但無需恐懼。它在衝突中秩序和規則的重建,也無疑遵循着人類社會活動的一般規律。
羅伯特·C·埃裏克森(Robert C. Ellickson)在**《無需法律的秩序 (相鄰者如何解決糾紛)》**中對於此類社會活動的邏輯和控制體系有着全面的論述,如他所言,“在這個世界偏僻角落裏發生的事情可能是社會中心的問題。”他是通過在加州一個偏僻小縣夏斯塔縣裏牧人們在解決牧區農場中日常爭端現象的研究,揭示了一個密切羣體中的相鄰方中解決問題的方法,人們往往依賴於社會生活中通過長期博弈形成的規範而非法律來解決自己的爭端。在此基礎上結合博弈論、經濟學和社會學,更好的發現了人類社會治理控制體系的框架。

數字化時代下的開源,程序員們可能分佈世界不同的角落,但通過互聯網以 Github,網絡論壇和社交媒體等形式事實上地緊密聯繫在一起構成了密切羣體中相鄰方,在開源社區所發生的一切似乎也完印證了埃裏克森發現的社會控制體系理論。
如果按照他的理論框架來解釋開源世界的規範和秩序的話,那麼當下開源社區實際是由五種控制者構成,即第一方控制者,第二方控制者和三種第三方控制者。
開源的貢獻方對自我實施規則和管理,這是在行使第一方控制
開源項目的擁有方對使用方強制執行的開源許可或者對貢獻者執行的貢獻者協議,這是在行使第二方控制
而開源社區的第三方控制者則可以是一般社區力量,或者是非政府性質的社會組織(如開源基金會或者協會),當然也可以是國家或者政府。
由社區第一方控制者發佈執行的規則為倫理,由第二方控制者發佈執行的叫合約或許可,由第三方控制者社區力量發佈執行的叫規範,由社會組織發佈的稱為組織規則,由政府發佈的就叫法律。
同時,這五類控制者在開源社區提供了各自的行為準則,並實施了具體的管理行為,可以分別稱為:自我管理,個人自助,替代自助,組織執行以及政府執法。這樣開源項目的貢獻方,開源項目的擁有方,開源社區力量,基金會或者OSI等行業非政府組織以及政府最終相互結合起來,形成了對於整個開源世界的運作和治理控制體系及至關重要的獎懲執行。而這個控制體系可以用下面的簡表予以示意説明:

證明開源許可協議的存在,只要發佈就行。但要證明開源社區規範的存在,其實並不僅僅是發佈就行,而只有在對於違反社區規範的人予以恆常處罰才能證明社區規範的存在。所以,如果社區中有一方違反了規範,卻完全由沒有對於這種違反的強制行動,那就證明了規範的無效。對於基金會組織規則的有效性亦是同理類推。
3
開源是人類的一次社會活動實踐
在瞭解到 Ellickson 對於人類社會的控制體系的思想應用於開源的各類社會實踐之後,我們完全可以對本文開始描述的各類現象產生以及走向足夠理解和釋然。
比如説對於 Marak 刪庫行為就可以這樣理解:開源貢獻者作為第一方控制者在個人倫理上的自我約束失敗,使得第三方控制者開源社區力量以社區譴責的非正式控制進行了一次替代自助執行。
又比如説 Elasticsearch 修改協議的行為可以這樣來解釋:Elasticsearch 開源項目擁有方修改了開源許可而違反了 OSI 組織規則結果導致第三方控制者 OSI 採取了組織執法宣佈對其開源許可協議的不予認可。
以此,我們似乎也完全有理由可以預言説,
開源,正在發生的事情,可能就是人類歷史中一類社會活動的再一次重現。
關於開源社區參與方在這些規則體系的相互作用下產生的衝突和博弈,以及在這些情況下的最終結果指向,我們未必一定知道在哪裏。但我們基於 Ellickson 的原則所採取的行動就可以成為影響未來的一部分。如果結果可以預測的話,那麼有一個預測是可能的:
開源的未來不一定是由誰的批評聲音最大,或者誰獲得了最大經濟激勵來決定的。開源的未來也不是由通過哪一種類型的開源存在而證明的,更會以那些與現實最終不相容的事物永久的消亡而來證明的。
4
“ 開源”的詞義共識
不管那一種更有生命力,首先我們要排除當下對於各種開源規範認識的迷糊性和不確定性。尤其,當我們對於一些基本名詞都沒有形成基本的共識之前,我們是很難對未來更復雜的共識形成共識的。
比如説,“開源”一詞,就讓很多人就會產生不同的理解。這是自由軟件?滿足OSI標準的軟件?或者是開源社區自定義的?而當下我們對開源的各種討論,很大程度上,可能就來自於對 “開源” 兩個字所代表的普遍意義和特定意義的混淆。就如同,我們曾經陷入的對 “Free software” 中 Free 所代表的自由和免費兩種不同的詞意帶來的理解困惑類似。
我們的確不會否認 “Open Source” 在西方文化背景下的起源和所代表的意義,但我們可能已經過份囿於字面的翻譯了。實際上漢語在表達 “Open Source” 一詞在不同語境下的顆粒精細度和準確程度上應該遠勝於英語。
在面臨着廣義開源和窄義開源的討論環境下,對於”開源“實際具有普適性含義的詞,可能並不適合僅用來代表當下 OSI嚴格標準定義下特定的開源含義。在漢語裏, 我們或許完全可以找到更精準的字義和詞意去表達,以免去不必要的討論誤解或者引發不必要的偏見和歧義。我們為什麼不能啓用像公源軟件,共源軟件,私源軟件這樣一些名詞來區分不同的開源含義呢?或許我們可以嘗試着定義下,來面對今天多樣化局面:
公源軟件:是不是可以來描述符合GPL定義的自由軟件
共源軟件:是不是可以用來描述符合OSI協議的開源軟件
私源軟件:是不是可以用來描述不滿足OSI標準,但屬於社區自行定義的開源軟件。
就客觀立場來説,在我們討論 “符合 OSI 標準的開源” 和 “不滿足 OSI標準的開源”,我們就不至於只用“開源”和“偽開源”這類幾乎帶着偏見的詞進行描述了。以漢語的浩瀚而言,我們也沒有必要去拘泥於僅用開源兩字,來翻譯不同語境下的 “Open Source” 同時又實際上可能藴含的不同意思。
當然,這樣的建議是需要社區的廣泛共識去推動的,這裏也僅拋磚引玉,以和各位有識之士共同探討。
5
開源規制的設計和幾大階段
更進一步而言,開源規制的設計原則,從根本上説是為了解決兩個問題:
1**. 如何將開源這個社會公共資源價值最大化**
鑑於開源代碼的零成本複製屬性,我們已經無需顧慮代碼的過度使用,“如何最大限度地擴大使用” 才是讓我們設計開源規制的原則。由斯托曼倡議的GPL協議無疑做到了有利於代碼最大程度上的開放和最低損耗係數下的傳遞。
2. 如何以最佳方式激勵開源的生產者持續貢獻
這就是開源的生產激勵問題。開源促進會(OSI)定義的十條標準對於保持開源純粹性的確有利,但另一方面卻對開源生產者持續貢獻的激勵性顯然不足夠。所以這也就導致瞭如 MongoDB、Elastic 社區寧願棄OSI標準而不顧,轉而制定自己的社區開源協議來重置開源權力的根本性原因。
就開源的演化進程而言,我們現在正經歷着的的事實,已經足以證明了埃裏克森的社會控制體系理論的描述,因為開源也的確經過了這幾個階段:
第一階段:技術精英和理想主義者在意識覺醒下的道德追求和倫理;
第二階段:開源的貢獻方和使用方在契約精神下的合同責任履行;
第三階段:社區和行業自治組織在羣體交互下的規範及規則約束;
如果 Ellickson 的社會控制體系理論是繼續客觀的話,那麼理論所推演的將是:
第四階段:政府或者國家對開源的法律的強制力。
即使我不是一個權力中心主義者,也可能無法清晰預見到開源的將來。但無論是按照埃裏克森的社會控制體系理論,還是以開源的公共資源品的社會共享性特徵,如同互聯網規制主義的支持者 勞倫斯·萊斯格(Lawrence Lessig)在他的《代碼2.0-網絡空間中的法律》裏所論述並相信的對於互聯網的政府規制是必要的那樣,對於開源必要的政府規制自然也將是不可避免地。而關於這一點,即使現在沒有發生,將來的某一天也是會發生的。


Lessig 在《思想的未來》一書中還曾引用了美國首任專利局長托馬斯·傑斐遜(Thomas Jefferson) 在1813年談到專利權的特點時説過的一句話:
他從我這裏得到一個構想,我自己的並不因此減少,正如他從我這裏對火,點燃了他的蠟燭,照亮他自己的同時也不會使我陷入黑暗一樣。
他敍述的“構想”是一種非競爭性的資源,托馬斯其實也不是在反對專利保護,他只是在駁斥專利保護是一種自然的觀點。同樣,開源代碼因為代碼資源的非競爭性,那麼控制體系所需要的唯一任務是確保資源的再生產,這是一個供應的問題。在那兒既然自然不保護,那麼設計一種可能的控制方式來保證人們有足夠的動力來生產和提供這些資源是必要的。

事實上,類似這種規制在擴大開源使用和促進開源供應方面,是有利於開源更好發展的。當然,這最後的影響取決於政策制定者們的遠見和智慧。如 Ellickson 在他的書中所描述的,不管怎樣地規制,也不一定是規制越多,就越有秩序。它的原則不是越多越好,而是隻有真正符合社會和人們實際需求的規制才是最終勝出的理由。
堅守初心
如果這些預測在未來證明是正確的,那麼希望大家理解和承認歷史發展的必然;如果這些預測最後被驗證是錯誤的,那麼我們會因此而欣慰,因為至少説明了一點:開源沒有違背初衷。