区块链
区块链是一种不可变的、仅应用于应用程序的(没有更新,没有删除)数据库,任何新数据都不能与数据库中的旧数据冲突。而且,每一段数据都有一个所有者,复制了很多次,并且总是可用的。最后,每个人都同意数据库的状态,尽管没有中央权威。
从技术上讲,区块链是一种链表或链块,而链块是一组有序的交易。每个交易都有一个交易ID,并且由所有者进行数字签名。所有的交易都是广播的,所以每个人都可以保留区块链的副本。他们运行着一种共识机制,同意下一个区块加入区块链。区块链也常被称为分布式账本。在一个公开的或无许可的区块链中,任何人都可以写信给区块链,任何人都可以从区块链中阅读。在私有或许可的区块链中,只有被识别的参与者被允许阅读和书写。
区块链允许不认识彼此的实体在不需要任何中介或中央权威的情况下就数据库的状态达成一致。换句话说,它可以在陌生人之间建立信任。没有一个实体可以将网络关闭或审查部分内容。
区块链的关键优势在于,它是不可变的,而且它能够在没有中央权威的基础上取得各方之间的信任。
区块链可以帮助的解决方案的类型
区块链POCs被用于资产跟踪、支付和结算、智能合同、交易、投票、共享记录、数字令牌、索赔、出处和忠诚/奖励方案。
根据Gartner的数据,在2017年,有82%的区块链使用案例发生在金融行业,但2018年的用例数量有所增加,只有46%与金融服务相关。区块链实验正在进行的其他大型垂直领域包括交通、零售、公用事业、制造业、保险、医疗保健和政府。
最大的用例是运输和政府的资产跟踪;公用事业、卫生保健和保险方面的记录;零售的出处;以及证券交易。
由于围绕区块链的大肆宣传,我们越来越多地看到,它被用于更好或更简单的方法的情况,比如具有应用程序逻辑的数据库。
Brian Scriber最近在IEEE软件第4号的论文中给出了一个很好的框架来评估一个区块链是否适用于给定的情况。
在这篇论文和框架的基础上,我们开发了以下10个问题的简化清单,在他们开始使用区块链来解决特定需求之前,我们应该问:
1. 建议用例是否需要不变性?不变性是指生态系统中的参与者不能改变历史记录的保证。如果不需要不变性,就有一些更简单的方法来确保其他属性(例如这些数据并没有从原来的形式改变)。
2. 你是否需要删除区块链中的记录或改正错误?区块链是附加的,所以他们不允许这样做。例如,GDPR拥有“被遗忘权”,这可能使在区块链上存储欧盟公民的个人数据变得富有挑战性。
3. 是否涉及多个实体,或者您试图解决一个组织内部的问题?由于信任已经存在于一个组织中,区块链可能是多余的,而简单的解决方案就足够了。
4. 如果涉及多个独立实体,那么这些实体是否相互信任呢?区块链消除了不同实体之间的信任需求。如果这种信任已经存在,那么区块链可能是多余的。
5. 你是否需要区块链提供的透明度,所有参与者都可以看到这个链(即使单个交易可能是匿名的)?您是否已经使用外部控制(如第三方托管或公证服务)来验证或审计事务,如果是,这对您来说足够了吗?如果你现有的控制措施足够满足你的需求,你可能不需要区块链。
6. 了解交易中涉及的人员或系统是否能够确保交易不能被伪造或被破坏,这一点很重要吗?当你想知道交易参与者的身份时,区块链是有用的(例如,哪个医生开了这种药)。或者,如果想要匿名,你仍然希望能够阻止X做一个交易,让它看起来像Y做的那样。如果这对你来说不重要,那么就不需要使用区块链。
7. 分发系统有多重要?集中式系统能满足您的需要吗?分发是非常昂贵的,所以不要使用它,除非您真正需要分发带来的好处,例如节点故障时的系统可靠性、少数坏参与者行为的豁免,以及通过让多个参与者确认事务并达成共识而实现的安全性和完整性。
8. 什么是性能要求,区块链可以满足我的需求?区块链的计算成本很高,而且每秒只能支持有限数量的交易——确保你知道你的需求是什么,并将其与区块链所支持的内容进行比较。
9. 有限资源的受限设备是否需要作为区块链中的节点参与?如果是这样,检查并确保他们能够处理由区块链施加的计算负担。
10. 在被设计的应用程序和区块链之间是否有良好的架构匹配?如果这款应用在本质上是非事务性的,那么它如何能够适应区块链的交易模式呢?如果不同的实体在过去直接相互作用,那么系统中是否会有摩擦变成一个每个人都与分布式账本进行交互的模型?
区块链可以解决重要的问题,但是一定要问自己这10个问题,这样你就可以把它们的使用限制在不存在简单解决方案的情况下。
全部0条评论
快来发表一下你的评论吧 !