To begin, we should start with a basic overview of the core points of Redd-ID that we believe will make it stand out among other solutions in development. It should go without saying that Redd-ID is a decentralized solution, immediately helping it stand out from the most popular tipping solutions available today. We will achieve this by creating Redd-ID to have three primary parts: (1) username registration; (2) connecting that username to twitter, facebook, reddit, etc; (3) verification of those connected accounts. How will this work?
Part 1: Username Registration
For those familiar with Namecoin, this portion of the project will sound familiar. Username registration will be done at the blockchain level, essentially adding additional information fields into transactions stored within a block. As a result, any Reddcoin wallet client will be able to send Reddcoins to a person’s username, rather than their address, greatly simplifying tipping and payments to those that you know. However, in and of itself this only makes it slightly easier for someone to share their address with someone else, and does nothing to confirm that “bigreddmachine” on reddit or elsewhere is the same person as “bigreddmachine” on the blockchain. That’s where parts 2 and 3 come into play.
Part 2: Connecting a Redd-ID Username to Social Media accounts
In addition to the username registration field, people will be able to register any number of other social media accounts on the blockchain. For example, I might register the Redd-ID name “cryptognasher”, reddit account “/u/cryptognasher”, and email “[email protected]” all to the same Reddcoin address. This immediately associates my Redd-ID with my other accounts. However, these additional fields have a disadvantage: there is no way to verify that I actually own any of these accounts at the blockchain level. In fact, there is no way to prevent someone else from registering my reddit name to their own address in hopes of fooling someone into sending them Reddcoins instead of me. Moreover, any number of users could register my reddit name, as there is no way to limit registrations other than the Redd-ID itself to just one person. To prevent abusers from registering unlimited numbers, registration fees become important. To allow people to confidently know which person registered as “/u/cryptognasher” is actually “/u/cryptognasher”, part 3 becomes important.
Part 3: Verification of Connected Social Media Accounts
We will use defined key pairs, stored in the blockchain, to prove social media account ownership. For those that are familiar with Keybase, this will work in a very similar manner. This will enable cryptographically sound public proofs of ownership of various accounts. The public (and associated secret private) key associated with a Redd-ID will be used in the same way a Keybase public/private key pair is used to sign and verify a user’s social media identities. For those of you familiar with OneName, a Namecoin-based identity registration system, our use of public key cryptography strongly differentiates Redd-ID from their use of plain-text identity verifications.
Some Thoughts on Implementing Redd-ID
It is important to note: Account verification is performed outside of the protocol itself, interfacing with the protocol-level parts described in (1) and (2) to check public proofs of identity at the client-level. What does this mean? Simply, your wallet (Qt, Browser Extension, Android, etc.) will be able to poll the blockchain for a registered username, then use the Keybase-styled public key cryptographic proofs to check whether a registered name is verifiably owned by the person who registered that name. This means that even on a wallet that depends on a third party for full blockchain access (such as an Electrum wallet like the Browser Extension), an attacker would not be able to trick a user into thinking that someone is someone that they are not. At worst, an attacker might be able to prevent verification by blocking information, but a user cannot be tricked into sending coins to an invalid identity. This is no different in principal than how Electrum clients work today for checking balances and sending transactions.
With the full implementation of Redd-ID, developers can begin to imagine ways to incorporate username registration for all kinds of services. Beyond just decentralized tipping and public proofs of identity, Redd-ID can enable new levels of username integration into games, forums, and any number of other services. Charities and organizations can use the service to securely manage fundraising campaigns, and merchants can envision numerous promotional and sales possibilities. Furthermore, as new social media services are invented and popularized, these can easily be added to the Redd-ID system by virtue of the three steps outlined above.
We also have concluded that in terms of importance, we are going to aim to implement username authentication into the most useful wallets first. In other words, our plan presently is to ensure authentication works correctly in the Browser wallet, followed by mobile wallets, and lastly in the Core Qt wallet. This fits in with our philosophy that the Browser and Mobile wallets will function as the every day use wallets, and the Core wallet will serve primarily as a way to support the health of the Reddcoin network through staking. This priority order may change as we move forward, but it is presently our plan for what makes the most sense.
And so, that leaves us with three basic goals left ahead for us to implement to introduce Redd-ID:
Finish up Browser and HD Core Wallets to make wallet use and backup safe, simple, and as painless as possible.
Implement Redd-ID so people can register Reddcoin and social media usernames.
Implement username verification into the Browser Wallet and Core Wallet so registered social media usernames are provable.
In theory, these three functions can all be done in parallel with one another. Our personal belief is that they should more-or-less follow the order above, as this will provide the safest and most useful product for you, the users.
Just as a final note, there are many projects aiming to solve the problem of how best to enable micro-transactions and store public identities. We believe that our solution, a decentralized database with cryptographic proofs of identity, stands out from other competing projects. We still have much work ahead, but we also truly want to see our goals come to fruition. Furthermore, we believe that by placing development under one roof, so to speak, we will be better able to more seamlessly develop a comprehensive solution than would be possible by multiple third-party projects. There is much work to be done, and we will not be completing the project this week or even this month, but we remain committed to our goals.