Ali, Muneeb, et al. “Blockstack: A global naming and storage system secured by blockchains.” 2016 {USENIX} Annual Technical Conference ({USENIX}{ATC} 16). 2016.

A. Problem Statement

The paper targets the problem of Namecoin deployment like blockchain security. Particularly, how Blockstack uses decentralized ledgers to register and encrypt domain names using the Bitcoin blockchain?

B. Problem Significance

Blockstack’s vision is a truly free and open Internet. The idea behind this vision is that users should not be trapped in a particular application but should be free to choose from a variety of applications and not at the expense of control. Muneeb Ali discusses that large Internet participants exercise too much power over users, which is where Blockstack wants to change. Through the integration and commercialization of blockchain technology, data monopoly and domain name, application, and connection vulnerabilities can be prevented. This is a vision that everyone is willing to work hard to achieve.

C. State of the Art

To implement naming and storage functions, Blockstack has four levels: the blockchain layer and the virtualchain layer of the control plane, and the routing layer and data storage layer of the data plane.
The blockchain layer is at the bottom, providing two services: (1) Blockstack operations are coded in the transaction record of the underlying blockchain, and the blockchain layer is responsible for storing the Blockstack operation sequence; (2) The order in which operations are written to the blockchain provides a consensus.
The virtualchain layer is the core of Blockstack, which defines various operations of the Blockstack node, and only the Blockstack node can perceive this layer. Although the simple blockchain node can read the original text of the operation, it cannot be parsed. The virtualchain layer also defines rules for receiving and rejecting Blockstack operations. For example, the condition for registering a naming operation is that the name has not been registered by another user.
Blockstack separates routing requests (how to find data) from actual data storage, giving users the freedom to choose where data storage is available. Users can choose either commercial cloud storage (such as Amazon S3 or Dropbox) or choose their own private storage or p2p storage system. The routing information is stored in the zone files. The virtual chain binds the name to the hash value of the zone file and stores it in the control plane. The zone file itself is stored in
the routing layer. The current implementation is stored in a distributed hash table. The user can fully trust the routing layer because the user can compare the hash value of the zone file with the control plane at any time to verify that the zone file has been altered.
The storage layer is where the user actually stores the data. All data will be signed by the key pair corresponding to the name owner. Through this type of out-of-chain storage, users can store data of any size, and because the hash value of the data is stored in the control layer, the user does not have to worry about data being tampered with. Data is stored in the storage layer in two ways: variable storage and non-variable storage. The difference between the two is mainly whether the zone file is modified at the same time when modifying the data, which is applicable to the case where the data often needs to be modified and the data is hardly modified.
Blockstack implements a distributed naming system using a four-layer structure. The name belongs to the address of the underlying blockchain and the corresponding private key. Like Namecoin, users need to preorder before registering the name. A user who first successfully writes a predetermined operation and a registration operation to the blockchain can acquire ownership of a certain name. After the name is registered, the user can use the update command to send updated data under that name. The user can also transfer the name to another address using a transfer operation. The revoke command can temporarily terminate the operation of this name.

D. Contributions

Blockchain technology has brought exciting prospects to the Internet. The distributed naming and storage system allow users to maintain absolute control over identity and data. Third-party programs require user authorization if they want to access user data. Although the Blockstack project is not very mature at present, its design ideas and concepts are very suitable for the future development direction of the Internet and are also a model for the application of blockchain technology.
Blockstack builds a naming system that is isolated from the underlying blockchain. The underlying blockchain is used to record the state change of the “name-value” pair. Using the consensus protocol of the blockchain, the whole network has reached a consensus and cannot be tampered with. The operations in the naming system (such as naming registration, update, transfer, etc.) can be reached across the network and cannot be tampered with.
The idea that this data plane is separated from the control plane makes Blockstack not attach to any particular
blockchain, which means that users can choose different blockchains according to their needs. In fact, Blockstack is migrating from the Namecoin blockchain. The reason for the migration is because Namecoin is not as secure as the Bitcoin blockchain. Namecoin is said to have suffered 51% attacks. Another benefit of this idea is that Blockstack has the ability to build state machines. A separate logical layer built on top of the blockchain treats the transactions generated in the underlying blockchain as input to the state machine, and the state machine is in a certain state at any given time. As time changes, new blocks are continuously written to the underlying blockchain, and the global state is constantly changing.
And Blockstack based on decentralized blockchain technology is more secure than traditional centralized domain name servers, supports domain name management, prevents domain name server cache poisoning, and does not require auditing. Namecoin also proposed to develop DNS based on blockchain technology. Blockstack is an agnostic system that runs on another blockchain, meaning that it can run on a bitcoin blockchain. By using the blockchain security technology at the underlying level, Blockstack has transferred its domain name registration fee to miners, thereby increasing its value.

E. Remaining Questions

Without third-party service providers, application decentralization and data organization encounter technical difficulties. When can the Internet be safer and more private than today’s Internet?

读书笔记(五)--Blockstack相关推荐

  1. 读书笔记——五妹妹的女儿房

    最近重读了小说月报2005年第2期原创版上的<五妹妹的女儿房>,作为小说强烈推荐. 当时读完小说时有最初在小说月报上看到<贫嘴张大民的幸福生活>和<天下无贼>的感觉 ...

  2. MDX Step by Step 读书笔记(五) - Working with Expressions (MDX 表达式)

    1. 大多数表达式会返回数值类型的值,但是也能返回例如字符串,时间,布尔或者其它类型的值. 2. 一般表达式的结果都是几个值通过操作符运算后得到的,下列表格中显示了对比,逻辑的,数值的,字符串以及集合 ...

  3. 计算机网络读书笔记(五)

    链路层 我们将看到两种截然不同的链路层信道,第一种类型是广播信道,这种信道用于连接有线局域网.卫星网和混合光纤同轴电缆接入网中的多台主机.第二种类型的链路层信道是点对点通信链路,这一般应用在长距离链路 ...

  4. 《英语阅读教学与思维发展》读书笔记(五)

    第五章    文学阅读课程化 一.理解文学阅读课程 阅读是人的认知活动,构建文学阅读课程,需要理解和解释.理解是一切活动的基础,理解和解释是人类普遍具有的独特的认知方式.课程可以理解为列入教学计划的学 ...

  5. 《架构漫谈》读书笔记五

    什么是软件 软件架构的出现 如同前面描述的架构的定义,软件架构的出现也是同样的.一开始是懵懵懂懂的去写软件,后来慢慢的就有意识的去切分,演变成了不同的架构.这个背后的动力也是一样的,就是提升参与的人的 ...

  6. 《深入理解计算机系统》读书笔记五:信息的表示和存储

    信息存储 大多数计算机使用8位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位. 每个十六进制数字都对16个值中的一个进行了编码. 字数据大小 字节顺序 最低有效字节在 ...

  7. Effective Java读书笔记五:异常

    第57条:只针对异常的情况才使用异常 异常是为了在异常情况下使用而设计的,不要将它们用于普通的控制流,也不要编写迫使它们这么做的API. 下面部分来自:异常 如果finally块中出现了异常没有捕获或 ...

  8. 《深入理解Java虚拟机》读书笔记五

    第六章 类文件结构 1.无关性的基石 各种不同平台的虚拟机与所有平台都统一使用程序存储格式--字节码是构成平台无关的基石. 实现语言无关性的基础仍然是虚拟机和字节码存储格式,Java虚拟机不和包括Ja ...

  9. 【锋利的Jquery】读书笔记五

    jquery表单 表格操作 表单从基本的得到和失去焦点表单验证 <script type="text/javascript">$(function(){$(" ...

  10. 《Spring2.0 技术手册》读书笔记五-与Spring容器的交互(2)

    CSDN博客排版确实不好看!不过技术氛围好,是毋庸置疑的了... 接上篇继续学习... 上篇学习了如何在Bean中获得容器(BeanFactory,ApplicationContext).Bean事后 ...

最新文章

  1. Android Studio MAT内存分析初探
  2. RTSP协议转换RTMP直播协议
  3. 在linux或者windows上直观查看linux下生成的自签名证书
  4. 语法制导的翻译是如何实现的_全球化企业应该如何选择机器翻译解决方案?
  5. Android之URI简介
  6. 北京大学c语言试题及答案,北大网络教育(计算机专业)C程序设计作业答案
  7. 服务器集成显卡性能,Win8.1与Ubuntu 14.10:集成显卡性能PK
  8. redis学习-NoSQL数据库的四大分类
  9. python简述列表特征_python高级特性简介
  10. rm: cannot remove `.user.ini‘: Operation not permitted异常该如何解决?
  11. 值类型和引用类型的区别[转]
  12. C语言程序设计基础学习笔记简介
  13. emu8086——buf 缓冲区的字节数据排序算法程序
  14. 计算机类毕业设计评阅书评语,本科毕业论文评阅人评语_毕业论文评阅人评语模板文库_本科毕业论文评阅老师评语大全...
  15. 题解 P2504 【[HAOI2006]聪明的猴子】
  16. Excel文件处理-Python之openpyxl
  17. 苹果输了官司,iPad会改名吗?
  18. 综合日语第一册第十三课
  19. PDF转Word,Word转PDF
  20. python研究背景与意义_研究背景与意义

热门文章

  1. 第三十四届广东金融科技交流会顺利举行,墨云分享风险验证技术新思路
  2. 文件上传与下载----上传
  3. java 大于当前日期_java判断某日期 是否超过今天
  4. A. Tom Riddle's Diary
  5. Maven下的Mybatis基本配置和使用
  6. 读《品人录》——雍正
  7. 分布式 PostgreSQL 集群(Citus),官方快速入门教程
  8. vue高德地图搜索功能
  9. 求知若饥,虚心若愚Stay Hungry, Stay Foolish--2005斯坦福大学05年毕业演讲
  10. MTU MSS 设置对网络环境的影响