Author

Topic: [PULL] bitcoind send [email protected] 2 (Read 1924 times)

legendary
Activity: 1232
Merit: 1076
April 22, 2011, 06:31:37 AM
#4
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:

- 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.
legendary
Activity: 1232
Merit: 1076
Old thread: https://bitcointalksearch.org/topic/pull-bitcoind-send-genjixfooorg-2-5938

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:

[email protected] 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/
legendary
Activity: 1232
Merit: 1076
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.
legendary
Activity: 1232
Merit: 1076
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 [email protected]

Now someone else can run:

bitcoind send [email protected] 2

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

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