首页>>技术前沿>>网站/软件行业动态
区块链技术研究:探究区块链与传统传统大数据库区别与融合
作者:西安网站建设 | 转载 来源:西安软件开发公司 | 时间:2018年4月27日| 点击:0次 | 【评论】

大家在学习区块链技术时,搞一个链要学一套新的开发语言,成本很高,这个东西可能不流行了就要换新的语言,这会有很大的问题。做传统大数据库的,大家用的都是SQL,比较标准化。现在区块链基本还没有一个真正的杀手项目,没有出现哪一个业务必须用区块链来完成,这样大家都想尝试。哪个行业真正能用区块链颠覆,核心价值在哪,怎么用区块链做这个事情,这些问题是未来一段时间行业里需要去回答的。

数据库里事务日志和区块链的链本身就是一个事情,在区块链里,每一个区块对应到数据库,可以认为对应的就是一个日志文件。最本质的区别是在于区块链同步标准以区块为单位,每一次主节点要把交易信息打包成区块,这个区块作为交易日志。当有任何信息以后,立刻就可以把数据同步给其他节点。

区块链技术

区块链是数据库交易日志,区块链State Store对应数据库的数据存储,区块链共识算法对应的是数据库一致性算法,区块链智能合约对应的是数据库存储过程等等。区块链涉及到交易活动日志、数据状态库,在状态库基础上增加索引。对应到数据库里也是一模一样的,包括数据库Ctransaction、数据管理部分、索引,从结构来看,看待区块链底层结构和上层数据库结构都是非常相通的。

对于数据库来讲,一般都是强一致,比如Oracle,写入一条记录以后,确保数据一定是存在的,并且这条数据在数据库日志里确保不能被更改。在分布式数据库里则是最终一致性,当写一条记录以后,不一定能够立刻看到这个东西,但是能够确保在未来一段时间之内这个记录一定存在。不管强一致还是最终一致,本身要求是写入成功的数据一定会存在在数据库里某一时刻。

但区块链不一定,区块链可能会出现分叉,分叉完了还要做合并。比如某一个人账户里有10个比特币,在同一个时刻,在中国和美国两个不同账户里做交易,因为在中国和美国服务器不一样,一个服务器接收我给A做交易是成功的,在第二个美国服务器接收同样消息,转给B的也是成功的,但这两个人不能同时成功。在区块链一定有交易成功确认过程,这在数据库里是没有交易确认,只要在数据库里写的东西一定可以成功。为了确保一致性,在数据库里用锁,因为所有操作在主节点执行,几个并行操作里,结构没有提交时会锁住,其他操作过来以后,一定要保证这套交易成功才能释放这个锁,保证继续。

区块链技术

从安全级别来讲,区块链有很多机制确保安全性。对于数据库大家的想法是这个东西是跑在数据中心里的,区块链基本上有一个笔记本就可以了,所以除了确保本地安全以外,更重要的是协议层面确保其他对等节点、相邻节点有没有作恶的坏人。在三个层面上确保安全,对于记录级安全,属于交易数字签名、智能合约数字签名,就是当做一笔交易时,一定要通过数字签名来验证帐号是否有权利修改这套记录,通过加密,从记录级确保修改这条记录的人一定是本人。区块级的安全机制,当收到块以后怎么确保这个块是正确的,这个块包括默克尔树、挖矿校验,这是对于区块安全的保障。对于链级安全机制,怎么确保这个链是靠谱的,利用前一个区块生成校验码、分叉解决方案。

区块链技术

传统数据库分片很容易,都在一个数据中心之内,如果做两个分片之间的操作,先问所有参与交易的人是不是都准备好了,可以提交了,确保大家都在同一个状态下。但有一个问题,没有办法在多个分片之间做控制。在区块链里除非有某种机制确保不会分叉,不可能确保其中某个操作在在另一个链里未来会不会被退掉,没有技术确保,因为链不具备这个功能。不是技术上操作不了,是理论上行不通。如果这么做也会有一些方法,找到第三方中介做这个事,他来背锅是有可能的,或者用侧链机制、跨链机制。

此内容DOC下载 此内容PDF下载

【全文完】
关键词标签: 区块链 区块链技术 数据库 
0 ([$-顶稿人数-$])
0 ([$-踩稿人数-$])

版权声明:

1、西安弈聪网站内容中凡注明“来源:XXX(非西安弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,百度关键词优化,西安软件开发等技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“西安弈聪”的作品系本站版权所有,任何人转载请署名来源,否则西安弈聪将追究其相关法律责任。

2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。