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