Idena integration proposal #366
Replies: 5 comments
-
I'm still waiting for the verification as I have missed the last one on 1 Feb but I doubt if this flip is secured enough for proof of person. It seems this can be easily solved by bot with a trained CNN model. |
Beta Was this translation helpful? Give feedback.
-
@kwunyeung I think you can read more about why Flips are secured here. From what I can see it's pretty secure against AI attacks since computers have no common sense and cannot understand the connection between images. Also, flips are created brand new each validation round. |
Beta Was this translation helpful? Give feedback.
-
You didn't miss it! It's on friday 14:30 CET! |
Beta Was this translation helpful? Give feedback.
-
It will be 9:30pm here. I'm not sure if I can be available for the verification. 😅 |
Beta Was this translation helpful? Give feedback.
-
Yeah, they even have a FAQ about timing on their site: https://idena.io/?view=faq#faq-validation-2 |
Beta Was this translation helpful? Give feedback.
-
Summary
This issue is strictly related to the verification of a Desmos profile thought the usage of external services that's described inside #240. Particularly, it describes how we could integrate Idena, a Proof-of-Person blockchain to allow users certifying they are not bots.
Context
The last week I accidentally stepped on Twitter user "Nagato" tweet which contained a list of Cosmos-based projects. Of all the ones listed, one caught my attention in particular: Idena.
Stating from their website, we can see the following:
Digging deeper into this, I found that they created a new kind of CAPTCHA, called Flip. This consists of finding what it seems to be the most correct set of images between two given images, based on the fact that those sets tell each one a story:
Also, they avoid any Sybil attack by making the verification process completely synchronous:
After reading all of this, I thought that this project is very promising and might solve us a lot of problems as well. Those include, but are not limited to:
So, after this realization, I started searching for a documentation of the project, and I got in contact with one of the developers. Here is everything that I discovered.
Working with Idena
Running a node
To run a node, the easiest way to do this is to simply download their node client. This is used to sync with the chain as well as to complete the validation ceremony that happens every once in a while. You can get the node software here.
Querying the chain
Once you run a node, it will generate an API key that can be used to query the chain itself. The API key is located inside the following file:
~/.config/Idena/node/datadir/api.key
~/Library/Application Support/Idena/node/datadir/api.key
Such key can then be used to query the chain state using their RPC.
Note. You have to use
localhost:9119
as the node address, instead of the defaultlocalhost:9009
.The most interesting query is the one that allows you to query the profile of different users, and see their current status. This is
called
Get identity
and is placed under theDna API
section. Here is an example of response of such query:Get identity response
Inside such response, the most interesting field is of course the
state
one. This can assume different values, ranging fromUndefined
toHuman
. In order to comprehend the different meanings you need to read the doc. In short,Newbie
,Verified
andHuman
all guarantee that you are most likely a human.Implementation proposal
What I propose we do is to implement a connection between a Desmos profile and an Idena profile. Ideally, we want the process to be composed of the following steps:
Once the pairing is complete, the clients will be able to get the connected Idena profile from Desmos, and then verify the current status through the usage of the Idena APIs. Ideally, we want to have an Idena node as well so that apps can use that to query the chain state instead of having to create their own.
Conclusion
I think this chain might solve us a lot of problems, and integrating it with Desmos might be really interesting. I also think that the integration could be done using CosmWASM.
This process could also be particularly useful to apply also to validators, requiring them to create a Desmos profile and verify the humanity of it through Idena. If we can then somehow display this inside BigDipper, it might make it easier for people to choose between validators when deciding to who delegate some tokens.
What do you guys think about all of this? @bragaz @kwunyeung
Beta Was this translation helpful? Give feedback.
All reactions