Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する

Why wallet has multiple addresses?

ArcBlock-Nate
2024-01-18 08:09
· edited

When a new DID Wallet is initialized, there are three addresses by default. Respectively is:

  • Default DID address
  • The Ethereum address generated by the default DID derivation rule
  • The Ethereum address generated by ethereum derivation rule

Let's go through them one by one.

Default DID address#

  1. The seeds generated by the wallet's mnemonic are generated based on the m/44'/260'/S1'/S2'/0 derivation rules, see the detail generation rules Create Extended DID
  2. Generate the DID KeyPair and generate the DID address based on the generated private key.

The Ethereum address generated by the default DID derivation rule#

  1. Step 1 is exactly the same as step 1 above
  2. ECKeyPair is generated based on the generated private key and an Ethereum address is generated from it

The Ethereum address generated by ethereum derivation rule#

  1. The seed generated with the wallet's mnemonic generates ECKeyPair based on the m/44'/60'/0'/0/0 derivation rule
  2. Generate the Ethereum address using ECKeyPair

You will also see this address when you use the wallet's mnemonic to recover in other wallets.

In the future, as you use the wallet to interact with different ArcBlock ecosystem applications via DID Connect, more addresses will be generated, and those addresses will generate similar derived rules.

So why does a DID wallet generate multiple addresses?#

Current mainstream wallet only one basic default address of Ethereum, in this case, when you use your wallet to respectively and the application A, B connection, when some record on the chain, so because the data chain is open, then your visit record is open, this will cause your access behavior are analyzed using, thus privacy leak.

The implementation scheme of DID wallet is to derive rules based on DID address, add the unique identifier of the application with the same seed, and automatically generate the corresponding account address (including the public and private key pair behind) and application interaction every time the wallet connects with different applications. In this way, different apps are isolated from each other, and the data on the chain does not show that two addresses are from the same wallet, thus ensuring user privacy.

1
Sticker