Gavin Wood:如何防止女巫攻击进行有效空投?

演讲:Gavin Wood

Gavin 近期一直在关注的女巫攻击(civil resistance)的问题,PolkaWorld 回顾了Gavin Wood 博士在Polkadot Decoded 2024 上的主题演讲,想要探究Gavin 在如何防止女巫攻击上的一些见解。

什麽是女巫攻击?

你们可能知道,我一直在研究一些项目,我在写灰皮书,专注於JAM 项目,也在这个方向上做了一些程式码的工作。实际上,在过去的两年时间里,我一直在思考一个非常关键的问题,这个问题在这个领域中非常重要,那就是如何防止女巫攻击(civil resistance)。这个问题无所不在。区块链系统是基於博弈论的,而在分析赛局时,我们通常需要限制参与者的数量,或管理参与者可能表现出的任意性的情况。

当我们设计数位系统时,我们非常希望能够确定某个特定的端点—— 也就是一个数位端点—— 是否由人类操作。我想先明确一点,这里我并不是讨论身分问题。身份问题当然很重要,但这里不是要确定某个端点在现实世界中的具体身份,而是要区分这个设备和目前由人类操作的设备之间的区别。除此之外,还有一个附加问题是:如果设备确实由人类操作,我们能否为这个人提供一个化名,以便在特定的上下文中识别他们,并且如果他们以後再次使用这个设备与我们互动,我们就能够再次辨识出他们。

随着我们的互动方式从主要与他人交流(例如我出生的80 年代)逐渐转变为与系统互动,这类数位系统,尤其是去中心化的Web3 系统,变得越来越重要。在80 年代,人们主要是直接与他人沟通;到了90 年代,我们开始透过电话与服务互动,例如电话银行。这对我们来说是一个重大变化,虽然最初电话银行只是由大量人工操作的呼叫中心组成,我们透过电话与人交流,但最终这些系统演变成了今天的自动语音系统。随着网路的发展,这种人际互动变得越来越少,在日常服务中,我们几乎不再与人类直接互动。当然,随着Web2 电子商务的兴起,这种趋势变得更加显着。而Web3 则进一步巩固了这一点—— 在Web3 中,你几乎不会再与人类互动。 Web3 的核心概念就是让你与机器互动,甚至让机器之间也能互相互动。

研究女巫攻击的意义是什麽?

那麽,这究竟有什麽意义呢?这是任何真正社会的基础要素,也是我们许多社会系统的核心,包括商业、治理、投票、意见整合等各个面向。所有这些都在很大程度上依赖於防止女巫攻击的能力来建立社区。我们在企业中视为理所当然的许多机制实际上都是基於防止女巫攻击的假设。无论是公平合理的使用、噪音控制,或是社区管理,都是建立在这种防御能力的基础上的。许多事情都需要我们确认某个实体是否是真实的人类。如果有人行为不当,我们可能会希望将其暂时从社区中排除。你可以在数位服务中看到这种现象,当然,在现实世界中也是如此。

透过防止女巫攻击,我们可以引入一些约束​​行为的机制,而不需要设定进入门槛或牺牲系统的可访问性。例如,激励行为有两种基本方式。一种是「胡萝卜加大棒」的策略(即一种奖惩机制)。大棒(惩罚)的做法是要求你交一笔押金,如果你行为不当,就没收这笔押金,质押(staking)就是这样一个简单的例子。胡萝卜(奖励)的做法是假设你会表现良好,如果你没有达到预期,我们就剥夺你的一些权利。这其实是大多数公民社会的基本运作方式。

但是,如果区块链上缺乏防女巫攻击的机制,这种方法就无法真正实施。在公民社会中,这样的机制之所以有效,是因为一旦某人被监禁,他们就不能再犯下同样的罪行,至少在他们被关押期间不行。自由是与生俱来的,原则上政府可以剥夺它。我并不是说要在链上监禁任何人,而是说,目前在链上无法实现类似的约束措施。这就导致我们很难透过提供免费服务来抑制不良行为,而不仅仅是鼓励良好行为。商业和推广活动非常依赖能够确认交易者是否是真实的人。

这是我偶尔使用的网站的截图。这是一种非常好的威士忌,许多人都非常喜欢它,在它的原产国很难买到。而在欧洲,买到它相对便宜一些,但看起来他们透过限制个人的购买数量来维持较低的价格。然而,这种操作在一个真正的Web3 系统中几乎不可能实现。

在社区建设、空投以及识别和分发社区成员方面也存在很大困难。整体而言,空投在资本支出上的效率非常低,因为空投的目标是希望能够覆盖尽可能多的人。在进行空投时,要有效地做到公平分配,需要先识别个体,然後给每个人相同的数量。但实际操作会遇到各种问题,例如钱包余额的不同。最终你可能会陷入困境,导致分配曲线变得非常不平衡,呈现出极大的差异。结果是,大多数人几乎没有足够的激励。

关於「公平合理的使用」问题,虽然现在的影响较小,但如果你使用过多的网路资源,系统通常只会降低你的速度,尽管你仍然可以继续使用网路。

回到过去,大约10 到15 年前,如果你使用了太多的网路资源,网路服务供应商可能会认为你并没有合理使用这个无限的网路服务。因此,他们基本上会彻底停止你的服务,而不是像现在这样只是降低你的网速。这种做法让他们能够为大多数用户提供近乎无限的网路服务,因为他们可以透过识别用户来区分谁在合理使用资源。

Web2 的一个基础是高级服务模式,这在很大程度上依赖於识别使用者的能力。 20 多年前,使用者辨识机制可能不那麽复杂,但现在情况大不相同。如果你想开一个帐户,通常会有三种以上的机制来确认你是否是真正的个体,是否是他们以前从未见过的使用者。例如,如果你试着在没有买iPhone 的情况下注册一个Apple 帐户,那简直就像在闯关一样,这些公司基本上不愿意给你一个帐户。当然,他们宣传说你可以免费获得帐户,但我不知道後台的AI 在做什麽,我自己尝试了10 次才最终成功。结果我还是不得不买了一部iPhone。

我觉得,如果我们能够更好地识别个体,许多类似「Oracleization」(资讯验证)的过程将会变得更加容易。

社会中使用防女巫攻击的「人性证明」来进行资讯验证的典型例子是陪审团制度。当我们需要一个公正的判断者(即Oracle)来裁定某人是否有罪时,系统会随机从社会中挑选出奇数个普通人,让他们听取证据并做出裁决。类似地,在社会生活的其他领域,例如代表权和意见收集,代表权是社会的重要组成部分,我们透过防女巫攻击的手段来管理代表权。当然,由於目前的公民基础设施并不完善,这种管理方式往往并不理想,特别是在代表权与身分认同混淆的情况下。很多时候,当你想投票时,你需要证明你的真实身份,例如出示驾照或护照。但实际上,投票代表的是你的一部分投票权,而不是将这张票与个人身分直接关联。

如何防止女巫攻击?目前的解决方案是什麽?

所以,这该怎麽做呢?

在Web 2 以及Web 2 之前,有许多方法可以实现身分验证。现在的Web 2 系统中,这些方法通常是组合使用的。例如,如果你想建立一个新的Google 帐户,你可能需要通过验证码,并且进行邮件和简讯验证。有时候,简讯验证可以替代与真人通话。如果你曾经遇到过亚马逊帐户被锁定的情况,你就知道我在说什麽。基本上,这就是一个复杂的迷宫游戏,直到你找到正确的按钮和电话选项,最终能够与真人客服对话。对於更复杂的防女巫攻击,我们可能会使用像身分证或信用卡这样的资讯。

然而,当我们进入Web 3 的世界时,我的研究并没有发现任何真正让我满意的完美解决方案。现在有一些候选方案,但它们在三个方面存在很大差异:是否去中心化、是否保护隐私,以及是否真正具备韧性(即抗攻击能力)。

韧性正成为一个越来越大的问题。实际上大多数系统都面临这两种问题。

有一个系统,我称之为“常见的忏悔系统”,也就是你向某个特定的权威机构泄露你的隐私,这个机构会掌握你的一些信息,而这些信息可能是你不愿与他人分享的。例如,你可能会扫描你的护照并提交给某个机构,然後这个机构就掌握了所有人的护照信息,从而处於一个强势地位,因为他们拥有所有这些信息。常见的忏悔系统并不适合Web3。

此外,你有时会看到一些类似Web3 的个人化系统,它依赖「常见的金钥管理机构」。其中有一个拥有权力的机构,这个机构透过掌握密钥来决定谁是合法的个体。也就是说,这个机构有权决定哪些人可以被认为是系统中的「真实使用者」。有时候,这些机构甚至会替使用者保管金钥,但更多情况下,他们仅仅保留了决定谁是合法个体的权力。

这些都依赖中心化的权威机构来掌控使用者的隐私或身分讯息,这与Web 3 去中心化和使用者自主的概念相悖。

把某个东西放在链上并不代表它是Web3。你可以把Web2 的策略或依赖中心化权威的策略简单地移到链上,但这样做并不会改变策略本身。它只意味着这个策略可能会更有韧性地执行,但策略本身仍然不是Web3。仅仅因为一个名字是一个很长的十六进位字串,并不意味着它一定是私密的。如果不采取特定措施,这种字串仍然可能与现实世界的身份资讯关联起来。

如果一个系统依赖常见的「忏悔机制」,那麽它就不是一个隐私保护的解决方案。我们已经看到太多的资料外泄事件,这让我们明白,仅仅把资料放在公司文件墙後面或某些可信任硬体中是无法确保安全的。一个适合Web3 的个人化解决方案需要的不是本地的个体身份或本地社区成员身份,而是全球性的个体身份,这两者是完全不同的概念。

有一些系统尝试解决这个问题,但它们依赖单一硬体和常见的金钥管理机构,所以并不是真正的Web3 方案。例如,Worldcoin 这个专案尝试透过可信任硬体来解决这个问题,但它使用了一个统一的金钥管理机构和集中化的资料来源,因此不太符合Web3 的去中心化理念。

另一个例子是Gitcoin Passport,这在以太坊社群中使用广泛,是其他身分和个人化解决方案的一个综合平台。它依赖一个联邦制的金钥管理机构来认定个体身份,但这些资料来源往往基於集中化的权威,包括像CoinBase 这样的中心化机构(CC)。

Idena,一个有趣的Web3 解决方案,没有常见密钥管理机构或中心化机构。不过,它只是一种单一的机制,而且在面对不断发展的人工智慧产业时,这种机制是否具有足够的韧性仍不清楚。到目前为止,它表现得还不错,但用户数量还相对较少,只有大约一千名用户。

总的来说,目前还没有哪一种方法可以完全解决这个问题。

Gavin 对解决女巫攻击的看法

关於个体身份,有两种思考方式:一种是远程的,另一种是本地的。机器并不能自然地理解「个体身份」,我们不太可能看到某种加密技术突然解决这个问题。有人可能会说,指纹或生物辨识技术能够让人类具有独特性,机器可以测量这些,但纯数位系统很难证明这一点。可能最接近这个目标的系统是Worldcoin,但它也只是一个机器,能够以不容易被破解的方式验证。

因此,我们需要理解,个体身分更多的是关於认证的问题。它涉及数字系统内的元素如何验证其他元素是否为真实的个体。那麽,问题在於,这种认证的依据是什麽?是物理上的接触,还是其他方面的怀疑?我们相信一个帐户是真实的个体,因为我们见过这个人,并且在见面时我们认为他没有与其他人接触过,因此可以推断他在特定环境中是唯一的个体,还是仅仅因为我们在屏幕上看到了某些讯息,并且有其他证据支持他的个体身份?

当我们谈到远端认证(即非直接、非物理证据的认证)时,AI(人工智慧)可能会带来一些问题。而如果我们依赖物理证据,实际操作性又可能成为一个问题。因此,我们在这两个限制之间陷入了困境。不过,我认为透过创新和想像力,我们还是能找到一些可行的解决方案。

那我们需要做什麽?

那麽,我们需要什麽?我们的计划是什麽?

我认为,让Polkadot 在现实世界中更加有用(不仅仅是在DeFi、NFT 和虚拟区块链领域),关键在於找到一种简单的方法来识别个人身份。这里的识别并不是指确定这个人是谁,例如不是说“我知道这是Gavin Wood”,而是识别“这是一个独特的个人”。我不认为会有单一的解决方案,因此我们需要一个模组化且可扩展的框架。

首先可以将现有的、合理的解决方案(例如Idena)整合进去。其次,这个系统不应被某一个人的想法所限制,不应只依赖某个人对什麽机制可能有效的想像。这应该在某种程度上是开放的,允许所有人贡献解决方案。

其次,我们需要强而有力的脉络化的化名(pseudonymity)。实际上,我最初写的是匿名性(anonymity),在某种程度上我确实指的是匿名性,即与你的现实世界身份的匿名性。但同时,我们也希望有化名(pseudonymity),这样在任何特定的上下文中,你不仅能够证明自己是独一无二的个体,而且当你再次在同一上下文中使用该系统时,能够证明你是之前那个独特的个体。

最後,我们需要强大的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),具备智慧合约功能并能够利用质押系统。

如果我们设想这样的广场链(Plaza),可以想像一个不需要支付gas 费用的情境。只要你在合理的使用范围内,gas 是免费的。当然,如果你编写脚本或进行大量交易,那麽你就需要支付费用,因为这已经超出了普通个人的使用权利范围。试想一下,这些系统开始免费对外开放,我们可以透过空投等方式,有针对性地、有效率地启动社群。同时,我们也可以设想更为先进的Polkadot 治理方式。

现在,我对「一人一票」的概念并不是特别信服。在某些情况下它是必要的,以确保合法性,但通常它并不会带来特别好的结果。不过,我们可以考虑一些其他的投票方式,像是二次方投票,或是区域投票。在某些代表性的元素中,一人一票可能会非常有启发性。

我们也可以想像一个类似陪审团的Oracle 系统,平行链和智慧合约可以使用本地的次级Oracle 系统,也许是用於价格预言,也许是用来处理使用者之间的争议。但他们也可以说,如果需要,我们会利用一种「大陪审团」或「最高法院」的系统,从已知的随机个体中选出成员来做出决策,帮助解决争端,并给予一些小额报酬。由於这些成员是从一个大的、公正的群体中随机选出的,我们可以期望这种方式能够提供一个有韧性、可靠的争端解决方法。

你可以想像噪音限制系统,特别是在社群媒体整合中的去中心化社群媒体集成,可以帮助管理垃圾讯息和不良行为。在DeFi 中,我们可以设想类似信用评分的声誉限制系统,但可能更注重於你是否曾被发现未按时还款,这样系统可以提供类似於免费增值模型的服务。

好吧,这就是这次演讲的第一部分,希望它对你有帮助。

Leave a Reply

Your email address will not be published. Required fields are marked *