- [[DID Method]]の一つ
- [[Verifiable Data Registry]]として[[Ethereum]]を使う
- 仕様
- [https://github.com/decentralized-identity/ethr-did-resolver/blob/master/doc/did-method-spec.md](https://github.com/decentralized-identity/ethr-did-resolver/blob/master/doc/did-method-spec.md)
- EIPはこれ: [https://eips.ethereum.org/EIPS/eip-1056](https://eips.ethereum.org/EIPS/eip-1056)
- 以下の特徴を持つ
- 識別子作成の取引手数料は無料
- 識別子の作成は非公開
- オフライン(EOAとか)の場合は、ということかな? コントラクトアドレスの場合は、非公開と言えるんだろうか? (kekeho)
- イーサリアム組み込みのアカウント抽象化を使用
- アカウントコントローラー用のマルチシグ(またはプロキシ)ウォレットをサポート
- 識別子としてsecp256k1公開鍵をサポート
- Claimデータを識別子から切り離す
- どういうこと? (kekeho)
- イーサリアムとのやり取りを識別子から切り離すことが可能
- どういうこと? (kekeho)
- 鍵管理の柔軟性
- 必要に応じてサードパーティのファンディングサービスにガス料金の支払いを許可する柔軟性(メタ取引)
- あらゆるEVM準拠のブロックチェーンをサポート
- 検証可能なバージョニングをサポート
Identifier Format
```format
ethr-did = "did:ethr:" ethr-specific-identifier
ethr-specific-identifier = [ ethr-network ":" ] ethereum-address / public-key-hex
ethr-network = "mainnet" / "goerli" / network-chain-id
network-chain-id = "0x" *HEXDIG
ethereum-address = "0x" 40*HEXDIG
public-key-hex = "0x" 66*HEXDIG
```
Create
- [[EOA]]、コントラクトアドレス、secp256k1のpubkeyがDIDとなる
- 基本的にはオフラインでOKだが、追加属性を入れたい場合はEthereumDIDRegistryコントラクトに書く
- `0xdca7ef03e98e0dc2b855be647c39abe984fcf21b` on Mainnet, Ropsten, Rinkeby, Kovan
Identity Ownership
- DIDの生成は、キーペアを作るだけ。オフライン。
- `changeOwner`/`changeOwnerSigned`を呼び出すことで、DIDのOwnerとなるアカウントを変えられる
- W3C用語でいうところの[[DID controller]]を変えられる、ということか?(kekeho)
- そうっぽい: [https://github.com/decentralized-identity/ethr-did-resolver/blob/master/doc/did-method-spec.md#identifier-controller](https://github.com/decentralized-identity/ethr-did-resolver/blob/master/doc/did-method-spec.md#identifier-controller)
Delegate
- [[DID delegate]]を行える仕組みを備える