原文链接:https://medium.com/coinmonks/blockstack-a-decentralized-naming-and-storage-system-using-blockchain-445ff60190f7
Blockstack 命名系统的第 1 层和第 2 层描述如下。
第 1 层 - 比特币区块链
Blockstack 在命名系统中使用名称空间,类似于 DNS。些名称由比特币区块链上的私钥所有。对拥有一个名字感兴趣的人要经过两个步骤的预订,然后注册。在区块链上完成这两个步骤的第一个实体将拥有该名称。在 preorder 的第一步中,不需要显示名称—这将自动使攻击者处于不利地位,因为他们急于获取相同的名称。
第 2 层 - 虚拟链
Virtualchain 维护命名系统的状态转换。例如,新域名的简单注册可以通过虚拟链上的以下状态来完成。
Absent -> Preorderd -> Registered -> Revoked
一旦注册了该名称,就可以更新它、转移它等。
在 Blockstack 命名系统中,通过使用智能定价功能,可以防止域名在 DNS 上被抢注。较小的名称和名称空间更昂贵,因为它们可能更受欢迎。没有数字的名字比有数字的名字更受欢迎。
john.id > johnsmith.id > johns007.id
简单的名称验证
如何验证一个名字? 验证依赖于区块链,遍历整个区块链非常昂贵。当有人想要在移动设备上验证一个名称时,读取整个区块链可能会非常昂贵,因为新区块链的引导需要 1 - 2 天的时间。
Blockstack 通过向后跳转到 2^i 的顺序并验证与区块链中的那些块对应的散列以及该块在虚拟链中的状态操作来实现这一点。
假设您想验证一个名称。首先要做的是找到这个名称的权威事务。SNV 将采取 1、2、4、8、.. 直到它知道感兴趣的事务位于两个块之间。然后它可以在这两个块之间重复相同的过程。这是一个图表:
性能特征
读和写都有一些性能开销。还有额外的存储成本,但这似乎并不高得令人望而却步。这种设计确保可以尽可能利用 AWS 等第三方云提供商的性能特征。根据作者的观点,有许多低挂起性能优化可以进一步提高读 / 写性能。
结论
我发现这篇论文读起来很有趣。在运行类似于 Namecoin 的网络时,了解到更多关于生产问题的信息,这非常棒。随后的控制和数据分离的设计决策,可以利用比特币的安全特性和第三方的高性能大容量存储,听起来也是一个不错的方法。