本文将从意识形态的角度对web3进行“竖向”介绍,并阐述Web3的三大基础原则。
——向苏格拉底法则致敬!
前言
现在已经有太多解释Web3的文章了,那么我为什么要写这一篇呢?因为作为一名程序员和哲学家,Web3 对我来说非常具有吸引力。它从根本上说是一场由技术进化促成的意识形态革命。

Web 3 最关键的技术基础是区块链。区块链之于 Web 3 就像蒸汽机之于工业革命,这一底层技术革新驱动了新机制的诞生。从根本上说,区块链就是一种公开可见、仅可追加的数据结构。其独特之处在于它融合了三个不同的领域:密码学、分布式系统和博弈论 [1]。
这三个领域各为 Web 3 的意识形态演变贡献了一个基础原则。密码学实现了去信任性,分布式系统实现了永久性,博弈论实现了自发性。在本文中,我将使用这三种意识形态作为主线,来连接无数个Web 3 项目,并将Web 3 的技术创新与其哲学含义相关联。
一、密码学:去信任性
很久之前,“crypto”这个词只是“密码学”(_cryptography)而不是”加密货币“(cryptocurrency)_的缩写。从双关的意义上来说,密码学过去是、将来也会是支撑加密货币的关键技术。公钥加密(或非对称加密)允许用户在不泄露数据的基础上匿名发送数据。
无论在构建去中心化或中心化金融体系,数据加密都起着至关重要的作用。这是因为人们都不希望窥探者能够查看和窃取您的资金。想象一下,如果你发现你的银行没有采取任何措施来保护个人财务信息,并且每个人都可以查看你的每一笔财务交易,那将是一件多么令人愤怒且可怕的事情。
当使用去中心化的金融体系(如Bitcoin)时,数据加密更为重要。因为,它没有一个可以告上法院的中心化实体。如果您的资金在交易中被黑,它们就消失了。多倒霉啊!这就是为什么bitcoin协议如此保护公钥加密交易的原因。
为了使交易被视为有效交易,用户必须提供“数字签名”。这是一种加密哈希值,用用户的私钥创建,用用户的公钥验证 [2]。此外,用户转出资金的“钱包地址”本身就是用户公钥的哈希值。这提供了额外的一层真实性证明,用以证明签署交易的用户是钱包的所有者。并且,在用户交易前,即使是公钥都不会被泄露给外界。[3] Bitcoin协议中这些微小的设计策略都彰显了区块链是如何在无需信任的基础上运行的:信任过程,而不信任人。毕竟,数学是可靠的,而人却不是。
去信任性可以作为一个重要的鉴别条件,来确定哪些项目在意识形态上是 Web 2,哪些是真正的 Web 3项目。让我们用两个稳定币的项目来说明吧:Tether 的 USDT,MakerDAO 的 DAI。两者的核心策略都是通过将加密货币与美元 1:1 挂钩,但他们却用了完全不同的方式来实现。

Tether的模型非常简单易懂。每当我给 Tether 1 美元,Tether 就会给我 1 USDT,承诺我可以随时将 1 USDT 换回 1 美元。问题是,我需要相信 Tether 不会只给我留下毫无价值的 USDT ,然后带着我的美元卷款跑路[4]。因此,Tether 在意识形态上是一个 Web 2 项目,因为它依赖于我的信任。我必须要相信 Tether 会保护我的原始美元安全,而不会突然跑路 [5]。
另一方面,MakerDAO 的 DAI 在意识形态上是一个 Web 3 项目。它可以说是最成功的去中心化项目之一。
DAI 通过 MakerDAO 超额抵押借贷协议得以维持。要从 MakerDAO 借 1000 DAI,我需要锁定价值 1500 美元以上的 ETH 作为抵押[6]。对于 DAI 稳定币,用于铸造这些 DAI 的“超额抵押贷款”成为货币的坚实后盾。
当 DAI 的价格跌至 1 美元以下时,人们会在交易所以折扣价购买 DAI以偿还本金,从而导致DAI 的供应量减少并推高价格。另一方面,如果 DAI 的价格超过 1 美元,人们就抵押更多的ETH 来铸造更多的 DAI。上涨的DAI 供应量和 ETH 抵押量将导致 DAI 的价格重回 1 美元 [7]
人们不需要去信任单一的中心化实体(如 Tether),只需通过去中心化的 MakerDAO 智能合约,即可检查其是否按预期运行。如果你愿意,甚至可以将合约代码复制到自己的运行环境中,进行一系列的测试以确保它能够正常运行。这一模式会给社区提供最大程度的透明度,是 Web 3 意识形态的典型示例 [8]。
更重要的是,去中心化是一种手段,而去信任是目的。去中心化本身并不构成“第一基础原则”。 因为当有规模经济收益时,去中心化就没有意义。让我们用”垃圾车“这个例子来解释一下。想象一下,我们每个人必须每周开车到垃圾场扔垃圾,而不是让集中的垃圾车收集垃圾运往垃圾场。这会带来不必要的巨大不便。因此,去中心化并不是可以解决一切问题的灵丹妙药。
相反,只有当无需信任、永久性和自发性的优势超过了其所放弃的规模经济收益时,去中心化才有意义。 现在,让我们回到“去信任性”这一方面。在“垃圾车”的例子中,所涉及的参与方其实没有任何利益冲突。人们并不想知道你的垃圾里有什么,你的垃圾里也不会有你最秘密或最珍贵的东西。因此,信任一个中心化实体(如社区垃圾车)的风险非常低,并且从中心化中获得的规模经济收益远远超过了成本。
但在银行数据和金融交易的情况下,却恰恰相反。把钱存在银行或自己的保险箱里,实际上并没有那么大的规模经济收益。与此同时,许多人在觊觎你的钱财。因此,去中心化金融体系能够确保去信任性网络具有远远超过其成本的优势。这就是为什么Bitcoin作为一个区块链项目是有意义的。
二、分布式系统:永久性
本质层面上来看,规模化在带来巨大经济红利的同时也带来巨大的安全隐患。单点故障非常脆弱,不利于数据的永久性。正如动物如何通过繁殖来增加其 DNA 在不确定环境中的生存机会般,人们通过将数据复制到多个位置和节点,使这些数据更能抵御bugs、黑客攻击和系统故障。相比存储在单一机器上,去中心化通过将相同数据存储在不同机器上来实现永久性。
但是跨分布式系统协调数据是一个难题[9]。你要如何去处理数据损坏和分布式网络中的不良行为?现代区块链采用的核心概念是“拜占庭容错”,这表明只要不良行为占网络总节点的比例不超过 1/3,区块链就应该继续运行[10]。
当网络上的某节点提议将某区块附加到区块链上时,它需要收集至少 2/3 的节点验证者的签名才能被证为有效。这一签名收集过程称为“共识”。虽然区块链各自以不同的方式实现“共识”(如:Bitcoin的PoW、ETH的PoS、Solana的PoH),但它们都属于“拜占庭容错”。最重要的是,随着节点数量的增加,“拜占庭容错”区块链会产生去中心化的规模效应,黑客更难控制足够多的节点以在共识层面攻击区块链。
通过上文,我们确定了如何通过区块链中的分布式系统实现“永久性”。现在我们需要问:什么信息应当被存储在区块链上以实现其永久性?
让我们重新用垃圾车来举例。你显然不在乎你的垃圾是否消失(事实上你很希望它消失)。与此同时,你显然不希望你的钱有一天突然消失。因此,金融交易(如Bitcoin分类账)显然是永久性很重要的领域。但这不是全部。无论是宗教、传说、雕塑还是纪念碑,人类总是有一种与生俱来的驱动力来从我们无常的生活中打造出一种永恒[11]。个人网站、相册和游戏成就等数字纪念品都代表了这种在不断变化的生活中对永恒的渴望。这些东西对人们来说甚至比金钱珍贵。
目前,我们主要将这些信息存储在硬盘或云备份中,但这些从根本上说是不可靠的。如果硬盘丢了怎么办?如果 Google 或 Dropbox 被黑客入侵怎么办?如果他们窃取您的数据怎么办?这些 Web 2 解决方案从根本上依赖于信任。这些公司可以随时审查和删除您的数据。但是支持分布式共识的 Web 3 解决方案则完全不同。这就是“permaweb”的承诺:它可以根据您的自身意愿保存您最宝贵的数字资产,而无需担心审查 [12]。
Permaweb上的最著名项目之一是 Arweave,它承诺以少量前期费用提供永久的分布式存储。虽然 Arweave 的设计深受区块链的启发,但它在技术上和区块链截然不同。
本质层面来看,区块链是一维链表,其中一个块仅指向下一个块。而Arweave 使用“blockweave”结构,其中每个“块”可以指向多个块,形成一个二维图,类似于你电脑上的“文件系统树”[13]。这种设计可以提高访问内容的效率。在共识机制上,Arweave 还采用了“随机存储证明”的方式,保证每个节点都可以随机访问存储在 blockweave 上的数据。

可以预料的是,Arweave 和其他去中心化的permaweb协议(如 IPFS)与非同质化通证(NFT) [14] 有着天然的亲和力。如果把 Arweave 和 IPFS 上的 permaweb 资产比作房子,那么 NFT 就是房子的地契。任何访问它或路过街道的人都可以看到“房子”本身。但只有房主持有房屋的地契。而当房主将房子卖给另一个房主时,她并没有对房子本身做任何事情:她只把它交给买方。拥有“地契” NFT 使资产所有权和所有权转让在实际应用中更具有操作性并确保了其在数据加密上的安全性。
因此,NFT 不仅仅是“加密货币的装饰品”,它们作为数字资产的地契具有实际用途。但是,地契仅仅与其所指的资产等价。因此,让我们来关注些除了无聊猿之外的nft。
三、博弈论:自发性
Web 3 的第三个基本原则是由博弈论支撑的自发性。人们不会因为利他主义或心地善良而成为网络节点。他们是为了钱。这种博弈论引发的自发性体现在各个方面,最引人注目的是作为许多顶级区块链基础的“权益证明”共识模型,包括以太坊、Polygon 和币安智能链(BSC) [15]。
如图所示,您将一定数量的代币(如以太坊上的 32 ETH)质押到网络上,以成为验证者并参与共识。如果您是忠实参与者,您将获得约 10% APY的质押奖励。然而如果您有不良行为,您质押的代币(32 ETH)将会受到slash惩罚,并且失去所有奖励。因此,基于博弈论,你有足够的动机去成为更为活跃且忠诚的网络节点。

用来论证博弈论-自发性的另一有力例证是去中心化交易所(DEX),如 Uniswap 、 Curve。它们将智能合约作为一个加密货币的交换站。
这些去中心化交易所(DEX)的钱从哪里来?它们来自志愿者,即流动性提供者(LP)。LP将自身拥有的加密货币提供给交易所用来交易。作为回报,LP 减免部分交易费用以便有效地从池币中赚取利息[16]。
至关重要的是,与 Web 2 的 Google 和 Facebook 将算法强加于用户的情况不同,没有人会强迫你在 Ethereum 上质押或成为Uniswap LP。人们完全出于自发意愿去使用它,因为大家都知道你有机会借此获得巨额收入。从意识形态上讲,Web 3 社区完全是自发的。所有社区行动从根本上是由博弈论驱动的。
这种博弈论驱动的自发性理念不仅存在于去中心化金融 (DeFi) 项目中,还存在于整个 Web 3 社区中,最引人注目的是去中心化自治组织(DAO)的形式。这些组织将一群有着相似目标的人聚集在一起(如ConstitutionDAO的购买美国宪法)[17],并允许人们使用治理代币对提案进行民主投票,或发行代币来跟踪成员并就如何使用社区资源做出集体决策。
不幸的是,目前真正去中心化、真正具有Web 3意识形态的 DAO 很少见。许多项目只不过是有了治理代币,就可以声称是 DAO。但由于往往是运行该项目的公司持有大部分代币,即使有投票,该项目实际上也是中心化的。因此,即使它们有一个去中心化的表皮,这些拥有治理代币的“伪 DAO”在底层意识形态上仍旧是 Web 2。
因此,博弈论-自发性为我们提供了另一个基础原则,以便在意识形态层面来区分Web 2 和Web 3 项目。前者的特点是有一个单一的、中心化的实体来决定用户将如何与之互动,而后者允许用户对社区的集体决策进行民主投票。
结论
Web 3 仍处于起步阶段,还有很长的路要走。尽管如此,我们已经开始看到它对未来的革命性看法,其意识形态基于去信任性、永久性和自发性。
当然,Web 3 还需要面对很多结构性问题。例如,当一个项目背后的公司和它的社区持截然相反的意见时,项目要如何进行下去?公司该压制社区还是停止放权?此外,区块链如何用于连接线下线下?还有一个更有趣的问题:经济惩罚(如slashing)是否足以阻止不良行为?我们需要诉诸暴力手段来惩罚用户吗?我敢肯定,在未来,更多的 Web 3 项目会给出一个更令人满意的答案。
但是还有一个紧迫而挥之不去的问题:Web 3 应当对 Web 2 持有怎样的态度 ?中心化和去中心化的互联网将如何相互关联?意识形态层面上的 Web 3 项目是自发的。它依赖于自发参与者,在博弈论的激励下,参与去中心化社区的积极维护。如果没有人愿意投票、参与和承诺,DAO 将解散或转变成事实上的中心化实体。毕竟,如果没有人投票,民主就行不通。但每个人的时间、精力和努力都是有限的,并不是每个人都关心社区。所以很多时候,人们实际上可能更喜欢别人为他们做决定,因为这不需要动脑。譬如 Web 2的很多算法,本质上是让人工智能为用户做出选择。
因此,我设想了一个 Web 2 和 Web 3 共存的世界。
在我们真正关心的领域里,可能是社区、艺术收藏或在线游戏,人们可以积极参与 Web 3 DAO 或社区,并从中获利。但在其他领域,我们可以使用 Web 2的解决方案和人工智能系统,让它们为用户做出决定。最重要的是,Web 3 为我们提供了一个选择,一个可行的替代方案。人们可以在真正重要的领域里选择自己的命运,而不是让一个极权主义的 AI 控制日常生活的方方面面。请记住,在 Web 3 中,我们不需要依赖任何人的信任。人们能够确信自己所做的事情不会被删除,并且由自己定义优先事项。
自由之风将吹拂。
我有一个涉及多台机器、消息队列和事务的问题。因此,例如用户点击网页,点击将消息发送到另一台机器,该机器将付款添加到用户的帐户。每秒可能有数千次点击。事务的所有方面都应该是容错的。我以前从未遇到过这样的事情,但一些阅读表明这是一个众所周知的问题。所以我的问题。我假设安全的方法是使用两阶段提交,但协议(protocol)是阻塞的,所以我不会获得所需的性能,我是否正确?我通常写Ruby,但似乎Redis之类的数据库和Rescue、RabbitMQ等消息队列系统对我的帮助不大——即使我实现某种两阶段提交,如果Redis崩溃,数据也会丢失,因为它本质上只是内存。所有这些让我开始关注erlang和
前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源
我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。11年前关闭。我是一位精通HTML
我目前正在为一个新网站设计版本化的API。我了解如何为路由命名空间,但我一直坚持在模型中实现版本化方法的最佳方式。下面的代码示例使用的是rails框架,但是事情的原理在大多数web框架之间应该是一致的。目前的路线看起来像这样:MyApp::Application.routes.drawdonamespace:apidonamespace:v1doresources:products,:only=>[:index,:show]endendend和Controller:classApi::V1::ProductsController很明显,我们只是在此处公开Product上可用的属性,如果
我正在尝试使用ruby来使用Sharepoint网络服务。我基本上已经放弃尝试使用NTLM进行身份验证,并暂时将Sharepoint服务器更改为使用基本身份验证。我已成功使用soap4r获得WSDL,但在尝试使用实际Web服务调用时仍然无法进行身份验证。有没有人有过让ruby和Sharepoint对话的经验? 最佳答案 我是个新手。但经过很多时间并在更多经验编码人员的帮助下,我能够让ruby与Sharepoint2010一起工作。下面的代码需要“ntlm/mechanize”gem。我已经能够使用列表GUID和ListV
我有一个启动DRb服务的脚本,然后生成处理程序对象并通过DRb.thread.join等待。我希望脚本一直运行直到被明确杀死,所以我添加了trap"INT"doDRb.stop_serviceend在Ruby1.8下成功停止DRb服务并退出,但在1.9下似乎死锁(在OSX10.6.7上)。对该进程进行采样显示在semaphore_wait_signal_trap中有几个线程在旋转。我假设我在调用stop_service时做错了什么,但我不确定是什么。谁能给我任何关于如何正确处理它的指示? 最佳答案 好的,我想我已经找到了解决方案。如
2022年10月21日星期五【数据指标】加密货币总市值:$0.95万亿BTC市值占比:38.51%恐慌贪婪指数:23极度恐慌 【今日快讯】1、【政讯】1.1.1、美联储布拉德:市场预期美联储11月会加息75个基点1.1.2、美联储哈克:将维持加息一段时间1.2、美国10年期国债收益率触及4.197%,为2008年6月以来最高1.3、法国数字转型部长:政府将专注于DeFi和Web31.4、巴西ATM机将于11月3日起支持USDT1.5、美众议院副议长将于11月初加入a16zCrypto担任政府事务主管1.6、香港数字资产托管机构FirstDigitalTrust首席执行官:香港仍是安全
WAF可以对网站进行扫描,识别API漏洞。API安全如何设置API安全_Web应用防火墙-阿里云帮助中心API安全如何划分API业务用途?登录认证手机验证码认证数据保存数据查询数据导出数据分享数据更新数据删除数据增加下线注销信息发送信息认证邮件信息发送邮箱验证码认证账号密码认证账号注册API安全支持检测哪些敏感数据?敏感数据级别敏感数据类型非敏感数据(N)不涉及。特级敏感数据(L0)与一级敏感数据(L1)或二级敏感数据(L2)相同。单次响应中一级敏感数据(L1)较多时,升级为特级敏感数据(L0)。单次响应中二级敏感数据(L2)较多时,升级为一级敏感数据(L1)或特级敏感数据(L0)。一级敏感数