本文主要介绍Bitcoin的第一个代币——Namecoin。
这是最好的时代,也是最坏的时代。 是时候打破泡沫,拥抱技术了。
区块链作为一种分布式账本技术日益受到关注。根据Gartner对2017年的战略技术预测可以看到,区块链技术已经越过了人们对其期望值的最高点,正向着成熟、平稳的方向发展,而且日前对虚拟货币交易所的整治措施也为区块链技术的健康发展铺平了道路。是时候打破泡沫,拥抱技术了!本文主要介绍Bitcoin的第一个代币——Namecoin。
在介绍Namecoin之前,必须要提Zooko三角猜想。Zooko Wilcox-O'Hearn曾推测,任何一种命名系统都无法同时满足三种特性:可读性(Human-meaningful),安全性(Secure),和分散性(Decentralized)。也就是说,任何一种命名系统都要至少像其中一种特性妥协。例如,我们给小孩起名字,可以满足可读性和分散性,但却无法保证名字是唯一的(安全性);满足可读性和安全性的传统DNS,它是中心化的(不满足分散性);Tor暗网满足安全性和分散性,但域名确是随机字符串(无法满足可读性)。但Namecoin的出现,首次打破这个推测,实现了一种分散式的DNS。
Namecoin被认为是Bitcoin的第一个代币,也可以说成是区块链技术的第一个应用。虽然Namecoin也是一种加密货币,但它有更加远大的理想,那就是建立分散式的DNS(Domain Name System)。分散式的DNS可以提供以下好处:
Namecoin在Bitcoin代码的基础之上添加了新的功能,构建了不同于Bitcoin的新的区块链网络。Namecoin的宗旨是构建一个命名系统,第一要务是保证命名的唯一性,因此在不与此违背的前提下,Namecoin尽量保留了Bitcoin的特性,比如挖矿、共识机制、货币总数等。为了实现这一目标,Namecoin使用一些额外的RPC(Remote procedure call)命令让用户可以发送一些特殊的交易来记录键值对。这些键就是用户注册的名字,它们被分散地保存在区块链中,每个节点都可以检查发生在某个键上的操作的合法性。
在Namecoin中有一些预定义命名空间,例如命名空间"d/"被用来注册和管理域名,其顶级域名是".bit"。一个.bit域名使用RPC命令name_new和name_firstupdate创建的。在域名真正创建之前,用name_new命令对其进行预订,这个操作会发送一个带有域名信息(哈希值)的交易保留域名。预订操作的目的是为了防止有人在区块确认之前快速发送注册域名的请求恶意抢夺域名。经过12个区块(大约需要2小时到一天的时间)的确认后,相对应的name_firstupdate命令才会被接受。域名注册成功后,对应的值是有UTF-8编码的JSON对象,最大为520字节,内容大致如下:
{
"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, "660008……7621B787", 1] ],
"25": [ [1, "660008……7621B787", 1] ]
}
},
"map":
{
"www" : { "alias": "" },
"ftp" : { "ip": ["10.2.3.4", "10.4.3.2"] },
"mail": { "ns": ["ns1.host.net", "ns12.host.net"] }
}
}
注册成功的域名的名字和值与价值为0.01的NMC绑定,存储在用户的钱包中,当用户需要转让域名时需要将这笔NMC作为输入。域名在注册后或者最后一次更新后的36,000个区块(大约250天)后会失效,name_update可以用来更新、转让域名或者重置失效时间。
由于在Namecoin上注册的域名并不能被ICANN(Internet Corporation for Assigned Names and Numbers)搜索到,因此用户不能直接访问.bit域名的网站。目前可以通过修改系统配置或者使用额外的软件来访问.bit域名,比如Firfox或者Chrome的插件。
像传统DNS系统初期一样,Namecoin提供的分散式DNS同样面临着“域名抢注”攻击。由于在Namecoin上注册域名的成本很低,很多在初期拥有大量Namecoin的人会占有一些有价值的域名,比如"google.bit"。
另外,由于Namecoin上并没有像Bitcoin一样有可以运行在手机或其他嵌入式设备的SPV节点,所有节点都需要保存从创世区块以来的全部区块。而且因为Android和iOS的封闭性,如果没有操作系统权限无法修改DNS配置。
最后,Namecoin面临的51%攻击比Bitcoin更为严峻。在Namecoin创建初期,矿工主要来自Bitcoin使用Merge Ming,时间久了之后由于很多矿工已经退出了Namecoin,剩余的大矿工很可能已经具有了51%以上的计算资源。Namecoin假如收到51%攻击,攻击者就可以修改含有name_firstupdate的交易,从而偷走域名,这对于Namecoin的危害可以说是致命的。
Namecoin作为Bitcoin的第一个应用,一直发展到今天仍然具有比较强的生命力。虽然由于各种各样的问题,业界对Namecoin的关注度在逐渐减弱,但从它的技术实现和历史发展中都可以吸取很多经验,具有很高的参考价值。
[2] https://github.com/namecoin
[3] 论文 https://www.net.in.tum.de/fileadmin/TUM/NET/NET-2014-08-1/NET-2014-08-1_14.pdf
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!