历史上,人们一直在追求将尽可能多的信息记录、传递和保存。物联网希望能够采集更多的数据,5G通信希望能够传递更多的数据,云计算希望提供更廉价和可扩展的算力,而大数据则希望更加高效地处理更多类型和更多数量的数据。
传统数据库、大数据和区块链,都是用来管理数据的。只是不同类型的数据库管理技术,追求的目标不同,应用场景也不同。
传统数据库针对的是高价值的结构化数据,大数据针对的是海量和多类型数据。但二者都假设,虽然可能会存在数据质量不佳等,需要做清洗等问题,但我们可以相信数据管理员,相信他/她不会故意捏造或篡改数据。
区块链技术面向的也是高价值数据,但针对的核心是数据管理员可能造假的问题。传统数据库要信任数据管理员,而区块链不信任数据管理员,更别提他/她希望写入的数据了。当然,与传统的数据库相比,区块链也新增加了原来没有的能力,比如智能合约和内部激励机制等。
为了具备防篡改等能力,区块链应用了分布式和密码学等技术,这必然会带来严重的性能损耗和大幅下降的扩展性等问题。虽然通过隔离见证、分片、多链和增加块大小等,能够加以改善,但理论上都无法与集中式的数据库技术相比。
为了解决不同问题,传统数据库、大数据和区块链走向了不同方向。大数据为追求效率而牺牲了准确性,传统数据库为追求准确性而牺牲了效率,而区块链为追求更高的准确性而牺牲了更多效率。
因此,即使在需要使用数据库的很多场景中,区块链不仅不是必须的,甚至能不用就不要使用它。
2018年1月,美国国家标准研究院(NIST)发布了《谈谈区块链》的报告,清晰地提出了如何判断是否应该使用区块链的评判流程:
1.需要数据库吗?如果回答是NO,请退出。
2.需要多方写入吗?如果回答是NO,请退出。
3.写入方值得信任吗?
a)如果回答是YES,并且多方利益一致,请退出。
b)如果回答是YES,但多方利益不一致,请继续4。
4.这时写入方彼此不信任,或者虽然彼此信任但利益不一致,接下来的问题是,大家愿意信任独立第三方吗?如果回答是YES,请退出。
5.参与写入的多方需要系统的控制权吗?
a)如果需要,那么要在多大范围内形成共识呢?
1)如果是在机构内,选私有链。(旁边的队友不可信)
2)如果是在机构间,选联盟链。(友商的组织不可信)
b)如果不需要,那么交易可以公开吗?
1)如果可以公开,选择公有链(谁都不可信,只相信数学)
2)如果不能公开,根据可公开的范围,选择私有链(5.a.1)或联盟链(5.a.2)。
精彩内容回顾
领取专属 10元无门槛券
私享最新 技术干货