Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: genjix on April 16, 2011, 07:16:56 PM



Title: [PULL] bitcoind send genjix@foo.org 2
Post by: genjix on April 16, 2011, 07:16:56 PM
1. bitcoind -naming-password=hello
2. bitcoind publickey
> copy this output to clipboard
3. login to http://109.75.176.109
> paste public key and click 'Update'
4. add a new nickname
5. bitcoind updatename myname@109.75.176.109

Now someone else can run:

bitcoind send genjix@109.75.176.109 2

Your keypair for altering your nickname is stored in .bitcoin/keypair.rsa

Pull request: https://github.com/bitcoin/bitcoin/pull/164


Title: Re: [PULL] bitcoind send genjix@foo.org 2
Post by: genjix on April 18, 2011, 01:42:21 PM
There was a privacy concern raised before about the servers being able to monitor who pushes addresses and who fetches addresses being able to infer IP addresses to Bitcoin addresses by means of the blockchain. After much consideration and chatting with topi`, I decided on the maxim that there's a trade-off between user inconvenience and anonymity at some point.

Educated users should be using Bitcoin addresses for large amounts and this naming protocol as a convenience method for small amounts.


Title: Re: [PULL] bitcoind send genjix@foo.org 2
Post by: genjix on April 21, 2011, 11:08:26 AM
Old thread: http://bitcointalk.org/index.php?topic=5938.0

So it was decided to split the pull request into several smaller ones. Here's the new one: https://github.com/bitcoin/bitcoin/pull/169

The full implementation works like:

genjix@foo.org will do a lookup on http://foo.org/getaddress/?nickname=genjix

That will return either a JSON containing error/errcode (which will throw) or a json containing the address.

For setting the address you sign it using an RSA keypair + timestamp (if the timestamp is too old then the server should reject the request). The updating the name will return a JSON containing status or either error/errcode.

To add the public key for your RSA keypair or add new nicknames you login using your OpenID on the site. As an example: http://109.75.176.109

bitcoind publickey
will show your public key.

To see the full implementation see my branch on github:
https://github.com/genjix/bitcoin/tree/bitnom

The relevant files are access.h resolv.h rpc.cpp (rpc_send, updatename, publickey).

The PHP example implementation for the server is in contrib/ns/


Title: Re: [PULL] bitcoind send genjix@foo.org 2
Post by: genjix on April 22, 2011, 10:31:37 AM
12:14 < sipa> genjix: i mean even further, it should be clear that you're able to have a name-lookup service without any ability to log in on a server, fiddle with
              public keys, know that it uses rsa signatures, ...

FYI there are several parts to my branch (https://github.com/genjix/bitcoin/tree/bitnom):

- It's a simple name lookup from a webserver.*
- An example PHP implementation that returns the addresses.
- An RSA keypair class which supports displaying a public key in PEM format.
- An example PHP implementation for a service which allows you to update your public key using an OpenID login (supports Facebook, Google, Yahoo, Wordpress, Launchpad .etc)
- A name lookup update which takes your nickname+address+a timestamp in the POST request and signs it so the server can verify it's you.
- An example PHP name lookup which allows you to set your address.

* This latest pull request is only for this first part. We can make subsequent pull requests for each feature as we go along and decide.