2015 - Reddheads newsletter 9: Redd-ID View this email in your browser Hey everyone! Reddibrek asked me to fill in as newsletter author this week, and so I thought I could take the opportunity to share a little bit about the core piece of the Social X project left in the pipeline. As development work continues and starts to wrap up on the release of other portions of Social X (such as the Browser Wallet, HD Core Wallets, Electrum, and so on), we are beginning to turn our attention towards the keystone of the Social X project: Reddcoin Social ID, or Redd-ID for short.



I hope that those of you interested in the Reddcoin project will find this newsletter informative and useful. It has really been fun to write, and I think that it has helped me personally to better solidify the goals of the project into objectives and rationales. I would like to thank Laudney for his collaboration in writing this letter. Apologies to readers for the delayed release, but having a few extra days gave Laudney and I enough time to ensure that my writing on the details is thorough and correct. Thanks also to Reddibrek for helping format and distribute this letter.



Have a great day and enjoy the read! Mike / bigreddmachine Redd-ID - background First, what is already publicly available about Redd-ID? Here are the core details revealed in Laudney's announcement of Social X back in September: Redd-ID will be a blockchain level protocol.

It will allow users to register a username and associate it with a specific Reddcoin address. Then, someone could, for example, send RDD to a name like "bigreddmachine" instead of "R3dDco1nAdD2355bL4hBLaHY4da3tceTc", for example.

Users can register other data, such as an email address, to be associated with their Redd-ID.

Because all registrations will be on the blockchain, they will be part of a public, decentralized, tamper-proof record available to everyone.

Registration Fees will be based on the username -- You can probably expect small names like "Babe" and "Jon" (that are easier to remember and write) will be more expensive to register than longer names like "GeorgeHermanRuthJr" or "JonathanPatenaude". These fees will go to stakers in addition to regular interest earnings, and thus stakers could sporadically win disproportionately large rewards. In terms of details, that's admittedly not much. We've kept our public discussions of the technology somewhat vague because we knew that we had to complete other portions of the project before development of Redd-ID would really make any sense. So today, lets take a little closer look into how this will work. A Deeper Look at Redd-ID 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? (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. (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 "bigreddmachine", reddit account "/u/bigreddmachine", and email "mike@reddcoin.com" 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/bigreddmachine" is actually "/u/bigreddmachine", part 3 becomes important. (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. Final Thoughts And so, that leaves us with three basic goals left ahead for us to implement to introduce "version 1.0" so-to-speak of 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. "Many thanks to bigreddmachine for such an interesting read. If you enjoyed Mike's article come look him up on Reddcointalk and tell him so... Maybe he'll be encouraged to write another newsletter in the future!"