托管和权限区块链(与IBM bluemix提供的超级边界区块链服务一样)与关系数据库服务有何不同?
答案 0 :(得分:5)
许可区块链系统相对于传统数据库的价值主张很简单:通过加密签名历史记录的完整性。什么阻止Twitter编辑我的推文并让它看起来像我说的一些我没说的?很少甚至没有。
这是区块链方法的用武之地。如果Twitter将推文存储在其他人可以复制的区块链中,那么Twitter将对该链进行的任何修改都会被捕获。区块链保持数据库中数据的完整性。他们阻止人们烹饪书籍。这在某些应用领域具有非凡的重要性和价值。
通常,私有或许可的区块链可被视为确保分布式数据库一致性的新方法,即使该数据库是完全信任的环境。区块链如何阻止两个事务花费相同的先前事务输出,以及关系数据库中的multiversion concurrency control(MVCC)如何阻止两个事务修改/删除相同的数据库行之间存在等价关系。从MVCC存储层的角度来看,没有适当的修改行。
这意味着许可的区块链可以提供与MVCC相同类型的并发控制,但是在分布式数据库中可以同时从多个不同位置写入(multi-master replication)。对于像这样的所有场景,区块链肯定不是理想的解决方案,但是如果行大小很小,事务会影响很少的行,只有当某人行为不端时才会发生冲突,允许的区块链可以通过单个哈希保持可证明的一致性跨越分布式数据库的许多节点,所有这些节点都可以写入数据。
在不完全信任的实体之间维护共享数据库时,允许的区块链有一些很棒的附加功能:
数据库可以包含对有效事务的约束形式的应用程序逻辑。这种约束超出了常规的数据库存储过程,因为它在任何情况下都不能被规避。
数据库具有使用公钥加密的每行权限。此外,每笔交易都提供了一个可公开审核的证据,证明其创建者有权删除/修改其先前的行。
当然,这并非巧合,这些是公司间财务分类账数据库非常相关的功能。 具有不可变历史的签署承诺是证明诚信的必要条件。此外,假设承诺是不可变的(交易只能通过添加新承诺来扭转先前承诺的行为),您只能需要跟踪最近的承诺。
如果承诺签名者是一个已知的实体,那么只需要一个诚实的“审核员”来保证承诺签名者的诚实。任何密切关注签名者的人都可以轻松证明签名者修改了历史记录。
另一个用例是允许的参与者是一组有限的合作方,其中没有特别持久的信任。 NASDAQ example就是这个用例。一组已知的参与者,他们目前通过人工记录(通常是电子表格)和昂贵的律师来消除信任要求。区块链式共享数据库虽然比SQL DB慢,但在这种情况下解决了完整性证明,它比当前的手动/法律流程更快,更便宜。
进一步阅读:
归因:该答案的部分内容由Greg Slepak,Eric Lombrozo,Gideon Greenspan和Ron OHara在Bitcoin Stack Exchange的CC BY-SA 3.0条款下撰写。