联盟链要如何做成公链呢?(一)|分布式一致性技术
区块链是一种在不受信任的环境中实现分布式一致性的技术。它实现了一个共享的分布式可信数据库。
由于本人不是程序员,只能介绍概念,无法开发具体的技术实现细节。我一直认为,作为程序员和用户之间的中间人,产品经理在表达的时候一定要不断挑战自己的“不可能三角”,也就是要简短易懂,同时要有丰富的内容。写这篇文章时也是如此。
1、什么是区块链?
首先区块链编程实现,它是一个分布式系统。只要多个节点共享数据,分布式一致性就是一个绕不开的问题。
然后,它必须防止节点作弊。由于节点是不可信的,所以它必须能够区分数据的真实性。
其次,它必须防止数据被篡改。由于信道是不可信的,因此还需要防止数据在传输过程中被篡改。
区块链的数据结构是这样的。简单来说区块链编程实现,就是将“区块”串联起来的“链式结构”。
最后,我们可以得出一个结论——区块链是一种在不可信环境中实现分布式一致性的技术。
2、逆向分析
刚才我们在“做加法”,现在我们要“做减法”,从区块链的结论到实现部分,我们有必要解决这些问题吗?
我们先来看看区块链的分类。从开放性上看,可以分为公有链、私有链和联盟链。开放程度越高,需要解决的问题就越多。
让我们再次回顾前三个问题。它解决了分布式一致性、防节点欺诈和防消息篡改,但限制了拜占庭通用问题的开放权限,充其量只是一个联盟链。
那么联盟链是如何变成公链的呢?答案是,在权限开放的问题上,通过引入挖矿和数字货币来维护网络稳定,可以实现自营、全开放的公链。
只能解决部分问题吗?答案是肯定的。如果拜占庭一般问题不解决,即节点不会被伪造,那么它就是私有链。
如果不采用“区块+链”的结构,即无法解决通道问题,那么就不是区块链。
3、区块链到底实现了什么
总之,区块链实现了一个共享的分布式可信数据库。如果你想建立一个共享的分布式可信数据库,区块链可以做到。
其中,数字货币存在的意义在于作为维护网络的奖励。人是由利益驱动的。如果这样做没有任何好处,我不会这样做。
每个区块链网络都有自己的一套共识算法。共识算法是上述4个问题的一套解决方案,也是挖矿的规则。
至此,我想我们已经清楚区块链取得了什么!
本文参与钉钉社区写作激励计划,好文章有利于收益,欢迎阅读时加入。
广告位 |