Moving the last 19,587 accounts to the EOS Mainnet
EOS Authority10th October 2018The background
Most of us have been through the registration process as EOS token holders from the ERC-20 token days. A vast majority of account holders registered correctly. Luckily for those who did not register or had an error while registering, we had the fallback method. A fraction of the EOS tokens however did not have fallback apply about 3.3 million EOS and 19,587 wallets. These tokens were stuck!... well, until now.
Red section indicates users that were unregistered
How can we create accounts for these holders?
To be able to create EOS accounts for the unregistered token holders, we need these things.
1) Ethereum address used to hold ERC-20 tokens
2) Token balance held of EOS ERC-20 tokens.
3) Public Keys to use
4) EOS account name
5) Most importantly - Submit proof that they control the Ethereum address.
Now, the final point 5. How do we submit proof that they control the Ethereum address? The initial idea was to use ECAF or a third party that they would submit the cryptographic proof by signing a message and it involved manual verification. This was the first idea discussed until....
On-chain cryptographic verification of Ethereum address ownership
We presented the unregistered user situation on a BP conference call back in June where we requested for ideas. This is when the EOS Argentina team entered the discussions with a proof of concept for cryptographic verification on-chain. Matias Romeo (ElMato) - EOS Argentina's PoC proved that it was possible to automate on-chain verification without any manual intervention. Over the next couple of months we worked with EOS Argentina on improving the PoC smart contract with SHA3 and importantly verifying the public key. What we produced at the end is a fully on-chain mechanism with signature verification. This means a user can prove access to Ethereum private key on the EOS chain.
Reaching the widest possible audience
Along with the smart-contract on EOS, we had to work on a browser mechanism for end users to submit proof that they actual control the EOS account. We had these requirements on the front end.
1) Simple to use for users.
We had to make a simple web page for token holders to submit all the information abstracting away all the complexity on the smart contract and the front end.
2) Zero trust
This was important for us. We don't require users to hand over any private keys (EOS or Ethereum) to anyone. This reduces the reason to trust any intermediary. Also the EOS public key and account name submitted by the token holder cannot be tampered with as it is cryptographically verified on the smart contract.
Rohan EOS Authority - Early Block Producer calls
Matias from EOS Argentina presenting initial idea for Smart Contract
EOS Argentina initial idea of the smart contract
Block producer conference calls - Seoul .
Rohan EOS Authority presenting the unregistered contract .
Unregistered contract being explained in Seoul
Testing out Ledger support.
How do I prove ownership of my Ethereum address?
We will never ask you for your private key. We will ask you to sign a message to prove ownership of your Ethereum address. We aimed to support users who don't have direct access to the Ethereum Private key. For example, people that use Ledger, Trezor, Digital Bitbox, Secalot or several approaches. We are able to generate the message that has to be signed and we allow users to sign the message in different ways and finally submit the results back to us. A side effect of this is our ability to also work with different platforms that won't disclose public keys to users, eg: Coinpayments, Coinbase, etc. For example, you could contact CoinPayments and ask them to sign a message without disclosing the private key to you. You simply return back to the web interface and submit the signed message
Who are not able to use this?
We expect a huge majority to use this system just fine. Any token holder that cannot sign a message with the Ethereum private key directly for the Ethereum address that held the ERC-20 tokens will not be able to prove ownership. This is most likely to be token holders with EOS tokens in a Ethereum contract. This also could include token holders with tokens in platforms like Coinbase and they refuse to sign a transaction on their behalf. If you run into either of these problems, please contact us.
What does this highlight about EOS?
Something like this is only possible on EOS. There are so many things that align to let us deliver this to the token holders.
- The ability for the block producers to deploy contracts and improvements in a de-centralised environment.
- Execute very complex contracts on-chain. Contracts which carry out Ethereum signature verification thanks to the ability to import C++ libraries and work with complex functions.
- Community able to come together to develop and deploy a solution and various TestNets available like CryptoKylin and Jungle to test these contracts on.
All of this makes EOS unique and powerful.
Next Steps
This is a result of extensive trials and it took about 3 months (track progress here) to get to this stage. We are happy to invite unregistered account holders to start using the tool available at this link https://eosauthority.com/unregistered.
We look forward to welcoming each one of the 19,587 early investors of the EOS project on-board. #togetherwearestronger