在过去的一年中,我遇到了很多区块链'概念证明',它们考虑了现有的商业想法或挑战,并将特定的技术设计(区块链)应用于解决方案。通常的问题/解决方案决策过程已经开始转向:
区块链的解决方案是担心错过?
当然,我可能是一个有点戏剧性的,但让我们探讨一下微妙之处。我曾经认为“是的,你可以在这个用例中使用区块链,但是普通的数据库可以做到这一点,那么为什么要使用区块链?”,特别是对于不需要多方参与的内部区块链用例。最近我开始了解一些原因:
- 实验:因为公司想要对这种技术进行实际试验,以便他们可以更熟悉区块链。
- 免费赠品:因为当前的开源区块链解决方案为您提供开箱即用的东西,否则您必须自行编码。但是要考虑到隐藏的成本。
我们来探讨一下这些想法。如果以下内容太重,请首先阅读区块链技术的介绍。
1.实验
尝试新技术的最简单方法是采取已知问题,并查看是否可以使用新技术为其构建解决方案。你知道结果应该是什么样子,而且你也多少理解问题的约束。然后创建新技术解决方案,然后比较旧技术和新技术解决方案的优缺点。
使用新技术或范例,很难考虑新的用例,因为我们以我们寻找特定形状和大小问题的方式进行设置。例如,我们了解什么样的电脑可以实现自动化,因为我们已经看到了自动化的发生,所以我们知道如何查找可以通过自动化解决的问题。我认为我们还没有用于区块链。
通过区块链,迄今为止我们所见到的唯一解决方案是加密货币(比特币),最近还在以太坊进行了智能合约实验。所以我们寻找与非实物资产类似的问题,例如股票结算,货币支付和忠诚点。这需要一些创造力来思考该技术可以用于什么,所以现在我们关注容易理解的问题。
区块链是一种可以击中新钉子的新型锤子。我们并不完全了解新的钉子是什么样的,所以让我们继续敲击旧钉子,直到我们了解新的锤子。
因此,将这项技术应用于广为人知的问题是有道理的,即使可以使用现有技术解决这些问题。
2.免费赠品
这就是它变得更有趣的地方。有许多开源项目使用了区块链和分布式的账簿,这些项目可以从盒子中获得好处,而这些项目可能不会在其他地方免费找到。
一些免费赠品是因为区块链本身给你带来的好处,另一些则是因为围绕区块链的软件是开源的,因此你可以利用别人编码的免费功能。在数据库复制过程中有一层业务逻辑的区块链也有一些额外的好处。
区块链会让你从盒子里走出来?
可以说,分布式账本的最重要的好处就是你可以在各个实体之间建立关于事实和流程的协议,而不需要单个实体单方面进行修改。
这是让人们对非中介化第三方感到兴奋的事情。
对于不需要多边协议的其他用例,尤其是那些单一实体已被信任的用例,使用这种类型的分布式数据库仍然有一些技术优势 - 无论您是创建追踪事物所有权的分类账,还是仅仅为猫的照片分发数据库。
让我们来探索一些商业利益和一些技术上的好处。
“开箱即用”的商业利益
通过使用当前现有的区块链解决方案(例如Eris:db和MultiChain(以及众多其他平台)),无需任何额外配置即可获得以下优势:
时间戳事件在多个可能敌对或不信任的实体之间达成一致。
由于所有参与者之间的不断复制,灾难性数据丢失成为一个无法解决的问题。
你可以证明数据没有被单方面篡改过。它需要一些重要的协调来更改已经在区块链上编写和复制的数据。
如果数字签名用于启动交易,并且密钥管理得当:
- 证明真实性的能力(谁发起了这项交易?)
- 不可否认(难以让参与者否认责任)
对于数字令牌(要么代表物理项目,要么本身就是非物质化资产),如果使用比特币的“ UXTO ”事务范例,则会得到:
- 所有权历史的完全可追溯性
- 良好的业务逻辑验证,只允许你花费你收到的东西
- 如果将同一标记同时转移给两个不同的人,则可以获得团体一致同意的解决方案
- 原子交易 - 多重支付要么集体接受,要么集体失败。单腿失败没有风险(被称为“ Herstatt风险 ”)。这包括对多个收款人的单笔付款或资产掉期(例如,我为其中的3个提供了其中的5个)。
“开箱即用”的技术优势
不可变性(三点)
- 区块链参与者可以通过比较一个单独的文本(最近的块散列)和另一个参与者的记录来轻松快速地确认其数据的神圣性
- 尝试更改为历史数据不被其他节点接受
- 如果对历史数据进行更改,节点将尝试自我修复网络
更多关于不可变性在blockchain 这里。
分布式数据一致性检查 - 本质上是双重支出预防系统。区块链系统会自动拒绝同时插入网络不同节点的矛盾事务,从而防止数据不一致,如负平衡。
先进的加密认证机制,即协调创建,签署和广播涉及多方的交易的能力。这对于模拟需要几个人或组织批准特定流程的真实场景非常有用。示例包括需要多个签署人的付款,但这可以推广到任何需要多人参与的业务流程。代表各方(人,公司,机器,设备)身份的数字签名和密钥是这些机制的组成部分。
通过复制的弹性。一些关系数据库也提供了这一点,但是以更有限的方式,使用预先配置的主机。在区块链网络中,节点可以在任何时候来去,而不会影响系统的可靠性。
AWS或DigitalOcean等云平台使设置数据库复制变得更容易,但您仍然受限于这些基础设施和必须预先配置的数据库实例。旋转一个新的区块链只需要几分钟的时间,只需很少的预配置开销。
没有控制实体的主 - 主数据库设置。当然,您可以使用像MySQL这样的常规数据库,并在一个数据中心中设置主节点,并在其他数据中心(可能位于不同的国家/地区)设置多个读取副本。但是,您仅限于在单点(主节点)上编写,这有点违背了分布式系统的目的,因为它会创建单点故障和控制。
像MongoDB这样的产品可以很容易地实现master-master分片,但是这会牺牲关系完整性和表格数据等其他功能。您可以尝试使用MongoDB来模仿区块链的行为,但没有任何本地功能可以防止两个客户端在不同主节点上同时插入矛盾事务。
智能合约
如果区块链擅长确保数据在不受信任的实体间准确复制,智能合约擅长确保逻辑在不受信任的实体间准确执行。
就目前确保两个实体之间遵循完全相同逻辑的方式而言,我们最好的工具是在过程之前和之后自动对数据。通过区块链和智能合约,技术保证了流程。
使用常规数据库来复制这个数据库需要很多工作,一旦你完成了,你会看到一些看起来像区块链的东西......
隐藏的成本
概念验证都非常好,我相信人员和公司应该试验和开发这项技术。当涉及系统的工业化时,需要考虑额外的成本,其中包括:
- 新系统是否需要新的审核程序或不同类型的控制?
- 是否需要新的支持/例外流程?
- 技术专业知识有多容易找到?费用是多少?
- 在分布式系统中,当事情没有出错时,你打电话给谁?
除了最后一个问题,这些都是将任何新技术或系统整合到既定流程中的标准。最后一个问题是引人关注的问题,并让我认为,通过区块链,第三方的角色将从一种控制演变为一种协调,而不是完全消除干扰。
结论
技术为我们提供了工具来帮助我们做我们想做的事情。区块链只是其中一种工具,可能是一个有用的解决方案。对于任何业务问题,您从目标开始,看看可能的解决方案。根据您的需求,您可以使用集中式数据库或区块链实现相同的目标。
运行区块链式分布式数据库的开销很小。随着MultiChain和Eris等新的开源工具的上线,您可以通过一个或两个命令安装和启动区块链,并且您当然不需要运行庞大的数据中心来挖掘私有链中的令牌。
您将根据通常的重要指标做出决定 - 通常包括成本,可扩展性,支持,弹性,可用的专业知识,技术风险等。
重点在于区块链和相关技术可用于实验,并为您免费提供某些优势。如果这些好处是有趣和有用的,那么为什么不去?仅仅因为现有的技术也可以被使用而拒绝使用这种技术,那么你可能错过了技术发展最有趣的部分以及影响其方向的能力。
原文发布时间为:2018-03-13
本文作者:天空
本文来源:腾讯云 云+社区,如需转载请联系原作者。