可落地的区块链产品,需要这样的数据系统

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介:

区块链(Blockchain),或者说分布式账本(DLT, Distributed Ledger Technology)最早是起源于比特币的一个重要概念,其本质上是一个去中心化的数据库。区块链系统能够大幅度降低成本,减少风险和管理成本,提升流动性,增加创新产品和服务的机会。可以说,和大数据、云计算、人工智能一样,区块链是未来十年中举足轻重的技术。

从笔者的角度来看,区块链在未来最大的价值并不是在虚拟货币这个领域,而是用以取代原先需要中间人和第三方验证的系统中,以对于数字系统的信任来取代对于人的信任的领域。

区块链系统和CAP、ACID和BASE

为什么我们说区块链系统其实是一个分布式数据库系统?

ACID

传统的数据库都满足ACID原则。我们首先来看一个“事务”(transaction)的概念。事务是一个操作序列,是一个不可分割的基本工作单位。在一个传统的数据库管理系统(DBMS)中,事务应该具有四个特性:

  • 原子性(Atomicity)

  • 一致性(Consistency)

  • 隔离性(Isolation)

  • 持久性(Durability)

取这四个英文单词的首字母缩写,我们得到的是ACID。

原子性指事务是一个不可分割的最基本工作单位,事务中的操作要么都执行,要么都不执行;一致性是指数据库的完整性约束不会被任何事务的发生破坏,也就是说数据库的事务不能破坏数据的完整性;隔离性是说多个事务并发访问时,事务之间是被隔离开的,一个事务不应该影响其他事务的运行效果;持久性则意味着在事务完成以后,该事务所对数据库做的更改便被永久保存在数据库之中,即使系统本身发生了事故也不会更改。

从ACID的四个特性来看,我们发现其实比特币区块链系统几乎具有这些特点:

  • 一个区块要么被全部记录进入区块链,要么不被认可,不可能有中间状态;

  • 一个区块在加入区块链之后,原本区块链的系统依然保持完整性;

  • 每次只有一个区块可以被加入到区块链中,所以隔离性是当然的;

  • 而在区块被写入链条之后,新的区块链会被复制到所有的区块链节点上,被永久保存。

  • 在区块链系统上有一个特殊情况,如果两个不同的节点差不多同时申请挖币的奖励,那么它们中会有一个节点计算出的区块在最终会被抛弃,因而ACID特性中的D(持久性)其实是不满足的。

BASE

因为区块链节点处于地球各处,而这些节点又是由不同用户维护的,所以其实我们并不能保证每次访问区块链的系统时都能获取到数据,而这恰恰又对应了互联网时代分布式数据系统的一个特性,可以称之为为BASE。BASE是一个很怪异的词语的缩写:Basically Available,Soft-state,Eventual Consistency(基本上是可访问的、软状态、最终一致性)。

在BASE理念中,基本可用是指系统在出现不可预知的故障时,允许损失部分可用性;软状态是指允许系统中的数据存在中间状态,不过该中间状态的存在并不会影响系统的整体可用性;最终一致性指的是所有的数据副本,在经过一段时间的同步之后,最终都能够达到一致。

和ACID概念的强一致性相比,BASE理念面向的是可扩展的分布式系统,BASE通过牺牲强一致性来获得可用性,并允许数据在一段时间内是不一致的。不过两者的共同点是最终会达到一致状态。我们可以认为区块链系统符合分布式数据系统的BASE理念。

CAP

我们再来看区块链系统和分布式数据系统上的CAP理论之间的关系。在分布式数据系统中,有三种重要的属性,分别是:

  • 一致性(Consistency):数据一致性,任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的。

  • 可用性(Availability):好的响应性能,每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的。

  • 分区容忍性(Tolerance of network Partition):可靠性,在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。

CAP原理解释了关于这三种属性的关系。CAP原理的意思是:一个分布式系统不能同时满足一致性、可用性和分区容错性这三个需求,最多只能同时满足两个。CAP原理是由美Berkerly的Brewer教授提出。


CAP原理指出一致性、可用性、分区容忍性不可三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。

牺牲一致性而换取高可用性,也是大多数分布式数据库产品的方向。

笔者在比特币区块链系统中看到了“一致性”被牺牲的情况。当一个新的区块被部分节点接受时,如果用户访问的是还没有更新的节点,那么用户获取的数据是不一致的,所以从分布式数据系统的角度来看,比特币区块链系统其实是一个AP系统,也就是说,它保持了可用性和分区容忍性,不过放弃了一致性。

区块链有哪些特征

在区块链进入大家的视野之前,分布式数据系统也一直是学术界关注的一个方向。不过在区块链概念出现之后,大家发现原来分布式系统还可以有新的处理方式。

基于区块链的数据系统特征

  • 去中心化或者多中心化(Distributed or Decentralized)

区块链最大的特性就是使用分布式计算和存储,从而减少甚至消除中心化的硬件或管理机构。在区块链上,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。

  • 开放性(Open)

系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何(有权限的)人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。

  • 自治性(Autonomous)

区块链采用基于协商一致的规范和协议(比如一套公开透明的算法)使得整个系统中的所有节点能够在去信任的环境自由安全地交换数据,使得对“人”的信任改成了对机器的信任,任何人为的干预都不起作用。

  • 信息不可篡改(Untemperable)

一旦信息经过验证并添加至区块链,就会永久存储起来,单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。

  • 匿名性(Anonymous)

由于节点之间的交换遵循固定的算法,其数据交互是无需信任的(区块链中的程序规则会自行判断活动是否有效),因此交易对手无须通过公开身份的方式让对方对自己产生信任。

区块链的核心在于数据

区块链和大数据是两个在过去几年中都得到飞速发展的技术。2016年第46届世界经济论坛达沃斯年会论坛的主题为“掌控第四次工业革命”,包括人工智能、无人驾驶、区块链、量子计算等在内的科技前沿领域在会议中被反复提及。

目前区块链能够承载的信息数量是有限的,离我们要用“大数据”的标准来衡量的地步还差得很远,不过千里之行始于足下,要一步一步地来。

如果要让区块链承载大数据,那么目前笔者所看到的这些区块链系统都还不具备这个能力。

我们来看区块链系统三个和大数据有矛盾、需要改进的特点:

  • 分布式的

  • 有隐私的

  • 安全的

区块链系统是分布式的,而大数据讲究的是可规模化的、可量化的数据;区块链系统是匿名的、有隐私的,而大数据在意的是个性化;区块链系统是安全的,信息是相对独立的,而大数据在意的是信息的整合分析。

区块链系统本身就是一个数据库,而我们所说的大数据指的是对数据的深度分析和挖掘,也就是说,数据分析和数据挖掘需要构建在区块链系统之上,把数据的价值发挥出来。

如果要做到以数据为基础来做决策,那么区块链的大数据化是区块链系统必须要完成的一个步骤。

区块链系统的局限性和门槛

微软亚洲研究院系统算法组首席研究员Thomas Moscibroda在2017首届科技金融国际峰会上提到了区块链的效率和隐私问题。在区块链中,每一个人都在分享自己的数据,而且每一个交易记录都需要被所有人核实、记录和存储。一方面,这个过程会使区块链对传统数据库而言更慢。另一方面,区块链双方的交易过程中第三方必须知晓,且会去核实这个交易的合法性和正当性,而每一个人都能知道交易双方的中间数据,这也带来了隐私问题。

String Labs联合创始人Tom Ding认为区块链技术其实是一项有相当门槛的技术,在整个世界上可能也只有为数不多的团队有能力开发底层区块链系统。

Alphabet的DeepMind Health部门已经宣布计划使用一种与分布式账本一样的系统来监视目前正在被使用的患者数据。他们的工具命名为Verifiable Date Audit(VDA)。Alphabet声称VDA并不是区块链,而是类区块链。VDA借鉴了很多来自比特币区块链的功能,包括不可更改性。同时还提供某种程度的透明度,所以第三方机构可以验证这些数据。

R3的技术主管Richard Brown针对他们的产品Corda是这样评述的:“Corda是一个分布式账本平台,它很大程度上受到并吸取了区块链系统的优势,去掉了很多不适用于银行业场景的区块链设计。”

笔者和包括Thomas在内的一些专家做过深入探讨,我们的共同观点是从架构上来看,在未来的3年甚至更长的时间内,包括比特币和以太坊区块链在内的主流区块链系统都无法有效提升技术应用到有高频数据录入需求的场景上。当然,如果一个区块链系统未来的场景在有足够大的用户和数据量的情况下每秒的交易量也不会到达千这个数量级的话,还有实现的可能。

关于区块链数据库

笔者一直坚持的观点是不以实际应用为目的的技术都是耍流氓,那么如何让区块链系统真正商用化?受到微软和Google各位同学的启发,我们认为如果要真正商用化区块链系统,唯一的出路就是区块链数据库(Blockchain DataBase)。

我们在设计的区块链数据库兼有区块链系统和数据库系统两个系统的优势。

正如笔者在前面说过,区块链系统是符合BASE理念的,不过并不满足ACID。所以我们可以选择一个不满足ACID,而符合BASE理念的数据库来做底层数据架构。对于了解数据库系统的同学而言,可以选择的数据库底层架构已经呼之欲出了。

而与传统的数据库系统相比,区块链数据库将能够拥有原先系统所不具备的特性,也就是笔者在前文中所讲述的区块链系统的各种特性。

区块链数据库中的数据

比特币区块链的可扩展性是一个大问题。如果不提升数据块的大小,整体的交易量则无法提升,而如果提升了数据块的大小,因为每个客户端的节点都会有数据库的完整拷贝,数据存储会是一个非常头疼的事情。

不同于传统的区块链系统,区块链数据库将会拥有数据库系统的可扩展性和性能:

  • 数据可以超过1TB,甚至到达PB的数量级

  • 并发写入的数量级可以达到10-30万笔/秒

  • 单条事务数据没有上限

区块链数据库的共识模块

区块链数据库中共识模块的作用是让系统中所有的数据节点都能够保持一致。如果一个节点的区块链上添加了一条新的交易,那么数据库中所有其他节点也会把同一个交易加入到各自的区块链上。

共识模块的关键点就在于保持整个系统中所有交易顺序的一致性。

共识算法在以太坊和比特币区块链中的达成是通过工作量证明(POW)或者权益证明(POS),而IBM Hyperledger和其他一些想要提升效率的区块链系统采用的是PBFT(Practical Byzantine Fault Tolerance)协议。后者的效率会高很多,不过网络传输的数据会根据节点数的上升而成倍增加。

区块链数据库中,我们会采用Paxos共识算法。

笔者认为在未来三年内,真正可以商用的区块链系统,其底层都会是类似区块链数据库这样的数据系统。



原文发布时间为:2018年02月13日
本文作者:区块链大本营
本文来源:CSDN区块链大本营,如需转载请联系原作者。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
6月前
|
存储 安全 数据管理
新型数据库技术:基于区块链的分布式数据存储系统
传统数据库系统面临着中心化管理、数据安全性和可信度等方面的挑战。本文介绍了一种基于区块链技术的新型数据库系统,通过分布式存储和去中心化的特性,提高了数据的安全性和可信度,同时实现了高效的数据管理和共享。该系统在多个领域如金融、医疗和物联网等具有广阔的应用前景。
|
5月前
|
安全 物联网安全 物联网
区块链零知识证明:未来数据的“隐身斗篷”
**区块链零知识证明(ZKP)技术融合密码学与分布式账本,确保数据安全与隐私。ZKP允许证明者不透露信息地验证论断,增强数据真实性,同时避免数据篡改。未来,ZKP将在数字身份、数据交易、物联网安全及跨链互操作中扮演关键角色,驱动数字化转型并保障信息安全。**
|
6月前
|
存储 供应链 安全
构建未来:智能合约在区块链生态系统中的关键作用
【5月更文挑战第30天】 随着区块链技术的迅猛发展,智能合约已成为推动这一领域创新的核心机制。本文深入探讨了智能合约的技术基础、运作原理及其在各行各业中的应用潜力。我们将分析智能合约如何提高交易效率,减少法律纠纷,并为分布式应用(DApps)提供坚实的基础。文章还将讨论智能合约面临的挑战与未来的发展方向,为读者提供一个全面且深入的视角,以理解这一变革性技术如何塑造数字经济的未来。
|
6月前
|
机器学习/深度学习 自动驾驶 物联网
未来技术的脉动:区块链、物联网和虚拟现实的革新之旅基于深度学习的图像识别技术在自动驾驶系统中的应用
【5月更文挑战第28天】 随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正在重塑我们的世界。本文将深入探讨这些技术的发展趋势,以及它们在各个行业中的创新应用。区块链技术以其不可篡改和去中心化的特性,正在金融、供应链管理和身份验证等领域引领一场变革。物联网通过智能设备和系统的互联互通,实现数据的高效流通,推动智慧城市和智能家居的发展。而虚拟现实技术则通过沉浸式体验,改变教育、医疗和娱乐等行业的服务模式。这些技术的融合与创新,预示着一个更加智能、互联和虚拟的未来。 【5月更文挑战第28天】 随着人工智能技术的飞速发展,深度学习已经成为推动自动驾驶系统革新的核心力量。本文
|
5月前
|
安全 物联网安全 物联网
区块链零知识证明:未来数据的“隐身斗篷”
**区块链零知识证明(ZKP)技术融合密码学与分布式账本,确保数据安全与隐私。ZKP允许证明者在不透露信息情况下证实论断,增强区块链安全性,提高验证效率。未来,ZKP将在数字身份、数据交易、物联网安全及跨链互操作中扮演关键角色,驱动数字世界的安全转型。**
|
6月前
|
存储 算法 安全
区块链系统开发技术规则分析
区块链核心技术包括:1) 哈希算法,利用单向函数将任意数据转化为固定长度代码,确保安全验证;2) 非对称加密,使用公钥和私钥一对进行加密解密,保证信息安全;3) 共识机制,如PoW、PoS、DPoS等,实现快速交易验证和确认;4) 智能合约,自动执行的可信代码,一旦编写即不可更改,用于自动化交易;5) 分布式存储,将数据分散存储在网络各处,涵盖结构化、非结构化和半结构化数据。
|
5月前
|
供应链 区块链
基于区块链的供应链管理追溯系统研究
基于区块链的供应链管理追溯系统研究
|
6月前
|
人工智能 供应链 区块链
移动应用开发的未来:跨平台框架与原生系统的融合区块链技术在供应链管理中的应用探索
【5月更文挑战第27天】随着移动设备的普及,移动应用开发已成为软件工程的一个关键领域。本文探讨了移动应用开发的当前趋势,特别是跨平台开发框架的兴起以及它们如何与原生移动操作系统交互。文章分析了跨平台工具如React Native、Flutter和Xamarin的优缺点,并讨论了它们在性能、用户体验和开发效率方面的权衡。此外,文章还预测了未来移动应用开发可能面临的挑战和机遇,包括人工智能、物联网和5G技术的融合。 【5月更文挑战第27天】 随着数字化转型的深入,区块链技术已从金融领域扩展到多个行业,其中供应链管理成为其创新应用的热点。本文将探讨区块链如何提升供应链透明度、优化流程并增强安全性。
|
6月前
|
存储 安全 数据管理
新一代数据库技术:融合区块链的分布式存储系统
传统数据库技术在面对日益增长的数据量和复杂的数据管理需求时显现出局限性。本文介绍了一种新一代数据库技术:融合区块链的分布式存储系统。通过将区块链技术与传统数据库相结合,实现了数据的分布式存储、安全性和透明度,以及去中心化的特性。这一技术的应用将极大地推动数据库系统的发展,为数据管理带来全新的解决方案。
|
6月前
|
存储 安全 数据管理
新一代数据库技术:融合区块链的分布式数据存储系统
传统数据库系统面临着数据安全性、可信度和去中心化等挑战,而区块链技术的兴起为解决这些问题提供了新的思路。本文介绍了一种新一代数据库技术,将区块链技术与传统的分布式数据存储系统相融合,实现了更高水平的数据安全性和可信度,以及去中心化的优势。通过结合区块链的不可篡改性和分布式存储系统的高性能,这一新型数据库技术将在未来的数据管理领域发挥重要作用。