2

Namecoin

 2 years ago
source link: https://yanhang.me/post/2017-08-22-namecoin/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

互联网到今日已经越来越趋向于中心化,用户的隐私安全以及大公司的行为也日渐引起担忧。去中心化网络是一个应对此问题的重要思想,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"   : "[email protected]",
    "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 这里可以看到一些在线的信息。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK