由于本人并不是程序员,所以只能做到引入概念,具体的技术实现细节就无法展开了。我始终认为,产品经理作为链接程序员和用户的中间人,在表达时必须不断挑战自身的“ 不可能三角 ”,即要求长话短说且通俗易懂的同时,做到富有内涵。写这篇文章时,亦是如此。
1、什么是区块链?
首先,它是一个分布式的系统。只要涉及多节点共享数据,分布式一致性就是绕不过的问题。
然后,它要防止节点作假。由于节点不可信,所以要能辨别数据真假。
其次,它要防止数据被篡改。由于信道不可信,还要防止数据在传输过程中被篡改。 区块链的数据结构长这样子。简单来说,就是将“ 区块 ”串联起来的“ 链式结构 ”。 最后,我们可以下结论了——区块链就是在不可信环境中实现分布式一致性的一项技术。
2、反向剖析
刚刚我们是“ 做加法 ”,现在我们来“ 做减法 ”,从结论倒推区块链的实现部分,我们解决的这些问题都是必须的吗?
我们先来看一下区块链的分类。从开放程度讲,可以分为公链、私链和联盟链。开放程度越高,需要解决的问题就越多。 我们再来回顾一下前面三个问题。解决了分布式一致性、防节点作假和防消息篡改,但在拜占庭将军问题上限制了开放权限,充其量只是一条联盟链。 那么联盟链要如何做成公链呢?答案是在开放权限这个问题上,引入挖矿和数字货币来维护网络稳定,就能实现自运行、完全开放的公链。 那能否只解决部分问题呢?答案是,可以。如果不解决拜占庭将军问题,即认为节点不会作假,那就是私链。 如果不使用“ 区块+链 ”的结构,即无法解决信道问题,那就不是区块链了。
3、区块链究竟实现了什么东西
总结起来,区块链实现了一个共享的分布式可信数据库。假如你想构建一个共享的分布式可信数据库,区块链就可以做到。 其中,数字货币存在的意义是——作为维护网络的奖励。人都是利益驱动的,如果做这件事没有好处,我就不会去做。 每一个区块链网络都有自己的一套共识算法。共识算法就是解决前述4个问题的一整套方案,同时也是挖矿的规则。
至此,我觉得我们讲清楚了区块链究竟实现了什么东西!
|