Bitcoin Forum
May 25, 2024, 05:39:32 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Idea: Collateralized Identity – Using bitcoin to suppress sockpuppets  (Read 1895 times)
joecascio (OP)
Full Member
***
Offline Offline

Activity: 137
Merit: 100

Semi-retired software developer, tech consultant


View Profile WWW
March 25, 2013, 03:40:31 PM
 #1

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/


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.

Joe Cascio
Python/Django & Android developer
Twitter: @joecascio
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
March 25, 2013, 03:56:23 PM
 #2

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.
joecascio (OP)
Full Member
***
Offline Offline

Activity: 137
Merit: 100

Semi-retired software developer, tech consultant


View Profile WWW
March 25, 2013, 04:01:40 PM
 #3

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.

Joe Cascio
Python/Django & Android developer
Twitter: @joecascio
misterbigg
Legendary
*
Offline Offline

Activity: 1064
Merit: 1001



View Profile
March 25, 2013, 04:04:35 PM
 #4

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?
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1078


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 25, 2013, 04:10:53 PM
 #5

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)?

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1009



View Profile
March 25, 2013, 04:14:17 PM
 #6

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
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1078


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 25, 2013, 04:18:00 PM
 #7

That is an interesting idea and I think one that is worth thrashing out further.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
remotemass
Legendary
*
Offline Offline

Activity: 1117
Merit: 1016


ASMR El Salvador


View Profile WWW
March 25, 2013, 04:28:58 PM
 #8

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.

{ Imagine a sequence of bits generated from the first decimal place of the square roots of whole integers that are irrational numbers. If the decimal falls between 0 and 5, it's considered bit 0, and if it falls between 5 and 10, it's considered bit 1. This sequence from a simple integer count of contiguous irrationals and their logical decimal expansion of the first decimal place is called the 'main irrational stream.' Our goal is to design a physical and optical computing system system that can detect when this stream starts matching a specific pattern of a given size of bits. bitcointalk.org/index.php?topic=166760.0 } Satoshi did use a friend class in C++ and put a comment on the code saying: "This is why people hate C++".
joecascio (OP)
Full Member
***
Offline Offline

Activity: 137
Merit: 100

Semi-retired software developer, tech consultant


View Profile WWW
March 25, 2013, 06:08:00 PM
 #9

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.

Joe Cascio
Python/Django & Android developer
Twitter: @joecascio
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1091


View Profile
March 25, 2013, 06:11:52 PM
 #10

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.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
joecascio (OP)
Full Member
***
Offline Offline

Activity: 137
Merit: 100

Semi-retired software developer, tech consultant


View Profile WWW
March 25, 2013, 06:20:40 PM
 #11

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.

Joe Cascio
Python/Django & Android developer
Twitter: @joecascio
joecascio (OP)
Full Member
***
Offline Offline

Activity: 137
Merit: 100

Semi-retired software developer, tech consultant


View Profile WWW
March 25, 2013, 06:25:49 PM
 #12

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?


Joe Cascio
Python/Django & Android developer
Twitter: @joecascio
joecascio (OP)
Full Member
***
Offline Offline

Activity: 137
Merit: 100

Semi-retired software developer, tech consultant


View Profile WWW
March 25, 2013, 06:30:31 PM
 #13

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?


Joe Cascio
Python/Django & Android developer
Twitter: @joecascio
herzmeister
Legendary
*
Offline Offline

Activity: 1764
Merit: 1007



View Profile WWW
March 25, 2013, 06:30:48 PM
 #14

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

https://localbitcoins.com/?ch=80k | BTC: 1LJvmd1iLi199eY7EVKtNQRW3LqZi8ZmmB
joecascio (OP)
Full Member
***
Offline Offline

Activity: 137
Merit: 100

Semi-retired software developer, tech consultant


View Profile WWW
March 25, 2013, 06:47:45 PM
 #15

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.


Joe Cascio
Python/Django & Android developer
Twitter: @joecascio
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1078


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 26, 2013, 05:07:26 AM
 #16

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).

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1091


View Profile
March 26, 2013, 06:22:48 AM
 #17


It can be useful to prove someone controls a certain amount of bitcoin balance, using the sign message 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.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
joecascio (OP)
Full Member
***
Offline Offline

Activity: 137
Merit: 100

Semi-retired software developer, tech consultant


View Profile WWW
March 26, 2013, 12:47:45 PM
 #18

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.

Joe Cascio
Python/Django & Android developer
Twitter: @joecascio
joecascio (OP)
Full Member
***
Offline Offline

Activity: 137
Merit: 100

Semi-retired software developer, tech consultant


View Profile WWW
March 26, 2013, 12:53:55 PM
 #19


It can be useful to prove someone controls a certain amount of bitcoin balance, using the sign message 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.

Joe Cascio
Python/Django & Android developer
Twitter: @joecascio
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1078


Ian Knowles - CIYAM Lead Developer


View Profile WWW
March 26, 2013, 01:03:06 PM
 #20

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?

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!