精华内容
下载资源
问答
  • 关系数据模型、优化与索引、事务模型是数据库技术发展取得的主要成就,但是保持数据一致性是数据库系统实现的基本要求。保证数据一致性包括关系依赖的数据保证...利用去中心化的思想,可以实现在参与主体间保持数据的一

    关系数据模型、优化与索引、事务模型是数据库技术发展取得的主要成就,但是保持数据一致性是数据库系统实现的基本要求。保证数据一致性包括关系依赖的数据保证某种约束条件以及数据的多个副本保持一致性。为满足互联网的发展,可扩展的数据库系统经历了从通过大型机器提供的计算和存储能力实现垂直的可扩展性到当前主要依靠增加廉价机器提升计算和存储能力实现水平扩展能力。但是在水平扩展性框架下,通过Paxos协议达成数据一致性仅能在几个副本之间达成,数据的管理权限控制在单个实体中。利用去中心化的思想,可以实现在参与主体间保持数据的一致性,形成主体之间的“共识”。数据库遇到区块链要解决的根本问题将是将中心化环境中的数据一致性拓展到去中心化环境中的数据共识性。
    区块链是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”、“全程留痕”、“可以追溯”和“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。区块链将信息存储在称为区块的数据结构中,实现了一个良好的共识机制,例如网购中如何确定交易的有效性就需要一种良好的共识机制。共识在这里是指参与者关于某一区块链的状态达成共同的认识。去中心化的含义在于没有某一个人或某个机构可以处于领导地位,任何的决策、变更都需要参与者使用区块链这个良好的共享机制来达到相同的认识,实现共识。在这个共识的过程中,并不是消除信任,而是信任集合中的每一个实体。相对于传统数据库,区块链具有以下优点:
    1.去中心化:传统数据库是通过控制访问权限来管理数据,但是不能排除拥有 管理权限的用户做出损害数据库的行为。但是区块链使用数据加密学和工作量证 明以及结点的共识机制来保证数据的安全。
    2.健壮性:区块链具有高容错性,由于其内在的冗余机制,单个实体对于整个 区块链网络都是必不可少的。即时是出错的结点也不会导致整个网络的崩溃。
    但是相对于传统数据库,区块链的运行速度较为缓慢,但是原因并不是因为区块链技术无法实现高性能,而是其作为新生事物还有较大的优化空间。数据库与区块链相融合,不仅数据库可以解决从一致性到共识性的拓展,而且数据库的技术方法可以促进当前的区块链技术发展。
    各类技术的相互借鉴、融合和发展是未来数据管理领域的发展趋势。数据库技术与其他计算机技术相融合也是数据库技术的一个显著特征,在数据库过往的发展史中,数据库技术与分布处理技术相融合,出现了分布式数据库系统;数据库技术与并行处理技术相融合,出现了并行数据库系统;数据库技术与移动通信技术相结合,出现了移动数据库系统。过往数据库发展的历史告诉我们,未来的数据管理依然会朝着多领域融合的方向发展。随着大数据的发展,大数据给数据管理、数据处理和数据分析提出了全新的挑战。支持海量数据管理的系统应具有高扩展性、高性能、容错性等。只有数据库系统进一步的发展,人类才可以更好地分析可利用的大规模数据,也能使得更多的学科取得进步,更多的企业获得更大的成功。现代数据所面临的挑战不仅包括扩展性不足,还面临着数据隐私、数据溯源以及可视化等多方面的问题。这些技术挑战同时横跨多个应用领域,这也要求数据库技术与各类技术相互借鉴、融合和发展。

    展开全文
  • 区块链的概念到技术其实出现已经很长时间,但是随着这两年火热,才渐渐被市场和许多技术人员了解。...因为区块链这个东西本质和数据库技术非常相像,很多机制使用数据库的理念理解会非常直观准确
        

    区块链的概念到技术其实出现已经很长时间,但是随着这两年的火热,才渐渐被市场和许多技术人员了解。作为一个数据库行业的老兵,王涛看到对于区块链技术,在热潮之下,传统的IT技术同学们保持了十分理性,甚至是排斥的态度。其实不管是热捧还是排斥,两极观点之下,王涛认为我们应该从IT人比较能够理解的角度探讨一下区块链技术。因为区块链这个东西的本质和数据库技术非常相像,很多机制使用数据库的理念去理解会非常直观准确。在本文的分享中,王涛将从数据库对比的角度,可以让传统IT人更好的理解区块链技术。以下为王涛的详细分享,希望对你有所帮助。同时,王涛也提出了“去中心化数据库”的定义,作为区块链技术和数据库技术未来融合的可能方向。


    640?wx_fmt=png&wxfrom=5&wx_lazy=1


    王涛简介:


    SequoiaDB巨杉数据库的联合创始人&CTO,曾是北美IBM DB2 Lab核心研发成员,有着超过十年的数据库核心架构设计,数据库引擎研发和企业级数据库应用的经验。王涛同时对区块链技术,分布式架构,分布式算法,区块链技术以及去中心化业务应用有着深入的了解。2012年公司成立以来,王涛先生一直主导着SequoiaDB产品的架构设计与开发,并在业界对未来数据库、大数据、区块链技术发展进行全力地推动。


    在本次BTA区块链技术及应用峰会上,王涛也在区块链核心技术专场,发表了“区块链:去中心化数据库”的主题分享。本文就基于王涛老师现场的演讲内容整理而成。

     

    以下为王涛的分享实录:


    作为一个数据库行业的老兵,我看到对于区块链技术,在热潮之下,传统的IT技术同学们保持了十分理性,甚至是排斥的态度。其实不管是热捧还是排斥,两极观点之下,我认为我们应该从IT人比较能够理解的角度探讨一下区块链技术。因为区块链这个东西的本质和数据库技术非常相像,很多机制使用数据库的理念去理解会非常直观准确。


    对于区块链和传统数据技术,我认为区块链技术的未来发展,主题是“融合”。我们就从数据库这个角度来解读一下区块链技术体系中各个技术点,以及通过“去中心化数据库“这个概念,把区块链与数据库技术做一个比较好的整合。



    区块链技术现状


    当前的区块链世界有人号称1.0、2.0、甚至已经到了3.0时代,但是从一个产品或技术打磨的角度来看,我认为当前的区块链也就相当于数据库的80年代,处于百花争鸣各种思想层出不穷的时代。


    对技术人来说,这是最好的时代,各种新鲜的想法和思路大量爆发,在沉闷的技术领域带来新鲜的突破;同时这也是最坏的时代,没有任何产品或方向肯定是未来的主流,任何新鲜的思路也许在几个月以后就被证明不可行。


    所以,我们要正确认知当前区块链技术的变革和发展,那我们来对比一下当年数据库所走过的道路,看看未来区块链世界会怎样发展。


    640?wx_fmt=png


    1)技术演进路程

    首先我认为,区块链一定会从当前的专有化向通用化演进。现在基本所有做公链的产品都是针对某一个特定的场景来实现与优化,但是我认为未来一定不会是一个应用一条链,而是有一种通用的开发范式,就好像传统数据库一样,不管大家开发什么样的应用程序,都可以使用这么若干有限的几个通用性产品就能够满足大部分业务场景了。


    第二,向标准化演进。对于区块链技术,现在每个链基本都有自己的开发范式,甚至很多公链还模仿以太坊尝试自己做一个编程语言出来,这实际上是一种行业处于原始时期的标志。怎样判断一个行业开始走向成熟?就是业务模式基本固定,开发方式基本固定,这样就能够对大量的程序人员进行推广了。


    第三,产品化和模块化不断加强。当前不管是以太坊、比特币还是很多其他新的公链,大部分的体系结构都是非常紧耦合的。对比起我们在大数据领域的Hadoop,基本每个模块都可以作为独立插件进行可配置可定制的插拔。所以我认为,随着区块链技术的不断成熟和稳定,未来一定会出现一款成熟产品,能够通过可插拔配置与插件的方式满足多种共识算法、安全机制等。


    最后,性能与可扩展性的提升。实际上这也是数据库所走过的路,当前区块链世界想在短短的时间之内通过侧链、分片等机制跨过当年数据库几十年来的变革。


    等一会我会介绍一下,从数据库的角度看待区块链,其最大的性能与扩展能力制约瓶颈在什么地方,以及应当如何优化。


    2)发展现状

    那我们回过头来,看看当前区块链行业的现状。

    我一直以来的观点,抛开区块链上层的一些应用与金融领域的创新,单独从技术角度来看,其最大的革新在于对等数据存储机制的建立。

    在数据库这个行业里,大家一直遵从着主-从架构,而完全“多活”的系统从几十年前的提出一直以来都是传说中的事情,从来没有任何产品真正做到多活。


    而当我们以创新的多活数据库来看待当前区块链技术时,就会发现三个急需改进的问题。


    首先,区块链的体系结构现在非常混乱,大家还没有向传统数据库一样将其分类为事务、存储过程、鉴权、主从同步等模块,大部分人对区块链的认知还是停留在神秘的黑盒子阶段。


    第二,区块链的开发语言完全不成体系。数据库在经过开始的“战国时代”后,渐渐使用SQL做到了业界的大一统。而区块链当前明显还处于“战国时代”,还没有一个统一的标准开发和使用标准。


    第三,需求的多种多样,有些需求或白皮书的业务介绍是靠谱的,有些则是完全异想天开不知所云。实际上这个和区块链所带来全新的业务模式相关,很多人还在探索新的业务模型,从而导致需求没有形成标准范式。



    区块链 vs数据库技术,相同点


    从数据库的角度对比,区块链技术即去中心化多活数据库技术,两者之间没有本质区别。

    这里我列举了一些区块链里面比较重要的技术点,以及这些技术点在数据库领域中是以什么形式存在的。这些概念和数据库中的技术概念一一对应关系如下:


    共识机制

    一致性控制—共识机制

    分布式数据库中叫做一致性控制,包括传统的主从复制、新一代的Raft、Paxos等算法。在区块链中为了解决额外的拜占庭问题,将算法改进为PBFT、PoW、PoS等协议


    存储机制

    数据库日志—账本

    区块链结构基本等价于数据库的事务日志,其主要新增的内容包括Merkle Tree结构用于快速验证数据的正确性,但是其本质与数据库的交易日志等价。同时数据库在日志中更会包括事务控制等企业级能力,是区块链数据结构所不具备的


    智能合约

    智能合约---存储过程

    智能合约与数据库存储过程一样,都是一段托管代码。本质上智能合约与数据库存储过程没有什么区别,都是通过外部调用或虚拟机执行一段代码,并可以将托管代码共享给其他用户进行调用


    分片

    数据库分片机制早在MPP数据库时代就已经存在。通过将大量数据切分在不同分片中,达到限制每个分片数据总量,并提升总吞吐量和存储空间的目的


    应用开发接口

    当前区块链还处于类似数据库当时的早期时代,接口没有统一标准化。根据区块链项目不同,其接口可以按照数据库、对象存储、API调用、甚至PaaS平台标准进行定义


    安全

    区块链的安全机制与数据库安全机制具有相似之处。数据库安全一般分为鉴权与授权两个模块,分别代表用户登录以及访问权限。而区块链当前仅支持记录级写授权,但是对于读操作时完全共享的。因此,从安全策略上数据库比当前的区块链完善很多



    区块链 vs数据库技术,不同点


    640?wx_fmt=png

    数据库与区块链功能架构图


    1)功能架构

    黄色部分是区块链和数据库架构都拥有的功能。白色的部分是目前数据库独有的功能。


    SQL我们再上文也有提及,数据库的SQL能力是实现其通用性的重要部分,SQL对于之后区块链的开发模式固定下来很重要。


    索引管理这块,在数据库中主要是提升数据管理和数据查询的性能效率的,当具体的应用场景出现,性能将成为下一阶段需要提升的重要部分。因此,存储的数据的索引就成为很重要的组成了。


    在机制上,区块链和数据库的主要区别就如以下几点:


    2)一致性

    区块链的设计思想,与传统数据库设计思想最大的不同就在于多活,也就是去中心化这个体系下所带来的一致性模型的区别。


    传统的关系型数据库遵循ACID强一致模型,写入的记录立刻可以读到。而一些新型分布式数据库采用最终一致性,也就是BASE模型,写入的数据暂时不一定读到,但是最终一定会存在。


    但是,区块链,或者说去中心化数据库的设计思路就存在明显区别,也就是说任何操作不存在“永久确认”这个概念。即使类似比特币,从核心原理上来看6个块之前的内容也只是“基本不会被回退”。举个极端的例子,如果中美之间广域网出于什么原因突然断了三天,之后恢复的话比特币一定会出现大规模分叉,这个期间如果有账号同时在中美进行大额消费的话,想要恢复一个主链则一定需要牺牲很大一部分人的交易才能实现回退。


    那么,既然在对等架构中没有办法保障强一致,那么区块链体系中的一致性则和传统数据库存在本质上的区别,从而引发后续一系列设计上的不同。归根节底,在任何传统主从架构的数据库模型中,人们会想尽一切方法防止集群内出现“脑裂”,也就是同一个集群里面两个节点都认为自己是主节点。但是这个问题在对等数据库体系下时时刻刻都可能发生,而这种现象在区块链里面叫做分叉,这是和我们传统数据库一致性模型非常不同的地方。


    3)锁机制

    其中,锁机制可以说是区块链与数据库在保障数据一致性方面最大的区别。

    所有研究过数据库的同学不可能没听说过锁。当我们做一个事务的时候,提交之前所有该会话变更的记录都要被锁住,不能被其他会话所修改。


    而去中心化数据库,由于每个账本节点操作本地数据,变更信息会异步地传输出去,因此根本不存在一个全局锁能够在记录变更的时候通知其他人。因此,在无锁的前提下,去中心化数据库,也就是区块链该怎样保障数据一致呢?


    比特币使用的是UTXO结构,有点类似于数据库的“乐观锁”的思路,也就是操作的时候不进行锁定,只有在最后提交的过程中判断记录有没有变化。


    比特币则是通过coin是否被花费的状态来判断是否存在交易冲突。而以太坊则是使用nonce作为每条记录的递增计数器来判断是否存在针对某一账户的重复交易,实际上也是一种变相实现的行级锁的机制。


    4)安全机制

    另一个区块链业界大家谈论比较多的就是安全机制。

    首先,我不是加密算法专家,因此我在这里不去讨论具体使用的加密算法,而是从整个存储体系的安全模型设计上,来讨论一下区块链技术中如何在全对等架构的体系下保障数据安全。


    在我看来,区块链的安全体系分为三个级别,记录级、区块级以及链级。

    记录级安全主要是判断某一条操作记录是否合法,在一些实现中还包括是否对不同用户有读可见和写可见。


    而区块级则是当节点接收到另一个节点发送的区块时,如何判断这个区块本身没有被篡改过,那么通过默克尔树、挖矿的结果等机制都可以做到。

    最后,怎样保证链的完整呢?比如每个数据块需要包含链中上一个数据块的校验,以及当分叉发生时如何进行回退等,都是保障整个链条结构的完整。



    去中心化数据库架构


    区块链技术和数据库技术的融合会形成怎么样的结果呢?


    我们是否能够将现有的区块链以数据库的架构进行组织,分为内核,运行库,插件,以及SQL解析优化等不同模块呢?


    既然数据库的核心本质依然是不可变更的事务日志,这一部分等同于区块链的链结构,那么如果我们通过将SQL引擎架设在state store,甚至让SQL引擎直接对链内的数据进行访问,是不是意味着我们就拥有了一个通用的编程和访问接口?


    又例如,对于安全组件,我们是否可以做到列级行级表级以及节点级别的安全认证,同时可以通过配置指定哪些表需要进行数字签名,哪些表的一些字段是共享的,但其他字段是需要经过多重签名做加密的等。


    另外,对于一致性来说,我们是否可以指定某些表是全局共享表,某些表则是本地表,这样就可以取代现在区块链与数据库混用的部署方式。


    我认为,未来会出现两者融合而成的 “去中心化数据库”。


    640?wx_fmt=png

    去中心化数据库基本功能


    去中心化数据库的基本特性:

    1. 去中心化:架构是完全的去中心化的,不存在中心的控制节点,每个节点都具备读写的功能,每个节点的数据都是一致的;

    2. 无全局锁:由于采用广域网上的对等架构,去中心化数据库不可能实现全局锁,因此系统只能使用在某种程度上弱化锁与一致性,来满足高可用的需求;

    3. 非固定节点生成日志:非固定节点生成日志,日志是整个数据库的日志,在去中心化的体系结构中任何节点都有权记录日志,这样就形成了去中心化没有主节点的架构,任何节点都有机会临时成为记账节点出块;

    4. 异步事务确认:由于不存在全局锁,与传统数据库相比一些事务机制必须得到调整。将事务的提交回滚做到异步可能是一种比较可行的思路;

    5. 一致性策略调整:在多活的区块链状态下,数据的一致性策略会与传统的数据库一致性机制有所不同;

    6. 行级别安全性和触发器:对于数据安全,去中心化数据库将会保证到行级甚至列级的数据安全性。



    结语:区块链和数据库技术融合:去中心化数据库


    对于区块链和传统数据技术,我认为区块链技术的未来发展,主题是“融合”!

    现在区块链的业务理念飞速发展,但是从技术本身来看,我认为当前区块链的技术仍然和上世纪“80年代”的数据库技术阶段类似,在技术的成长期。如我们上文所提到,区块链技术在通用性、标准化上还有很长的路要走。


    而基于技术路线和架构设计的类似,数据库技术与区块链技术的融合其实是大势所趋。 而通过区块链技术和机制的引入,去中心化数据库,将可能是未来技术发展的一个重要方向。 



    640?wx_fmt=gif


    想跟区块链大咖蒋涛和孟岩一起工作吗?

    快来快来,CSDN区块链大本营招采编 2 名 (待遇不低于行业水平)

    邮件发送:puge@csdn.net(注明:姓名+区块链+采编应聘)


    640?wx_fmt=png

    扫码加入区块链大本营读者群,群满加微信 17600222208 入群

    展开全文
  • 作为一个数据库行业老兵,王涛看到对于区块链技术,在热潮之下,传统IT技术同学们保持了十分理性,甚至排斥态度。其实不管热捧还是排斥,两极观点之下,王涛认为我们应该从IT人比较能够理解角度探讨一下...

    区块链的概念到技术其实出现已经很长时间,但是随着这两年的火热,才渐渐被市场和许多技术人员了解。作为一个数据库行业的老兵,王涛看到对于区块链技术,在热潮之下,传统的IT技术同学们保持了十分理性,甚至是排斥的态度。其实不管是热捧还是排斥,两极观点之下,王涛认为我们应该从IT人比较能够理解的角度探讨一下区块链技术。因为区块链这个东西的本质和数据库技术非常相像,很多机制使用数据库的理念去理解会非常直观准确。在本文的分享中,王涛将从数据库对比的角度,可以让传统IT人更好的理解区块链技术。以下为王涛的详细分享,希望对你有所帮助。同时,王涛也提出了“去中心化数据库”的定义,作为区块链技术和数据库技术未来融合的可能方向。


    640?wx_fmt=png&wxfrom=5&wx_lazy=1


    王涛简介:


    SequoiaDB巨杉数据库的联合创始人&CTO,曾是北美IBM DB2 Lab核心研发成员,有着超过十年的数据库核心架构设计,数据库引擎研发和企业级数据库应用的经验。王涛同时对区块链技术,分布式架构,分布式算法,区块链技术以及去中心化业务应用有着深入的了解。2012年公司成立以来,王涛先生一直主导着SequoiaDB产品的架构设计与开发,并在业界对未来数据库、大数据、区块链技术发展进行全力地推动。


    在本次BTA区块链技术及应用峰会上,王涛也在区块链核心技术专场,发表了“区块链:去中心化数据库”的主题分享。本文就基于王涛老师现场的演讲内容整理而成。

     

    以下为王涛的分享实录:


    作为一个数据库行业的老兵,我看到对于区块链技术,在热潮之下,传统的IT技术同学们保持了十分理性,甚至是排斥的态度。其实不管是热捧还是排斥,两极观点之下,我认为我们应该从IT人比较能够理解的角度探讨一下区块链技术。因为区块链这个东西的本质和数据库技术非常相像,很多机制使用数据库的理念去理解会非常直观准确。


    对于区块链和传统数据技术,我认为区块链技术的未来发展,主题是“融合”。我们就从数据库这个角度来解读一下区块链技术体系中各个技术点,以及通过“去中心化数据库“这个概念,把区块链与数据库技术做一个比较好的整合。



    区块链技术现状


    当前的区块链世界有人号称1.0、2.0、甚至已经到了3.0时代,但是从一个产品或技术打磨的角度来看,我认为当前的区块链也就相当于数据库的80年代,处于百花争鸣各种思想层出不穷的时代。


    对技术人来说,这是最好的时代,各种新鲜的想法和思路大量爆发,在沉闷的技术领域带来新鲜的突破;同时这也是最坏的时代,没有任何产品或方向肯定是未来的主流,任何新鲜的思路也许在几个月以后就被证明不可行。


    所以,我们要正确认知当前区块链技术的变革和发展,那我们来对比一下当年数据库所走过的道路,看看未来区块链世界会怎样发展。


    640?wx_fmt=png


    1)技术演进路程

    首先我认为,区块链一定会从当前的专有化向通用化演进。现在基本所有做公链的产品都是针对某一个特定的场景来实现与优化,但是我认为未来一定不会是一个应用一条链,而是有一种通用的开发范式,就好像传统数据库一样,不管大家开发什么样的应用程序,都可以使用这么若干有限的几个通用性产品就能够满足大部分业务场景了。


    第二,向标准化演进。对于区块链技术,现在每个链基本都有自己的开发范式,甚至很多公链还模仿以太坊尝试自己做一个编程语言出来,这实际上是一种行业处于原始时期的标志。怎样判断一个行业开始走向成熟?就是业务模式基本固定,开发方式基本固定,这样就能够对大量的程序人员进行推广了。


    第三,产品化和模块化不断加强。当前不管是以太坊、比特币还是很多其他新的公链,大部分的体系结构都是非常紧耦合的。对比起我们在大数据领域的Hadoop,基本每个模块都可以作为独立插件进行可配置可定制的插拔。所以我认为,随着区块链技术的不断成熟和稳定,未来一定会出现一款成熟产品,能够通过可插拔配置与插件的方式满足多种共识算法、安全机制等。


    最后,性能与可扩展性的提升。实际上这也是数据库所走过的路,当前区块链世界想在短短的时间之内通过侧链、分片等机制跨过当年数据库几十年来的变革。


    等一会我会介绍一下,从数据库的角度看待区块链,其最大的性能与扩展能力制约瓶颈在什么地方,以及应当如何优化。


    2)发展现状

    那我们回过头来,看看当前区块链行业的现状。

    我一直以来的观点,抛开区块链上层的一些应用与金融领域的创新,单独从技术角度来看,其最大的革新在于对等数据存储机制的建立。

    在数据库这个行业里,大家一直遵从着主-从架构,而完全“多活”的系统从几十年前的提出一直以来都是传说中的事情,从来没有任何产品真正做到多活。


    而当我们以创新的多活数据库来看待当前区块链技术时,就会发现三个急需改进的问题。


    首先,区块链的体系结构现在非常混乱,大家还没有向传统数据库一样将其分类为事务、存储过程、鉴权、主从同步等模块,大部分人对区块链的认知还是停留在神秘的黑盒子阶段。


    第二,区块链的开发语言完全不成体系。数据库在经过开始的“战国时代”后,渐渐使用SQL做到了业界的大一统。而区块链当前明显还处于“战国时代”,还没有一个统一的标准开发和使用标准。


    第三,需求的多种多样,有些需求或白皮书的业务介绍是靠谱的,有些则是完全异想天开不知所云。实际上这个和区块链所带来全新的业务模式相关,很多人还在探索新的业务模型,从而导致需求没有形成标准范式。



    区块链 vs数据库技术,相同点


    从数据库的角度对比,区块链技术即去中心化多活数据库技术,两者之间没有本质区别。

    这里我列举了一些区块链里面比较重要的技术点,以及这些技术点在数据库领域中是以什么形式存在的。这些概念和数据库中的技术概念一一对应关系如下:


    共识机制

    一致性控制—共识机制

    分布式数据库中叫做一致性控制,包括传统的主从复制、新一代的Raft、Paxos等算法。在区块链中为了解决额外的拜占庭问题,将算法改进为PBFT、PoW、PoS等协议


    存储机制

    数据库日志—账本

    区块链结构基本等价于数据库的事务日志,其主要新增的内容包括Merkle Tree结构用于快速验证数据的正确性,但是其本质与数据库的交易日志等价。同时数据库在日志中更会包括事务控制等企业级能力,是区块链数据结构所不具备的


    智能合约

    智能合约---存储过程

    智能合约与数据库存储过程一样,都是一段托管代码。本质上智能合约与数据库存储过程没有什么区别,都是通过外部调用或虚拟机执行一段代码,并可以将托管代码共享给其他用户进行调用


    分片

    数据库分片机制早在MPP数据库时代就已经存在。通过将大量数据切分在不同分片中,达到限制每个分片数据总量,并提升总吞吐量和存储空间的目的


    应用开发接口

    当前区块链还处于类似数据库当时的早期时代,接口没有统一标准化。根据区块链项目不同,其接口可以按照数据库、对象存储、API调用、甚至PaaS平台标准进行定义


    安全

    区块链的安全机制与数据库安全机制具有相似之处。数据库安全一般分为鉴权与授权两个模块,分别代表用户登录以及访问权限。而区块链当前仅支持记录级写授权,但是对于读操作时完全共享的。因此,从安全策略上数据库比当前的区块链完善很多



    区块链 vs数据库技术,不同点


    640?wx_fmt=png

    数据库与区块链功能架构图


    1)功能架构

    黄色部分是区块链和数据库架构都拥有的功能。白色的部分是目前数据库独有的功能。


    SQL我们再上文也有提及,数据库的SQL能力是实现其通用性的重要部分,SQL对于之后区块链的开发模式固定下来很重要。


    索引管理这块,在数据库中主要是提升数据管理和数据查询的性能效率的,当具体的应用场景出现,性能将成为下一阶段需要提升的重要部分。因此,存储的数据的索引就成为很重要的组成了。


    在机制上,区块链和数据库的主要区别就如以下几点:


    2)一致性

    区块链的设计思想,与传统数据库设计思想最大的不同就在于多活,也就是去中心化这个体系下所带来的一致性模型的区别。


    传统的关系型数据库遵循ACID强一致模型,写入的记录立刻可以读到。而一些新型分布式数据库采用最终一致性,也就是BASE模型,写入的数据暂时不一定读到,但是最终一定会存在。


    但是,区块链,或者说去中心化数据库的设计思路就存在明显区别,也就是说任何操作不存在“永久确认”这个概念。即使类似比特币,从核心原理上来看6个块之前的内容也只是“基本不会被回退”。举个极端的例子,如果中美之间广域网出于什么原因突然断了三天,之后恢复的话比特币一定会出现大规模分叉,这个期间如果有账号同时在中美进行大额消费的话,想要恢复一个主链则一定需要牺牲很大一部分人的交易才能实现回退。


    那么,既然在对等架构中没有办法保障强一致,那么区块链体系中的一致性则和传统数据库存在本质上的区别,从而引发后续一系列设计上的不同。归根节底,在任何传统主从架构的数据库模型中,人们会想尽一切方法防止集群内出现“脑裂”,也就是同一个集群里面两个节点都认为自己是主节点。但是这个问题在对等数据库体系下时时刻刻都可能发生,而这种现象在区块链里面叫做分叉,这是和我们传统数据库一致性模型非常不同的地方。


    3)锁机制

    其中,锁机制可以说是区块链与数据库在保障数据一致性方面最大的区别。

    所有研究过数据库的同学不可能没听说过锁。当我们做一个事务的时候,提交之前所有该会话变更的记录都要被锁住,不能被其他会话所修改。


    而去中心化数据库,由于每个账本节点操作本地数据,变更信息会异步地传输出去,因此根本不存在一个全局锁能够在记录变更的时候通知其他人。因此,在无锁的前提下,去中心化数据库,也就是区块链该怎样保障数据一致呢?


    比特币使用的是UTXO结构,有点类似于数据库的“乐观锁”的思路,也就是操作的时候不进行锁定,只有在最后提交的过程中判断记录有没有变化。


    比特币则是通过coin是否被花费的状态来判断是否存在交易冲突。而以太坊则是使用nonce作为每条记录的递增计数器来判断是否存在针对某一账户的重复交易,实际上也是一种变相实现的行级锁的机制。


    4)安全机制

    另一个区块链业界大家谈论比较多的就是安全机制。

    首先,我不是加密算法专家,因此我在这里不去讨论具体使用的加密算法,而是从整个存储体系的安全模型设计上,来讨论一下区块链技术中如何在全对等架构的体系下保障数据安全。


    在我看来,区块链的安全体系分为三个级别,记录级、区块级以及链级。

    记录级安全主要是判断某一条操作记录是否合法,在一些实现中还包括是否对不同用户有读可见和写可见。


    而区块级则是当节点接收到另一个节点发送的区块时,如何判断这个区块本身没有被篡改过,那么通过默克尔树、挖矿的结果等机制都可以做到。

    最后,怎样保证链的完整呢?比如每个数据块需要包含链中上一个数据块的校验,以及当分叉发生时如何进行回退等,都是保障整个链条结构的完整。



    去中心化数据库架构


    区块链技术和数据库技术的融合会形成怎么样的结果呢?


    我们是否能够将现有的区块链以数据库的架构进行组织,分为内核,运行库,插件,以及SQL解析优化等不同模块呢?


    既然数据库的核心本质依然是不可变更的事务日志,这一部分等同于区块链的链结构,那么如果我们通过将SQL引擎架设在state store,甚至让SQL引擎直接对链内的数据进行访问,是不是意味着我们就拥有了一个通用的编程和访问接口?


    又例如,对于安全组件,我们是否可以做到列级行级表级以及节点级别的安全认证,同时可以通过配置指定哪些表需要进行数字签名,哪些表的一些字段是共享的,但其他字段是需要经过多重签名做加密的等。


    另外,对于一致性来说,我们是否可以指定某些表是全局共享表,某些表则是本地表,这样就可以取代现在区块链与数据库混用的部署方式。


    我认为,未来会出现两者融合而成的 “去中心化数据库”。


    640?wx_fmt=png

    去中心化数据库基本功能


    去中心化数据库的基本特性:

    1. 去中心化:架构是完全的去中心化的,不存在中心的控制节点,每个节点都具备读写的功能,每个节点的数据都是一致的;

    2. 无全局锁:由于采用广域网上的对等架构,去中心化数据库不可能实现全局锁,因此系统只能使用在某种程度上弱化锁与一致性,来满足高可用的需求;

    3. 非固定节点生成日志:非固定节点生成日志,日志是整个数据库的日志,在去中心化的体系结构中任何节点都有权记录日志,这样就形成了去中心化没有主节点的架构,任何节点都有机会临时成为记账节点出块;

    4. 异步事务确认:由于不存在全局锁,与传统数据库相比一些事务机制必须得到调整。将事务的提交回滚做到异步可能是一种比较可行的思路;

    5. 一致性策略调整:在多活的区块链状态下,数据的一致性策略会与传统的数据库一致性机制有所不同;

    6. 行级别安全性和触发器:对于数据安全,去中心化数据库将会保证到行级甚至列级的数据安全性。



    结语:区块链和数据库技术融合:去中心化数据库


    对于区块链和传统数据技术,我认为区块链技术的未来发展,主题是“融合”!

    现在区块链的业务理念飞速发展,但是从技术本身来看,我认为当前区块链的技术仍然和上世纪“80年代”的数据库技术阶段类似,在技术的成长期。如我们上文所提到,区块链技术在通用性、标准化上还有很长的路要走。


    而基于技术路线和架构设计的类似,数据库技术与区块链技术的融合其实是大势所趋。 而通过区块链技术和机制的引入,去中心化数据库,将可能是未来技术发展的一个重要方向。 



    640?wx_fmt=gif



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

    展开全文
  • Griffin一个基于Sia区块链去中心化,脱机优先,基于键值的,面向文档的数据库。 用户被赋予了永久存储自己易于访问的加密数据的能力,而无需依赖集中式提供商。 开发人员可以使用灵活易用的数据库来增强功能,...
  • 想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答!! 一、什么是区块链 ...区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库是去中心化的...
    想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】
    链客,有问必答!!
    

    一、什么是区块链
    区块链是一种特殊的分布式数据库。 
    区块链的主要作用是储存信息,可以写入和读取,因此是数据库。区块链技术会自动创建和维护一个分布式的网络。其特殊在于任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库,是去中心化的。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。 
    而区块链之前的信息交换是依赖于中心实体
    二、区块链的最大特点
    区块链没有管理员,它是彻底无中心的。 
    它的设计目标就是防止出现居于中心地位的管理当局。因此无法对区块链添加审核,也因为无法管理,所以区块链可以做到无法被控制。 
    但这样也出现了一个问题,就是没有管理员,人人都可以写入数据,如何保证数据是可信的呢?
    三、区块
    区块链由一个个区块(block)组成。区块很像数据库的记录,每次写入数据,就是创建一个区块。 
    每个区块包括两个部分:
    区块头(Head):记录当前区块的特征值 
    区块体(Body):实际数据
    区块头包含了当前区块的多项特征值。
    生成时间 
    实际数据(即区块体)的哈希 
    上一个区块的哈希 …
    所谓”哈希”就是计算机可以对任意内容,计算出一个长度相同的特征值。区块链的 哈希长度是256位,这就是说,不管原始内容是什么,最后都会计算出一个256位的二进制数字。而且可以保证,只要原始内容不同,对应的哈希一定是不同的。
    举例来说,字符串123的哈希是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(十六进制),转成二进制就是256位,而且只有123能得到这个哈希。(理论上,其他字符串也有可能得到这个哈希,理论上任何哈希函数都不能避免哈希碰撞(冲突),但是概率极低,可以近似认为不可能发生。)
    因此,就有两个重要的推论。
    推论1:每个区块的哈希都是不一样的,可以通过哈希标识区块。 
    推论2:如果区块的内容变了,它的哈希一定会改变。
    四、Hash的不可修改性
    区块与哈希是一一对应的,每个区块的哈希都是针对”区块头”(Head)计算的。也就是说,把区块头的各项特征值,按照顺序连接在一起,组成一个很长的字符串,再对这个字符串计算哈希。
    Hash = SHA256( 区块头 )
    上面就是区块哈希的计算公式,SHA256是区块链的哈希算法。注意,这个公式里面只包含区块头,不包含区块体,也就是说,哈希由区块头唯一决定。 
    前面说过,区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。这意味着,如果当前区块体的内容变了,或者上一个区块的哈希变了,一定会引起当前区块的哈希改变。
    这一点对区块链有重大意义。如果有人修改了一个区块,该区块的哈希就变了。为了让后面的区块还能连到它(因为下一个区块包含上一个区块的哈希),该人必须依次修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于后面要提到的原因,哈希的计算很耗时,短时间内修改多个区块几乎不可能发生,除非有人掌握了全网51%以上的计算能力。
    正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无了就是发生了,从此再无法改变。
    每个区块都连着上一个区块,这也是”区块链”这个名字的由来。
    五、采矿
    由于必须保证节点之间的同步,所以新区块的添加速度不能太快。试想一下,你刚刚同步了一个区块,准备基于它生成下一个区块,但这时别的节点又有新区块生成,你不得不放弃做了一半的计算,再次去同步。因为每个区块的后面,只能跟着一个区块,你永远只能在最新区块的后面,生成下一个区块。所以,你别无选择,一听到信号,就必须立刻同步。
    所以,区块链的发明者中本聪(这是假名,真实身份至今未知)故意让添加新区块,变得很困难。他的设计是,平均每10分钟,全网才能生成一个新区块,一小时也就六个。
    这种产出速度不是通过命令达成的,而是故意设置了海量的计算。也就是说,只有通过极其大量的计算,才能得到当前区块的有效哈希,从而把新区块添加到区块链。由于计算量太大,所以快不起来。
    这个过程就叫做采矿(mining),因为计算有效哈希的难度,好比在全世界的沙子里面,找到一粒符合条件的沙子。计算哈希的机器就叫做矿机,操作矿机的人就叫做矿工。这些计算机或者节点组成了网络的供给侧。一个成功的区块链网络会有大量计算机帮助传递信息。如果一个区块链网络只有少数矿机在上面,那么信息传递会比较慢,因为那些计算机在忙着传递其他信息。计算机越多意味着信息转移得越快。
    六、难度系数
    不是任意一个哈希都可以,只有满足条件的哈希才会被区块链接受。这个条件特别苛刻,使得绝大部分哈希都不满足要求,必须重算。
    原来,区块头包含一个难度系数(difficulty),这个值决定了计算哈希的难度。举例来说,第100000个区块的难度系数是 14484.16236122。 
    区块链协议规定,使用一个常量除以难度系数,可以得到目标值(target)。显然,难度系数越大,目标值就越小。 
    哈希的有效性跟目标值密切相关,只有小于目标值的哈希才是有效的,否则哈希无效,必须重算。由于目标值非常小,哈希小于该值的机会极其渺茫,可能计算10亿次,才算中一次。这就是采矿如此之慢的根本原因。 
    前面说过,当前区块的哈希由区块头唯一决定。如果要对同一个区块反复计算哈希,就意味着,区块头必须不停地变化,否则不可能算出不一样的哈希。区块头里面所有的特征值都是固定的,为了让区块头产生变化,中本聪故意增加了一个随机项,叫做 Nonce。
    Nonce 是一个随机值,矿工的作用其实就是猜出 Nonce 的值,使得区块头的哈希可以小于目标值,从而能够写入区块链。Nonce 是非常难猜的,目前只能通过穷举法一个个试错。根据协议,Nonce 是一个32位的二进制值,即最大可以到21.47亿。第 100000 个区块的 Nonce 值是274148111,可以理解成,矿工从0开始,一直计算了 2.74 亿次,才得到了一个有效的 Nonce 值,使得算出的哈希能够满足条件。
    运气好的话,也许一会就找到了 Nonce。运气不好的话,可能算完了21.47亿次,都没有发现 Nonce,即当前区块体不可能算出满足条件的哈希。这时,协议允许矿工改变区块体,开始新的计算。
    七、难度系数的动态调节
    正如上一节所说,采矿具有随机性,没法保证正好十分钟产出一个区块,有时一分钟就算出来了,有时几个小时可能也没结果。总体来看,随着硬件设备的提升,以及矿机的数量增长,计算速度一定会越来越快。
    为了将产出速率恒定在十分钟,中本聪还设计了难度系数的动态调节机制。他规定,难度系数每两周(2016个区块)调整一次。如果这两周里面,区块的平均生成速度是9分钟,就意味着比法定速度快了10%,因此接下来的难度系数就要调高10%;如果平均生成速度是11分钟,就意味着比法定速度慢了10%,因此接下来的难度系数就要调低10%。
    难度系数越调越高(目标值越来越小),导致了采矿越来越难。
    八、区块链的分叉
    即使区块链是可靠的,现在还有一个问题没有解决:如果两个人同时向区块链写入数据,也就是说,同时有两个区块加入,因为它们都连着前一个区块
    ,就形成了分叉。这时应该采纳哪一个区块呢? 
    现在的规则是,新节点总是采用最长的那条区块链。如果区块链有分叉,将看哪个分支在分叉点后面,先达到6个新区块(称为”六次确认”)。
    按照10分钟一个区块计算,一小时就可以确认。 
    由于新区块的生成速度由计算能力决定,所以这条规则就是说,拥有计算能力的那条分支,就是正宗的区块链。
    九、区块链的加密性
    区块链利用加密来保证交易安全。跟传统交易不一样,区块链交易无法被影响、破解或者撤销,因为加密技术取代了中心实体。在高层,网络中的每一台计算机其实都在解决一个预定义数学问题(“加密问题”)的一部分。第一台解密成功的计算机将“赢得”传递信息给下一台计算机的权利。区块链网络的计算机然后再竞争解决下一个难题。区块链世界的加密基础为信息传递提供了数学保证。 
    在区块链的世界里,所有代码都是直接在区块链的框架内维护的。矿工解决由区块链代码预定义的问题,但矿工无法改变规则。没有代码是由促进信息传输的计算机来维护的。此外,一旦发行了一种新的区块链货币,没人可以改变这一版本的区块链代码,就连创始的开发者、一群积极分子或者黑客都不可以。 
    区块链交易的线性关系(Zander传递信息给第一台计算机,这台计算机又把它传递给下一台计算机,如此类推,直到信息抵达Tara)还建立了一条有关之前所有区块链交易的、防篡改的记录:该区块链因此建立起了一个交易账本。任何人都可以对公开的区块链进行审核,从而了解信息在过去是如何流动的。如果另一个人在不同的时间或者地点看这个账本,他会看到一模一样的交易历史。没有一个中心实体有能力篡改记录,因为账本是在区块链代码里面进行维护的。 
    相比之下,诸如美元这样的货币交易随着时间转移是极其难以跟踪的。基于区块链的货币因此为更好的透明性提供了机会。比方说,如果一个政府举债经营一种基于区块链的货币,选民可以用这种加密数字货币来纳税,然后准确跟踪政府的每一笔开支。或者更现实一点,捐款给慈善机构也能看到慈善机构是如何使用他们的赞助的。你可以看着捐款从该慈善机构转到了当地的一家房屋建筑公司,然后最终转到工人手上。如果强制公司用加密数字货币的话,监管实体的日子也会好过得多,因为有了客观的分布式账本。
    十、区块链的代价与局限
    区块链作为无人管理的分布式数据库,从2009年开始已经运行了8年,没有出现大的问题。这证明它是可行的。
    但是,为了保证数据的可靠性,区块链也有自己的代价。一是效率,数据写入区块链,最少要等待十分钟,所有节点都同步数据,则需要更多的时间;二是能耗,区块的生成需要矿工进行无数无意义的计算,这是非常 
    耗费能源的。
    因此,区块链的适用场景,其实非常有限。
    不存在所有成员都信任的管理当局 
    写入的数据不要求实时使用 
    挖矿的收益能够弥补本身的成本
    如果无法满足上述的条件,那么传统的数据库是更好的解决方案。
    如果无法满足上述的条件,那么传统的数据库是更好的解决方案。
    目前,区块链最大的应用场景(可能也是唯一的应用场景),就是以比特币为代表的加密货币。

    展开全文
  • 区块链就是把加密数据(区块)按照时间顺序进行叠加(链)生成永久、不可逆向修改记录。想象一个封闭岛国房地产市场,只允许岛民购买和出售岛上房屋;所有交易记录都有岛国唯一地产中介进行打印和保存(因为其他...
  • 区块链技术在2008年被提出被称为比特币(我觉得应该翻译为比特币应用了区块链技术),区块链技术一种分布式的数据库。公钥基础设施PKI(Public Key Infrastructure)系统一种中心化密钥管理系统。PKI系统很...
  • 区块链是一种过程数据的去中心化管理技术,和传统的数据库管理系统有很多相似之处,当然也有很明显的区别。无论是区块链、抑或是数据库,都是一种管理数据的关键技术,都可以基于所管理的数据进行分析或执行。但是在...
  • 去中心化堆栈的区块链数据库网络 目录 内容编辑 该网站上大多数内容都可以在GitHub上进行编辑,而不会干扰HTML标记。 该站点源和结构位于文件夹中。 忽略所有带有名称下划线内容。 在GitHub上查看文件时,您...
  • 去中心化系统中,并不存在拥有特权中心节点,每个网络节点拥有信息和权力都一样,称其为对等节点。对等节点组成网络称为对等网络,也叫P2P网络。对等网络上运行信息系统叫作分布式系统,比特币系统所...
  • ViaBTC矿池CEO杨海坡今日发微博称,不是特别看好IPFS或者说存储类区块链项目发展,因为去中心化存储一个伪需求。去中心化存储需要更多副本,这必然大幅提升了成本,并降低了效率,而存储对成本和效率都极度...
  • 同时,他也提出了区块链数据库技术融合未来方向——“去中心化数据库创想。以下为王涛详细分享: 区块链技术在热潮之下,传统IT技术同学们保持了十分理性,甚至排斥态度。其实不管热捧还是排斥...
  • 去中心化系统中,并不存在拥有特权中心节点,每个网络节点拥有信息和权力都一样,称其为对等节点。 对等节点组成网络称为对等网络,也叫P2P网络。对等网络上运行信息系统叫作分布式系统,比特币系统...
  • 就像filecoin + IPFS分散的文件系统一样,CQL分散的数据库 快速开始 CQL客户端支持: macOS X 10.9以上 Linux 2.6.23+(x86,x86_64,armeabi-v7a,arm64-v8a) 开发人员指南 苹果系统 :beer_mug: 自制用户...
  • 这里要讲重点了,即区块链的去中心化到底什么样?...如何理解区块链去中心化的概意图1-5去中心化 从网络结构上看,区块链的去中心化就是一个多元化的网络结构。节点之间彼此可以自由连接、制约,但并不受到某一个中心
  • 区块链对比数据库

    万次阅读 2019-05-10 10:55:05
    区块链可以被认为一种新型的数据库。这种数据库可以直接被分享,...考虑到当前中心化的数据库依然主流,可能混合两种数据库一种不错的解决方案。 去中心化区块链的优点 传统的数据库,需要一定的访问权...
  • 区块链(Blockchain)是比特币的一个重要概念,它本质上是一个中介化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于...
  • 区块链数据库是什么

    千次阅读 2019-03-05 11:37:40
    区块链(Blockchain),或者说分布式账本(DLT, Distributed Ledger Technology)最早起源于比特币的一个重要概念,其本质上一个去中心化的数据库区块链系统能够大幅度降低成本,减少风险和管理成本,提升流动...
  • 区块链数据库

    2019-01-29 11:30:46
    区块链(Blockchain),或者说分布式账本(DLT, Distributed Ledger Technology)最早起源于比特币的一个重要概念,其本质上一个去中心化的数据库区块链系统能够大幅度降低成本,减少风险和管理成本,提升流动...
  • 区块链去中心化详解?数字货币挖矿到底在干什么?...区块链技术将从根本上挑战现状,通过利用数学和密码学,区块链为一切涉及价值的交易提供一种去中心化的开放数据库。这些价值包括资金、商品、房产、工作甚至投票...
  • 区块链技术核心所有当前参与节点共同维护交易及数据库,它使交易基于密码学原理而不基于信任,使得任何达成一致双方,能够直接进行支付交易,不需第三方参与。从技术上来讲,区块一种记录交易数据结构...
  • 区块链技术原理-分布式数据库

    千次阅读 2019-11-20 23:35:28
    区块链”技术最初由一位化名中本聪的人为比特币(一种数字货币)而设计出的一种特殊的数据库技术,它基于密码学中的椭圆曲线数字签名算法(ECDSA)来实现去中心化的P2P系统设计。但区块链的作用不仅仅局限在...
  • 区块链的本质在不完全可信环境中可信数据管理,它具有去中心化、防篡改、强一致和完整性等特性。同时,区块链也存在着数据管理功能弱、性能低等问题。通过对比区块链和传统数据管理技术,分析3个典型金融领域...
  • 以电商为例,现在电商全部中心化的,那我们就做一个去中心化的电商,每一个独立的电商平台,都搞一个小的平行链,并通过这个区块链与不同的平台,甚至不同的行业相连,实现价值交互。原来的互联网为什么不能交互?...
  • ASCH区块链中基于侧链技术的去中心化应用开发平台,在模式上类似以太坊,其设计初衷为了降低开发者门槛,比如使用javascript作为应用编程语言,支持关系数据库来存储交易数据,使得开发一个dapp与传统web应用...
  • (麦田,梵高)区块链技术中很核心的一部分它的账本数据库。要理解区块链,很重要一点就是理解它的数据库,而跟传统的数据库进行对比,也许理解它的一个好办法。中心化与去中心化传统数据库使...
  • 区块链数据库

    2019-09-26 16:53:43
    因此,有人从金融会计的角度,把区块链技术看成一种分散式开放性去中心化的大型网路记账薄,任何人任何时间都可以採用相同的技术标准加入自己的信息,延伸区块链,持续满足各种需求带来的数据录入需要。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 895
精华内容 358
关键字:

区块链是去中心化的数据库