BrightID:社交网络中的唯一的数字身份

声明

本文章内容绝大部分来源于BrightID官网的英文白皮书Whitepaper (brightid.org)、社交恢复方法介绍页面Social Recovery - BrightID (gitbook.io)和Bitu验证法What is Bitu Verification?. BrightID tackles the problem of Sybil… | by mohammad reza yazdani | BrightID | Medium,如有侵权,请联系本人进行删除

概述

BrightID是一个社交身份网络,允许人们向应用程序证明他们没有使用多个账户。它通过创建和分析社交图来解决身份唯一性问题
BrightID是一种为人类利益而存在的公***品。它是一种非侵入性、去中心化、开源的技术,旨在改革身份验证,从而为自由民主的社交奠定基础。
与其他身份验证工具不同,BrightID不要求用户提供身份证号码、出生日期或地址证明。用户只需要提供一个头像和一个用户自定义的名字,以方便与其他人建立联系和进行其他活动。用户甚至可以随时修改它们。
用户的名字和头像照片只保存在用户自己的设备上,不会在网上的其他地方保存。当用户与用户的朋友建立联系时,用户可以通过P2P(点对点)传输来安全地分享它们。
BrightID帮助众多应用程序确保其用户账户的唯一性,以便每个人都能获得公平的份额和更好的体验。
每个人都可以在BrightID上申请一个账户,并用于与他们认识的人建立联系。所有帐户及其之间的连接会形成一个图表,通过分析得到的图表可以检测虚假的帐户。
BrightID是为世界上所有公民创造一个公平的数字世界的基石。

原则

  • 不干扰:数据应该与其他节点共享,而不是一个中心组织。BrightID不需要你的数据。名字和照片只在建立联系的人之间共享。
  • 去中心化的:解决方案不应该由一个单一的集中式组织控制;这样的组织可能会进行隐性欺诈。
  • 开放:解决方案应该是开放和可审计的。
  • 可重用的:解决方案应该易于构建和重用。
随着越来越多的应用程序集成到BrightID,它们的用户很可能已经通过了验证,从而减少了采用的阻力。

创建和存储社交图谱

社交图包含人与人之间的加密签名连接。每个用户都管理自己的签名密钥,因此创建连接的能力独立于任何特定的服务或应用程序。这就形成了一种自主权身份,因为每个用户都拥有自己的数字身份。社交图谱本身可以作为许多不同服务的参考,但这些服务都不负责图谱,也不能控制个人用户的行为。这种架构允许图中的连接数据可移植并存在于去中心化的网络上。

去中心化网络

连接数据的可移植性对于创建去中心化的计算机节点网络至关重要,其中每个节点都有图的完整副本。去中心化允许多种并存的分析方法。对于多个独立的参与者来说,能够在相同的连接数据上使用他们自己的分析方法是至关重要的,这不仅可以确保对已验证身份的权威不落入任何单个实体的控制之下,而且还允许独立参与者对分析方法进行定期审计。这也促进了对现有分析方法的开放创新和改进。
图的每个副本都通过一个名为IDChain的基于以太坊的权限证明区块链来中继更改操作,从而保持同步。

分析

为了确定一个人的唯一性,对图进行分析。有许多可能的方法,不同的方法可以进行比较或汇总。网络中的节点可以自由地采用任何他们想要的分析方法。

元数据

在我们尝试的方法2中,我们发现以种子和组的形式考虑额外的数据是有用的。种子点是在图中预选的信任点。从我们使用它们的意义上说,群体是由联网用户共同努力帮助某人获得验证的小群体。组为互联提供了比单一连接更丰富的可能性,我们分析了互联组的图。

阈值

我们的部分试用软件就是基于SybilRank算法,在西班牙社交网络Tuenti上进行了测试。该算法根据顶点(用户)代表重复用户(sybils)的可能性对图中的顶点(用户)进行排序。这份有序的名单交给了工作人员,由他们手动检查并删除可疑账户。有了这样一个有序的列表,worker会发现比通过用户报告多得多的重复项。
像Tuenti示例中使用的手动检查可能不实用,因此验证方法需要找到一个阈值,超过该阈值的用户被认为是唯一的,并自动将他们标记为已验证。较高的阈值可能导致更多的假阴性(唯一的人被错误标记),而较低的阈值可能导致更多的假阳性(sybil被错误标记)。不同的应用程序可以决定在这个频谱上的哪个位置运行。

注入模拟攻击

自动找到阈值的一种方法是模拟不同类型的sybil攻击,并在运行排名分析之前将它们注入到图的不同位置。经过分析,模拟的sybil排名可以与之前验证过的用户的新排名进行比较。该阈值被设置为一个可接受的假阳性和假阴性水平。

结合的结果

应用程序可以自由选择最合适的算法、参数和阈值。验证方法可以从其他几种验证方法(可能运行在几个节点上)中采样结果,并按照自己的方式组合它们。

验证持久性

用户通常不会因为低于阈值而丢失验证,除非还发生了重要的本地更改——例如,从主组中删除或附近的种子组丢失。

审计

应用程序可以检查来自多个节点的验证响应,作为审计节点的一种方式。

在应用程序中使用BrightID

使用BrightID的应用程序可以参考开发者文档:BrightID | Stoplight

恢复

每个BrightID都有一个与之关联的签名密钥对。如果用户失去了对签名私钥的访问权限,或者密钥被泄露(例如,设备丢失或被盗,或数据被删除),可以通过重新连接到一组可信联系人中的两个成员来轻松地替换它。简单的恢复方***降低贿赂的效果:用户可以简单地接受贿赂,然后替换他们的签名密钥,使之前的签名密钥无效。
私钥恢复的具体流程可以看:Social Recovery - BrightID (gitbook.io)

主要组

主群是验证的重要组成部分。只有当一个人的主要群体被反sybil算法排名足够高时,他才能被验证为一个独特的人。
每个人选择一个主要群体。发生这种情况时,会通知其他成员。群组中超过50%的成员必须授权一个人选择主要群组。此外,任何成员都可以将一个组标记为不可使用的主组,任何成员都可以否决其他成员将一个组作为主组使用。
主要群体代表一个特定的人的最亲密的个人联系(例如直系亲属)。BrightID用户应该标记组并相应地否决其他用户。

种子

一些社交图分析系统有种子的概念5,它们是作为信任中心的人。该系统使用种子来区分图中的诚实区域和攻击者创建的类似于诚实区域的sybil区域。
在网络快速增长阶段,可能会出现与主图连接不好的用户子图,因此选择种子节点尤为重要。BrightID Main DAO将促进不同种子选择方法的研究,以及使种子选择可扩展的工具的创建。下面概述了创建种子选择过程时需要考虑的一些原则。

种子组

当在组图上进行分析时(就像我们最初的几个系统中的情况一样),种子是一组人是有意义的。这使得种子具有持续的生命周期。
可发现性:种子组必须被发现有两个重要原因。
首先,BrightID用户必须有可靠的步骤来验证其身份。在网络快速增长的阶段,这通常包括寻找和建立与种子组成员的联系。
其次,赋予任务为组分配和撤销种子状态的Dao需要一种方法来找到组并确保它正常运行。
奖助金:重要的种子团体可以从BrightID主DAO获得赠款,以确保他们的继续运作。

种子DAOs

种子DAOs有权指定种子组并删除该指定。
利用可信种子的算法可以使用由种子DAO发布的种子用户列表。多个种子列表可以组合。这取决于种子DAO来证明其选择过程的可信性。种子DAO可能有资格从BrightID主DAO获得奖励。
治理:一个种子DAO可以选择它的成员并按照它的意愿操作。一个种子DAO的成员可能包括它所选择的种子组的成员。BrightID核心团队的一些成员在IDChain上创建了一个Aragon seed DAO(称为SeedDAO),每个成员对添加和删除seed组或DAO成员有一个投票决定。
使用图形资源管理器:BrightID发布了一个探索BrightID图的工具。用户可以在图中看到自己的连接和组的位置。

这个工具还可以用来标记区域和导出边界,以便与其他种子DAO成员共享。这有助于分享种子组的位置和它们影响的地区。一个种子DAO成员可以通过添加被观察到的人来连接到种子组成员来定义一个区域。这在种子群周围创建了一个已知人类的区域。这些人的排名可以随着时间的推移进行衡量,以帮助衡量种子小组的有效性。

检查种子组

种子DAO应该定期派遣一个成员去访问它指定的每个种子组,以确保它仍然可以访问并帮助附近的区域。

强化有益的行为

BrightID的接口(如移动应用程序)应该向用户提供反馈,让他们知道他们的行为是对真实的人有帮助,还是将系统置于错误验证sybil的风险中。

已完成成果

用户在BrightID中执行的操作会被记录在移动应用的操作日志中。以下是所取得的成果:
  • 第一次连接
  • 与应用程序链接
  • 获得赞助
  • 两个连接
  • 三个连接
  • 设置备份密码
  • 建立社会康复机制
  • 连接方
  • 与朋友或家人的联系会

Bitu验证

BrightID解决了Sybil(重复账户)攻击的问题。通过开发一个公共图,BrightID带来了一个基础设施,在这个基础设施中,可以尝试不同的算法来对抗这种攻击。应用程序将选择最适合自己的算法来验证用户。
Bitu是BrightID提供的第一个基于图分析的验证方法。图中主要区域内的节点通过Bitu进行验证。它将这些区域边界以外的节点识别为Sybil账户。这种验证方法是基于这样一个事实:当使用力导向算法绘制图形时,Sybil账户被从主要的、密集的区域推到边界。原因是Sybil账户不能与诚实的账户进行大量的连接,只能相互连接。这就是为什么他们被从主要地区推向周边地区的原因。


在现有的基于种子节点的算法中,存在少量具有验证用户能力的高可信节点——种子节点。由于节点是根据与种子节点的邻近程度进行验证的,这类算法很容易受到来自种子的攻击。
然而,Bitu没有种子。事实上,每个节点都是种子,只要它们仍然在图的主要区域内,就可以验证其他节点。基于种子的方法依赖于少数高度可信的种子,而Bitu依赖于低可信的大多数种子。
BrightID能否在保持安全的同时抵御Sybil攻击?我们经常被问到,就像维塔利克·布特林在“Gitcoin Grants Round 7 Retrospective”中所做的那样:
BrightID将面临一个艰巨的挑战,使其合理地容易普通用户加入,但同时抵抗来自虚假和重复帐户的攻击。我期待看到他们尝试迎接挑战!
基于少量高度可信的种子的验证使用户很难得到验证。另一方面,增加种子数量会降低网络抵御攻击的安全性。
依靠大多数低可信节点而不是被称为种子的少数高可信节点,Bitu能够在保证安全性的同时保持可扩展性。Bitu使用户只需与主要区域的一个用户进行一次连接即可轻松获得验证。因此,BrightID可以扩展其网络。如果位于主要区域的用户倾向于通过与他们建立连接来创建大量虚假账户来验证他们,虚假账户就会被逐出主要区域,甚至攻击者也将得不到验证。这样可以防止大规模的Sybil攻击,保证安全性。
此外,Bitu可以解决小规模的Sybil攻击;它使应用程序能够根据连接数量验证用户。例如,Gitcoin可能要求用户在Bitu中至少有10个“已知”连接。因此,所需的连接数越高,应用程序就越安全。这使得Sybil账户在不离开主要地区的情况下很难建立足够的联系。
一个例子有助于阐明它是如何工作的。用户X想创建10个假账户,以便在Gitcoin应用程序中使用它们。如果Gitcoin只需要一个“已知”连接进行验证,那么与图的主要区域有强连接的用户X可以将这10个帐户拖入主要区域,而不会有离开主要区域的风险。然而,如果Gitcoin需要10个或更多“已知”连接来进行验证,用户X需要将这10个假账户连接到诚实用户,或将这10个账户相互连接,以达到所需的最小连接数。请注意,诚实的用户不会以“已知”的身份与未知账户建立连接,而将这10个账户相互连接会导致这10个账户被推离图的主要区域,从而无法验证。
Bitu是第一种试图通过查看图表来区分机器人和假用户与真实用户的方法。BrightID图对公众开放,每个人都可以通过查看图轻松区分主要区域和边界。你可以登录到BrightID explorer,在图中看到你自己和你的联系人的位置。有关如何在Bitu中进行验证的更多信息,请参阅项目的Gitbook。

社交建立连接及连接的级别

建立连接

BrightID根据你与你的联系人所呈现的社交关系来验证你的身份。请使用主页底部的按钮来建立联系。操作时,显示自己的二维码让另一个人扫描,此时双方的个人简介数据将通过一个安全的P2P通道进行交互。然后你将根据对彼此的了解程度选择连接的级别,可以是 "已经了解"、"刚认识"、或 "可疑人员"等不同等级。
如果一群人想要同时进行连接,更方便的做法是选择群组连接,由一个人出示二维码,其他人扫描,这样大家就能互相连接。
要进行群组连接,先点击屏幕上方的按钮将"单次连接"二维码切换为"群组二维码"。每当有人扫描该二维码时,你都会收到通知。一个群组连接二维码最多可以被30人扫描。

连接级别

你在BrightID上收到的连接可能来自不同类型的人,他们可能是已经了解的,或你刚认识的人,也可能是可疑的人。

如果你们在现实世界和/或互联网上有过交往,可以选择他们为 "已经了解 "的关系。如果你只是因为使用BrightID和/或其集成应用程序而认识某人,请选择 "刚认识"。其余的连接应被认为是 "可疑的",你可以举报或忽略它们。
当你与他人建立连接时,选择正确的连接级别十分关键。你的选择将有助于算法提高其检测虚假账户的正确率。许多验证算法更依赖于你与你已经了解的人的连接,而不是那些与你刚认识的陌生人的连接。


如果你设置为"已经了解"的人,把你设置成"刚认识"或"可疑"的连接,算法可能会把它作为一个不良信号。因为你设置为"已经了解"的人,他的不良行为也可能对你的验证产生负面影响。

全部评论
早在2021年,以太坊创始人Vitalik就在他的网站上发表文章认为社交方案来恢复丢失私钥更好 https://vitalik.ca/general/2021/01/11/recovery.html 《为什么我们需要广泛采用社交方法来恢复钱包》
点赞 回复
分享
发布于 2022-08-19 23:35 北京

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务