什么是女巫攻击?如何防止女巫攻击进行有效空投?
什么是女巫攻击?如何防止女巫攻击进行有效空投?
在 Polkadot Decoded 2024 的主题演讲中,Ga vin Wood 博士分享了他对女巫攻击(civil resistance)问题的长期思考——这是他在过去两年里一直在钻研的核心课题。以下是他演讲中的关键内容。
什么是女巫攻击?
你们可能知道,我一直在研究一些项目,编写灰皮书,专注于 JAM 项目,也做了不少代码工作。实际上,过去两年里我反复在想一个关键问题:如何防止女巫攻击。这个问题几乎无处不在。区块链系统建立在博弈论基础上,而分析博弈时,我们通常需要限制参与者数量,或者管理参与者可能表现出的任意行为。
当我们设计数字系统时,非常希望能确定某个特定的端点——一个数字端点——是否由人类操作。先明确一点:这里讨论的不是身份问题。身份固然重要,但我们的目标不是确定这个端点在现实世界中的具体身份,而是区分设备和当前由人类操作的设备之间的区别。除此之外,还有一个附加问题:如果设备确实由人类操作,我们能否为这个人提供一个化名,以便在特定上下文中识别他们,并且如果他们以后再次使用这个设备,我们能再次认出他们。
随着互动方式从主要与他人交流(比如我出生的80年代)逐渐转向与系统互动,这类数字系统——尤其是去中心化的Web3系统——变得越来越重要。80年代人们主要直接交流;90年代开始通过电话与服务互动,比如电话银&行。最初电话银&行由大量人工呼叫中心构成,我们通过电话与人交流,但最终演变成今天的自动语音系统。随着互联网发展,人际互动越来越少,在日常服务中几乎不再与人类直接互动。Web2电子商务进一步加剧了这种趋势,而Web3则更彻底——在Web3中,你几乎不会再与人类互动。Web3的核心就是让你与机器互动,甚至让机器之间互相互动。
研究女巫攻击的意义是什么?
这究竟有什么意义?这是任何真正社会的基础要素,也是许多社会系统的核心——商业、治理、投票、意见整合等等。所有这些都高度依赖防止女巫攻击的能力来构建社区。我们在企业中视为理所当然的许多机制,实际上都建立在防止女巫攻击的假设上。无论是公平合理的使用、噪声控制,还是社区管理,都离不开这种防御能力。很多事情都需要确认某个实体是不是真实的人类。如果有人行为不当,我们可能想暂时把他排除在社区之外。你在数字服务中能看到这种现象,现实世界也是如此。
通过防止女巫攻击,我们可以引入约束行为的机制,而不需要设置进入门槛或牺牲系统可访问性。例如,激励行为有两种基本方式:一种是“胡萝卜加大棒”策略。大棒(惩罚)是让你交押金,行为不当就没收押金——质押就是典型的例子。胡萝卜(奖励)是假设你会表现良好,如果没有达到预期,就剥夺你的一些权利。这其实是大多数公民社会的基本运作方式。
但是,如果区块链上缺乏防女巫攻击的机制,这种方法就行不通。在公民社会里,机制之所以有效,是因为一旦某人被监禁,他们就不能再次犯下同样的罪行——至少在被关押期间不行。自由是与生俱来的,原则上政府可以剥夺它。我不是说要在链上监禁任何人,而是说目前链上无法实现类似的约束措施。这就导致我们很难通过提供免费服务来抑制不良行为,而不仅仅是鼓励良好行为。商业和推广活动非常依赖能否确认交易者是真实的人。
这是我偶尔使用的一个网站的截图。这是一种非常好的威士忌,很多人都喜欢,在原产国很难买到。在欧洲买相对便宜,但看起来他们通过限制个人购买数量来维持较低价格。然而,这种操作在真正的Web3系统中几乎不可能实现。
在社区建设、空投以及识别和分发社区成员方面也存在很大困难。总体而言,空投在资本支出上的效率非常低,因为空投的目标是覆盖尽可能多的人。要做到公平分配,需要先识别个体,然后给每个人相同数量。但实际操作中会遇到各种问题,比如钱&包余额不同,最终可能导致分配曲线非常不平衡,差异极大。结果是大多数人几乎得不到足够的激励。
关于“公平合理的使用”问题,虽然现在影响较小,但如果你使用过多网络资源,系统通常只会降低你的速度,尽管你还能继续使用。
回到大约10到15年前,如果你用太多互联网资源,互联网服务提供商会认为你没有合理使用无限制的网络服务,然后直接停止你的服务——不像现在只是限速。这种做法让他们能为大多数用户提供近乎无限的互联网服务,因为他们可以通过识别用户来区分谁在合理使用资源。
Web2的一个基础是高级服务模式,这很大程度上依赖识别用户的能力。20多年前,用户识别机制可能没那么复杂,但现在完全不同。如果你想开一个账户,通常有三种以上机制来确认你是不是真实的个体、是不是他们以前没见过的用户。比如,你尝试在没有购买iPhone的情况反赌册Apple账户,那简直像在闯关——这些公司基本不愿意给你账户。当然,他们宣传说可以免费获得账户,但后台的AI在做什么我不知道,我自己试了10次才成功,最后不得不买了一部iPhone。
我觉得,如果我们能更好地识别个体,许多类似“Oracleization”(信息验证)的过程会容易得多。
社会中使用防女巫攻击的“人性证明”进行信息验证的一个典型例子是陪审团制度。当我们需要一个公正的评判者(Oracle)来裁定某人是否有罪时,系统会随机从社会中挑选奇数个普通人,让他们听取证据并做出裁决。类似地,在代表权和意见收集等领域,我们通过防女巫攻击来管理代表权。当然,由于当前公民基础设施不完善,这种管理往往不理想,尤其当代表权与身份混淆时。很多时候你想投票,需要出示驾照或护照来证明真实身份。但实际上,投票代表的是你的一部分投票权,而不是把票与个人身份直接关联。
如何防止女巫攻击?当前的解决方案是什么?
所以,这应该怎么做?
在Web2以及Web2之前,有很多身份验证方式。现在的Web2系统通常组合使用这些方法。例如,创建新Google账户可能需要通过验证码、邮件和信息验证。有时候信息验证可以替代与真人通话。如果你遇到过亚马逊账户被锁定,就知道我在说什么——基本就是一个复杂的迷宫游戏,直到你找到正确的按钮和电话选项,最终与真人客服对话。对于更复杂的防女巫攻击,可能会使用身份证或信用卡等信息。
然而,进入Web3世界后,我的研究并没有发现什么真正让我满意的完美解决方案。现在有一些候选方案,但它们在三个方面存在很大差异:是否去中心化、是否保护隐私、以及是否真正具备韧性(抗攻击能力)。韧性正成为越来越大的问题,实际上大多数系统都面临这两种问题。
有一个系统,我称之为“常见的忏悔系统”,也就是你向某个特定权威机构泄露隐私,这个机构掌握你的信息——这些信息你可能不愿与他人分享。比如,你扫描护照并提交给某个机构,这个机构就掌握了所有人的护照信息,从而处于强势地位。常见的忏悔系统不适合Web3。
此外,有时会看到一些类似Web3的个性化系统,依赖“常见的密钥管理机构”。其中有一个拥有权力的机构,通过掌握密钥来决定谁是合法个体。也就是说,这个机构有权决定哪些人可以被视为系统中的“真实用户”。有时这些机构甚至替用户保管密钥,但更多情况下,他们只保留了决定谁是合法个体的权力。
这些都依赖中心化权威来掌控用户的隐私或身份信息,与Web3去中心化和用户自主的理念相悖。
把某个东西放在链上并不意味着它就是Web3。你可以把Web2策略或依赖中心化权威的策略移到链上,但不会改变策略本身。它只意味着这个策略可能更有韧性地执行,但策略本身仍然不是Web3。仅仅因为一个名字是很长的十六进制字符串,并不意味着它一定是私密的。如果不采取特定措施,这种字符串仍可能与现实世界身份关联。
如果一个系统依赖常见的“忏悔机制”,那它就不是隐私保护的解决方案。我们已经看到太多数据泄露事件,这让我们明白,仅仅把数据放在公司文件墙后面或某些可信硬件中是无法确保安全的。一个适合Web3的个性化解决方案需要的不是本地的个体身份或本地社区成员身份,而是全球性的个体身份——这两者完全不同。
有一些系统尝试解决这个问题,但它们依赖单一硬件和常见的密钥管理机构,所以不是真正的Web3方案。比如Worldcoin这个项目尝试通过可信硬件解决,但它使用统一的密钥管理机构和集中化数据源,不太符合Web3去中心化理念。另一个例子是Gitcoin Passport,在以太坊社区中广泛使用,是其他身份和个性化解决方案的综合平台。它依赖一个联邦制的密钥管理机构来认定个体身份,但这些数据源往往基于集中化权威,包括像CoinBase这样的中心化机构(CC)。Idena是一个有趣的Web3解决方案,没有常见密钥管理机构或中心化机构。不过它只是一种单一机制,面对不断发展的人工智能产业,这种机制是否具有足够韧性还不明确。到目前为止它表现不错,但用户数量还相对较少,大约只有一千名用户。
总的来说,目前还没有哪种方法能完全解决这个问题。
Ga vin 对解决女巫攻击的看法
关于个体身份,有两种思考方式:一种是远程的,另一种是本地的。机器并不能天然理解“个体身份”,我们不太可能看到某种加密技术突然解决这一问题。有人可能会说,指纹或生物识别技术能让人类具有独特性,机器可以测量这些,但纯数字系统很难证明这一点。可能最接近这个目标的系统是Worldcoin,但它也只是一个机器,能够以一种不容易被破解的方式进行验证。
因此,我们需要理解,个体身份更多的是关于认证的问题。它涉及数字系统内的元素如何验证其他元素是否是真实的个体。那么,问题在于,这种认证的依据是什么?是物理上的接触,还是其他方面的怀疑?我们相信一个账户是真实的个体,因为我们见过这个人,并且在见面时我们认为他没有与其他人接触过,因此可以推断他在特定环境中是唯一的个体,还是仅仅因为我们在屏幕上看到了某些信息,并且有其他证据支持他的个体身份?
当我们谈到远程认证(即非直接、非物理证据的认证)时,人工智能可能会带来一些问题。而如果我们依赖物理证据,实际操作性又可能成为问题。因此,我们在这两个限制之间陷入了困境。不过,我认为通过创新和想象力,我们还是能找到一些可行的解决方案。
那我们需要做什么?
那么,我们需要什么?计划是什么?
我认为,让Polkadot在现实世界中更加有用(不仅仅在DeFi、NFTs和虚拟区块链领域),关键在于找到一种简单的方法来识别个人身份。这里的识别不是指确定这个人是谁——比如不是说“我知道这是Ga vin Wood”——而是识别“这是一位独特的个人”。我不认为会有单一的解决方案,因此我们需要一个模块化且可扩展的框架。
首先,可以将现有的合理解决方案(比如Idena)集成进去。其次,这个系统不应被某一个人的想法所限制,不应仅依赖某个人对什么机制可能有效的想象力。这应该在某种程度上是开放的,允许所有人贡献解决方案。
其次,我们需要强有力的上下文化的化名(pseudonymity)。实际上,我最初写的是匿名性(anonymity),在某种程度上我确实指的是匿名性——即与现实世界身份的匿名性。但与此同时,我们也希望有化名,这样在任何特定上下文中,你不仅能证明自己是独一无二的个体,而且当你再次在同一上下文中使用该系统时,能证明你是之前那个独特的个体。
最后,我们需要强大的SDK和API,使这个功能像Substrate或Polkadot智能合约中的任何其他功能一样易于使用,或者在即将到来的JAM生态系统中也是如此。它必须易于使用。具体一点:我不知道这里有多少人编写过Frame代码,但在编写新区块链时,你经常看到一行代码:let account = ensure_signed(origin)。这行代码的作用是获取交易的来源,并确认这个来源是否来自某个账户,如果是,则告诉我这个账户是什么。但账户并不等同于个人——一个人可能使用一个或多个账户,同样,一个脚本也可能使用一个或多个账户。账户本身无法提供任何关于个体身份的信息,至少单独无法做到。所以,如果我们想确保某笔交易来自一个真实的人,而不是一百万个账户中的某一个,我们就需要能将这一行代码替换为另一行代码:let alias = ensure_person(origin, &b"My context")。
有两点好处值得注意。第一,我们不仅仅在问这是否是一个账户在签署交易,而是问是否是一个人签署了交易。这在我们能实现的功能上带来了巨大差异。第二,重要的是,不同的操作有不同的上下文,并且我们在这些上下文中实现了匿名性和化名保护。当上下文变化时,化名也会变化,不同上下文中的化名之间无法关联,也无法将化名与背后的人关联。这些完全是匿名的化名系统,这在区块链开发——特别是开发现实世界中有用的系统时——成为一个非常重要的工具。
那么,我们在实际识别个人身份的机制上可能会施加哪些限制呢?首先,这个机制必须是广泛可访问的。如果它只允许一部分人群参与,那么将不会非常有用。它不应要求资产,也不应要求昂贵的费用——至少不应该是过高的费用。
不可避免地,不同机制之间会有权衡。我不认为会有一个万能的解决方案。但有些权衡是可以接受的,而有些则不能。韧性、去中心化和主权不应该被妥协对待,但有些机制可能需要较少的努力但更多的承诺,而其他机制则可能需要更多的努力但较少的承诺。我们应该有一个合理的预期,即通过系统验证的个人(即链接到某个人的账户,或者说化名)背后确实是一个独特的现实世界个体。
不同的机制在去中心化的Web3系统中以韧性和非权威基础的方式来衡量个体身份时,可能会存在重叠。这意味着实际上我们不可能做到完美无缺,但也不应该有数量级上的误差——差异应该大幅小于一个数量级。此外,系统必须具备极强的抵抗身份滥用的能力,以防止少数人或组织试图获取大量个体身份。
至关重要的是,系统必须有保障机制来防范这种情况。可能有些机制能够提供相对较低置信度的个体身份评分——这是一个更高的目标。有些机制可能实现这一点,有些可能无法实现,有些可能是二元的:要么我们相信这个账户是一个独特的个体,要么不相信。还有些机制可能会表示我们有50%的把握,但也可能这个个体有两个账户,而我们对这两个账户的把握都是50%。
当然,这一切必须是无需许可的,并且必须不难实现。我本不应该需要特别强调,但系统中不应有常见的忏悔机制或常见的密钥管理机构。
这样做有什么好处?
那么为什么要这样做?有什么好处?
我们已经讨论了一些社会如何使用或依赖个体身份的方式。但这些如何在链上实现呢?我们可以开始想象一个不需要支付交易费用的Polkadot系统——也就是合理使用是免费的。想象一个“广场链”(Plaza),如果你不熟悉的话,它基本上是一个增强版的资产中心(Asset Hub),具备智能合约功能并能够利用质押系统。
如果我们设想这样的广场链,可以想象一个不需要支付gas费用的情景。只要你在合理的使用范围内,gas是免费的。当然,如果你编写脚本或进行大量交易,那么就需要支付费用——因为这已经超出了普通个人的使用权利范围。试想一下,这些系统开始免费向公众开放,我们可以通过空投等方式,有针对性地、高效地启动社区。同时,我们还可以设想更为先进的Polkadot治理方式。
现在,我对“一人一票”的理念并不是特别信服。在某些情况下它是必要的,以确保合法性,但通常它并不会带来特别好的结果。不过,我们可以考虑一些其他的投票方式,比如二次方投票,或者区域投票。在某些代表性的元素中,一人一票可能会非常有启发性。
我们还可以想象一个类似于陪审团的Oracle系统——平行链和智能合约可以使用本地的次级Oracle系统,也许是用于价格预言,也许是用于处理用户之间的争议。但他们也可以说,如果需要,我们会利用一种“大陪审团”或“最高法院”系统,从已知的随机个体中选出成员来做出决策,帮助解决争端,并给予一些小额报酬。由于这些成员是从一个大的、公正的群体中随机选出的,我们可以期望这种方式提供一个有韧性、可靠的争端解决方法。
你可以想象噪声限制系统——特别是在社交媒体集成中的去中心化社交媒体集成,可以帮助管理垃圾信息和不良行为。在DeFi中,我们可以设想类似信用评分的声誉限制系统,但可能更注重于你是否曾被发现未按时还款,这样系统可以提供类似于免费增值模型的服务。
好吧,这就是这次演讲的第一部分,希望它对你有帮助。
-
- 元宵节猜灯谜的祝福短信
- 角色扮演 |
-
- 关于柯南的沙雕网名有哪些
- 角色扮演 | 1
- 网名
-
- 最新中性名字男女通用网名有哪些
- 角色扮演 | 1
- 网名
-
- 关于蓝色说唱的网名有哪些
- 角色扮演 | 1
- 网名
-
- 我好喜欢你是什么梗?
- 角色扮演 |