去中心化系统说明


如何判断去中心化

  • 总体来说,相互独立,缺一不可的三个层次

架构层

  • 物理世界里系统由多少台计算机组成?
  • 运行过程中,能忍受多少台计算机崩溃而不受影响

政治层

  • 组成系统的计算机集群的所有权
  • 个人?组织?多少个人或组织?

逻辑层

  • 设计接口和数据结构来看,更像哪种?
    • 一台完整的单一设备(如:分布式数据库)
    • 一个由无数单位组成的集群
  • 如果把这个系统分成两半,两部分里同时包含生产者消费者,这两部分能作为独立单元完整的运行下去吗

示例

去中心化 架构层 政治层 逻辑层
传统公司 × × ×
直接民主政治 × ×
大陆法 ×√(之间) × ×
区块链、普通法 ×
CDN内容分发网络 ×
BitTorrent、英语语言
× ×
×
× ×
  • 大陆法依赖一个中心立法机构
  • 普通法是由很多法官作为个人做出的许多先例构成的(?)
  • 然而法律就是法律,因此逻辑层中心化

叙述

  • 大多数情况下逻辑层的中心化代表了比较好的选择
    • 区块链的中央数据库,即公共账本,逻辑层上是中心化的
  • 有人认为逻辑层也要尽可能的去中心化,理由是其往往在网络分区上更有生存能力,即在连接性比较差的世界里运行情况会更好

为什么很重要/好处在哪

  • 三个优点:容错性、抗攻击性、抗勾结性(某种程度上也是一般分布式系统所具有的优势?尤其是前两个条件)

容错性

1
2
3
4
5
6
graph LR
A(一台计算机故障概率><br>十台计算机五台故障) -->| 然而 |B(共模故障)
B -->| 组织 | C[同代码客户端<br>同个bug]
B -->| 组织 | D[内部勾结影响协议, 团队]
B -->| 国家 | E[国家接管矿场]
B -->| 集团 | F[一个权益证明的区块链中<br>70%币由一个交易所持有]
  • 初级容错能力:关注架构层上的去中心化设计
  • 系统长远升级和发展时的容错性:重视政治层上的去中心化

抗攻击性

  • 攻防特点:攻防具有不对称性,攻击者往往更占优势
  • 示例:一个人的生命受到威胁,他的5000万很容易被抢走,但如果这5000万是十个人分散持有的,必须同一时间威胁勒索的人数瞬间放大十倍

得到的部分结论(未完全理解):

  • 工作量证明机制(POW)不如权益证明机制(POS)更安全。POW需要挖矿计算机,POS针对权益证明即代币,币相对计算机更容易隐藏
  • 开发区块链的团队分布的越广泛(包括地理位置)越有利
  • 设计共识协议时需要同时考虑经济和容错模型

扛勾结性

  • 定义:勾结就是我们所不喜欢的协调方式
    • 理想状态下,每个人之间都有完美的协调
    • 一部分人能完美协调,另一部分无法协调时情况就会变得危险
  • 反勾结就是尽可能避免节点之间相互协调,即假设一个区块链网络是由许多独立决策的节点组成的
  • 很多社区(包括以太坊)之所以存在,是因为有一个强大的社区精神呢,在执行、发布和激活硬分叉上拥有快速协调的优势

需要改善和培育良好的协调关系,防范糟糕的协调关系,防止“互相勾结”的演变,因此要做到以下三点:

  • 用协议的方式彻底消灭勾结
  • 找到能更好发展且不足以勾结平衡点
  • 让好的协调关系更容易,坏的协调关系更难(社会学挑战)

抗勾结性去中心化可能是目前最实现的

感想与疑问

感想

  • 三权分立之类的基本思想内容是不是包含了很接近去中心化的概念(……)
  • 这篇感觉更多是社会学、经济学,而不是技术学的领域了

疑问

  • Multi-Master形式部署的话,架构上Master也有多个节点,可以忍受一定数量的破坏,政治层不谈,逻辑层上看起来也更像一个集群(注:系统分成两半问题可以用network partitions的方式来回答,如果两半都有主备节点,理论上可以继续运行),但这种部署我们还是说是中心化部署,为何?因为他是你的Master吗?

Written with StackEdit.