Polygon ID:不仅仅是生物识别的人格证明

1. 引言

2023年7月V神在博客 What do I think about biometric proof of personhood? 中指出:
在这里插入图片描述
其中的risks包括:不可避免的隐私泄露、人们匿名浏览互联网的能力进一步削弱、威权政府的胁迫,以及在去中心化的同时可能不安全。

在这里插入图片描述
Polygon ID致力于为Web构建身份层:

  • 为开源的支持去中心化身份的技术。
  • 支持多种身份验证方式,如文档、生物特征等身份验证方式。
  • 目标是称为web的自治身份(Self-Sovereign Identity,SSI)层。
  • 生物特征的“proof of personhood(人格证明)”方案发行证明唯一性的credentials,但它不是基本的身份层协议。

Polygon ID现有生态见:

Polygon ID开源代码见:

Polygon ID 与 生物识别的人格证明 之间对比为:
在这里插入图片描述

2. 身份是一个经典难题

“你是谁?”

挪威作家乔斯坦·加德用这个看似简单的问题打开了《苏菲的世界》的大门。但当索菲试图回答时,她却陷入了身份的困境。当她变老时,当她体内的细胞死亡并被新细胞取代时,她还是那个索菲吗?当她和她最好的朋友说话时,她是不是和她妈妈说话的那个索菲?

互联网只会加剧这些身份问题——你是谁?——这在模拟/数字鸿沟中变得混乱和难以理解。一个人,多个平台。身份已在线断裂。

要想在线并证明“你是你”,需要至少满足以下2个条件:

  • 1)人格证明(Proof of Personhood,PoP)或 唯一性证明(Proof of Uniqueness):在数字环境中,存在长期的credential来表明你是唯一人类。线下,你总是唯一的你。什么协议可以在网络上证明同样的独特性?
  • 2)人性证明(Proof of Humanity):人性证明是指在填写表格或身份验证过程中采取的短暂行动。这表明你不是一个机器人。它在特定的交互中充当验证,以确认你是一个真正的人类用户,而不是一个自动化程序。

Polygon ID是一个开源工具集,使开发人员能够为身份的hardness构建解决方案,以满足上述条件。它是Web3的自主权身份层的基础设施。

另一方面,也有一些生物识别身份证明证书的颁发者(issuer)依赖于上传人脸视频或眼睛扫描等过程,但这些颁发者不是身份架构。它们符合第一个标准,但并不总是符合第二个标准,并且它们不像Polygon ID那样是身份协议的通用基础设施。

3. 颁发者与基础设施之间的差别

Polygon ID提供了一系列工具,使得web3参与者可实现去中心化身份,主要包含3种可能的角色:

  • Credentials issuers 身份颁发者:如政府、大学、证书机构、KYC提供商、私人公司、或者人们可以在其中发表关于他人的言论的社交图等;
  • Identity holders身份持有者:用户持有颁发给其的在钱包或vault内的整数。
  • Verifiers:为使用或消费来自用户整数(通常是dApp)的信息的实体或人员。

当前Polygon ID开源代码中,当前还没有身份颁发者,从而也没有中心化的实体来直接管理个人信息。

与此相反,生物识别人格证明是使用了生物特征技术的身份——可能是眼睛扫描或其它类型的生物特征数据,如脸部视频上次以及游戏验证。

通常,颁发者将在中心化数据库中存储用户生物特征数据的哈希。

4. 灵活的身份验证方式

2023年7月V神在博客 What do I think about biometric proof of personhood?中指出:“不存在理想的人格证明方式”。相反,他声称方法应该足够灵活,以应对快速发展的行业。不同的设计可以用来解决身份验证的棘手问题。

Polygon ID协议足够灵活,可以响应随时间推移流行的任何方法。即使密码学家设计基于生物特征或社交图的解决方案,政府仍将继续颁发证书。Polygon ID可以容纳多种验证方法。

5. 开源伦理与透明度

Polygon ID是开源的,具有Apache/MIT许可证,使开发人员能够提出改进建议并审核代码。此外,与Rarimo身份桥接技术的合作意味着Polygon ID证书可以在其他EVM链(以太坊主网、Avalanche、Optimism等)上进行验证。

参考资料

[1] Polygon团队2023年8月博客 Polygon ID is More than Biometric Proof of Personhood
[2] 2023年7月V神博客 What do I think about biometric proof of personhood?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将vtkSmartPointer<vtkCylinderSource>类型转换为pcl::PolygonMesh::Ptr类型的过程可以分为两步: 1. 通过vtkPolyDataMapper将vtk对象转换为pcl::PointCloud<pcl::PointXYZ>对象 2. 将pcl::PointCloud<pcl::PointXYZ>对象转换为pcl::PolygonMesh::Ptr对象 具体实现代码如下: ```c++ #include <vtkPolyDataMapper.h> #include <vtkCylinderSource.h> #include <vtkSmartPointer.h> #include <pcl/io/vtk_lib_io.h> #include <pcl/point_types.h> #include <pcl/PolygonMesh.h> int main() { // 创建vtk对象 vtkSmartPointer<vtkCylinderSource> cylinder = vtkSmartPointer<vtkCylinderSource>::New(); cylinder->SetRadius(1.0); cylinder->SetHeight(2.0); cylinder->SetResolution(30); cylinder->Update(); // 将vtk对象转换为pcl::PointCloud<pcl::PointXYZ>对象 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::io::vtkPolyDataToPointCloud(cylinder->GetOutput(), *cloud); // 将pcl::PointCloud<pcl::PointXYZ>对象转换为pcl::PolygonMesh::Ptr对象 pcl::PolygonMesh::Ptr mesh(new pcl::PolygonMesh); mesh->cloud = *cloud; mesh->polygons.resize(cloud->size() - 2); for (size_t i = 0; i < cloud->size() - 2; i++) { pcl::Vertices vertices; vertices.vertices.push_back(0); vertices.vertices.push_back(i + 1); vertices.vertices.push_back(i + 2); mesh->polygons[i] = vertices; } return 0; } ``` 这里假设我们要生成的多边形网格只包含三角形,因此我们将pcl::PolygonMesh::polygons初始化为大小为点云大小减2的向量,并且每个多边形只由三个顶点组成。我们通过vtkPolyDataToPointCloud函数将vtk对象转换为pcl::PointCloud<pcl::PointXYZ>对象,然后再将其转换为pcl::PolygonMesh::Ptr对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值