Playing Around with Idena

in #blockchain3 years ago

I've been on a few panels discussing digital identity and the need for both radical transparency and absolute encrypted privacy. The future of our existence, in many ways, is digital and already here. Humans truly interacting together digitally requires a proof of humanity mechanism that gives you one and only one entry to the system (to avoid Sybil attacks).

Last night (on my birthday, no less), I was reading this paper: Who Watches the Watchmen? A Review of Subjective Approaches for Sybil-resistance in Proof of Personhood Protocols.

Here's a summary of some key points:

"Decentralized Identity Trilemma”: sybil resistance, self-sovereignty and privacy-preservation

Key Features:

  • Decentralization
  • Privacy preservation
  • Scalability

Applications:

  • UBI
  • Peer-to-Peer Governance
  • Public Goods Funding
  • Quadratic Voting and Quadratic Funding
  • Social Media
  • Airdrops
  • Decentralized Oracles
  • Peer-to-peer economy

A Taxonomy of Approaches:

  1. Reverse Turing Tests
  2. Pseudonym Parties
  3. Web of Trust
  4. Intersectional Identity
    1. sociality, intersectionality and redundancy
  5. Token Curated Registry
  6. Decentralized Autonomous Organizations

As I started reading the paper, I immediately thought about how DAOs could be used to prove identity, and then later on I saw this:

DAOs are highly likely to entail human decision-making in their functioning. Thus, their activities may be thought of as 'human entropy', observable on-chain, serving as a meaningful substrate for different aspects of Proof of Personhood solutions.

Then it got into some examples:

  1. Idena Network
  2. HumanityDAO (no longer running)
  3. Kleros
  4. Upala
  5. BrightID
  6. Duntier
  7. Equality Protocol

I've played around with BrightID before (which has some similarities to http://pseudonympairs.tech/ and some say borrowed from it), am really interested in some new solutions like https://www.keychain.org/ or Cardano's https://www.atalaprism.io/ but the one that caught my attention last night was Idena.

Idena

https://idena.io/

image.png

I was immediately intrigued by their process for proving humanity with "flips". you can see a video of how it works here (2x the speed to get through it faster):

You have to have an invite code to be added to the network (which you can get from the Telegram or Discord), but ideally get it from someone trustworthy as it seems there is a way to cancel an account before it's fully verified. To get onboard, download and sync up a full node wallet (which I did last night) and use your invite code. As luck would have it, the next validation event was this morning at 9:30am AST!

So I went through the whole ritual, and it only took me about ten minutes. I sort of live tweeted it as I went. You can see the proof my validation here. I've got a calendar item set for the next validation event, and I've already constructed three new flips (which is actually kind of fun). :)

For various reasons (see my other posts on this topic), I think something like a Universal Basic Income or Universal Resource Inheritance is coming, and it requires Sybil attack resistance. This is why digital identity and proof of individual humanity is so important and why it needs to be done autonomously via a blockchain. I don't want violent governments or corrupt central bankers running these programs.

Idena solves this in an interesting way. But instead of saying, "Hi, my digital name is 0x87edadba28c6ed511e530ff31e0e0fe6089d1842" we can use a much more friendly FIO Address like luke@stokes.

I mapped my Idna public address to my FIO Address which you can see as number 19 on the blockchain here:

image.png

Now keep in mind, I chose to expose my Idna identity and connect it to my real world identity. You don't have to do this, and it's not recommended if you live in a country where privacy is critical to your safety. Personally, I choose to live radically transparently, but so far I have the privilege to do so. If you do not, use an anonymous FIO Address.

This got me thinking, how do I prove, from the Idena side, that the private key for 0x87edadba28c6ed511e530ff31e0e0fe6089d1842 is the person who also controls the FIO Address luke@stokes?

With some help from the community, I found a rather convoluted way to do it, but it gave me ideas of what might be possible. Thanks to RealMahmoud#7286 in the Discord, I was pointed to his tools here: https://realmahmoud.github.io/IdenaDevTools/ and the RPC tool here: http://rpc.idena.io/

The basic idea was to put a message on chain that says "My Verified FIO Address is luke@stokes". After various approaches, it seemed the simplest way was to send a transaction with this in the payload. Here's how we did that:

  1. Using IdenaDevTools (or any string to hex converter), convert the message into hex, which gives us: 0x4d792056657269666965642046494f2041646472657373206973206c756b654073746f6b6573 for the message My Verified FIO Address is luke@stokes.
  2. Get your RPC private key so you can connect directly with your running local node. On my mac, that's in ~/Library/Application Support/Idena/node/datadir/api.key We'll call this "apikey12345" for this example.
  3. Have your Idna private key handy. We'll call his "myprivatekey123" for this example.
  4. Use curl or a similar tool to fire off this transaction to the network, but use your actual api key and private key and replace the "X" after nonce with a number:
    curl -X POST -H 'content-type:application/json;' http://localhost:9119 --data @- << EOF
    {
        "method": "dna_sendTransaction",
        "id":16,
        "params": [
        {
          "txType": 0,
          "from": "0x87edadba28c6ed511e530ff31e0e0fe6089d1842",
          "to": "0x87edadba28c6ed511e530ff31e0e0fe6089d1842",
          "amount": 0.01,
          "maxFee": 0.01,
          "tips": 0,
          "nonce": X,
          "epoch": 61,
          "payload": "0x4d792056657269666965642046494f2041646472657373206973206c756b654073746f6b6573",
          "key": "myprivatekey123"
        }
        ],
        "key": "apikey12345"
    }
    EOF
    
  5. If you get an error about the nonce, just increase the number. You may also have to adjust the epoch number to fit the epoch you're currently in which you can find from the block explorer.
  6. If you did things correctly, you'll get a result like so:
    {"jsonrpc":"2.0","id":16,"result":"0xed1bd440c33e6f7e0d84808daa39f22d92b9394b8a4d550f0123a413dfa624f2"}
    which you can verify on the block explorer like so: https://scan.idena.io/transaction/0xed1bd440c33e6f7e0d84808daa39f22d92b9394b8a4d550f0123a413dfa624f2
  7. Now you can take the raw transaction there: 0x0a540805103d221487edadba28c6ed511e530ff31e0e0fe6089d18422a072386f26fc1000032072386f26fc1000042264d792056657269666965642046494f2041646472657373206973206c756b654073746f6b657312413b43dee68a486f472d28df256e6bc728cbbb36b90c7654471131bd34c3d8c6f413c3175d94d019062bc54b273e3edd22c872b186f8b90b40cedaa2b158fd4d3300 and put it into the "Decode a RawTx" part of IdenaDevTools to get the details, including the payload which is 4d792056657269666965642046494f2041646472657373206973206c756b654073746f6b6573 and can be converted from hex to the string My Verified FIO Address is luke@stokes

Geeky, nerdy, and all that, sure, but it's an exciting step towards provable digital humanity. The first emails were sent via complicated SMTP commands and now we use nice interfaces like Gmail. Eventually, managing your digital identity and blockchain assets will be simple and intuitive and you can build reputation on your provable online identity that you control, not some government or corporation.

This is an example of the future, and Idena is an exciting tool. It's like a brick which can either build a house or break a window. We have to be very, very careful with this technology because if it gets into the wrong hands, we'll see totalitarian nightmares that make China's social credit system seem Libertarian. Blockchain data is forever. If you put yourself out there on chain, you are there forever.

Also, before you ask, I have not (as of the time of this writing) purchased any IDNA tokens. I do not yet see how the token itself will be valuable if most people will just sell them each month after earning them.

What do you think of digital identity solutions? Do you think they are important?

Sort:  

I am skeptical of any and all ID schemes. It smacks of authoritarian "papers please, comrade" in a sphere built to be free from such things.

UBI is a scam from the start. Governments creating or redistributing money doesn't create wealth, it concentrates power in the hands of government thugs. Trying to make such a process honest is a fool's errand.

Thanks for stating your opinion, but do you have a better plan for how humanity will deal with 40%-60% of all jobs going away due to automation and super intelligent AI? This won't be like the past because just about every job position will be vulnerable.

Some previous writings on the topic:

The entire point is this will be created no matter what. The key is ensuring we do it before governments using decentralized, self-sovereign blockchain solutions we control.

People have been proclaiming mass systemic unemployment due to technological advancement since the dawn of the industrial age. I hasn't happened. Labor is the most scarce of all factors of production, and tools multiply labor instead if replacing it. Labor is then free for new previously-unimagined ventures. There will most certainly be disruptions in the economy, but I haven't seen anything that seriously changes the trend.

If it weren't for the burdens imposed by taxation and cronyism, we would ne far wealthier than we are now. Technology isn't the threat, it is the people who promise to save us fron technology while monopolizing it for their own benefit.

Have you read Nick Bostrom's Superintelligence?

I do believe it's different this time.

It's definitely different this time. It takes an incredible lack of imagination to proclaim that it's going to be like the last industrial revolution.

IF it will be different this time, and I remain skeptical on that front, the answer will still lie in decentralization, not government UBI and digital IDs.

Who said anything about government?