-
Notifications
You must be signed in to change notification settings - Fork 49
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
[$5000 DNAs] Build Idena Ethereum Relay #426
Comments
Issue Status: 1. Open 2. Started 3. Submitted 4. Done This issue now has a funding of 0.001 ETH (0.2 USD @ $198.53/ETH) attached to it.
|
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Work has been started. These users each claimed they can complete the work by 1 year, 8 months ago. 1) henryfour has started work. Interesting idea, and I used to have a similar idea, the he challenge is mainly at the efficiency (space/time). Learn more on the Gitcoin Issue Details page. |
Hi guys, I've been working on this. Though, the functionality is still not ready for the Waiting for any thoughts! |
Hello, it's me again. I have a bit of a conundrum: in the task's description for the
Now, my question is: what exactly means "the signature of the transaction" in this context, perhaps the txHash? If so, how can I check that "the signature is valid", since I would need an Eth-Idena oracle to make sure the tx actually exists on Idena? And, if not, then I assume you meant the txHash signed by somebody... but wouldn't that also require 2/3 of the votes? |
@uivlis I don't think this is necessary. In the case of |
@busimus Thanks! Regarding the |
@uivlis Why does it not have an effect? Are you excluding Newbies from the list? They're included in the network size, so they count as "validated". I don't see anything about discrimination by status in the task description. |
No, no, I didn't mean to exclude anybody, it's just that I thought that "validated" meant Verified, but I see now that it just means "in the network", right? |
@uivlis Yes, Newbies are in the list of validated identities in the explorer, so I have no reason to think otherwise.
I may be missing some important piece of the puzzle. EDIT: I love thinking about something for hours, posting about it, and then minutes later realizing that I'm wrong. |
@uivlis There are two possible solutions for the Solution 1 (additional data is required for the smartcontract)
Solution 2 (Merkle proof)
|
Thanks, clear sailing now! However, would you also please point me to some Idena docs (others than the FAQ on the Idena website)? I'm not sure if there are such docs, but I haven't been able to find info about the data structure of a |
There aren't any docs, hardly any comments in the code as well. |
Got it. Thanks, again! |
Alright, here's another one. I really wanted to go with Solution 2, but isn't it a bit cumbersome for the user to provide the Merkle proof to the contract? I presume he would have to rebuild the entire tree structure (made of all inviters and invitees) in order to get the nodes of the path, perhaps you were thinking of a more streamlined approach? |
In my ongoing implementation, the
So, my implementation of the relay contract need to change to support multi- I estimate the amount of gas for each new identity when update states is nearly. |
Hey guys, I just finished implementing the You can check the complete implementation (and tests) of the relay here. Moving to implement the node changes! |
I have finished the 1st version of the eth-relay contract along with a short description of the solution. |
Coming back with some gas cost tests for the batched initialization of the relay:
|
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Work for 0.001 ETH (0.24 USD @ $236.1/ETH) has been submitted by: @midenaio please take a look at the submitted work:
|
idena node improvement was basically completed, advises and fixes are welcome. |
Detailed documentation has been updated. |
The smart contract has been improved to support thousands of identities in both initialization and updating operations. It has been deployed to the rinkeby testnet (0x323ebbe7f8df0560707fdf7b503bab68a6e1b0a3), and initialized with 2468 identities (same as epoch47). Please refer to the main document and deploy document for more information. |
Prize Title
Prize Bounty
Challenge Description
We expect to see two parts of the project that can be implemented by different hackers in collaboration:
Background
Idena is a novel way to formalize people on the blockchain. It does not collect or store personally identifiable information. Idena proves the humanness and uniqueness of its participants by running an AI-hard Turing test at the same time for everyone around the globe. The Idena blockchain is driven by proof-of-person consensus: Every node is linked to a cryptoidentity, one single person with equal voting power.
The Idena validated participants registry is a list of addresses with proven semi-uniqueness of their owners (see examples in the Idena blockchain explorer). Each Idena participant can own one valid cryptoidentity address, it is difficult to have two or more.
The uniqueness of participants is proven by the fact that they provide answers for flip-puzzles synchronously. A single person is not able to validate herself multiple times because of a very limited timeframe for submission of the answers. The bigger the network is, the less frequently the validation sessions happen. The validation status of a participant is not forever. It expires when the next epoch starts. Participants should prolong their validation status for every new epoch. Read more in the Idena website FAQ section.
Possible implementation
The Idena cryptoidentity address is fully compatible with the Ethereum address. In order to use Idena cryptoidentities in the Ethereum blockchain, it is necessary to create a protocol to relay the list of Idena’s cryptoidentities into an Ethereum smart contract without trusted parties.
The relay can be done in two ways:
A. Trusted oracle (not considered)
A special agent/organization authorized to record information to a special smart contract on Ethereum acts as a trusted Oracle. Whenever the cryptoidentity list changes, the trusted Oracle updates the list of valid identities:
B. Trustless Idena Ethereum Relay
A possible alternative solution does not imply a trusted Oracle (or numerous Oracles).
Initially, an Idena Ethereum Relay smart contract has to be created, in which the current list of Idena validated identities’ addresses are included by the contract developer. This initial list of addresses is the genesis of the registry and is manually verified by other participants.
Anyone in the Ethereum network can change the identity list, while providing proof of correctness of the change to this contract:
Availability assumption
The mechanism will work only if a large share of participants of the old registry keep the nodes up and running after the validation and provide their signatures for the new state.
Possible problems: Relay costs
Possible optimization: Only the difference between the new and the old lists are relayed to the contract.
Possible optimization:
As a list of signatories, a committee of a smaller size can be formed in a deterministic manner.
Using BLS signatures aggregation
Possible solution: socialization of transaction costs in the business models of participants paying for the relay of Idena identity registry changes.
Submission Requirements
Submission Deadline
Judging Criteria
Winner Announcement Date
Resources
The text was updated successfully, but these errors were encountered: