比特币的时空模型

现如今大多数人谈到比特币都会赞扬他的去中心化,似乎去中心化是比特币的最大创新?当我们仔细看看原始白皮书,好像并没有提到“去中心化”这几个字眼。

然而比特币的确建立在互联网的基础之上,他应该具备某些去中心化的潜能,比如数据是存储在分布式的节点,节点的所有权归属到个体的私钥持有者。说是潜能,是因为并不是一开始就是如此,只有当这个系统扩展到足够的参与者,控制权足够分散,才能实现某种程度的去中心化。

过于强调去中心化表明很多人看到了比特币在空间上的特征,鲜有人关注比特币是如何处理时间的。

上篇文章中我们介绍了虚拟时间的概念,基于虚拟时间,我们可以设计不同的时间协议来满足不同系统的需求。

而对于一个分布式支付系统来讲,首先要解决的问题就是当两条消息的虚拟时间相同时,如何确定他们的先后次序,比特币给出的答案是让CPU来决定。

通过让CPU针对某条消息不断运算哈希算法,来增加这条消息的权重。这个权重也证明了CPU为这条消息做了多少工作,消耗了多少能量,把它加入到虚拟时间的协议中,每个Object依照虚拟时间和CPU的工作量证明排出一条统一的时间轴。时间越靠前的消息,CPU对它做的工作也越多,也越不容易从时间轴当中被踢出。

按照这个协议,系统当中的每个节点都会沿着同一条时间轴来运行,尽管他们处于不同的空间当中。由此看来,比特币是一个在空间上去中心化,时间上中心化的系统,工作量证明让CPU拿回了时间决定权。

我们再对比一下比特币的时空模型与其他系统的区别:

post image

互联网应用最常用的“服务器-客户端”架构,数据存储所有权和消息执行顺序都由一个中心化服务器决定,在时间和空间上都是中心化的。而像Napster和BitTorrent这些早期互联网的协议只专注于文件分享,节点也并不需要按照一条统一时间轴运行,在空间和时间上都是去中心化的。

在空间去中心化的基础上维系时间的中心化并非没有代价,需要外部源源不断的注入能量,支付系统可能是为数不多值得采用这种架构的系统。