基于区块链的分布式域名系统OneName介绍
昨天在微博上看到一个对 Open Name System的简要介绍,于是很好奇的就打开网址瞧了下
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 网站
输入你的邮箱和密码,注意密码需要 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地址。
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 的实现是怎么回事。
专访 Mable Jiang:复盘 Multicoin 投资方法论与 DeFi 洞察
原文标题:《对话 Mable:复盘 Multicoin Capital 的投资方法论与 DeFi 观察 | 链捕手》受访者:Mable Jiang,Multicoin Capital 执行董事撰文:王...
信标链、PoS、分片……接触以太坊 2.0 得先理解这些术语
原文标题:《以太坊 2.0 术语库》整理:ETH 中文网Attestation 证明证明是指验证者所发起的投票,由验证者的签名聚合而成,用以证明区块的有效性,投票通过验证者的余额进行加权。Attest...
手把手教你搭建 IPFS 私有网络
在联盟链的场景下,IPFS 作为去中心化存储的首选方案,本文将介绍如何使用 go-ipfs 搭建一个私有网络并进行简单使用。...