Sorry for jumping in here, but here is what I want to do with respect to BitDNS...
First lets establish some terminology for what I would like to see.
Assume bitcoins are just "shares" of a total 23M of some *named* stock. Currently all values are named "bitcoin" which can be tracked back to multiple base shares issued 50 at a time.
Let users introduce a new "base coin" transferring 100% (23M or 2^64-1) of that base coin to an address. Where as generation fees only transfer 50 "bitcoins" from nothing to a new address.
Imbed a unique "name" into the script for this transaction. The private key for this initial address "owns the name".
An analogy to this "transaction" would be for a company, "Apple Computer", to issue a new coin type called AAPL and transfer 100% to and address owned by "Apple Computer". Now shares of AAPL can be traded and change hands, but the "issuer" still owns the name AAPL and can "sign messages" and perform other actions using that "identity".
Now all we need to do to transfer ownership of the name is to issue a new transaction of 0 units for AAPL and no "previous output" and sign it with AAPL's private key. This can change the private key used to "sign for" apple, but does not change ownership of AAPL shares.
Now we have a way to create new identities, names, and allow them to issue shares which can be traded like any other bitcoin using a common block chain.
A DNS system can now be validated by having all records signed by the private key of the current holder of the name. It can be implemented entirely outside the blockchain/bitcoin framework.
All transactions would be limited to dealing with only one type of coin at a time.
The only fee for registering a name would be the normal bitcoin transaction fee.
This could be implemented without breaking the existing block chain, but it would break clients that did not upgrade.
Questions:
1) Will it always be possible to trace a coin back to its origin? Or will this info be "discarded" after a while.
2) Can an arbitrary 'name' be entered into the origin script?
3) Can this 'name' be queried as needed
Benefits:
1) No limit to the number of names that can be issued
2) Can leverage existing bitcoin block chain (without introducing domain specific concepts, just generalize the idea of trading shares of stocks)
3) All "name registration fees" are handled by current bit coin transaction fees
- this would require 'grouping' two transactions BTC for the fee and AAPL for the shares... *or* it would require changing the CTxOut to specify the desired share type.
This would be a breaking change.
4) Names can optionally expire, but shares can never be "reissued".
5) Your wallet would now contain a unique balance for each type of "coin" it holds.
6) When you "send coins" you would need to specify the type.
7) We just decentralized the stock exchange.
Anyone can create a "bank" and issue "digital bank notes"
I suspect there are many more benefits... so the main questions are technical. What would it take to make that happen?