Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: joecascio on March 25, 2013, 03:40:31 PM



Title: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: joecascio on March 25, 2013, 03:40:31 PM
I would very much like the community's input on this idea. I just published it on my blog to release it into the public domain.

Collateralized Identity – Using bitcoin to suppress sockpuppets http://joecascio.net/joecblog/2013/03/25/collateralized-identity-using-bitcoin-to-suppress-sockpuppets/ (http://joecascio.net/joecblog/2013/03/25/collateralized-identity-using-bitcoin-to-suppress-sockpuppets/)


Is there prior art?
Can you find any weaknesses or possible exploits?
What's your opinion of its feasibility?
Any other thoughts you have on the idea.

Thanks.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: Come-from-Beyond on March 25, 2013, 03:56:23 PM
The idea is not so bad. But blockchain grows very fast and its usage is limited to hi-end computers, websites with 5 USD per month hosting won't be able to use it.

Btw, TL;DR version will help a lot. I bet only a few ppl managed to read the whole text.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: joecascio on March 25, 2013, 04:01:40 PM
The idea is not so bad. But blockchain grows very fast and its usage is limited to hi-end computers, websites with 5 USD per month hosting won't be able to use it.

Btw, TL;DR version will help a lot. I bet only a few ppl managed to read the whole text.

Thanks, I will move the Summary to the top.

Re: blockchain, I was thinking a site could simply query blockchain.info.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: misterbigg on March 25, 2013, 04:04:35 PM
Can you find any weaknesses or possible exploits?

It's an interesting idea but what prevents the site operator from extorting users, threatening them with the loss of their bond?


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: CIYAM on March 25, 2013, 04:10:53 PM
It's an interesting idea but what prevents the site operator from extorting users, threatening them with the loss of their bond?

Maybe if combined with escrow this could work better (of course you need to be able to trust the escrow)?


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: justusranvier on March 25, 2013, 04:14:17 PM
I proposed a similar idea as a general solution to the shortcomings of wot-style rating systems a little over a week ago.

https://bitcointalk.org/index.php?topic=153221.msg1628630#msg1628630 (https://bitcointalk.org/index.php?topic=153221.msg1628630#msg1628630)


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: CIYAM on March 25, 2013, 04:18:00 PM
That is an interesting idea and I think one that is worth thrashing out further.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: remotemass on March 25, 2013, 04:28:58 PM
What about simply sending satoshis when registering to the sites? When registering, the sites could say how many satoshis to send to tie it even more.
Also number of tips received on that user bitcoin address could be used to calculate a reputation value.
You could even use a formula for that reputation calculation that would weight the tippers' tips, making them as much more more significant as more reputation the tippers had.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: joecascio on March 25, 2013, 06:08:00 PM
Can you find any weaknesses or possible exploits?

It's an interesting idea but what prevents the site operator from extorting users, threatening them with the loss of their bond?


See section "Collateral Ownership". The owner always retains the bitcoins.

Collateral ownership
An important point to note here is that the money pledged as collateral never leaves the user’s possession. She doesn’t have to worry that a site she’s pledged it to will lose or abscond with it, and she doesn’t have to trust any third party, like an escrow service, to hold it or report truthfully about it. It’s as though she locked some amount of cash in a glass jar in front of the town hall. Only she has the key to get it out, but it’s there for anyone to see and verify.

If she decides that she really needs the money pledged to that particular CID, it is her decision and her decision only whether or not to give up the value-time reputation she’s built up in it by spending the bitcoin. In reality, sites accepting CIDs as membership IDs would have their own way of accumulating a “trust balance” for an ID. If a person owning a CID behaves responsibly for a certain amount of time, or contributes otherwise the site’s community, the site may cease to check the bitcoin balance and rely on their own history with her.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: jgarzik on March 25, 2013, 06:11:52 PM
Not a new idea.  In general, you need to provably attach some sort of cost associated with an identity.  That cost could be a monetary cost (bitcoins or dollars), a proof of work, or something else.



Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: joecascio on March 25, 2013, 06:20:40 PM
There may be a better word to use than collateral. The purpose of associating a bitcoin value with the identity is to defeat sockpuppets by making it expensive or time-consuming to create identities. It's not intended to be a forfeit for a failure to perform.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: joecascio on March 25, 2013, 06:25:49 PM
Not a new idea.  In general, you need to provably attach some sort of cost associated with an identity.  That cost could be a monetary cost (bitcoins or dollars), a proof of work, or something else.



If it's not a new idea, then at least it can't be patented, which would suck mightily. One of my motivations for publishing this was to keep someone from patenting it.

Jeff, Regardless of its novelty, do you think it's practical to implement and would it be a worthwhile thing to do?



Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: joecascio on March 25, 2013, 06:30:31 PM
That is an interesting idea and I think one that is worth thrashing out further.


Can you see any holes in it? That is, ways it could be circumvented or defeated so bad actors could create many such identities without pledging bitcoins for each one for a period of time?



Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: herzmeister on March 25, 2013, 06:30:48 PM
this paper is back from 2002:

Anonymous Identity and Trust for Peer-to-Peer Networks

In this paper, we present a new way of establishing independently-verifiable identities, based on the notion of computationally expensive key generation. We then describe a fully decentralized framework where these identities can be used to assign blame and to construct auditable blacklists of cheaters.


http://www.cs.cmu.edu/~tom7/papers/peer.pdf


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: joecascio on March 25, 2013, 06:47:45 PM
this paper is back from 2002:

Anonymous Identity and Trust for Peer-to-Peer Networks

In this paper, we present a new way of establishing independently-verifiable identities, based on the notion of computationally expensive key generation. We then describe a fully decentralized framework where these identities can be used to assign blame and to construct auditable blacklists of cheaters.


http://www.cs.cmu.edu/~tom7/papers/peer.pdf

Yes, I read that paper a few months ago and actually traded a couple of emails with the author. I thought it was a great idea until the ASIC miners started appearing. They introduce too much spread in the ability of normal people with home computers to produce hash collisions and someone with an ASIC hash rig, who could produce thousands of sockpuppet type cheap ids in the same time it took a normal person to produce one.

And it actually started me on the path to develop this idea about collateralized identity. You can't cheat on bitcoins or time. Yes, some people may have a lot of money, but time ticks at the same rate for everyone.



Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: CIYAM on March 26, 2013, 05:07:26 AM
Can you see any holes in it? That is, ways it could be circumvented or defeated so bad actors could create many such identities without pledging bitcoins for each one for a period of time?

Actually I don't see any real problem apart from that of software for the implementation (hinted at with your mentioning about wallets).

To accomplish the signing of a nonce in a straight forward manner I think that what you are probably really going need is a blockchain.info kind of wallet (i.e. one that is stored in localStorage).

This has the advantage of being built "in the browser" so that both the creation of the address and its signing can be done without running separate software. The downside of course is that you couldn't just log in from any computer as you would need access to the private key (solutions?).

Hmm... think I just solved my own problem - if you still have a unique "username" then the "encrypted private key" could be stored in the website and thus be retrieved during login (so not necessary to put it in localStorage at all but instead turns logging in into a 2 part process which shouldn't be even be noticed assuming the connection speed is good).


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: jgarzik on March 26, 2013, 06:22:48 AM

It can be useful to prove someone controls a certain amount of bitcoin balance, using the sign message (http://bitcoin.stackexchange.com/questions/3898/how-does-sign-message-work) feature.

But it is also useful to consider a fresh transaction, that intentionally "burns" a specific amount of money by giving it to the miner as a transaction fee.  This helps support a public service -- bitcoin transaction validation -- while assuring that real cost, real effort was spent to create an identity.

The keys used to spent the bitcoins in question provide another sign-message entry point.



Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: joecascio on March 26, 2013, 12:47:45 PM
Can you see any holes in it? That is, ways it could be circumvented or defeated so bad actors could create many such identities without pledging bitcoins for each one for a period of time?

Actually I don't see any real problem apart from that of software for the implementation (hinted at with your mentioning about wallets).

To accomplish the signing of a nonce in a straight forward manner I think that what you are probably really going need is a blockchain.info kind of wallet (i.e. one that is stored in localStorage).

This has the advantage of being built "in the browser" so that both the creation of the address and its signing can be done without running separate software. The downside of course is that you couldn't just log in from any computer as you would need access to the private key (solutions?).

Hmm... think I just solved my own problem - if you still have a unique "username" then the "encrypted private key" could be stored in the website and thus be retrieved during login (so not necessary to put it in localStorage at all but instead turns logging in into a 2 part process which shouldn't be even be noticed assuming the connection speed is good).


I'm not seeing why signing a message with a nonce requires anything particularly special. Also, I'm not sure what you mean by "blockchain.info kind of wallet in localStorage".

Allowing login from any computer is an issue but I really don't like storing the private keys, even in an encrypted form, at the websites. I'd rather solve that using a mobile phone approach. I wouldn't be comfortable putting in a passphrase on computer I didn't own, but of course, that's up to each individual's preference I guess.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: joecascio on March 26, 2013, 12:53:55 PM

It can be useful to prove someone controls a certain amount of bitcoin balance, using the sign message (http://bitcoin.stackexchange.com/questions/3898/how-does-sign-message-work) feature.

But it is also useful to consider a fresh transaction, that intentionally "burns" a specific amount of money by giving it to the miner as a transaction fee.  This helps support a public service -- bitcoin transaction validation -- while assuring that real cost, real effort was spent to create an identity.

The keys used to spent the bitcoins in question provide another sign-message entry point.



That is an intriguing idea, since you can't know which miner will get it. I think people would prefer, though, to retain possession of the funds, esp if it's a large amount. That way, if you decide to stop using a particular identity, you haven't lost the money associated with it.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: CIYAM on March 26, 2013, 01:03:06 PM
I'm not seeing why signing a message with a nonce requires anything particularly special. Also, I'm not sure what you mean by "blockchain.info kind of wallet in localStorage".

It requires software that has access to the (encrypted) "private key" and the necessary crypto algos in order to sign the message with the nonce. I don't know about how *special* that is but certainly no standard "login" software exists in the world to do this right now AFAIA (although I don't believe it would be very difficult to write and most of it has already been written in .js that can be freely used).

The idea with blockchain.info is that the private keys are not stored (at least in an unencrypted way) on their server - am not sure actually whether they use localStorage (as I had worked out is not actually necessary in my last paragraph) so no need to focus on that (they may actually be using sessionStorage instead - both are part of the HTML 5 DOM stuff).

Allowing login from any computer is an issue but I really don't like storing the private keys, even in an encrypted form, at the websites. I'd rather solve that using a mobile phone approach. I wouldn't be comfortable putting in a passphrase on computer I didn't own, but of course, that's up to each individual's preference I guess.

Convenience is always going to be a trade off when it comes to security.

With mobile phones nowadays being internet connected (and just as susceptible to malware) is it really any safer to store encrypted private keys on them?


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: Elwar on March 26, 2013, 05:33:40 PM
I am actually implementing something close to this on my site.

Anyone can create an account but you will have very limited access until you provide a Bitcoin address that is proven to be yours.

After that, you will have more privileges.


Title: Re: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets
Post by: eMansipater on April 25, 2013, 08:49:26 AM

It can be useful to prove someone controls a certain amount of bitcoin balance, using the sign message (http://bitcoin.stackexchange.com/questions/3898/how-does-sign-message-work) feature.

But it is also useful to consider a fresh transaction, that intentionally "burns" a specific amount of money by giving it to the miner as a transaction fee.  This helps support a public service -- bitcoin transaction validation -- while assuring that real cost, real effort was spent to create an identity.

The keys used to spent the bitcoins in question provide another sign-message entry point.



That is an intriguing idea, since you can't know which miner will get it. I think people would prefer, though, to retain possession of the funds, esp if it's a large amount. That way, if you decide to stop using a particular identity, you haven't lost the money associated with it.

Of course, if you are a miner or pool operator yourself, you can just put the transaction into your own block instead of broadcasting it to the network.  So it doesn't cost you anything.