In my proposal:
http://domainchain.org/wiki/doku.php?id=bitnameThe proposal that I have made has covered 3 main areas.
First: Changes to the Bitcoin Protocol.
Expanded templates, (allowing to check transactions based upon what they claim to be). This also allows new services to be run within the chain without changing the protocol. Using a strong scripting language it should be possible to make 'plugins' for generators so that they may accept new types of bitcoin transactions.
Transaction Grouping, this allows transactions to be grouped together by template. Clients will only need to download the summary and the hash tree, unless they want more detail.
Burning transactions. This is a new sort of transaction fee that 'burns' over time. It contains two qualities, firstly total number of coins to be to be burnt, and secondly, the rate (per block) that it is burnt at. This is the basis of the compensation to generators for including extra data in the block chain. When the transaction stops burning, the extra data may be deleted.
Second: BitName
BitName is a named address that has a fingerprint of a public certificate. Instead of sending bitcoins to 13TSBH4wdchsMqFTwqyLjvPES99sZ96MaP, one could send bitcoins to 'da2ce7'. The BitName concept is built upon burning transactions. Each transaction that declares a name, must include a burning transaction to keep the name active. The higher the rate of burning the more likely that the transaction will be accepted. If the rate is too low, the network will likely ignore or forget the name early.
If a generator accepts a new transaction of the same name as a pre-existing, the network will likely orphan the block, unless the burning fee is so low that the network regards the name as spam.
The other significant benefit from having a BitName is public certificate verification, when one sends a message that is signed, the key signing the message can be check against the known name of the source. The fingerprint included in the block chain then can be used to verify the signer.
Third: BitDNS
BitDNS is derived from BitName. A BitName should be used to make any new BitDNS records. This requirement in the future can be used for spam prevention.
Both the top-level root domains and the 2nd level domains need to be globally unique. Root BitDNS records are expensive and both the initial fee and the burning fees are network enforced. The main purpose of the root domains is top provide a service to the 2nd level domains. To be accepted by a top-level domain, the fees defined by the top-level domain must be paid to its address. This is enforced.
2nd level domains behave much like BitNames, with two main difference: first, to be used the domain must pay registration fees to at-least one top-level domain. Secondly, IP addresses can be binded to these domains.
Since the domains all have fingerprints of their TLS certificates, when one connects to a server defined by a BitDNS record and the server replys with a secure connection, the client can check if the secure connection is valid, not by using a CA, but rather cross-referencing it with the fingerprint included in the block chain. Man-In-The-Middle attacks are very, very, very difficult under this system.
I'm still working on the sub-domain structure.