编者按:本文来自CSDN,作者:DanielOberhaus,编译:弯月,星球日报经授权转载。在各大厂纷纷拥抱开源的当口,“开源代码面临可持续发展危机”的言论也甚嚣尘上。早期,技术爱好者们“用爱发电”,“他们知道在出问题前,没人会注意到他们,没人会重视他们”。但遗憾的是,很长一段时间里,很多从开源中谋取暴利的人,却“没有为开源社区做出过贡献,他们将开源当成礼物直接拿走”,留给开源贡献者无限的阵痛——从开发者到经济学家们不禁发问,开源,还能走多远?本文剖析了以开源软件为基础开发的复杂业务,讨论了建立在免费开源开发者之上的互联网能否可持续发展的问题。以下为译文:StephenHenson审核通过了一个互联网漏洞的时候,正值2011年跨年夜的午夜。这位43岁的英国软件开发人员接受了有关OpenSSL代码的一处很小的改动,OpenSSL是一种开源加密协议,其可以保护网络上的很多内容。OpenSSL是开源的,任何人都可以在线查看其代码,并自愿贡献项目代码,但这并不意味着真的有很多人做出了贡献。Henson在OpenSSL上花了十多年的心血,OpenSSL有一个很小的团队,加上其他核心成员也从未超过3-4个开发人员。到2011年底,他与其他核心开发人员需要负责维护一个包含大约50万行代码的代码库,其中绝大部分是由Henson自己编写或批准的,这个责担子可不轻。OpenSSL保护了大量的Web服务器,以及电子邮件服务器、聊天服务器、VPN以及军事、政府和金融机构的网络基础设施。12月的那个晚上,Henson批准的代码变更是由一位名叫RobinSeggelmann的德国开发人员提交的,他帮忙编写了OpenSSL的“心跳”标准。在这项代码变更被批准之前,Henson和Seggelmann已经在这段代码上工作了数周时间,但仍未能发现这个bug:允许攻击者拦截传递给由OpenSSL保护的任何站点的信息。后来,Seggelmann承认了代码中的bug——这就是著名的“心脏出血”漏洞,虽然这是一个“非常微不足道”的小改动,却成为了历史上最危险的软件漏洞之一。对于像Henson这样经验丰富的人来说,应该很容易发现并修复这个bug——但是每个人都会犯错误。实际上,在Google的一位程序员后来于2014年发现并修复了这个bug之前,它已经在OpenSSL代码中存活了将近两年半的时间。尽管如此,如今这个漏洞依然存活于数十万台设备上,其中许多设备不太可能得到修复。OpenSSL只是成千上万开源软件程序中的一个,数百万人每天都依赖这些程序来浏览网页或观看视频,实时翻译或在智能手机上使用语音识别功能等。这些项目都是开源的,这意味着任何人都可以免费查看或使用这些代码。自从开源创建以来,开源开发的最大卖点之一就是软件开发人员EricRaymond提出的“林纳斯法则”,还有人认为那么多的人查看这些代码,所以“所有的错误都会浮出水面”。因此,在心脏出血bug被修复后,每个人心中最大的疑问是:这么关键的一个漏洞为何会被忽视如此之久,而其他开源项目的代码中是否也存在类似的漏洞。注:林纳斯法则即“足够多的眼睛,就可让所有问题浮现”。正如OpenSSL基金会的前任首席执行官SteveMarquess在博客文章中指出的那样,心脏出血可以归因为开发人员的筋疲力竭以及资金的匮乏。据Marquess所言,该基金会的捐款预算不到2千美元,每年签署的合同收入不足100万美元,且无法承担更多合同,因为其开发人员根本没有时间。Marquess还表示,实际上Henson是唯一一个全职工作的OpenSSL开发人员,而且以他的技术实力如果换作其他地方他所得到的报酬远不止如此微薄。“这些人并不是为了钱而在OpenSSL工作,他们也不是为了出名。他们这么做只是出于对技术的自豪感以及对他们所信仰事物的责任……他们知道在出问题前,没人会注意到他们,没人会重视他们。”01开源恶疾:把开源当成天赐礼物“抢”走的人很显然,全球互联网的安全性仅靠一位拿着微薄薪资的程序员呕心沥血的无私奉献来支撑着,这本身就是很大的问题,那么谁应该担负起责任呢?Marquess认为应该由“广泛使用OpenSSL,并将其视为理所当然的商业公司和政府”站出来。Marquess在文中写道:“我说的就是你,世界1000强公司,那些靠销售包含了OpenSSL产品赚取利润的人;那些弄不清楚如何使用OpenSSL就来缠着我们要免费咨询服务的人;那些从来没有为开源社区做出过贡献,却把OpenSSL当成礼物拿走的人。”Marquess和Henson都于2017年离开了OpenSSL,但在临走前他们还为这个项目做好了近期的筹划。在他们离开后,OpenSSL的核心开发团队已经发展到了7人,该项目的资金可以至少撑到2021年。这主要得益于Linux核心基础设施计划的大量资助——该计划致力于向对互联网安全至关重要的开源项目分配资源。该核心基础设施计划本身的资金来自亚马逊、Google、IBM、微软、Facebook和英特尔等主要科技公司的捐款。这笔资助意味着OpenSSL是安全的——只要这些公司继续捐赠。从表面上看,如今的开源软件社区非常繁荣。各家公司和政府正在以20年前难以想象的速度采用开源软件,而新一代程序员正在开发软件,并且可以随意使用。然而,深入观察你会发现问题已经开始显现。开源的优势地位给流行软件的维护者带来了沉重的负担,如今他们需要处理比以往更多的bug报告、功能请求、代码审查和代码提交。与此同时,开源开发人员还必须处理不断涌入的不熟悉社区规范的企业用户生产和使用开源软件。这导致开发人员疲于应付,并对依赖免费劳力来生产软件的公司产生了不满情绪,这些公司利用开源软件打包成产品后卖给消费者以获取巨额利润。从这个角度来看,心脏出血并不是唯一一个开发人员精疲力竭和资金匮乏的例子,而是多年以来在开源软件社区内逐渐恶化的系统性疾病的产物。确定这种疾病的症状和原因很容易,但想找到治疗方法却很难。许多开发人员与Marquess一样认为开源发展的主要问题在于财务,如果大型科技公司能够为他们所依赖的开源软件项目贡献更多资源,那么这些问题就可以得到解决。从理论上讲,这可以让开发人员在开源项目上投入更多时间,并激励其他程序员为开源项目做贡献。然而,仅靠在开源社区投入资金还远远不够。关于如何分配增加的资金以及如何回报提供资金的组织,这本身就是问题。事实上,资本的涌入有可能破坏社区驱动的基础,而近半个世纪这个基础一直支撑着开源的发展。02免费提供啤酒:开源软件的经济基础为了理解当前关于开源软件经济学的争论,我们有必要回顾一下其历史发展的背景。这可以追溯到80年代早期麻省理工学院的人工智能实验室。那是一个MarvinMinsky等计算机科学先驱与RichardStallman和GuySteele等新一代黑客交锋的时代,后者凭借自己的实力从根本上改变了计算机编程世界。Steele在编写和创建Lisp和Scheme等编程语言方面起到了重要的作用,而Stallman为自由软件运动奠定了基础——这是自Luddism以来对技术仲裁者的最大挑战。在最近一次接受NewLeftReview的采访时,Stallman描述了麻省理工学院的人工智能实验室培养了一种合作与激进开放的文化,以至于实验室的巨型计算机没有密码保护,实验室的大门始终处于无锁状态。可以肯定的是,Stallman承认这些开放的文化是环境的产物:例如Minsky总是丢钥匙,而实验室里的研究人员不得不共享庞大的计算机,因为这是唯一的一台。尽管如此,该实验室的精神还是给Stallman留下了深刻的印象。1983年,他向Usenet小组发布了一条消息,他宣布打算创建一个操作系统并“免费送给所有想要使用的人”。Stallman称这个操作系统为GNU,这是对当时主流专有操作系统的挑战,而它的名字也蕴含了这一点。GNU开启了自由软件运动。1985年,Stallman在GNU宣言中总结了这一原则:“我认为黄金法则的要求是:如果我喜欢一个程序,那么我必须与喜欢它的其他人分享。软件销售商希望分裂用户并征服他们,让每个用户都答应不与他人分享。我拒绝这种破坏用户团结的方式。”Stallman在讨论自由软件时使用“自由”这个词的方式并不是很明显。正如他喜欢的表达方式,自由软件的“自由”意味着“自由言论,而并不是免费的啤酒”。换句话说,自由软件的定义是道德要求,即将代码从对使用方式的限制中解放出来,但这并不一定意味着必然不收分文免费赠送软件。自由软件运动的基本原则于1989年正式编纂完成,而当时Stallman发布了GNU通用公共许可证——即现在更广为人知的公共版权,它为自由软件开发的爆炸式增长奠定了基础。RichardStallman正在展示“自由言论”与“免费的啤酒”之间的区别。图片来源:WikimediaCommons两年后,脾气暴躁的芬兰学生LinusTorvalds使用GPL发布了他的免费操作系统内核Linux。其内核经常与GNU软件一起使用,自发布以来的三十年,GNU/Linux已经成为世界上Web服务器和个人计算使用最广泛的操作系统之一。继Linux之后,许多其他有名的免费软件程序都在GPL或符合GPL标准的许可下发布,其中包括ApacheWeb服务器软件和MySQL数据库引擎,两者目前仍在广泛使用。在狂热的互联网泡沫中,当名不经传的科技公司都获得了令人憎恶的估值时,Stallman由道德驱动的自由软件运动提供了一种截然不同的视角来看待未来。与硅谷的风险资本家在办公室里大量炮制的空中数字城堡不同,自由软件发挥了作用。Stallman和他的助手证明了,通过结合道德信念和技术,可以构建出优秀的软件,这些软件能够通过修改来满足用户的个性化需求。90年代间曾有一个短暂的时期,软件的未来似乎就在于自由——真正的自由。后来,在1997年,一位名叫EricRaymond的程序员发表了《大教堂和市集》,这篇文章分析了开发自由软件的过程。Raymond富有创意的文字和核心是他所谓的“林纳斯法则”,主要思想是说如果足够多的人共同开发一个软件程序,那么任何隐藏在代码中的bug就会被迅速捕获和修复。从本质上讲,Raymond为自由软件开发的效率打好了基础。由于软件是公开开发的,所以任何人都可以看到自由软件程序的底层,这意味着任何代码中潜在的bug都会被迅速发现。林纳斯法则的必然结果是:自由软件可以更快地发展,因为任何人都可以针对软件提出自己的改进,并发送给项目的核心开发人员。Raymond的分析对自由软件运动的影响非常大。在他的文章发布之后,网络浏览器Netscape公开了它的源代码,并引用Raymond的文章作为该决定的“基本灵感”。很明显,Raymond的宣言引起了一些硅谷人的注意,他们意识到了自由软件的商业潜力。但还有一个问题:自由软件运动背负着重要的道德问题,而道德对企业很不利。因此,1998年在Raymond和崭露头角的媒体巨头以及“大子”TimO’Reilly的领导下,一群高调的自由软件传播者聚集在一起,探讨如何让自由软件对行业更具吸引力。正如Raymond后来描述的那样,会上的开发者们针对“重新塑造产品品牌,将其树立成企业界渴望购买的产品”为目标,开展了一场“营销活动”。Raymond在一篇名为《开源:开源革命的声音》的文章中写道:“回想起来,很明显多年以来‘自由软件’一词对我们的运动造成了巨大的破坏”,“这与对知识产权的敌意和共产主义有着很强的联系。”他还指出,“Netscape之后,的成功来自我们用积极的形象——更高的可靠性和更低的成本,以及更好的功能——取代了自由软件基金会的负面刻板印象——根据实践做事,取悦管理者和投资者。”该小组的这个刻板印象被封装到了“开源”一词中,他们集中精力通过让软件源代码“开放”,来回避自由软件的道德维度。回顾过去,这场营销活动取得了巨大的成功。现在开源软件成为了我们大多数人每天使用的技术平台和服务的核心,包括微软,其前首席执行官史蒂夫·鲍尔默曾将Linux和其他开源项目称为“瘤”。而如今,微软也将自己定位成开源开发的拥护者,Google、Facebook、亚马逊、IBM甚至美国政府皆是如此。另外说一句,通常自由软件是指自由开源软件。03开源经济学
IBM多项混合云、AI及区块链产品被列入中国信通院《开源供应商全景观察》报告:10月27日消息,IBM宣布其多项基于企业级开放技术的混合云、AI及区块链产品获中国信息通信研究院批准并采纳,列入其最新发布的《开源供应商全景观察》报告。这是信通院2021年5月公布“首批可信开源供应商名录”以来发布的第二批可信开源厂商及产品名单。[2021/10/27 21:01:46]
尽管很快很多硅谷的大科技公司都接受了开源软件,但经济学家们仍在努力解释这些项目适应了市场的惯例并取得了成功的原因。当时,自由软件人群兜售的标准解释是:自由软件的开发可以在自由和利他主义的道德要求的基础上持续发展。这似乎不足以解释Linux等项目的迅速出现和广泛采用。到目前为止,历史上没有任何一个其他行业能够仅靠贡献者的“善良”就催生出这种技术要求十分严格的项目。这种显著的异常现象引发了21世纪初的一系列研究,人们设法解释开发人员如何通过他们对自由开源软件生态系统所做的贡献而“获利”。简而言之,这些经济学家试图解释开源开发,让这些程序员的行为符合经济学家的理性生产者/消费者的概念:即所谓的“理性经济人”。2000年,哈佛大学经济学家JoshLerner和麻省理工学院的JeanTirole发表了开源开发的经济学解释。Lerner和Tirole的这篇论文标题为《开源的简单经济学》,找出了开源开发人员所获得的多项短期和长期的利益,开源开发中利他主义的作用被大大降低成了意外的副产品。简而言之,Lerner和Tirole声称开源开发的主要推动因素是开发人员获得的经济利益,而不是给予世界自由软件的一些根深蒂固的愿景。Tirole和Lerner认为,就短期利益而言,开源程序员可以通过在开发该软件的公司工作而直接获得工作的报酬,他们也可以通过修复bug或添加功能让软件进一步体现自己的价值。至于长期利益,开源程序员可以通过开源开发来向未来的雇主或风险资本家展现他们的才能,从而推动他们的职业生涯发展,同时还提供了一种信号机制,即开发人员可以从开源的同行那里获得技术支持的认可。在该论文发表后,其二者对开源开发经济激励的解释成为了新的“福音”。至今,开源经济学还在大量引用该论文。大约在2000年,Lerner和Tirole所认定的开源社区是一个人人都是赢家的系统,但在这之前的20年中,自由开源软件生态系统在采用的规模和生产方式方面都发生了巨大的变化。这些变化很大程度上应该归功于Git的创立,Git是2005年问世的一个开源工具,为软件开发提供了分布式协作。围绕Git构建的服务,尤其是GitHub,大大加快了开源开发的步伐,并大大降低了新的开发人员进入市场的障碍。这是Lerner和Tirole所预见的一个问题,他们在GitHub出现大约10年之前就曾质疑“开源项目的管理是否能够容纳越来越多的贡献者”。通常开源贡献者数量的迅速增加被认为是对其开发范式的验证。然而,在过去十年中,越来越多自由开源软件的开发人员开始谈论维护开源库时的不堪重负。许多开发人员指出,用户权利是这种不堪重负的主要来源。正如开发人员WilliamGross所描述的那样,依赖开源软件的公司不断增加,这意味着开源开发人员需要处理越来越多大量的功能请求和代码的问题,而且许多公司都认为他们的改进和问题应该得到优先考虑。换句话说,似乎开源社区中的许多热门项目都必将成为成功的受害者。Lerner和Tirole认为,许多自由开源软件的开发人员开始怀疑仅靠个人志愿者的善意而展开的软件开发模式是否可以大规模地持续发展。只不过我们很难确定这个问题。有些开发人员将其视为一种文化问题,他们认为可以通过一些措施来加以解决:向新手传授成为优秀用户的守则,并且要让维护人员知道拒绝贡献也无可厚非;还有人则认为,从根本上说,这是一个可以通过更多资金解决的经济问题;还有人则否认存在任何系统性的问题。04开源的悲剧
2015年,NadiaEghbal辞掉了她作为风险投资家的工作,并着手开始研究为什么许多开源项目很难通过他们的成果赚钱。Eghbal告诉我们,在她反复听到自由开源项目的广泛使用后,开始对开源软件的经济学产生了兴趣,但却无法弄清楚如何为其开发提供资金。对于Eghbal来说,这里面似乎存在着矛盾。许多流行的开源项目都具有创业成功的所有特点:快速采用、庞大的用户群以及低成本的开发。然而,大多数这些项目都会成为风险资本的诅咒,投资者只关心软件是否会带来巨大的回报。那么,问题就在于我们需要确立一些可以持续为开源提供资金的机制。为了找到解决方案,Eghbal去采访了问题的源头:开源项目的维护者。在对数百名开源开发人员进行了长达一年的采访之后,Eghbal发布了文章《道路与桥梁》,这可以说是有史以来开源软件开发经济学方面最广泛的研究。Eghbal的报告将开源软件视为一种非排他性的公共产品。这是社会科学中的一个技术术语,意思是任何人都可以使用的资源,例如无论他们是否支付过道路和桥梁费。非排他性的公共产品是健康社区的基石,但它们也受到经济学家所谓的“搭便车问题”和“公地悲剧”的影响。搭便车问题比喻的是一种情况:因为没有办法阻止那些没有付款却使用商品的人,从而导致商品过度消费或生产不足。根据定义,开源是一种非排他性的商品。例如,像Google这样的公司可能会花费大量资源来开发开源工具,但由于这些工具是开源的,所以Google也无法阻止其他公司的使用。如果出现太多使用TensorFlow却不对其维护做出同等贡献的公司,那么就可能会导致该软件生产力不足,因为维护人员无力承担过量的用户提交的功能请求或bug报告。搭便车的问题与公地悲剧息息相关,公地悲剧描述的情况是:社区所有的成员都受益于对公共物品的无管制访问,但是没有人有动力承担维持该商品的成本。如果社区的每个成员都根据自己的利益使用公共物品,那么最终该物品会被耗尽,社区中的人都将无法再使用。对于自由开源软件来说,公共物品就是数十亿行的开源代码。虽然代码本身不能像食物或土地等其他经济商品一样被耗尽,但其耗尽的资源是负责开发和维护代码的程序员的注意力和精力。公地的悲剧是经济学中一个经过充分研究的问题,但Eghbal意识到这个问题常见的解决方案在开源软件开发方面并不适用。将软件变成私有产品会破坏开源开发的整个过程:高效开发的高质量软件,任何人都可以根据需要使用。另一方面,规范化开源软件的生产会破坏开源软件开发的主要优势。监管所带来的稳定性是以效率为代价的,而在快节奏的软件开发领域,这根本就行不通。此外,监管也会破坏开源开发的精神,因为这可能导致设立门槛以决定哪些人可以贡献代码,而哪些人可以消费资源。有些开源维护者试图按照过去使用他们的软件的方法来规范化开源软件,例如禁止与移民和海关执法部门合作的公司使用该软件。但这遭到了开源社区的强烈反对,最终被撤销,这证明了人们深信开源软件应该向所有人免费提供。另一方面,有关开源社区的访问规则已经浮出水面,这可能会成为开发人员不堪重负问题的解决方案。正如开发人员WilliamGross在文章中指出的那样,在这种“开源,封闭社区”的模式中,如果有人想访问开发人员工作的社区,则实质上需要支付费用。“我们向用户传达的信息应该是:‘你可以随心所欲地利用代码做任何事情,但是如果你想影响项目的未来,那么请为我们的工作支付报酬’”,“这会导致出现一个更小规模的社区以及更多的分支吗?肯定会。但是,如果你坚持不懈地建立自己的愿景,并为其他人创造价值,那么如果他们想有所贡献就会付钱。”对于那些不愿意守护开发社区的维护者而言,另一个最合乎逻辑的解决方案似乎是要求开源软件用户通过聘请该项目的开发人员来支持开发。这种方法通过计算来确立开源的资金,即找出谁是开源项目的受益者,并确保他们尽可能多地回馈生态系统。虽然我们没有中央数据库能够跟踪世界上所有的开源贡献者,但有一样东西已经非常接近了——那就是GitHub。GitHub于2008年问世,虽然它不是唯一一个程序员用来存储、审查和讨论开源软件的地方,但它相当于自由开源软件社区的市政厅。如今,这个在线软件仓库拥有来自世界各地大约2500万名贡献者所创建的超过1亿个代码仓库。促使这2500万人为开源开发做出贡献的动机有多个方面,但根据开源Web开发框架RubyonRails的创建者DavidHansson的说法,在过去的二十年里,开源贡献者的情况发生了根本性的转变。“绝大多数开源软件的资助都是由公司出面赞助开发人员处理那些对他们很重要的问题”,“这是一种与RichardStallman的自由软件不同的方式,RichardStallman的自由软件只谈论到了人们自行编写软件,而这个非常出色的模型可以为我们提供一系列开源软件。”图片来源:CathrynVirginia/Motherboard这并不是说在闲暇时间推送代码的开源程序员在自由开源软件社区不是特别受欢迎。Hansson特别赞扬了这些“热情的爱好者”,他们是自由开源软件生态系统的基石。仔细阅读2017年GitHub上的主要贡献者名单就会发现,Hansson说得没错——Google、微软、亚马逊、IBM、Facebook、腾讯、百度、红帽和英特尔的员工都是最活跃的开源贡献者。所有这些公司都是营利性的,每年从基于开源代码的产品中可以获得数百亿美元的收入。我联系了其中几家公司,请求他们回应开发人员说他们没有回馈开源社区的指控。那些回应了我的请求的公司快速地捍卫了他们对开源开发做出的实质性贡献。IBM开放技术副总裁ToddMoore指出,自90年代中期以来,该公司一直在为开源项目做贡献,包括他们在Linux和Apache寻求立足之地时给予的资助。据Moore所说,1200多名IBM的员工在工作和闲暇时间为1000个开源项目做出了贡献。Moore表示“很多”IBM员工在全职为Linux、Kubernetes、Java和Node.js等开源项目工作,而且该公司每年都会向各个开源社区的顶级IBM开发人员提供奖励。他强调,“在过去的10年里,我们通过资助每一个主要的开源基础帮助建立了如今的开源革命”,“IBM鼓励员工为开源效力。”IBM还举行了一个年度认证计划,“帮助IBM员工了解与开源有关的价值和风险,并提醒他们内部治理的流程。”该教育研讨会还包括“成为某个项目或社区积极成员的最佳实践指南”。据Moore所述,有72000多名IBM员工已获得了该计划的认证。Google开源主管ChrisDiBona也提供了类似的信息:“自公司成立以来,自由和开源软件一直是Google技术和组织基础的一部分。”,“拉里·佩奇和谢尔盖·布林为Linux和商用硬件做了很多贡献,而且多年以来Google员工也在开源许可下发布了数百万行的代码。”虽然DiBona拒绝提供在开源项目上全职工作的Google员工的确切数目,但他表示该公司在GitHub上拥有2000多个活跃的开源项目。特别是由Google创建并得到广泛使用的开源项目,而且每天都有员工为其效力的例子,DiBona重点强调了编程语言Go和容器软件Kubernetes。“你几乎找不到一位没有为开源项目做出过贡献的Google技术员工。”“Google鼓励员工开展与他们的工作、兴趣或爱好相关的开源项目。”DiBona还指出,据2018年的数据显示,Google员工占GitHub所有活动的1%以上,这就是该公司及其员工致力于开源开发的证据。Google和IBM等公司通过要求或鼓励员工开发开源代码,直接为开源社区做出了贡献。许多公司还向Linux基金会、Apache基金会或Mozilla基金会等非营利组织提供了捐款,现如今这些组织拥有数百万美元的捐赠基金。然而,个别开发人员提出的问题不在于这些科技巨头是否为开源做出过贡献;而是这些公司做得贡献是否足够,以及这些贡献是否用到了正确的项目上?开源Web开发框架Django的联合创始人JacobKaplan-Moss认为,这些价值数十亿美元的公司需要为开源社区做出更多贡献。Kaplan-Moss特别指出了GitHub,并建议如果GitHub真关心开源,就应该把这笔交易的一半收益交给该软件的维护者和贡献者。“开源软件不堪重负的根本原因是资金,”Kaplan-Moss在推文中说,“解决这个问题的唯一方法就是金钱。那些依靠开源软件赚取数十亿美元的科技公司几乎没有给予任何回报。他们现在就可以解决这个问题,而且几乎不会影响他们的利益。如果这些公司真的关心开源软件,而不是为了彰显他们的美德,那么他们就应该把这些巨款变成对开源维护者和基金会的支持。”Hansson虽然不反对为开源项目提供更多的资金,但当涉及“开源与资金挂钩的风险”时,他采取了更为谨慎的立场:“如果你有一个拥有几百个贡献者的项目,而且你开始为一些工作设定特定的金钱奖励,那么我觉得很快你就会进入非常危险的境地”,“对于那些只是为了社区、个人爱好、或创造力而为开源工作的人来说,他们并没有从经济学的角度来审视自己的工作,一旦出现金钱奖励,那么他们也要突然被迫从市场的角度考虑他们的时间投入了。我认为在很多情况下,这种做法都会造成很大的损害。”有关这方面的损害,Hansson以自己在RubyonRails做贡献时的故事为例子进行了说明——当他刚开始为Rails工作时,他被功能请求和bug报告等压得喘不过气来,而且大量的电子邮件都希望他能够解决所有的问题,就好像他是软件供应商一样。然而,由于完全不涉及市场价值,所以Hansson当时的心态是“去你妈的”,他说经证实这种心态是抵抗自由开源软件社区猖獗地压榨开发人员的“头号防御机制”。如果他因为拿了钱而工作,那么他就有义务满足客户的要求。然而,也正因为他自愿为社区项目做出的贡献,所以也没有人会对他表示感激。Hansson表示,“我免费提供了软件,所以如果你想帮忙把这个软件做得更好,那肯定非常好啊,我们可以一起加油”,“但如果你想站在一旁,叉着腰对我大吼大叫说这个软件很差劲,那么我会跟你说去你妈的,我又不是为你工作。”开源社区中肯定不会有人觉得为自由开源软件提供更多资金是一个彻头彻尾的坏主意。即使是Hansson这样常常批评将金钱与开源混为一谈的人也提倡在某些情况下应该注入更多资金。总体来说,开源社区面临的难题不在于拥有更多的资金是不是一个好主意,而是这些资金应该如何分配。05自由软件并非免费
开源矿池合伙人Andy Guo:Filecoin是第一个真正让区块链做基建的项目:由开源矿池和火币主办,金色算力云、链上ChainUP、Filecoin Beijing联合主办的“分布式存储中国行暨开源矿池IPFS私享会”2020年12月6日在武汉举行。开源矿池合伙人Andy Guo在会上表示,存储是web3.0世界里非常重要的基础设施,在去中心化的网络里,是有可能会实现数据隐私性和数据的私有化,甚至资产化的过程。基于此,去中心化存储在将来一定会有很重要的爆发。Filecoin是第一个真正让区块链做基建的项目,Filecoin网络可以让区块链真正具备存储能力。在物联网等数据来源天然分散的场景里,Filecoin也比传统存储方案更具有潜力。Filecoin的终极愿景是使得IPFS成为HTTP协议的补充,构建web3.0底层基础设施。[2020/12/6 14:21:29]
Hansson认为企业赞助是支持开源项目最有希望的方式。这其中有很多种形式。有些公司向为支持特定开源项目而创建的非营利基金会捐款。例如,IBM、英特尔、Google、微软都是Linux基金会的“白金捐助者”,他们聘请了全职开发人员为Linux内核工作。各个公司支持开源项目的另一种方式是聘请开发人员在公司全心全意为开源工作,或允许员工将部分工作时间用于编写开源项目。然而,将支持开源项目的重任交给各大科技公司并非没有风险。从本质上讲,开源开发是分散的。然而,如果由一家公司负责支持某个项目大部分的核心开发工作,那么这种集中化将成为极大的风险,因为这家公司可以随时决定停止为该项目提供资金。此外,向开源项目投入人力的公司显然会优先考虑按照对公司本身最有利的方式开发该项目。虽然这本身并不一定是坏事,但也可能会牺牲软件使用方式的多样性。有关这方面的一个例子就是Android操作系统的开发,该系统在全球智能手机中占86%的份额。Android是开源的,但几乎所有关于操作系统的开发工作都是在Google内部完成的。与此同时,Google还出资让工程师开发一些专有的应用程序,通常这些应用被视为Android操作系统最大的卖点。因此,虽然任何人都可以利用开源代码自由创建自己的Android操作系统,但Google有一项政策,禁止在任何非官方的Android操作系统上使用其应用程序。这项政策是合理的,因为这项政策有益于应用开发人员——他们的应用程序无需适应几十个略微不同的Android版本,但最显著的后果是开源Android操作系统已经与专有的Google产品融为了一体。别的公司也可以在手机上免费使用自定义版本的Android产品,但这会让他们承担很大的风险。2014年亚马逊的Fire手机非常不明智地尝试使用自定义的Android产品,结果以1.7亿美元的损失惨淡收场。虽然缺乏Google的应用并不是这款手机失败的唯一原因,但也是导致其失势的主要原因。然而,对于很多开源项目来说,即使想要接受企业的资助,也缺乏这方面的组织结构,软件自由保护协会的通信主管DebNicholson表示,他们是一个为开源项目提供基础设施支持的非盈利组织。事实上,Nicholson表示,自该组织成立十年以来,他们的主要工作就是作为一种联盟的组织,代表其成员的50个开源项目接受资金。这些项目包括只有寥寥几个贡献者的小型运营,也包括PHP和Git等从根本上改变了我们使用互联网方式的大型项目。在众多为开源项目提供机构支持的非盈利机构中,软件自由保护协会只是其中之一。其他组织提供了各种其他服务,例如法律建议,或为开源项目成功运行提供所需的物理基础设施。这些项目中的程序员都知道如何编写好的代码,但他们往往没有时间或资源来处理建立法人以及为项目建立管制组织的琐事。这些非营利组织的作用就在于帮助这些项目解决这方面的难题,保证自由开源软件项目能够获得所需的支持,而程序员则可以专注于他们最擅长的事情:编写软件。从历史上看,支持自由开源软件的重任已经落到了这些非营利组织的肩上,然而一家名为Tidelift的新公司致力于通过市场的解决方案为开源社区解决资金的问题。这家由四名红帽公司前员工创立的公司通过销售Linux支持服务,最近成了科技史上排名第三的大笔收购的主角——IBM以340亿美元收购了该公司,而Tidelift则希望通过开源软件的安全支持增加流向开源项目的资金。Tidelift的首席执行官DonaldFischer指出,采用开源项目的最大障碍在于缺乏软件能够按照预期运行的保证。与专有软件不同,开源项目通常没有客户支持热线。如果有一家公司使用了开源代码,然后维护人员却停止了工作,或者没能及时解决bug,那么这家公司也无可奈何。正如Hansson指出的那样,从维护者的角度来看,这种选择性地与用户互动的能力在没有获利的开源项目中只是痴心妄想。Fischer同意这一观点,他认为如果程序员不想因为获取了报酬,就将他们的开发时间花在为用户提供客户支持上,那也无可厚非;但是对于那些想为自己的劳动而获得报酬的人来说,我们也应该为他们提供机会——加入Tidelift。Tidelift有点像RedHat为Linux所做的努力,但对于所有其他自由开源软件项目来说:如果企业想获得与他们使用的开源项目相关的支持服务,那么他们就需要支付费用。正如Fischer向我描述的那样,类似于AirBnb带来了酒店业,Uber带来了运输业,Tidelift也想将相同的逻辑用在自由开源软件社区。Tidelift通过自己开发的程序跟踪了数百个开源库中的变动,并以此跟踪了代码的变更会对那些使用了这些服务的公司造成怎样的影响。如果其中一个库中的代码出现了安全性、许可或维护的问题,那么Tidelift登记在册的开发人员就会处理与该变更相关的任何问题。在这种模式下,各个公司需要向Tidelift支付固定的费用,Tidelift抽取分成后会将剩下的分配给开发人员,而开发人员根据使用他们维护的代码的公司数量来获取相应的报酬。Tidelift的模型类似于开源中最古老的一个集资机制:Bug赏金。这基本上相当于一种协议,即向发现和/或修复某些开源代码中已知bug的开发人员支付报酬。市场上涌现的很多服务都是为了满足这一需求,其中包括在区块链中支付赏金的Gitcoin,欧盟于12月推出了面向14个开源项目的Bug赏金计划。2017年,一家名为CodeSponsor的公司致力于通过将开源项目与想在开源项目的帮助文件中添加广告的公司联系起来,从而实现开源项目的获利。CodeSource后来改变了其业务模式,并重组为CodeFund,它利用合乎道德的数字广告为开源项目提供资金。流行的开源项目中,一些比较活跃的开发人员已经通过Patreon等众筹服务寻求支持,并自行筹集了资金。对于那些为知名开源项目工作的知名开发人员来说,这可能相当“有利可图”。例如Vue.js的创立者EvanYou每月可以通过Patreon获得1万7千多美元。当然,EvanYou是开发人员中的一个例外。其他从事开源项目的程序员可以通过众多资源获得更多的报酬。HenryZhu最近辞职了,他开始全职为开源JavaScript编译器Babel.js工作,完全依赖众筹来支持他的收入,目前每个月他可以从Patreon上获得大约1500美元的收入。今年1月,GitHub的开源项目经理DevonZuegel在网站上写了一篇名为《我们来谈一谈开源的可持续性发展》的文章。该文章强调了开源社区中的一些问题,其中包括资源与治理不足、缺乏沟通、工作超负荷。Zuegel恳请社区向服务于改善开源维护者和贡献者等领域的公司提供信息。GitHub产品管理高级主管KathySimpson告诉我,“我们所要做的事就是,倾听那些正在构建软件的开发人员的意见,给予他们大量支持,帮助他们建立对其将来有助益的工具。我们有义务保护这些项目和社区之间的结缔组织,并帮助他们成长。”“维护可能是一项非常具有挑战性且吃力不讨好的工作,”Simpson补充道,“我们非常清楚这一点,而且我们希望尽我们所能全面推进。”尽管表面上GitHub非常认真地设法帮助开源维护者,但对于GitHub的建议请求却得到了不同的回应。有些开发人员欢迎GitHub尝试改善运行开源项目的经验,而有些人则对该公司所暗示的开源存在可持续性发展的问题表示不满。“对于那些已经在开源努力了20年的人来说,可持续发展性的观点会非常令人感动。”Hansson告诉我,“但如果你提出一个观点说开源存在可持续性发展的危机,那么你必须指出贡献或项目数减少了,而不仅仅是几个无关的事例。我认为有些项目确实陷入了一种奇怪的境况,这些项目中没有从事自由职业的核心维护者,而且也没有一家公司最终认为有必要直接资助这些项目,但我不觉得这可以代表普遍现象。”开源代码中是否普遍存在可持续性发展的危机,这是一个有争议的问题,但这并不能否定我们需要找到一种解决方案,来解决难以找到资金和志愿者来支持开发开源项目的必要性。无论这些是个别现象还是不断上升的趋势,无论是否有存在这样的缺陷,开源开发人员继续致力于开源项目这一事实证明了他们更加愿意致力于项目和开源开发。然而,大多数开发人员都认为,如果有可持续性的方式为开源社区提供资金,那么肯定可以开发出更好的软件。正如Zhu在去年参加Eghbal主持的一个播客系列“HopeinSource”中所说的那样,开源社区很像一个宗教团体,特别是在金钱方面。人们可以自由地组织这样的宗教机构,以确保在那里工作的人可以继续进行组织的工作,而无需在外部寻找工作。这些有组织的宗教团体需要资金才能保证基层的运作,但他们最重要的资产不是金钱,而是人们聚集在一起让这个社区成为现实。即使拥有世界上所有的钱,也无人可以创立这样的宗教,或维持一个广泛使用的开源项目。“我们希望鼓励人们参与进来”,“在开源社区中,时间重于金钱”。尽管如此,科技公司和其他用户依靠资金不足和过度劳累的开发人员所维护的开源软件来为现代社会提供动力,这种现象仍然是不公平的。虽然从一定程度上来看这是一个值得研究的问题,但实际情况还没到这一步。正如EricRaymond于二十多年前指出的那样,开源的最佳特性之一就是其开放性以及社区驱动的开发模型能够以更低的安全风险更高效地创建更好的软件。对于消费者产品以及关键性的互联网安全基础设施而言,世界变得越来越依赖于开源软件,而且公司和用户不能因为“心脏出血”这样的灾难性漏洞就相信维持这种开放式基础设施需要付出代价。
零知识证明研发机构StarkWare将在几周内开源ethSTARK:零知识证明研发机构 StarkWare 称,2018年我们获得以太坊基金会的资助去探索对 STARK 友好的哈希函数以及开源 ZKP 代码。我们将在几周内提前完成我们的工作。ethSTARK代码的运行速度将比现有的任何 ZKP 代码快20倍。注,2018年7月份,StarkWare称获得了以太坊基金会的资助(现金+代币),将研发对STARK 友好的哈希函数和技术,并为生态系统提供开源代码。STARK将允许区块链在兼备隐私和后量子安全的情况下进行大规模扩展(例如分片)。[2020/5/26]
去中心化服务平台 AVA Labs 开源平台代码库:由康奈尔大学著名计算机学者 Emin Gun Sirer 创立的去中心化服务平台 AVA Labs 宣布向全球开发者开源平台代码库。AVA Labs 首席执行官 EminGünSirer 表示,“AVA 代码库的发布结束了 AVA 研究和开发的第一阶段,同时也表明了致力于开放源代码和去中心化社区的承诺。随着 Avalanche 协议性能和安全性改进,包括 BCH 在内的其他主流加密货币已经宣布计划合并 Avalanche 或变体版。 结合协议与网络模型,AVA 平台将跨越许可和非许可的网络,成为首个服务于新型区块链和数字资产自助服务平台”。2019 年 2 月,Ava Labs 完成了 600 万美元融资,Andreessen Horowitz、Polychain、Coinbase 前 CTO Balaji Srinivasan、Metastable、 Initialized 和 Abstract Ventures 的创始人 Ramtin Naimi 等机构和投资人参与了该轮融资。[2020/3/11]
动态 | 微软公布新开源形式验证工具VeriSol,旨在优化智能合约质量:据Crypto Globe消息,6月3日,微软研究院(Microsoft Research)在博客中揭示了一个新的开源形式验证工具。该工具旨在提高使用Solity(为以太坊区块链构建的编程语言)子集编写的智能合约的质量。 新工具名为VeriSol(即Verifier for Solidity),曾出现在一篇概述微软Azure区块链智能合约验证的设计和应用的学术论文中。博客文章称,尽管VeriSol迄今仍然是一个主要由Azure智能合约驱动的原型,但研究人员对其期望很高,同时也在鼓励开放协作以促进形式验证发展并引入主流智能合约开发中。[2019/6/4]
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。