-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Discussion: Should a node be able to enroll multiple times with the same address ? #849
Comments
The idea about how to apply HDKD(Hierarchical Deterministic Key Derivation) to AGORA
Docs about HD wallet
Common industry standards
Best Practice |
The libsodium supports key derivation from master keys and it's similar to BIP-32 but not the same as the standard. But we can start with the functions of the libsodium. Key derivation with libsodium >= 1.0.12 Part of Bitcoin's implementation is as follows. |
In order to implement deterministic wallets completely, we should implement many standards as follows.
As the first phase, we start implementing HD wallets and we can refer to the bitcoin codebase. We can see the related codes of the Bitcoin as follows. As the second phase, we should implement BIP-43 and BIP-44 which are related to making a multi-account wallet. The standards are about managing and discovering the multi-accounts. It would be needed to register AGORA coin types for BIP-44(See registered coin types) As the last phase, We could implement the Mnemonic code words base on BIP-39, but we should discuss later how much we need the feature. As part of this issue, I start implementing HD wallets. If you have any other opinions about this, please let me know. And other items to be implemented will be spit into other issues. |
Does the requirement contain the feature that a validator can enroll with another UTXO at any height or is it just to make the validator be able to re-enroll another UTXO? @Geod24 Please let me know your opinion regarding this. |
The former. But I don't see why we would manage multiple |
The reason why we should manage multiple |
But a single Agora process can only handle one enrollment (== one UTXO) at a time. |
Ah, I see. Thanks. |
We need to consider that there's no way to determine which UTXO is for the single process in the catch-up process. But we could make the user select one. In the implementation of this issue, I can not help selecting the last enrollment of the enrollments found in the latest 1008 blocks, I guess. |
@linked0 and I had a few talks about this this sprint. His original approach was interesting, and had other benefits, but much more advanced than what the scope of this issue requires. There was supposed to be a PR with a simple fix however I do not see it in the PR list. |
The simple fix affects some unit tests like comparing two outputs, so I'm now fixing them. After that, I will create a PR. This is one example affected form the fix.
|
I think in the future we may want to simplify those tests and replace the hardcoded checks with something that verifies there is sufficient quorum intersection and that the quorums have been shuffled (without checking exactly their layout). Otherwise, the tests are currently too sensitive to changes in the code. |
Yes, right. Chris also has a similar problem in his task. |
I just did: #1264 |
Following live discussions:
How does it sound @linked0 ? |
That sounds good and simple. |
@AndrejMitrovic : That was the discussion. |
Discussed, explored, and we will disallow it. |
Currently, our pre-image scheme relies only on the private key, a nonce, and a fixed string.
This leads to a situation where a user would get the same pre-image if they enrolled with two different frozen txs controlled by the same private key. This might not be wanted, or this could be a feature. It's not an issue with the protocol, but rather our implementation. Thoughts ?
CC @bpfkorea/core
The text was updated successfully, but these errors were encountered: