互联网到今日已经越来越趋向于中心化,用户的隐私安全以及大公司的行为也日渐引起担忧。去中心化网络是一个应对此问题的重要思想,blockchian,bitcoin,tor等都是一些具体的技术探索,很多已经有了越来越大的影响力。Namecoin也是其中的一个。

Namecoin想要解决的是目前DNS存在的一些问题。中央机构控制的DNS很容易因为各种原因受到干扰,用户的利益和隐私容易受到侵犯。Namecoin借助于bitcoin的思想,构建了一个去中心化的DNS系统。

Zooko’s triangle

类似于分布式系统中的CAP理论。类似DNS这样的协议,我们期望它具有的三个特性很难满足: 安全,可读性好,去中心化。目前的最常用的DNS系统不满足去中心化。DNSSec对现有的DNS做了一些安全性的增强,但仍然是中心化的。.onionbitcoin是去中心化的和安全的,但是可读性很差等等。

Namecoin是满足上面要求的一个系统。(Aaron Swartz曾经提出过这样的设计思路)

Namecoin

Namecoin基于BitCoin,本身就是在Bitcoin的代码上实现的(大概做了400多行改动)。挖矿的方式跟bitcoin一样,只是用的是不同的block chain.二者的目的不同,bitcoin主要还是为了成为一种货币系统,Namecoin是为了成为一种命名系统。所以二者的关注点不同,blockchain分开也是最合理的。二者有一些不同的规则:

  1. namecoin要求名字的唯一性(域名),而bitcoin不要求
  2. 经济交易以及域名注册使用的货币大小不一样,block size设的不一样更好
  3. 通货膨胀对bitcoin的影响很大,namecoin则不一样。
  4. namcoin中,注册域名需要花钱,但这些货币会被销毁(0.01NMC).因为是去中心化的系统,没有收费的中央系统。

Namecoin里的数据主要分为两种domain name和 NameID

Domain

Domain的格式类似于:

{ 
    "name" : "d/opennic", 
    "value" : "what you want", 
    "expires_in" : 10227 
}

value的示例:

{
    "ip"      : "192.168.1.1",
    "ip6"     : "2001:4860:0:1001::68",
    "tor"     : "eqt5g4fuenphqinx.onion",
    "email"   : "hostmaster@example.bit",
    "info"    : "Example & Sons Co.",
    "service" : [ ["smtp", "tcp", 10, 0, 25, "mail"] ],
    "tls": {
        "tcp": 
	{
            "443": [ [1, "660008F91C07DCF9058CDD5AD2BAF6CC9EAE0F912B8B54744CB7643D7621B787", 1] ],
            "25": [ [1, "660008F91C07DCF9058CDD5AD2BAF6CC9EAE0F912B8B54744CB7643D7621B787", 1] ]
	}
    },
    "map":
    {
        "www" : { "alias": "" },
        "ftp" : { "ip": ["10.2.3.4", "10.4.3.2"] },
        "mail": { "ns": ["ns1.host.net", "ns12.host.net"] }
    }
}

其中d/是一个namespace,主要是为了应用层的区分,表示这个数据是一个domain.

  • name: d/开头,后面的字符串应该遵守domain name的regex
  • value: json string.关于此domain的一些属性。最大长度520 bytes.

Identity

用来管理网上的个人身份标识信息。namespace为 id/testnet 这里可以看到一些在线的信息。

REF

  1. Zooko’s triangle
  2. Squaring the Triangle: Secure, Decentralized, Human-Readable Names
  3. faq
  4. Domain name specification