无明
关键要点
区块链技术有助于在透明度和数据来源方面进行数据治理。
区块链更多地用于真实性和完整性,而不是保密性。
基于大规模复制、良好设计的激励和加密技术的结合,区块链可以支持由参与各方共享的不可变数据。
供应链系统中的数据管理可以体现区块链是一种非常有用的技术。跟踪数百个供应商之间的数据极具挑战性,区块链可以帮助这些参与者创建自己的数据并跟踪其他人的相关数据。
拥有数据保留策略(要求在一段时间后销毁数据)的公司通常不应该在他们的应用程序中使用区块链技术。
SethJamesNielson最近在年数据架构峰会上主持了一个有关区块链技术及其对数据架构和数据治理的影响的研讨会。
Nielson说区块链是一个不可变的分类账,数据一旦被“输入”就无法进行修改。数据只能被添加到区块链的末尾。
他谈到了公共区块链和私有区块链之间的差别。公共区块链允许任意参与者加入,整个系统是分散的,只有共识才能使其发挥作用。私有区块链可以控制谁可以参与其中。在私有区块链中,可以使用proof-of-stake或proof-of-authority来达成共识。微软Azure和以太坊就支持这种模型。
一些可以从区块链解决方案中受益的应用场景包括医疗保健、供应链和物联网设备。
Nielson还讨论了区块链技术中的智能合约。智能合约是作为分布式分类帐一部分而运行的代码。它们是迷你程序,会在开采到新区块时执行。
区块链主要目标是消除可信的第三方核实和验证。它可以在以下方面给数据治理带来帮助。
透明度
数据来源
互操作激励措施
InfoQ采访了Nielson,讨论了区块链技术如何影响数据架构和数据库专业人员。
InfoQ:区块链技术给数据架构带来了哪些影响?SethJamesNielson:说实话,这还有待观察。有些人认为我们还处于大规模区块链革命的早期阶段,而有些人则认为这项技术被过度炒作,几乎没有真正有用的价值。这项技术背后的关键理念是完全分布式的分类帐。因为是分布式的,所以没有中央授权机构。从理论上讲,各方都可以信任分类账数据的真实性,无需任何第三方来证明。举例来说,当你使用信用卡在商店购买商品时,买方和卖方都需要第三方(信用卡公司)才能执行交易。区块链背后的概念是,大规模复制、良好设计的激励和加密技术的结合让参与各方可以共享不可变数据。交易一旦被追加到分类帐中,就无法删除或更改。这样一来,参与各方就可以独立于其他组织在彼此间开展业务。
问题是,这个简单的版本并不能代表全部真相。如果大多数人同意,就可以更改区块链中的数据。在规模方面也存在很多有趣的问题。
平心而论,区块链社区已经意识到这些问题,并且正在研究解决方案。如果区块链革命要继续向前发展,这些问题必须得到解决。
InfoQ:区块链一般可以在哪些方面解决数据安全性、数据完整性和数据管理问题?Nielson:区块链是在不信任各方当中创建可信记录的一个很好的方法。公共区块链允许任何人加入,不信任方可以是人、组织,甚至是政府。只要没有足够大的单一联盟可以控制大部分区块链资源,就可以保证数据的完整性。
数据安全和数据管理要复杂得多。区块链的每个成员都必须保留和保护一个私钥。如果这个秘钥被未授权方破坏,几乎无法撤销被破坏的秘钥。同样,如果秘钥丢失(例如意外删除),用户对系统的访问也会永久丢失。据估计,世界上有20%的比特币就是这么丢失的。
最后,区块链本身并没有为现有的数据管理提供太多帮助,它只是支持新形式的数据管理。供应链是成功应用区块链的一个例子。放眼全球范围内的供应链,跟踪数百甚至数千个供应商之间的数据极具挑战性。为这些参与者创建区块链,帮助他们创建自己的数据,并跟踪其他人的相关数据,再合适不过了。
分类帐的数据追加特性使得数据无法被删除!这带来了一些有趣的问题。很多公司都有数据保留政策,要求在某段时间后或在某些情况下销毁数据。这类数据通常不应该被存储在区块链中。
InfoQ:你能从数据管理、数据加密的角度谈谈一些区块链的设计模式吗?Nielson:有意思的是,公共区块链中的数据未被区块链本身加密。它会插入你提供的任何内容。如果你提供的是加密数据,那么这些数据将始终以加密形式永久存储(或者在区块链的生命周期中存在)。如果你以明文形式保存数据,只要区块链在运行,整个世界都会看到它们。
区块链通常较少用于保密,而更多用于真实性和完整性方面。话虽如此,你仍然可以使用区块链来证明各种加密操作。例如,你可以将加密数据放在区块链中,然后再插入解密密钥。这是在向世界“证明”你在某个时间点拥有这些数据,在未来某个时间点之前不显示数据的内容。也许加密数据是考试问题的答案。将其添加到区块链中,你就有证据表明你在某个特定日期拥有这些答案,即使你之后没有透露答案是什么。
我知道JohnsHopkins大学的一些伟大的密码学家正在用这种算法做各种有趣的事情。但它仍然处于起步阶段,所以我们仍然在学习所有模式。
InfoQ:什么是“智能合约”?在开发基于区块链技术的应用程序时,如何使用“智能合约”?Nielson:从概念上讲,智能合约是指在某些触发条件下自动执行的迷你程序。在区块链世界中,某些区块链技术,特别是以太坊,支持在插入新事务时执行的代码。
但要记住,区块链是分布式分类账。区块链智能合约存在一些限制,因为网络中的每台机器都必须执行相同的代码并获得相同的结果。否则,分布式分类账将无法达成共识和完整性。不幸的是,有时人们会夸大基于区块链的智能合约的作用。
为了打破智能合约的限制,处理过程的某一部分必须“脱链”(在智能合约之外)完成。例如,智能合约的使用场景之一是在发生干旱时自动支付农民保险金。这是一个好主意,但智能合约如何知道是否发生干旱?它无法直接使用传感器,无法获得来自网站或其他天气信息来源的数据,因为网络中的每个节点在执行分布式代码时都必须得到相同的结果。这根本不具备可扩展性。因此,某种受信任的第三方必须将温度作为一块数据推送到区块链中。一旦智能合约可以在分类帐中看到这些数据,它就很容易处理。
但有些人指出,通过“脱链”,你放弃了智能合约的很多优势,例如去中心化。
InfoQ:对于想要了解区块链的数据库开发人员,你有哪些在线资源可以推荐的?Nielson:我认为现在区块链炒作过度,我的建议是找到你能够找到的所有“观点”,确保你可以找到所有东西来平衡这种“一头热”现象。我发现Coindesk提供了很多有用的信息。
InfoQ:数据库开发人员可以使用哪些区块链开发工具?Nielson:我建议可以看看微软和IBM这样的大公司。例如,微软Azure真的是在做区块链。他们有案例研究,包括与供应链、保险等相关的案例。虽然它们是微软的,但也可以连接到多个后端区块链。
披露一下,我的专业知识更多地涉及应用加密和数据安全。我还没有使用这些工具开发产品,所以我的建议权当参考。
最后,我打算尝试使用以太坊模拟器创建一些智能合约。这是在不将代码部署到真实区块链的情况下尝试智能合约代码的最简单的方法。
区块链真的让人感到兴奋,尽管存在很多炒作。这项技术确实具有一些有趣的潜力,看着它演变和发展是件有趣的事情。今年是比特币白皮书诞生10周年,白皮书中介绍了比特币,并推动区块链技术的发展。即便如此,在过去的几年里,研究和开发工作才刚刚爆发。我想未来将会有很多进展,我们现在看到的只是这项技术的早期原型。
但越早进入越好,可以看看它现在是如何发展的!你正好可以亲眼目睹这个将改变范式的创新。还等什么!
关于受访者
SethJamesNielson博士是CrimsonVista公司的创始人兼首席科学家。CrimsonVista是一家计算机安全咨询公司。Nielson博士为从小型技术初创企业和大型医疗设备制造商提供密码学、计算机安全和计算机网络等方面的咨询。他还担任各种高科技诉讼的证明专家。Nielson博士还是JohnsHopkins大学信息安全研究所(JHUISI)的高级研究项目主任。他教授网络安全和高级网络安全课程,并拥有自己的定制课程和实验室工作,并在课程项目中指导硕士生。在思科的资助下,他目前正在推动加密知识库的开发,旨在帮助非专家了解如何在其组织中正确使用加密技术。
查看英文原文: