Bitcoin Forum
November 18, 2019, 11:52:28 PM *
News: Help collect the most notable posts made over the last 10 years.
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Decentralised bitcoin address book  (Read 228 times)
jackg
Copper Member
Legendary
*
Offline Offline

Activity: 1554
Merit: 1352


https://bit.ly/2FR9nyn - free python tutorials


View Profile
January 01, 2019, 02:49:59 PM
 #1

I'm wondering if there are any blueprints for such an idea, I think it would be quite easy to do and broadcast people's addresses from a client when an email or a phone number gets input.

This could be integrated with a few clients beyond that, I'm wondering if the solution already exists? The idea being someone takes an address and signed message from it in a way that verifies an email or phone number, a valid from date and a valid to date. Probably run similar to a DNS setup. 

1574121148
Hero Member
*
Offline Offline

Posts: 1574121148

View Profile Personal Message (Offline)

Ignore
1574121148
Reply with quote  #2

1574121148
Report to moderator
1574121148
Hero Member
*
Offline Offline

Posts: 1574121148

View Profile Personal Message (Offline)

Ignore
1574121148
Reply with quote  #2

1574121148
Report to moderator
1574121148
Hero Member
*
Offline Offline

Posts: 1574121148

View Profile Personal Message (Offline)

Ignore
1574121148
Reply with quote  #2

1574121148
Report to moderator
The Bitcoin Forum is turning 10 years old! Join the community in sharing and exploring the notable posts made over the years.
1574121148
Hero Member
*
Offline Offline

Posts: 1574121148

View Profile Personal Message (Offline)

Ignore
1574121148
Reply with quote  #2

1574121148
Report to moderator
1574121148
Hero Member
*
Offline Offline

Posts: 1574121148

View Profile Personal Message (Offline)

Ignore
1574121148
Reply with quote  #2

1574121148
Report to moderator
KingZee
Sr. Member
****
Offline Offline

Activity: 602
Merit: 424


Check your coin privilege


View Profile
January 01, 2019, 04:30:33 PM
Merited by ETFbitcoin (1)
 #2

I'm wondering if there are any blueprints for such an idea, I think it would be quite easy to do and broadcast people's addresses from a client when an email or a phone number gets input.

This could be integrated with a few clients beyond that, I'm wondering if the solution already exists? The idea being someone takes an address and signed message from it in a way that verifies an email or phone number, a valid from date and a valid to date. Probably run similar to a DNS setup.  

This is kind of similar to : https://bitcointalk.org/index.php?topic=5081685.msg48563244#msg48563244

You want to link one (or multiple) bitcoin addresses to a phone number or email. If I don't include the same issues in the post above, where you have to worry about who are the nodes that will host this sidechain of numbers/emails, etc.. you have other issues like people claiming emails and phone numbers without being theirs, if you do plan to add a verification system how would you implement this verification? There needs to be a centralised entity that sends "verification" emails/messages to the people trying to verify themselves, but mostly.. why bitcoin?

I understand the reason behind the "why" of what you want to do, but in case you can come up with a solution to the well known "Proof of Identity" problem, I'd recommend starting your own crypto and launching it. (I'm not kidding, it'd be revolutionary)

jackg
Copper Member
Legendary
*
Offline Offline

Activity: 1554
Merit: 1352


https://bit.ly/2FR9nyn - free python tutorials


View Profile
January 01, 2019, 05:01:13 PM
 #3

I'm wondering if there are any blueprints for such an idea, I think it would be quite easy to do and broadcast people's addresses from a client when an email or a phone number gets input.

This could be integrated with a few clients beyond that, I'm wondering if the solution already exists? The idea being someone takes an address and signed message from it in a way that verifies an email or phone number, a valid from date and a valid to date. Probably run similar to a DNS setup. 

This is kind of similar to : https://bitcointalk.org/index.php?topic=5081685.msg48563244#msg48563244

You want to link one (or multiple) bitcoin addresses to a phone number or email. If I don't include the same issues in the post above, where you have to worry about who are the nodes that will host this sidechain of numbers/emails, etc.. you have other issues like people claiming emails and phone numbers without being theirs, if you do plan to add a verification system how would you implement this verification? There needs to be a centralised entity that sends "verification" emails/messages to the people trying to verify themselves, but mostly.. why bitcoin?

I understand the reason behind the "why" of what you want to do, but in case you can come up with a solution to the well known "Proof of Identity" problem, I'd recommend starting your own crypto and launching it. (I'm not kidding, it'd be revolutionary)

I've been going through the idea of making my own currency relational to the person's name or phone number but it would be quite difficult. I suppose a chain that stores addresses and emails/phone numbers on the sidechains.

I'm trying to build a client that runs everything Bitcoin core does but I'm going to try to make some things a bit different... I've noticed areas of speed that I wouldn't want to test on the main Bitcoin network just in case something goes wrong and a tiny bit or parity might be lost too (but the places I want to remove it from should be pretty much negligible).

I also can't make something like that without an ico as I'd have to find the verifications (actually email verifications are free and I have scripts for those already).



The project stack is currently at:
Make a Bitcoin node software.
Make a version of the ethereum chain that works (ethereum's issue is that it stores money, I want to make the ethereum's virtual machine clone that instead is paid for with Bitcoin in some way as I feel ethereum should be two side chains but that's something I'm not sure whether to drop or not).

ETFbitcoin
Legendary
*
Offline Offline

Activity: 1820
Merit: 2093

Use SegWit and enjoy lower fees.


View Profile WWW
January 01, 2019, 08:12:08 PM
 #4

There are few project with similar idea such as https://www.iov.one/ and https://ens.domains/, but looks like it uses side-chain, so it's pretty useless if majority of full nodes don't connect to the side-chain or the wallet don't obtain actual address on side-chain after user click "Send".

Aside from verification problem, you have to decide where and how to store the bitcoin address book. If it's on main-chain, you'd face limited block size/weight bloating blockchain while on side-chain, the cost to launch 51%/history attack is cheaper.

jackg
Copper Member
Legendary
*
Offline Offline

Activity: 1554
Merit: 1352


https://bit.ly/2FR9nyn - free python tutorials


View Profile
January 01, 2019, 08:36:52 PM
 #5

There are few project with similar idea such as https://www.iov.one/ and https://ens.domains/, but looks like it uses side-chain, so it's pretty useless if majority of full nodes don't connect to the side-chain or the wallet don't obtain actual address on side-chain after user click "Send".

Aside from verification problem, you have to decide where and how to store the bitcoin address book. If it's on main-chain, you'd face limited block size/weight bloating blockchain while on side-chain, the cost to launch 51%/history attack is cheaper.

Put it on a side chain and make the mining free. There will be no perks to attack the chain, there's no need to implement a protocol for orphaning a block imo.

Coding Enthusiast
Hero Member
*****
Offline Offline

Activity: 701
Merit: 1164


Novice C♯ Coder


View Profile WWW
January 02, 2019, 08:37:06 AM
Merited by suchmoon (4), DarkStar_ (4), ETFbitcoin (2)
 #6

First of all this is encouraging address reuse which should be avoided.

Secondly you are complicating things by a lot! Try to think simpler and try to stick with what bitcoin already offers.
Let's see what you want to do.
You want to link a bitcoin address to another "information" which can be anything including Email, phone number, website link,...
So why not use OP_Return?

It offers all you want. It signs a "message" so the owner of the key would be clear and it can include any "information" in it. You just have to make a new transaction from that address and include that "information" inside a OP_Return output.
Like this (the link to my github page):
Quote
6a68747470733a2f2f6769746875622e636f6d2f436f64696e672d456e7468757369617374
Then all the clients have to do is to search the blockchain for OP_Return outputs and build a local database from them.

It inherits the same flaws as your proposed system as it encourages address reuse and also it has no mechanism from stopping anyone from linking anything to anything because of decentralization!

Projects List+Suggestion box
Donation link using BIP21
Bech32 Donation link!
BitcoinTransactionTool (0.9.2):  Ann - Source Code
Watch Only Bitcoin Wallet (supporting SegWit) (3.1.0):  Ann - Source Code
SharpPusher (broadcast transactions) (0.10.0): Ann - Source Code

jackg
Copper Member
Legendary
*
Offline Offline

Activity: 1554
Merit: 1352


https://bit.ly/2FR9nyn - free python tutorials


View Profile
January 02, 2019, 10:38:57 AM
 #7

First of all this is encouraging address reuse which should be avoided.

Secondly you are complicating things by a lot! Try to think simpler and try to stick with what bitcoin already offers.
Let's see what you want to do.
You want to link a bitcoin address to another "information" which can be anything including Email, phone number, website link,...
So why not use OP_Return?

It offers all you want. It signs a "message" so the owner of the key would be clear and it can include any "information" in it. You just have to make a new transaction from that address and include that "information" inside a OP_Return output.
Like this (the link to my github page):
Quote
6a68747470733a2f2f6769746875622e636f6d2f436f64696e672d456e7468757369617374
Then all the clients have to do is to search the blockchain for OP_Return outputs and build a local database from them.

It inherits the same flaws as your proposed system as it encourages address reuse and also it has no mechanism from stopping anyone from linking anything to anything because of decentralization!

So at the moment it can only be done in a centralised way (until decentralised phones come out). I think my email is greater than 20 chars also. What's wrong with reusing addresses other than the privacy issues, a lot of services mean you have to use them.

Jet Cash
Legendary
*
Offline Offline

Activity: 1428
Merit: 1796


Trying to preserve our heritage.


View Profile WWW
January 02, 2019, 11:11:20 AM
 #8

I started to think of this from a slightly different perspective. The problem for charities is the difficulty in listing addresses for multiple coins. I decided that the best solution was to register a domain name, and then build all the info into a website. This lets you help new users, as well as the knowledgeable. I started to implement this on Bitcoin Patron. It isn't a simple concept though, and I'm about to change the template for the third time.

I appreciate that there are some centralised projects like this, but they seem to be starting to remove listings for sites that they deem to be politically incorrect. That's why I decided to create my own independent one.


I've added a photography section to Fit to Talk -  The photography and content production board

Hopefully we can use this to help members earn from using budget photo kit whilst they practice their English
KingZee
Sr. Member
****
Offline Offline

Activity: 602
Merit: 424


Check your coin privilege


View Profile
January 02, 2019, 12:32:23 PM
 #9

First of all this is encouraging address reuse which should be avoided.

Can you convince me on why this would be a bad thing? Cheesy The point of this whole idea is to avoid privacy and link every  address to a real life entity, so the only argument you would have would be the security of signing multiple transactions with the same key which is really getting less and less exploitable as an attack target the more time goes by.

I understand its good to follow best practices, but it becomes a negative feat when you do it without asking yourself why.

Secondly you are complicating things by a lot! Try to think simpler and try to stick with what bitcoin already offers.
Let's see what you want to do.
You want to link a bitcoin address to another "information" which can be anything including Email, phone number, website link,...
So why not use OP_Return?

It offers all you want. It signs a "message" so the owner of the key would be clear and it can include any "information" in it. You just have to make a new transaction from that address and include that "information" inside a OP_Return output.
Like this (the link to my github page):
Quote
6a68747470733a2f2f6769746875622e636f6d2f436f64696e672d456e7468757369617374
Then all the clients have to do is to search the blockchain for OP_Return outputs and build a local database from them.

It inherits the same flaws as your proposed system as it encourages address reuse and also it has no mechanism from stopping anyone from linking anything to anything because of decentralization!

This doesnt solve the proof of identity problem. Anyone can sign a tx and include any email phone without proving themselves as the owner. I understand you want to keep the privacy of bitcoin, but know that not everyone cares about privacy. Solving this problem would definitely be worth creating something new.

jackg
Copper Member
Legendary
*
Offline Offline

Activity: 1554
Merit: 1352


https://bit.ly/2FR9nyn - free python tutorials


View Profile
January 02, 2019, 01:36:54 PM
 #10

Can you convince me on why this would be a bad thing? Cheesy The point of this whole idea is to avoid privacy and link every  address to a real life entity, so the only argument you would have would be the security of signing multiple transactions with the same key which is really getting less and less exploitable as an attack target the more time goes by.

Satohsi used a lot of different addresses for each block he mined. But the use of different addresses is for privacy, the use of one address or address groupings (like I use) is something that should be more widely encouraged as it keeps blocks quite clear. Also there are things like when the genesis block is paying to a pool and the rest of the transactions in the block are of zero fee, you can kind of guess they're all from that pool... Pools addresses are already fairly publicly known and they mine to their same addresses each time (and based on the speed of their support, I wouldn't doubt I is easy to be able to control one of those for 12 hours and get more money or find an address with a large sum on it).
All you actually know in this system is how mcuh an address has, if the funds are then mixed or something then the funds could have been escrowed or the funds could have been bought or something.

This doesnt solve the proof of identity problem. Anyone can sign a tx and include any email phone without proving themselves as the owner. I understand you want to keep the privacy of bitcoin, but know that not everyone cares about privacy. Solving this problem would definitely be worth creating something new.

No that's true, anyone can sign a transaction with anything in the code. You also have to pay for that text you put in the transaction.

Coding Enthusiast
Hero Member
*****
Offline Offline

Activity: 701
Merit: 1164


Novice C♯ Coder


View Profile WWW
January 02, 2019, 02:12:55 PM
 #11

I think my email is greater than 20 chars also.
You can drop the extra stuff and use some sort of coding. for example add 1 byte (256 options) indicating which Email provide it belongs to. For example 0x01 can mean gmail.com, 0x02 can mean protonmail.com so you effectively replace 9 bytes and 14 bytes respectively with only 1 byte.

What's wrong with reusing addresses other than the privacy issues, a lot of services mean you have to use them.
Can you convince me on why this would be a bad thing?
There is nothing wrong with reusing addresses but it is not "recommended", not to mention that by design, a bitcoin address is a single use token.
Read more: https://en.bitcoin.it/wiki/Address_reuse

only argument you would have would be the security of signing multiple transactions with the same key which is really getting less and less exploitable as an attack target the more time goes by.
When you sign anything with your private key, you are revealing your public key. This operation is a one way operation but if there is any weakness in the implementation you are using or some day a weakness in the algorithm itself is found then your funds will be at risk compared to if you never revealed your public key.

I understand its good to follow best practices, but it becomes a negative feat when you do it without asking yourself why.
It is never "negative" when you follow the best practice even if you don't know the reason for it.

This doesnt solve the proof of identity problem. Anyone can sign a tx and include any email phone without proving themselves as the owner. I understand you want to keep the privacy of bitcoin, but know that not everyone cares about privacy. Solving this problem would definitely be worth creating something new.
I've already pointed out this flaw and also pointed out that it is the same with any other decentralized way of doing it. You can't prevent people from registering any address with any name no matter what method you use.

Projects List+Suggestion box
Donation link using BIP21
Bech32 Donation link!
BitcoinTransactionTool (0.9.2):  Ann - Source Code
Watch Only Bitcoin Wallet (supporting SegWit) (3.1.0):  Ann - Source Code
SharpPusher (broadcast transactions) (0.10.0): Ann - Source Code

KingZee
Sr. Member
****
Offline Offline

Activity: 602
Merit: 424


Check your coin privilege


View Profile
January 02, 2019, 02:32:19 PM
 #12

I agree/have nothing to say about the upper half of your reply but :

I understand its good to follow best practices, but it becomes a negative feat when you do it without asking yourself why.
It is never "negative" when you follow the best practice even if you don't know the reason for it.

Mmmmhhh I never disagreed with something so much Cheesy If everyone thought like you we'd never have progress Smiley Especially for software development, every pull request that introduces something new but breaks backwards compatibility needs to be defended by sweat and blood if it's a genuine improvement.. I don't follow bitcoin development up close but I'm sure this is exactly the same for all Bitcoin improvement proposals.

Of course this specific issue doesn't "improve" bitcoin so I can agree with you in this specific case. But it's not a bad idea on its own from a user standpoint, so I radically disagree with your philosophy, and the answer to WHY it shouldn't be implemented is very different for the both of us.

This doesnt solve the proof of identity problem. Anyone can sign a tx and include any email phone without proving themselves as the owner. I understand you want to keep the privacy of bitcoin, but know that not everyone cares about privacy. Solving this problem would definitely be worth creating something new.
I've already pointed out this flaw and also pointed out that it is the same with any other decentralized way of doing it. You can't prevent people from registering any address with any name no matter what method you use.

Goddamnit dude, have some faith! Grin No one said it was easy, this exact issue does seem impossible to work around, but I am willing to bet money we're going to have a solution for this in the future.

jackg
Copper Member
Legendary
*
Offline Offline

Activity: 1554
Merit: 1352


https://bit.ly/2FR9nyn - free python tutorials


View Profile
January 02, 2019, 03:04:27 PM
 #13

Goddamnit dude, have some faith! Grin No one said it was easy, this exact issue does seem impossible to work around, but I am willing to bet money we're going to have a solution for this in the future.

It's easy to link it to email it social media though.

The old forms of usernames systems with Facebook meant you could write an email to facebook.com/random.name.3, by writing the email to random.name.3@facebook.com.

Following conventions like the others have said leads to catastrophies. If we had have left Bitcoin without a few of the upgrades, we'd have blocks where 1billion bitcoins get spent...

HeRetiK
Legendary
*
Offline Offline

Activity: 1288
Merit: 1143


the forkings will continue until morale improves


View Profile
January 02, 2019, 04:27:29 PM
Merited by suchmoon (4)
 #14

I don't think phone / email verification / association is possible without some form of centralized oracle.

Both phone numbers and SMS gateways are centrally controlled, so there's no way to decentralize phone verification in an automated manner (similar to how converting crypto- to fiat-currencies requires cooperation with the classical banking system).

Decentralized email verification should be possible in theory, as anyone can run an email server; but good luck reaching any inboxes without being whitelisted by major providers.

I guess one could create a decentralized public-key cryptography based messenger system, similar to BitMessage, but without needing the private key for deriving the recipient's address? Ie. some form of decentralized storage for messages encrypted using public keys associated with Bitcoin addresses. I'm not sure if that would be all that useful though, at least for the use case as described by OP.

jackg
Copper Member
Legendary
*
Offline Offline

Activity: 1554
Merit: 1352


https://bit.ly/2FR9nyn - free python tutorials


View Profile
January 02, 2019, 05:08:39 PM
Last edit: January 02, 2019, 05:25:55 PM by jackg
 #15

Both phone numbers and SMS gateways are centrally controlled, so there's no way to decentralize phone verification in an automated manner (similar to how converting crypto- to fiat-currencies requires cooperation with the classical banking system).

Actually, in that case, a system such as whatsapp could be used for verification.
If you make it more email based then it'll work better.

I've often thought Bitcoin has a similar issue to TOR, no one without money can derive an address they can easily remember. Facebook had to devote an entire datacentre to mine Facebookcorewwwi.onion for example for a week.

I know some of the seeds that store fudns in my wallet from memory and it seems odd that it's easier to remember my private keys more than I can my public keys (most of those seeds don't hold anything any more because it's not very secure if you can remember them).


Currently there are 2048 words in the wordlist for bip32
This means that there would be ceiling(log(2^256)/log(2048))=24 words...

If I use a few dictionaries and add Welsh and German and potentially a few other languages, that number can be reduced. With three languages, it becomes a length of 20 words - although that would be a stupid idea as welsh is evolving into english or it evolved from the same language (I'm not sure which is true, I think it's the first because it doesn't sound as western european as german and french do).

The oxford dictionary supposedly has 171476 words in it, I get that to be 15 words for an address and then you would obviously need two checksums for such a thing so it would come to about 17 words all in all but it might be a bit confusing...

HeRetiK
Legendary
*
Offline Offline

Activity: 1288
Merit: 1143


the forkings will continue until morale improves


View Profile
January 02, 2019, 05:38:35 PM
 #16

Both phone numbers and SMS gateways are centrally controlled, so there's no way to decentralize phone verification in an automated manner (similar to how converting crypto- to fiat-currencies requires cooperation with the classical banking system).

Actually, in that case, a system such as whatsapp could be used for verification.
If you make it more email based then it'll work better.

I think phone based messengers such as WhatsApp also rely on SMS verification though?

https://faq.whatsapp.com/en/android/20970873/

Which would put us back to the problem of centralized SMS gateways.

Good point nonetheless, maybe there's a way to associate a phone number to a user via SIM card access. I have no idea what SIM data is available to apps however.


I've often thought Bitcoin has a similar issue to TOR, no one without money can derive an address they can easily remember. Facebook had to devote an entire datacentre to mine Facebookcorewwwi.onion for example for a week. 

Got any experience with Namecoin? I remember this project trying to solve the problem of decentralized name-derivation vs human readability but I never looked into the technical aspects to be honest.

ETFbitcoin
Legendary
*
Offline Offline

Activity: 1820
Merit: 2093

Use SegWit and enjoy lower fees.


View Profile WWW
January 02, 2019, 07:31:20 PM
 #17

Aside from verification problem, you have to decide where and how to store the bitcoin address book. If it's on main-chain, you'd face limited block size/weight bloating blockchain while on side-chain, the cost to launch 51%/history attack is cheaper.
Put it on a side chain and make the mining free. There will be no perks to attack the chain, there's no need to implement a protocol for orphaning a block imo.

That doesn't stop the fact launch attack is cheap and people with motive other that economy still could attack the side-chain such as intentionally don't include specific transaction (or address/name set in this case). I doubt people would do such attack for minor cryptocurrency, but IMO you should think about this attack vector.

I've often thought Bitcoin has a similar issue to TOR, no one without money can derive an address they can easily remember. Facebook had to devote an entire datacentre to mine Facebookcorewwwi.onion for example for a week. 

Got any experience with Namecoin? I remember this project trying to solve the problem of decentralized name-derivation vs human readability but I never looked into the technical aspects to be honest.

While the idea is great, it's barely used and the community almost non-existent (at least on reddit/medium).

darosior
Full Member
***
Offline Offline

Activity: 201
Merit: 242



View Profile WWW
January 03, 2019, 12:45:37 PM
Merited by ETFbitcoin (1)
 #18

I've often thought Bitcoin has a similar issue to TOR, no one without money can derive an address they can easily remember. Facebook had to devote an entire datacentre to mine Facebookcorewwwi.onion for example for a week. 

Got any experience with Namecoin? I remember this project trying to solve the problem of decentralized name-derivation vs human readability but I never looked into the technical aspects to be honest.

While the idea is great, it's barely used and the community almost non-existent (at least on reddit/medium).
I think too that what you (OP) are talking about is not far from what Namecoin offers. The project is not actually trying, but does work and provides .bit domains, but most of the people use DNS servers that does not resolve those .bit domains and that's why they are not used.
Like what the Ethereum Foundation is trying to do with ENS, you can use domains to make friendlier addresses for an end-user. I remember Dash is trying to provide something similar but I haven't dived in it.

Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!