Opt-in Account Recovery

EOS42
6 min readFeb 24, 2019

--

Korean and Chinese Version Below

Scalable Solution for Account Recovery

How to effectively address the issue of hacked accounts on a public blockchain is riddled philosophical contradiction. One of the core advantages of a public blockchain is immutability and censorship resistance — code is law, and data on blockchains is “immune” to human intervention. Introducing mechanisms that give users recourse in the event of hacked accounts requires intervention.

Finding a scalable middle ground between these two philosophical positions will be crucial for mass adoption. Users will be perpetually deterred from a system whereby their private key is the only claim to ownership. Therefore, we propose a scalable, cost effective, opt-in solution, that will address a large number of cases in which accounts have been hacked.

Solution

The EOS community will have access to an opt-in process that can be used in the event their account is hacked. Users can provide their identifying information, which is then converted to a SHA256 Hash, and the transaction is submitted to a smart contract through Scatter (or other wallets), to add the account name/hash to a table.

Note: All Identifying information would be obfuscated, and thus unreadable until the event that a user initiated the account recovery process. The degree of personal information disclosed to BPs in the event a user triggers a recovery process can be customized. Therefore, users could theoretically recover their funds, without ever having to reveal their identity to anyone but the KYC provider.

Advantages:

  • Very easy for a user to protect their account through an opt-in system.
  • Cheap
  • Very quick account recovery — reduces chances that funds are stolen
  • Scales efficiently
  • Approval process for users who have completed KYC protocol after losing their account can be automated

UX

A public website will have two options.

  1. Set up account protection
  2. Recovering a hacked account

Setting Up Recovery Protections

Users can set up recovery protections with an opt-in process, by selecting an account they want to protect. Then users can provide identifying information.

Example:

  1. User goes to the website, and chooses “Set up account protection”
  2. User fills out a form with the details of their passport, and other information.
  3. Full Name
  4. Date of Birth
  5. Passport number
  6. The information is converted to a SHA256 Hash, and a transaction is submitted to a smart contract through Scatter to add the account name and hash to a table.

All of this is free.

Recover Hacked Account

If the user’s account is hacked, then they go back to the website, and execute the following process:

  1. Choose “Recover a hacked account”
  2. Enter the account name that is hacked.
  3. Enter the new public key(s) that they want to have
  4. Enter into a form their details from their passport.
  5. The hash of this information is checked against the smart contract for a match, if there is a match, then proceed to next step.
  6. They are then linked to one of multiple external KYC providers, who verifies the user is who they say they are on their passport.
  7. They will have to pay a fee at this stage. BPs can choose if the fee is just enough to cover the KYC costs, or it could also be some fraction of the account funds, which we then keep for maintenance of the system.
  8. The KYC provider accepts the proof, and the BPs are informed.
  9. We have a automated process to propose a key change using eosio.wrap, and then it is just up to the BPs to sign it.
  10. Any BP can choose to auto-sign the proposal if they trust the KYC provider, otherwise they can manually approve.

Note: In the above example, a passport is used as an official document, however other documentation may be acceptable depending on the KYC provider.

Summary

This solution is opt-in, scales, is cheap, and can be very efficient.

The contract is already built and being tested, we will support the community building a website and integrating KYC with the BPs.

EOS42 — Pioneering a Decentralized Future

WEBSITE | MEDIUM | TWITTER | TELEGRAM | LINKEDIN

계정 복구를 위한 확장 가능한 솔루션

퍼블릭 블록체인에서 해킹 당한 계정 문제를 효과적으로 해결하는 방법은 철학적인 대립에 처해 있는 상황입니다. 퍼블릭 블록체인의 핵심 장점 중 하나는 불변성과 검열에 대한 저항이 가능하다는 점입니다. — 코드는 법이며 블록체인에 대한 데이터는 사람의 개입에 대한 “불변성” 이 있습니다. 허나, 사용자들에게 복구의 수단을 제공하는 메커니즘을 도입하기 위해선 개입이 필요하게 됩니다.

이 두 가지 철학적 대립 사이에서 확장 가능한 중간 지대를 찾는 것은 앞으로 대량 채택에 결정적일 것입니다. 사용자들은 자신의 개인 키로만 소유권을 주장할 수 있는 시스템을 지속적으로 막으려고 할 것입니다. 따라서 저희는 확장 가능하고, 비용 효율적인, 사전동의(opt-in) 솔루션을 제안합니다. 이 솔루션은 계정이 해킹 된 사례들을 처리 할 수 있게 합니다.

해결책

EOS 커뮤니티는 계정 해킹시에 사용할 수 있는 사전동의(opt-in) 프로세스에 접속 할 수 있습니다. 사용자는 신원 정보를 제공 한 다음, SHA256 해시로 변환하고, 그 트랜잭션을 Scatter (또는 다른 지갑)를 통해 스마트 컨트렉트로 제출하여 계정 이름 / 해시를 테이블에 추가 할 수 있습니다.

참고 : 모든 신원 정보는 암호화되어 사용자가 계정 복구 프로세스를 시작한 시점까지 읽을 수 없습니다. 사용자가 복구 프로세스를 시작 하는 경우, BP들에게 공개할 신원정보의 수준은 개인 맞춤화가 가능합니다. 따라서 사용자는 KYC 제공 업체를 제외한 다른 사람에게 자신의 신원을 밝힐 필요 없이, 이론적으로 계정을 복구 할 수 있습니다.

장점

  • 사용자가 사전동의 시스템을 통해 자신의 계정을 보호하기가 매우 쉽습니다.
  • 비용이 적게 듭니다.
  • 매우 빠른 계정 복구 — 자금이 도난 당할 가능성을 줄입니다.
  • 효율적으로 확장 가능합니다.
  • KYC 승인이 완료된 사용자의 계정 복구 프로세스가 자동화 될 수 있습니다.

UX

공개 웹 사이트에는 두 가지 옵션이 있습니다.

1. 계정 보호 설정

2. 해킹된 계정 복구

계정 보호 설정

사용자는 사전 동의 프로세스를 거쳐 보호하려는 계정을 선택하여 계정 보호를 설정할 수 있습니다. 그런 다음 사용자는 본인의 신원 정보를 제공 할 수 있습니다.

예:

1. 사용자가 웹 사이트로 이동하여 ‘계정 보호 설정’을 선택합니다.

2. 사용자는 자신의 여권 정보 및 기타 정보를 양식에 기입합니다.

3. 성명 (풀 네임)

4. 생년월일

5. 여권 번호

6. 정보는 SHA256 해시로 변환되고 Scatter를 통해 스마트컨트렉트 거래가 제출되어 계정 이름과 해시를 테이블에 추가합니다.

이 모든 것은 무료입니다.

해킹 된 계정 복구

사용자 계정이 해킹 당하면 웹 사이트로 돌아가 다음 프로세스를 실행합니다:

1. ‘해킹된 계정 복구’를 선택합니다.

2. 해킹 된 계정 이름을 입력하십시오.

3. 사용하고 싶은 새로운 퍼블릭키를 입력하십시오.

4. 여권 안의 세부 사항을 입력하십시오.

5. 입력한 정보의 해시가 일치하는 스마트 계약과 비교하여 일치하는지 확인한 후 다음 단계로 진행합니다.

6. 그런 다음 여러 외부 KYC 제공 업체 중 하나에 연결되어 사용자가 자신이 여권정보의 사람이 맞는지 확인합니다.

7. 이 단계에선 수수료를 지불해야 합니다. BP들은 이 수수료가 KYC 비용을 충당하기에 충분한 지 선택할 수 있습니다. 또는 시스템 유지 관리를 위해 계정 잔액의 일부분 일 수도 있습니다.

8. KYC 제공자는 신원을 확인하고 bP들에게 통보합니다.

9. 저희는 eosio.wrap을 사용하여 키 변경을 제안하는 자동화 된 프로세스를 보유하고 있으며 BP들은 서명하는 것만으로 끝납니다.

10. 어떤 BP든지 KYC 제공자를 신뢰하는 경우 제안서에 자동 서명하도록 선택할 수 있습니다. 그렇지 않으면 수동으로 승인 할 수도 있습니다.

참고: 위의 예제에서 여권은 공식 문서로 사용되지만 KYC 제공 업체에 따라 다른 문서가 허용 될 수도 있습니다.

개요

이 솔루션은 사전동의(opt-in)이며, 확장가능하고, 저렴하며 매우 효율적입니다.

이 컨트랙트는 이미 구축되었으며 테스트 중입니다. 저희는 커뮤니티가 웹 사이트를 구축하고 KYC와 BP 를 통합하는 작업을 지원할 것입니다.

可扩展性的账号恢复解决方案

如何有效解决公共区块链账号被黑客攻击的问题,是一个充满哲学矛盾的问题。公共区块链的核心优势之一是不变篡改性和抵制审查 — — 代码即法律,区块链上的数据“免疫”于人类的干预。而另一种使得用户在黑客攻击时可以获得追索权的机制,则需要干预。

在这两种哲学立场之间找到一个可扩展的中间地带,对于区块链的大规模采用至关重要。如果用户的私钥是唯一的所有权证明,那么,被盗之后,他们将永远无法再使用这个系统。因此,我们提出了一个可选的解决方案,具备可扩展性和成本效益,可以用来处理帐户遭受黑客攻击的大量情形。

解决方案

EOS 社区可以使用一个可选的流程,在账号遇到黑客攻击事件使用。用户提交他们的身份信息,将其转换为 SHA256 Hash,通过 Scatter(或其他钱包) 将事务提交给智能合约,从而将账号名称/hash 添加到数据表中。

注意: 所有的身份信息会进行混淆处理,在用户启动账户恢复流程之前,将无法读取这些信息。在用户启动恢复流程时,用户向 BP 披露个人信息的程度是可以自定义的。因此从理论上讲,用户可以找回自己的资金,而无需将自己的身份信息透露给 KYC 服务提供者之外的其他人。

优势

  • 通过一个可选的系统,用户可以很方便的保护自己账户
  • 价格低廉
  • 账户恢复迅速 — 降低资金被盗的风险
  • 可进行有效扩展
  • 若用户完成了 KYC 协议,丢失账号后的恢复过程可以自动化处理

UX

会创建一个公开的网站,包含两个选项:

  1. 设置账号保护
  2. 恢复被黑客攻击的账号

设置恢复保护

用户可以通过一个自主选择加入(opt-in)的流程,设置账号恢复保护,选择他们需要保护的账号。之后,用户提交身份验证信息。

示例:

  1. 用户访问文章, 选择 “设置账户保护”
  2. 用户填写表格,提交护照等信息包括:
  3. 全名
  4. 出生日期
  5. 护照号码
  6. 所提交信息会转换为 SHA256 Hash, 借助 Scatter等钱包提交事务至一个智能合约,将账户姓名和hash加入到数据表中

上述操作均为免费。

恢复被盗账号

若用户的账号被黑客攻击,用户回到网站,进行如下操作:

  1. 选择 “恢复被盗账号”
  2. 输入被盗账号名
  3. 输入他们想要设置的新的公钥
  4. 输入护照中所包含的信息
  5. 信息的hash会于智能合约中的记录进行比对,如果匹配,则进行下一步
  6. 之后,将用户链接欧将费用这向某个外部的KYC服务提供者,会验证用户是否与护照上的信息相匹配
  7. 账号拥有者此时需要支付费用。BP 可以对费率进行选择,只包含 KYC 服务的费用,或者包含少许额外的费用,用作系统的维护资金
  8. KYC 服务提供者接收证据,通知 BP
  9. 我们有一个借助 eosio.wrap 更换私钥的自动化提议的流程,然后需要 BP 进行签名。
  10. 若 BP信任 KYC 服务提供者,他们可以选择自动签名提议;或者,也可以选择手动批准。

注意:在上述例子中以护照作为官方证明文件。根据 KYC 服务提供者的要求,也可以使用其他的证明文件。

总结

这一解决方案,可以由用户自行选择,具备可扩展性,花费的成本低廉,并且非常有效率。
相应的智能合约已经创建并正在测试,我们将支持社区建立网站,将 KYC 与 BPs 集成。

我们诚邀您提供反馈,参与这一主题的讨论。

--

--

EOS42

EOS42 — Pioneering a Decentralized Future | 开造一个去中心化的未来 | 탈중앙화된 미래를 선도합니다 | Telegram: https://t.me/EOS42 | EOS ID: eos42freedom