Veramo tried to publish the version 1.0.0
of the DID ethr smart contract. They then put the address to it in the DID spec. Later they found out that they accidentally deployed an old version of the contract. This results in some bugs in the current default smart contract dictated by the spec.
At the moment Veramo is the only developer investing efforts in changing the smart contract. Currently there is no established system for upgradeability of this as the spec points to a hardcoded address that has no proxy capabilities. So we're kind of locked in the usage of the current version until somebody deploys a new version & somehow succeeds in changing the spec.
If you want to upgrade the smart contract & don't support data migration you'd lose old DID data. Upgrading the contract should always somehow migrate the old data. Currently it's kind of a black box whether that even works with the approach the contract takes for data storage (using events).
The old version of the contract (default one right now) has an active attack vector that enables people to replay meta transactions for DID document changes on the following methods:
This could enable attackers to do the following in a constructed situation:
Before we deploy ethr DIDs to production we need to push the ecosystem to use the new version of the smart contract. As its address on the blockchain will be hardcoded in the did:ethr spec we need to have a stable address from that point on forward. We need a way to proxy the contract to enable hidden upgrades in the contract. As this is a critical method in the whole DID standard (because some entity is able to change the behaviour of did:ethr -> could result in changing the appearance of someone's DID) we need to have a governance model in place that the community trusts. It should be some kind of DAO.
So we should do the following:
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Syncing