前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >本体技术视点 | 如何运用数字身份进行转账?

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

作者头像
本体Ontology
发布2020-06-23 15:12:32
5090
发布2020-06-23 15:12:32
举报
文章被收录于专栏:本体研究院本体研究院
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 等社交账号,实现通过邮箱、电话号码或者社交账号来进行转账,大大增强转账的便捷性和健壮性。

图 | 网络

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 本体研究院 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档