专栏首页本体研究院本体技术视点 | 如何运用数字身份进行转账?

本体技术视点 | 如何运用数字身份进行转账?

01

引言

众所周知,ONT ID 是用户自治的身份,用户通过 ONT ID 可以管理自己的相关身份数据,比如 CFCA 的身份认证信息等。广泛来看,用户拥有的地址和数字资产也是用户的数据之一。

图 | 网络

同一个用户会拥有很多的地址和对应的资产,比如 Alice 可能拥有 ONT、ETH 和 BTC 等资产。那么我们如何通过 ONT ID 来进行这些数字资产的转账?

02

实现方法

接下来,我们将以 Celo 地址为例,介绍通过 ONT ID 进行 Celo 链上数字资产转账的两种方法。(https://celo.org/)

2.1 在本体链上将 ONT ID 和 Celo Address 绑定

基本理念:

在本体链上,用户可以将自己的 ONT ID 和 Celo 地址绑定,如此一来转账时可以直接根据 ONT ID 来进行转账,而不用找 ONT ID 的所有者确认 Celo 的转账地址。

主要步骤:

1. 在本体网络中部署 ONT ID X Celo 合约,该合约用于绑定和解绑 ONT IDCelo Address

2. 用户需要先注册 ONT ID,并保存好对应的秘钥;

3. 用户调用 ONT ID X Celo 合约提出绑定 ONT ID 和 Celo Address 的请求,该交易同时需要 ONT ID 的签名和 Celo Address 的签名;

4. ONT ID X Celo 合约验证 Celo Address 的签名,并调用本体网络中的 ONT ID 系统合约,验证 ONT ID 的签名,验证成功后将要绑定的 Celo Address 加入地址簿中,序列化后调用 ONT ID 系统合约 addAttributes 方法将地址簿存入 ONT ID document 的 Attribute 字段中;

5. 用户可以在转账时只填写接收人的 ONT ID,不必和接收人确认接收地址;

6. ONT ID X Celo 合约根据用户填入的 ONT ID,调用本体网络中的 ONT ID 系统合约的 getAttributes 方法,获取 ONT ID 的属性,从属性中解析出绑定的 Celo 地址簿;

7. 地址簿中的第一个地址为默认地址;

8. 向地址簿中添加地址同时需要 ONT ID 和 Celo Address 的签名;

9. ONT ID X Celo 合约支持移除地址簿中的地址,更改地址簿中的默认地址等,这些交易只需要 ONT ID 的签名。

2.2 在 Celo 网络中将 ONT ID 和 Celo Address 绑定

基本理念:

在 Celo 网络中,允许用户将自己的 ONT ID 和 Celo address 绑定,这样用户在转账时可以直接根据 ONT ID 来进行转账,而不用找 ONT ID 的所有者确认转账地址。同时,采用 Oracle 技术实现 Attestation Service,来验证 ONT ID 的签名是否正确。

主要步骤:

1. 在 Celo 网络中部署 ONT ID 合约,该合约用于绑定和解绑 ONT ID 和 Celo Address;

2. 用户需要先在注册 ONT ID,并保存好对应的秘钥;

3. 用户向 Celo 网络中的 ONT ID 合约提出绑定 Celo Address 和 ONT ID 的请求,该交易需要 Celo Address 的签名并附带 ONT ID 的签名消息;

4. Celo 网络的 ONT ID 合约验证 Celo Address 的签名,确认 Celo Address 的所有权。并推出验证 ONT ID 签名的事件,将附带的 ONT ID 签名消息推出;

5. Attestation Service 监听到验证 ONT ID 签名的事件,将附带的签名消息发送到本体网络,获取验签结果;

6. Attestation Service 将验签结果发送到 Celo 网络的 ONT ID 合约中。

7. Celo 网络的 ONT ID 合约收集到足够的验签结果后,实现 Celo Address 和 ONT ID 的绑定;

8. 用户可以在转账时填写接收人的 ONT ID,这样就不必和接收人确认接收地址。

03

总结

采用第二种方法实现时,要求目标网络支持智能合约。我们在上面例子中 ONT ID 绑定了一个地址,现实中也可以绑定多个地址,并设置接收和发送 Token 的默认地址。同时,ONT ID 可以绑定邮箱、电话号码和 GitHub 等社交账号,实现通过邮箱、电话号码或者社交账号来进行转账,大大增强转账的便捷性和健壮性。

图 | 网络

本文分享自微信公众号 - 本体研究院(ontologyresearch),作者:Siovanus

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 本体技术视点 | 如何利用技术手段让“冒名顶替上大学”事件不再发生?

    近日,山东冠县一农家女被冒名顶替上大学一事引发关注。目前冒名顶替者已被停职,2020年6月12日,冠县烟庄街道办事处相关工作人员对界面新闻证实,顶替者陈某某在该...

    本体Ontology
  • 本体技术视点 | 用于去中心化支付的多资产协议解读

    在研究第四代新型区块链架构和协议的过程中,看到了一个有意思的号称“Libra 竞争者”的项目 ——Celo,将会花几篇文章把 Celo 的价值做个解读,将尽可能...

    本体Ontology
  • 本体技术视点 | 虚拟机中引用性动态语言对象模型思考

    Ontology 的 NeoVM 虚拟机新增加了 DCALL、HAS_KEY、KEYS 以及 VALUES 等几条新的指令。因此,基于 NeoVM 的引用性动态...

    本体Ontology
  • 开源|为什么要使用ns4_gear_idgen ID生成器?

    NS4系列包括4个开源模块,分别是:ns4_frame 分布式服务框架(详情点击查看:开源|ns4_frame分布式服务框架开发指南)、ns4_gear_idg...

    宜信技术学院
  • 5 大分布式 ID 生成器优缺点简单对比

    首先,不管是不是分布式系统,都有 ID 唯一的使用场景。而在分布式场景下,对 ID 的唯一性要求更严格!

    业余草
  • 推荐系统遇上深度学习(三十六)-Learn and Transferr IDs Repre in E-commerce

    本文介绍的文章题目为《Learning and Transferring IDs Representation in E-commerce》,下载地址为:htt...

    石晓文
  • 分布式ID生成方案总结

    ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innod...

    macrozheng
  • SQLServer SQL连接查询深度探险(摘录

    测试的SQL脚本如下:此脚本适合MySQL、DB2,如果要在Oracle上执行,需要做个替换BIGINT->INTEGER,VARCHAR、->VARCHAR...

    授客
  • iOS 内购流程

    用户5820066
  • 细聊分布式ID生成方法

    一、需求缘起 几乎所有的业务系统,都有生成一个记录标识的需求,例如: (1)消息标识:message-id (2)订单标识:order-id (3)帖子标识:t...

    架构师之路

扫码关注云+社区

领取腾讯云代金券