IDCoins : A Web of Trust Blockchain for Identity and Reputation

 

David V Duccini

A Project of the Strength in Numbers Foundation

thelittleduke@idcoins.org

www.idcoins.org

 

 

Abstract.  We propose a system based on a Bitcoin like cryptocurrency model whereby participants use Proofs of Identity tests in order to have certain digital identity elements linked to public key cryptographic keys such as ECC based PGP in order to be entered into a public ledger system known as a blockchain.  We contemplate a nominal reward system for passing Proofs of Identity such as responding to an encrypted email and posting their IDCoin address on their social media networks that would demonstrate positive control of a given account.   Participants would be encouraged to perform key-signing for anyone known to them in order to build a Web of Trust. (WoT).  The rewards (aka tokens or simply “coins”) would then be eligible to be “spent” on reputational events which would also be entered into the blockchain.  Reputational Events could be anything from signing another members public key to expressing an opinion about another member of the WoT to rating a transaction or the IP address of an email server to real world things such geolocations or the license plates of automobiles.

 

 

1.    Introduction

 

Introduce low-value of anonymous feedback, normative behavior, and the value of identity and what it means to witness and attest.

Cite defamation case of Yelp! [1]

Discuss the idea that “Trust” is based on Intent and Competence, with the role of Reputation acting as the stand in for Competence.

(cite strong value of “word of mouth” advertising)

Introduce nomenclature of Web of Trust “WoT” (define) as contemplated by Pretty Good Privacy (cite PGP) (introduce problems with “acknowledgement of identity” not implying “endorsement of character”)

Introduce the need to revoke keys and endorsements -- (cite SSL cert issues)(cite use case of disavowing a bad actor)(cite lost private key)

Discuss value of having Signed Keys should be stored as detached objects with validity periods (esp expiration dates) that could potentially automatically disappear from the chain (cite Namecoin object expiration)

(Remind that) Key Signing itself is a reputational event.  Even if unknown actor signs a key, the key holder could negatively score the event LOW, in effect disavowing it (introduce Sybil)

(Introduce GAMIFICATION of encryption technology as uptake path by masses)(reward mechanisms for using encryption)

Introduce concept that Key Signing could be as easy as scanning a QR-CODE from a feature/smart phone or from one printed on a business card.  The event itself could be a form of coin exchange in that an individual could express a sentiment about the signing itself as means of expressing ENDORSEMENT.  

Key signing could include a nominal Proof of Control, like a BitMessage exchange that demonstrates the individual has access to the private key.  A level of confidence in attestation, "this keyholder is known by me and i have confirmed they have control of the private key on this date/time" - in the same way the keyserver vets keys before accepting.

You could sign a key and simply state that you are net-neutral on the individual as they have given you neither reason to trust or distrust.  Close friends could enjoy a stronger affinity by rating the individual with a whole coin and then some magnitude to express how well you’d like to endorse the individual, say based on number of years that you’ve known them.  Some simple examples:

  1. Bob signs Alice’s public address key and sends 1 coin to it and 10 coins as TXFEE to represent the 10 years he has known her.
  2. Bob signs Alice’s public address key and sends 10 coins to it and 1 coin as a TXFEE to reward Alice with coins for her to share and 1 coin to represent having minimally known her.

(Rationale for moving bulk of coins via TXFEE as reward for miners (proofs of work) - the coins are meant to have nominal value)

(prospective) As we hope to demonstrate, the underlying concept of sending a significant number of coins as the TXFEE is a signaling mechanism to the community -- a public declaration.  Transactions with higher fee’s provided in theory are more significant events.  By using the TXFEE component of a cryptocurrency send operation we are providing a larger benefit to the community as opposed to enriching specific actors (normal use case)

 

Posit “Making Neutral safe again”

 The problem of grade inflation in Ebay & Amazon et al

(reward mechanisms for participation in reputation economy)(score keepers)(leaderboards)(wot size)(wot mininum path lengths)

Proof of Stake (aka “seignorage” ) as a model to generate additional coins (TBD minimum hold time)

Proof of Work as model to capture coins from TXFEEs and to keep the blockchain secure

(block emit time can be as fast as possible to permit tracking fast changing reputational events such as negatively tagging a spam-emitting IP address)

(move to implementation ideas) In theory the Proof of Work reward could be based on a P2P pool with the entire TXFEE reward being split up among all online participating wallets  (?scalable?)

See http://bit.ly/2GiveCoin for practical implementation

No Zero Transaction Blocks

Zero transaction blocks would be rejected by the network since there is no reward for minting empty blocks.  Miners could determine based on the available TXFEEs available in a potential block to power up and solve the POW challenge, encouraging opportunistic mining.  The system could be manipulated by having a miner simply send coins between their own accounts, however with a minimum TXFEE and no guarantee that they could solve the POW difficulty it does not offer a compelling reason to do so.

See http://bit.ly/2GiveCoin for practical implementation

Stake or Die to encourage continued engagement (wallet as miner)

Coins could have a Time To Live (TTL) (use or lose) to minimize the value of hoarding -- this TTL could be reset upon a transfer to encourage exchange (velocity in money supply) (see Reddcoin PoSV implementation) . Staking essentially resets the clock.

 

 

The value of a normalized scale for reputational events

Normalized scale for reputational events of .00000001…1.00000000 with TXFEE representing magnitude of feedback, examples include:

  1. NEUTRAL = send .50000000 coins to an address that represents an identity or an event and 1 coin as TXFEE
  2. POSITIVE = .50000001 - 1.00000000 to an address and 1..N coins as TXFEE to represent magnitude -- a “5 Star Rating” could be 1 COIN / 5 TXFEE
  3. NEGATIVE = .00000001 - .49999999 to an address and 1..N coins as TXFEE to represent magnitude -- really unhappy?  dust the address and send 100 COINS as a TXFEE :-)

The normalized scale can be represented in any quantitative ranking system.  For example the classic 5-star system would use baseline numbers like  .1, .3, .5, .7, .9 coins, with any number of whole coins sent at TXFEEs to represent sentiment from NOMINAL to VERY/COMPLETELY.  This could manifest how certain a reviewer was about an event.

If the nominal event is net-neutral (as in “my expectations were satisfied”) -- .5 to the identity and 1 coin to the miners - “my drive through experience at this particular Starbucks was on par with what I would expect”

Suggested IDCoins Reputational Event Sentiment Scale & Costs

Sentiment

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

TXFEE

5

4

3

2

1

2

3

4

5

The normalized scale can be presented to an end user in a variety of formats, including a classic 5-point scale with 3 representing neutral; 5=Very Satisfied, 4=Satisfied, 3=Expectations Met, 2=Unsatisfied, 1=Very Unsatisfied, 0=”I hate you and I want my records back”

It could be presented as a “letter grade” scale such as A-F with varying degrees of +/- including a “no-credit” score.  The letter scale could be re-calibrated from the typical 90/80/70/60 to put the letter C at 50 to represent “average”.

[give to get concept]

A given address could be monitored and rewarded just for leaving feedback -- a vendor could offer a reward automatically by sending coins back to a feedback provider since the public addresses are fully disclosed.  

 

Reputation is not a static quantity – can be plotted over time and in different contexts (think what happens when a car or product is recalled)

Need to disavow, repudiation, for remediation and redemption and to be forgot (spelling mistakes?  ability to cure breach?  relationships and events have lifecycles?  human right to be forgot/records purged?)

(Introduce PROVENANCE) Coin Flow can be used to detect ASTROTURFING as well as SYBILs  (all coin transactions can be checked for INPUTS and OUTPUTS.  In theory it should be straightforward to detect self-dealing reputational events by looking at the source of coins.  This is even true in the case of an exchange or coins acquired from an ANONYMOUS source.   Low confidence should be placed on any reputation events or claims made by anonymous sources.

Coin Age as factor in reputation events -- newer coins could represent a lower confidence in event attestation -- so called value of “old money votes”

(Reputational events could be stored on a side chain that leveraged the Garbage Collection concept, whereas the Primary IDCoin chain could be leveraged just for key storage and key signing objects)

 

  1. Proofs of Identity
  1. Proof of Human Agent
  1. PGP/ECC key creation linked to email address and uploaded to IDSERVER

Note: The email address could be hashed instead of providing it in clear text to avoid having it disclosed.  An email address could be verified by hashing it and looking up the hash in the directory/blockchain.

  1. IDSERVER sends encrypted email to registrant
  2. Registrant must demonstrate decryption and ability to follow instructions contained within
  1. Nominal “click-back” to acknowledge -- registrant could be taken to a CAPTCHA challenge / maze to satisfy Human Agent tests.
  2. Reply to message thread and satisfy simple challenge
  1. Proof of Control
  1. IDSERVER can posit a random string (or just use the IDCoin) challenge that a Human Agent would have to re-post on whatever social network or website they wanted to take credit for
  2. Websites could leverage a META tag within the content or a Well Known Filename (such as idcoin.pgp) within the site.  Website could also leverage the META tag to include the certificate filename
  3. OATH based logins seem overly invasive

  1. Sybil Island
  1. Proofs of Identity should be “just costly enough” in terms of required inputs which are not necessarily monetary (e.g. creating a PGP/GPG key, uploading key, accepting encrypted email to same et al)
  2. Even for non-human actors like System Level Accounts (aka roles. like hostmaster@domainname)
  3. The Web of Trust illuminates self-serving feedback; cryptocurrency coinflows can be easily tracked by tracing inputs to outputs
  4. All bridges lead to Sybil

  1. Web of Trust and the Role and Value of Mutual (Counterparty) Key-Signing

  1. Key signing signifies a confirmation of identity -- not necessarily an endorsement of character
  2. Bi-directional key-signing or mutual key-signing is important to prevent by-stander or “drive-by” key signing as it represents an acknowledgement of the event
  1. Sybil can sign as many keys as she wants but that does not mean the relationship is based on actual events
  2. The system could feature an “opt-in” approach that required the signed key to be acknowledged by the recipient before being entered into the chain
  1. Contemplating a feature/smart-phone app that enables scanning QR-Codes
  2. Key signing as means of testing group participation
  1. School, employer, social club (think Rotary International)
  2. Time based signatures could demonstrate attendance or membership

  1. Reputational Events
  1. Upon Human Identities
  2. Upon Things
  1. Virtual Assets such as SMTP servers
  2. Real World Assets like automobile license plates
  1. Upon Places
  1. Geotagging
  1. Upon Transactions
  1. Blockchain agnostic / use TXID & ChainName
  1. The need for remediation and redemption and to be forgot

  1. Reputation Transfer
  1. Brands can be created, bought and sold
  2. A company may have a portfolio of reputations

  1. Universal Non Unique Name Spaces
  1. Common Names
  1. Human Agents

Will all the real Bob Smith’s please stand up?

  1. Trademarks

         Names have modes of use -- eg, ‘Dove’ soap & chocolate bars

  1. Removes incentive to cybersquatting (Namecoin suffers from this)

  1. Prediction Markets
  1. Positively identified assets, where Proof of Control tests have been satisfied can build confidence
  2. Reputation Events can build confidence when viewed through the Web of Trust
  1. Degrees of separation matter when considering the veracity of a claim of identity

  1. Garbage Collection
  1. A predictable hard fork mechanism by recreation of the Genesis Block
  2. Tally Process to coalesce outputs to set new basis
  3. Mark and Sweep GC to remove BAN-SCORE elements or elements marked for expiry

  1. Use Cases
  1. Digital Identity
  1. OpenID / OAuth
  2. BitPassport (link to Chris Ellis project)
  3. Two Factor Auth -- Prove to a site that you can send yourself or an entity a specific number of coins as part of a proof of identity provider challenge
  4. A digital lock could challenge a random fractional number of coins to be sent in order to gain entry
  5. A ticket sale could exist as a time-bound signature on your public key

A ticket sale to say a "concert" could exist simply as a time-bound signature by the seller on your public key.

Thus entitling the identity holder to entry to a venue through a simple "proof of identity" challenge.

You show up at the club, the ticket scanner requests that you sign some random hash value, and then once if verifies that your public key did indeed sign it, scan your key-chain to see if you have the time-bound signature token that would permit entry.

  1. Digital Notary
  1. Signatures are reputational events
  2. Any party of stature can act as signatory on another person or event
  3. A signature is a limited endorsement and can act as a medallion / permit
  4. A stand in for a “letter of credit”

  1. Digital Timestamping
  1. Proof of Existence - hash of thing entered in blockchain stakes precedence

  1. Social Network Reputation
  1. Overlayed on/under the Web of Trust for context
  2. Membership based identitfication (through use of Digital Notary)

  1. Node Reputation
  1. Trusted Services Provider
  2. IP address / anti-spam / anti-ddos

  1. Group Participation
  1. Social Group Participation

Proof of Membership (think Lions or Rotary International acting as a Digital Notary to attest to your membership)

  1. Academic Institution

Proof of Attendence

Proof of Transcript

  1. Employment / CV / Resume Verification

Proof of Employment

  1. Voting
  1. Open Transaction / Reputational Event
  2. Closed Group / Membership Limited

Network would reject transaction if sender was not part of a group

Network could reject if vote was limited to once per participant

(I’ve recently been engaged by Rosa Lee & Gabe Higgins to explore the potential for leveraging the IDCoins platform in support of their Clearvoter project that they are collaborating with Lucas Overby on. From those conversations we have added additional use cases to our model that would extend our concept of a “reputational event” to a potentially time & group bound voting!

The basic model would leverage the Web of Trust to verify that a sender's address had been signed by a given group or organization in order to accept its transactional vote on the chain. Basically what it means for Clearvoter is you could have an election judge essentially certify your IDCoin as being valid in a particular jurisdiction which would then grant it privileges to send IDCoins to specific restricted events. It’s a great idea and has broad application, where you could essentially host everything from a member based community service groups voting on projects to having corporations hold shareholder votes on the IDCoin chain. What's really cool about this is you could create an object on the chain that specified one or more digital signatories that would have to be present on your IDCoin -- which means if you do not have a stake in an outcome, the network could prevent you from voting on an item.)

        10.7.3 Anonymous Voting

Some additional design notes on the support for anonymity in voting...

And individual could provide a Proof of Identity in an out-of-band manner to an election judge and then generate a new IDCoin public key address to have the election judge sign. The judge could then send a token to that address that could then also be used for the express purposes of casting a vote on a particular reputational event.

This could have the double assurance benefit that the individual voter was approved (by showing the signature of the election judge in their keyring) -- as well as using the same input token to cast the vote -- thus controlling the source of the voter as well as total amount permitted to be use to represent the sentiment.  This in effect supports a “free” vote for the individual since they would not be required to generate or obtain potentially identifying tokens to their primary identity.  Any residual coins left could simply be sent back to the election judge.  For example:

  1. Individual provides proof of identity on main IDCoin address and generates a new Public Key Address
  2. Election Judge confirms primary identity meets rule test as a legitimate stakeholder according to the rules for votable reputational event, signs the new public key and sends 6 Coins to the new address
  3. Individual then ‘votes’ on the particular address that represents the votable reputational event how they see fit -- with up to 1 coin representing sentiment and up to 5 coins representing magnitude (note: could be just 2 coins as well -- whatever scale they want to use -- could also be spread across multiple events -- as in a way to test to see how people would prioritize their votes to support instant run off election balloting)
  4. The balance of the coins could be returned to the election judge, or to another address (for the public good)

Note: An “Election Judge” does not have to be a human actor and could just as easily be a Distributed Autonomous Organization

  1. Financial Creditworthiness
  1. Microfinance (think Kiva.org)
  2. Peer based attestation (think Dun & Bradstreet)
  3. Holistic Roll-up Scoring (think FICO)

A. BNF Grammar for Reputational Events

B. Anonymity in a Web of Trust based System

NOTES from FB convo with David Mondrus and Troy Benjegerdes

DD:

I agree that we need systems that are "80/20" optimal -- with the 20 reserved for supporting anonymity.

In IDCoins, you would have to start by generating an Identity but not passing any proofs of identity tests -- acquire coins that were proof of stake generated by an exchange that sold them to you without a lot of identification requirements.

The WoT would (and should) be naturally VERY suspicious of any reputational claims you make or support.

In fact with the right default filter set, normal users would not even have to see that you exist or what you think.

It should be incredibly hard to obtain key signatures from other people, because they would in effect be a weak link to re-identify you...

Of course other anonymous entities could sign each others keys, but the minute someone in your anon wot makes the mistake of broaching the ID disclosed WoT you're at risk...

The reference implementation I'm designing basically rolls any and all coins up from any reputational events you stake back into your primary id.  All spends will send the remainder back to your primary account.

This system is going to make it REALLY hard for Sybil to play…

C. Model User Interface Proposal(s)

Ideally using a Google Chrome browser plugin, this would permit the scoring of ANY web-based content with a URL

Feature / Smartphone implementation to permit key-signing as well as geo-location tagging of reputational events.  Possibly allow use of camera / OCR / recognition.


References


[1] http://www.theatlantic.com/technology/archive/2014/01/court-rules-that-yelp-must-unmask-the-identities-of-seven-anonymous-reviewers/282959/?single_page=true