Bitcoin Forum
November 06, 2024, 10:26:19 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: btcaddr.me - Bitcoin Address Identicon  (Read 7324 times)
nelse87 (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0



View Profile
November 03, 2012, 05:55:52 PM
 #1

I would like to introduce project I've done after reading ThePiachu's Master Thesis (https://bitcointalk.org/index.php?action=profile;u=34743). In one of sections he writes about "Partial address collision" attack connected with bitcoin addresses. In a nutshell: given a bitcoin address we can generate address with the same prefix. As humans use to read only a few first characters of an address to validate it, malicous user may replace it with generated one and deceive user sending payment.

I believe problem can be solved using identicons. Check the site: http://btcaddr.me/ and let me know what are your thoughts.
Spekulatius
Legendary
*
Offline Offline

Activity: 1022
Merit: 1000



View Profile
November 03, 2012, 06:07:37 PM
 #2

I just tried it, it always gives me the same identicon, no matter what address I put in. Cookies?
nelse87 (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0



View Profile
November 03, 2012, 06:09:48 PM
 #3

What addresses did you try? You can try it other way:

http://btcaddr.me/[bitcoin address here]

Maybe the form is not working in your browser - which one are you using?
Spekulatius
Legendary
*
Offline Offline

Activity: 1022
Merit: 1000



View Profile
November 03, 2012, 06:13:40 PM
Last edit: November 03, 2012, 06:23:45 PM by Spekulatius
 #4

What addresses did you try? You can try it other way:

http://btcaddr.me/[bitcoin address here]

Maybe the form is not working in your browser - which one are you using?

Firefox 16.0.2 on windows 7

-edit-
I first entered your site by your link provided in OP, then used the input field with a random address obtained on this forum (1CoinLabF5Avpp5kor41ngn7prTFMMHFVc). Then I changed some letters and later the whole address but it still gave me the same identicon.

Now I just tried it only adding the address in the URL, like you advised and it workeed. But dont you think it is problematic that the same address gets a different icon everytime I run it? Heck, it does the same thing again now, after Im leaving the tap open for 2 minutes, it returns the same identicon no matter what address I put in the URL.

crazy_rabbit
Legendary
*
Offline Offline

Activity: 1204
Merit: 1002


RUM AND CARROTS: A PIRATE LIFE FOR ME


View Profile
November 03, 2012, 06:15:11 PM
 #5

Oh wow that is VERY COOL. That could go on so many things, right next to your payment address you can show what it *should* look like when you pay.

Is it possible to "scan" the identicon and decipher the address? Like a custom QR code?

more or less retired.
nelse87 (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0



View Profile
November 03, 2012, 06:17:08 PM
 #6

Oh wow that is VERY COOL. That could go on so many things, right next to your payment address you can show what it *should* look like when you pay.
That's exactly the purpose of it Smiley.

Is it possible to "scan" the identicon and decipher the address? Like a custom QR code?
No, you can treat it like "visual hash" and it's not reversable.
crazy_rabbit
Legendary
*
Offline Offline

Activity: 1204
Merit: 1002


RUM AND CARROTS: A PIRATE LIFE FOR ME


View Profile
November 03, 2012, 06:21:37 PM
 #7

Oh wow that is VERY COOL. That could go on so many things, right next to your payment address you can show what it *should* look like when you pay.
That's exactly the purpose of it Smiley.

Is it possible to "scan" the identicon and decipher the address? Like a custom QR code?
No, you can treat it like "visual hash" and it's not reversable.

Still very cool. Do you think you could do one for Litecoin? Is the project open source?

more or less retired.
nelse87 (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0



View Profile
November 03, 2012, 06:25:19 PM
 #8

You can use it will litecoin addresses too (even there's "btc" in domain name). To be honest, you can use it with any string as there is no input validation. It just takes a string do sha1 twice and make identicon from it.
crazy_rabbit
Legendary
*
Offline Offline

Activity: 1204
Merit: 1002


RUM AND CARROTS: A PIRATE LIFE FOR ME


View Profile
November 03, 2012, 06:27:37 PM
 #9

You can use it will litecoin addresses too (even there's "btc" in domain name). To be honest, you can use it with any string as there is no input validation. It just takes a string do sha1 twice and make identicon from it.

Is it open source? If not- is there an API that other sites could provide the service as well through you?

more or less retired.
nelse87 (OP)
Newbie
*
Offline Offline

Activity: 14
Merit: 0



View Profile
November 03, 2012, 06:35:55 PM
 #10

Here you have it: https://github.com/bnowotarski/btcaddr.me Smiley
streblo
Full Member
***
Offline Offline

Activity: 165
Merit: 100


View Profile
November 03, 2012, 10:10:16 PM
 #11

Hmm, this is neat! Kind of a way to side-step Zooko's triangle
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
November 03, 2012, 11:40:41 PM
 #12

This is interesting.

It seems it helps in cases where someone expects to be paying an address they have already paid, but the address has somehow been swapped out with the malicious one. If the site that was compromised is also serving the icon could that not also be swapped out for one that doesn't actually match? To guard against that the payer would need to personally check, is that what is intended?

Another solution that came to me (inspired by etotheipi) is to generate a visually distinctive address (etotheipi used an address with only capital letters). I think there are probably a lot of ways to make an address visually striking. Now that alone would not work because making another one that is striking in the same way would cost the same as the original on average, but if people remember the feel of the address plus the first 5 characters or so (which the original address producer can just let be random) then matching it would be about 58^5 times harder for an attacker.

What are some cheap but striking patterns?

An unusualy high number of triplets? (1j4U666mJJJw3QD7gggrHHH2rynFEcAAA)
A lot of numbers?
No letters or numbers with curves?
Only capitals and numbers?

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
Fjordbit
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500

firstbits.com/1kznfw


View Profile WWW
November 04, 2012, 05:40:32 AM
 #13

I think it could work as a browser plugin, where when you mouse over an address, you would see the identicon. This would allow the user to verify quickly, but not rely on the security of the site.
kjj
Legendary
*
Offline Offline

Activity: 1302
Merit: 1026



View Profile
November 04, 2012, 05:46:42 AM
 #14

I think it could work as a browser plugin, where when you mouse over an address, you would see the identicon. This would allow the user to verify quickly, but not rely on the security of the site.

So, you see the correct icon for the attacker's address.  Nothing gained.

17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
TheButterZone
Legendary
*
Offline Offline

Activity: 3066
Merit: 1032


RIP Mommy


View Profile WWW
November 04, 2012, 07:38:18 AM
 #15

Hm, I always check the beginning and end of each address. Do I still need this?

Saying that you don't trust someone because of their behavior is completely valid.
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
November 04, 2012, 07:59:02 AM
 #16

I think it could work as a browser plugin, where when you mouse over an address, you would see the identicon. This would allow the user to verify quickly, but not rely on the security of the site.

So, you see the correct icon for the attacker's address.  Nothing gained.

Seems like it is only relevant when paying an address you have seen before. An optional warning in a client like "You are trying to pay an address that may look like one you have payed before, BUT YOU HAVE NEVER PAID THIS ADDRESS BEFORE. Proceed?" might accomplish this better.

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
ThePiachu
Sr. Member
****
Offline Offline

Activity: 444
Merit: 313



View Profile WWW
November 04, 2012, 09:35:18 AM
 #17

It seems it helps in cases where someone expects to be paying an address they have already paid, but the address has somehow been swapped out with the malicious one. If the site that was compromised is also serving the icon could that not also be swapped out for one that doesn't actually match? To guard against that the payer would need to personally check, is that what is intended?

If the image was swapped as well, then the website owner could recognize it as not being theirs (lets hope). If the original image is left, the sender can recognise it doesn't match up.

Hm, I always check the beginning and end of each address. Do I still need this?

That depends on how many characters you memorise. If it's about 10, you should be fine, otherwise creating a collision would take just a few bitcoins worth of hashing. You can read more about it in my master thesis around page 66 - https://bitcointalk.org/index.php?topic=88149 .



Also from other news, this topic is also available on Reddit:
http://www.reddit.com/r/Bitcoin/comments/12ktos/bitcoin_address_identicon_topic_a_solution/

1HWbVLhxj7bhewhyapMZpyhqWAeAhJd51E
My Bitcoin Calculator:
http://tpbitcalc.appspot.com/
cunicula
Legendary
*
Offline Offline

Activity: 1050
Merit: 1003


View Profile
November 04, 2012, 09:41:43 AM
 #18

I realize this has no practical purpose, but can you make the identicon into something cute?

More broadly, if you could do QR codes that are shaped like bunny rabbits and pandas, then the whole QR scheme might become more interesting to 50% of the population.
FreeMoney
Legendary
*
Offline Offline

Activity: 1246
Merit: 1016


Strength in numbers


View Profile WWW
November 04, 2012, 10:04:37 AM
 #19

I realize this has no practical purpose, but can you make the identicon into something cute?

More broadly, if you could do QR codes that are shaped like bunny rabbits and pandas, then the whole QR scheme might become more interesting to 50% of the population.

Lol.

"Mom can you send me lunch money? I'm the panda with crossed eyes holding a rainbow in its LEFT hand."

Play Bitcoin Poker at sealswithclubs.eu. We're active and open to everyone.
ThePiachu
Sr. Member
****
Offline Offline

Activity: 444
Merit: 313



View Profile WWW
November 04, 2012, 01:33:53 PM
 #20

I realize this has no practical purpose, but can you make the identicon into something cute?

More broadly, if you could do QR codes that are shaped like bunny rabbits and pandas, then the whole QR scheme might become more interesting to 50% of the population.

That would be quite an interesting idea, although it would probably be way harder to implement than random geometric shapes...

1HWbVLhxj7bhewhyapMZpyhqWAeAhJd51E
My Bitcoin Calculator:
http://tpbitcalc.appspot.com/
Pages: [1] 2 3 »  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!