区块广播:
ChainNode 链节点
区块链教程
新手入门
基于区块链的分布式域名系统OneName介绍

基于区块链的分布式域名系统OneName介绍

无主之地副船长船龄 7年来源 壹比特
 17185  0

昨天在微博上看到一个对Open Name System的简要介绍,于是很好奇的就打开网址瞧了下

界面还是蛮高大上的,不过我还不是不明白基于Blockchain的DNS扩展(Extending DNS with the Blockchain)是什么意思,于是开始试用这个扩展,随后又试用了OneName,又因为OneName使用的是Namecoin的区块链,于是又去了解Namecoin,整体下来就好像赏了一路的风景,所以就想写点游记。

ONS

Open Name System简称为ONS,是一个DNS扩展,目前只支持基于Namecoin的DNS,不过官方说这个扩展是Blockchain无关的。我是在Ubuntu 14.04LTS根据官网的介绍进行的安装和使用。

1.先安装Python包管理工具pip

sudo apt-get install python-pip

2.查看opendig的使用文档

opendig -h

由此可知opendig可以查询bitcoin的某个名字对应的比特币地址(比特币网络里哪来的名字呢?先卖个关子)

3.获取某个名字的地址,查询过程可能有点慢,请耐心等候。

opendig bitcoin -u naval

我们获取了naval这个名字的比特币地址是1919UrhYyhs471ps8CFcJ3DRpWSda8qtSk。

OneName

那么这里的名字到底是怎么跟比特币地址产生关系的呢?我们打开OneName网站

首页就有我们刚才查询的一个名字的注册信息naval,我们可以用同样的方式获得那个比特币名字叫arianna美女的比特币地址。这是怎么做到的?我们试着在这个网站上注册一下,点击CLAIM YOUR NAME按钮

输入你的邮箱和密码,注意密码需要4到5个英文单词,比如:my name is john,然后点击Sign Up按钮,接着选择一个比特币名字类似于naval,arianna

点击Submit按钮,接着选择一个云盘用来保存OneName上的相关信息,这里的可选项是Dropbox和Google Drive,这两个云盘都需要翻墙才能使用。我有Google账户,所以点击Save选择Google Drive保存我的OneName账户信息。

为什么要这么做呢?OneName给出的解释是他们给我们生成了一份加密的key,这个key能让我们完全控制我们的账户,相应的OneName没法控制我们的账户,需要注意的是如果丢失OneName的密码我们需要这个key去恢复我们的账户,所以要妥善保管。

如果你没有Dropbox或者Google Drive也可以点击The file is safe - continue按钮继续,接着你可以选择点击Connect Twitter绑定你的Twitter账户或者点击Manually fill out profile稍后再做绑定(绑定不是必须的)。

随后网站会提示你去邮箱进行邮箱验证,完成这一步后刷新网页你会看到这样的界面

网站提示用户资料正在处理,需要等待区块链的确认,大约需要3个小时(实际上因为时差的原因我等了超过10个小时)。根据OneName的解释,他们并没有存储我们的账户信息,而是依靠Namecoin区块链存储,在Namecoin网络上注册一个新的用户需要0.01NMC,所以OneName对他们的注册用户应该需要一个人工审核的过程。

通过Namecoin区块链浏览器,尝试搜索下注册的域名,得到如下结果:

从第一个操作为OP_NAME_FIRSTUPDATE的交易可以看到我在OneName上的生成的账户信息。

再进一步的通过Namecoin的wiki知道,Namecoin最重要的操作有3个:name_new, name_firstupdate, name_update。

name_new:对你注册的域名进行加盐加密然后广播到网络上,这是为了避免其它人在你注册自己名字的交易广播到网络上之后第一时间抢注。

name_firstupdate:第一次更新名字信息,在name_new之后要等待至少12个块才能进行这一步的操作。

name_update:注册的名字会在36000个块之后到期(大约200-250天),所以需要重新更新。

由上我们可以发现Namecoin仅仅是一个简单的分布式key/value存储系统,可以生成一对key/value,可以更改,生成和更改都需要花费NMC。这样的网络能解决什么问题呢?目前我了解的应用有两个方面:分布式DNS解析系统和分布式身份认证系统。

分布式DNS解析系统

我们知道计算机要访问类似谷歌这样的网站需要DNS服务器解析网站的域名,就是得到www.google.com的ip地址,比如74.125.239.19,但国内会屏蔽掉这样的域名解析请求,所以导致我们常常无法使用谷歌的服务。假如我们自己的计算机上就存储了谷歌域名的ip地址(如果该地址还没被屏蔽掉的话),那么我们就有办法访问谷歌的服务了。Namecoin正好能提供这样的服务,可以把网址当做key,把ip地址当做value存储到Namecoin里。

现在有些以.bit结尾的网站,比如www.weblist.bit,这种网站用浏览器无法正常访问,需要借助NMCControl或者一些代理网站,比如http://bit.no.com/进行访问,这些工具就是帮助我们从Namecoin网络上获取要访问网站的ip地址,然后使用ip地址去访问。可以在Namecoin block explorer上查到weblist的最新的ip地址。

根据.bit分布式DNS系统上的介绍(以下简称.bit),这样的分布式DNS解析系统相比传统的DNS解析系统有如下优点:

1.网站更难被政府屏蔽,但毕竟是公开的,政府能够得到域名的ip地址,从而可以进行ip地址屏蔽。

2.安全性,我们知道htts这样网站一般比较安全,因为通过安全证书能防止中间人攻击等网络攻击,.bit宣称他们能在不需要安全证书的前提下保证一样的安全性而且对于网站的拥有者而言这样的安全性是免费的。由于暂时没有更多的资料,我也不知道这样的安全性是怎么实现的。

3.保护隐私,传统上我们访问一个网址肯定会在DNS服务器那留下我们的访问请求,所以这会暴露我们在网络上的行为,而通过分布式DNS系统,我们都是在自己的计算机上就得到域名的ip地址,所以别人无从得知我们在网络上的行为。

4.更快的解析速度,.bit说通过传统的DNS系统,一般需要100ms甚至更多的时间进行域名解析,而由于在本机解析.bit可以把时间降到3ms以下。

.bit虽然有以上几点好处,但是我觉得要想推广使用还是需要很长的路要走,比如

1.怎么避免政府把整个Namecoin上的域名对应的ip地址全都屏蔽掉,这不是很难的事情。

2.怎么提高.bit网站的易访问性,通过代理和插件都存在安全隐患且不是很方便,除了色情等少数特殊网站对网站的易访问性要求不高外,大部分商业网站对这点都有极高的要求。

分布式身份认证系统

OneName说他们的目标是从Facebook,LinkedIn和Twitter这样的中心化组织拿回对用户数据的控制权。我不太理解这里的控制具体指什么,数据又是指哪些数据。

我在使用很多网站的时候很烦的就是需要注册,填写资料,我想这个分布式身份认证系统是否是想解决这个问题呢?

首先,分布式身份认证的数据的安全性(这里的安全性是指数据遭受破坏)是超过中心化组织的。

其次,如果很多像Facebook这样的网站如果愿意接受第三方网站提供的用户信息进行注册和登陆,那么我会很乐意使用这个第三方网站管理我的个人信息,尤其是这个第三方网站使用去中心化的分布式身份认证系统。

目前OneName仅仅只是做到了更方便用户收发比特币,期待他们后续的进展。 

再回到ONS这样DNS扩展,我终于理解它的用途,它能帮助我们获取分布式key/value网络上用户的信息或是域名的信息。像这样的分布式key/value网络我了解的还有NXT在做,以后再写写NXT的实现是怎么回事。

  • 全部
  • 最佳
登录 账号发表你的看法,还没有账号?立即免费 注册
推荐教程
换一批