主页 > imtoken注册 > 欧凯云链研究院| 今天学习:区块链的本质是分布式数据库

欧凯云链研究院| 今天学习:区块链的本质是分布式数据库

imtoken注册 2023-01-30 06:19:46

1、从分布式数据库的基本概念理解区块链技术

比特币之父能不能随意制造比特币_比特币的交易方式_比特币的记账方式

与区块链技术相比,分布式数据库的概念显然更容易理解。 我从分布式数据库的一些基本概念入手,了解区块链的技术实现。 这些概念包括数据存储、点对点可靠传输和存储过程。 带触发器(智能合约),数据安全:

1、分布式数据存储

区块链技术的数据共享是分布式账本,交易记录是多副本的,首先要解决分布式数据存储的问题。

1)区块链存储的基本单位是块,块采用链式结构,即新加入的块(类似于数据库中的一行记录)知道前一个块(前一行记录)是什么是的,并且可以一直追溯到根,区块的标识就是区块的哈希值。 同时,链式结构保留了业务生成的轨迹。 添加新交易时可以根据之前的记录进行验证,确保区块内容不易被篡改。

这种模式也被用在传统的数据库设计中,比如拉链表的形式。 每次更新数据,都采用追加(Insert而不是Update)方式。 有开始时间、过期时间和是否有效。 保留完整的交易历史。 区块链将其转化为底层固有模型,加入了哈希、时间戳等机制,从技术上保证了链的正确性,因此非常有价值。

2)由于是分布式、多中心的存储方式,需要解决存储时的分布式一致性问题。 在区块链的前身比特币应用中,解决这个问题的方法是POW Proof-Of-Work方法,即通过工作获得指定的结果,并用结果来证明所做的努力。 这也是我接触区块链技术第一个迷茫的地方。 为什么一定要用工作量来证明呢? 还有别的办法吗? 区块链技术独立于比特币之后,大家把这个问题归结为共识问题。 工作量证明是一种达成共识的方式,这更加清晰。

比特币的交易方式_比特币之父能不能随意制造比特币_比特币的记账方式

于是出现了POS Proof of Stake方法,这是一种通过业务规则达成共识的方式; PBFT实用拜占庭容错方法是一种通过技术规则达成共识的机制。 在公有链上,工作量证明(POW)仍然是最重要的共识方式,不能被轻易取代,但在联盟链上,你可以根据自己的情况创造新的共识方式。 基于这样的思路,我们在具体的业务中创建了一种共识算法来解决分布式数据存储的一致性问题,后面会进行扩展。

2、点对点的可靠传输

区块链技术是一组技术的组合。 既然是分布式账本,就必须解决数据可靠传输的问题。 包括记账节点(可信节点)、非记账节点(非可信节点)、客户端与记账节点(可信节点)之间的数据传输。 在我们之前的解决方案中,数据传输问题往往是通过可靠的消息或者P2P来解决的,而这些技术也用在了区块链技术中。

但必须说明的是,在真实的业务场景中,不可能把所有的数据都记在账本上,部分业务数据还是需要存储在自己的系统中,这就需要本地业务在技术架构上的数据是一致的有了区块链的账本,后面微服务架构和区块链技术结合的时候再详细说。 总之,区块链平台只能保证自身数据的一致性,业务不能完全依赖区块链平台来保证数据一致性。

3. 智能合约:触发器和存储过程

智能合约是一种数字合约,可以在满足特定条件时自动执行。 此功能在数据库中通过触发器和存储过程实现。 虽然在当前流行的应用架构中不推荐将逻辑写在存储过程中,但是触发器和存储过程仍然是常用的工具,尤其是在数据迁移相关的运维活动中。 区块链技术中的智能合约是触发器和存储过程。 它们是在沙箱中运行的脚本,用于执行区块链业务中的业务逻辑,也可用于各种检查。

比特币的记账方式_比特币之父能不能随意制造比特币_比特币的交易方式

例如,当 A 产生一笔付款时,可以通过智能合约在数据链上进行查询。 如果发现A的余额无法支付这笔交易,则可以中止交易。 与存储过程相比,智能合约运行在沙箱中,无法调用外部API。 这也比较容易理解。 如果允许外部调用,可能无法保证自身的数据一致性。 后面我们会讲到如何弥补这个缺陷。 美中不足的是目前的智能合约不支持SQL语法。

4.数据安全

交易数据是透明的,但不是全部透明,而是相对透明。 这是区块链技术的难点。 有两个关键点:(1)如何保护隐私比特币的记账方式,只看到你能看到的数据; (2) 加密密钥分配问题,比如新加入链上的一个节点会被分配一个新的密钥,如何用这个密钥来解释之前链中存储的信息。 可见与不可见,这是一对矛盾体。 理论上,没有完美的解决方案。 这里我不解释区块链技术是如何加密的,如何做密钥管理,如何进行同态加密等,而是讲如何通过业务手段而不是技术手段来规避这个问题。

例如比特币的记账方式,在一个小企业支付联盟链中,核心企业包括一家银行和企业A,为A的上下游企业提供授信业务,银行和核心企业A对所有交易数据可见,他们与计费节点,其他加盟商只有非计费节点。 虽然他们也拥有所有的数据,但是他们只能看到自己的相关数据。

显然,加盟商放弃了部分隐私权,但同时也获得了商机。 这种方式的特许经营公司是可以接受的,就像贷款公司向银行提供经营数据一样。 数据安全问题在技术上难以解决,但可以通过业务手段避免。 这也是我们看好联盟链的重要原因。

比特币之父能不能随意制造比特币_比特币的记账方式_比特币的交易方式

比特币的记账方式_比特币之父能不能随意制造比特币_比特币的交易方式

2.了解区块链技术的几个常见困惑

从刚接触区块链技术时的迷茫,到逐渐理清概念,再到区块链应用的研发,经历了很多迷茫。 以下是一些常见的混淆。

困惑一:比特币是区块链技术的应用,比特币应用的所有内容都不能归于区块链技术

上文提到,区块链技术独立于比特币是在2014年左右,在此之前,区块链的每一个案例都被引用为比特币,这给区块链技术的应用造成了很多误解。 我建议先了解区块链技术,再了解比特币,先了解联盟链的业务场景,再了解公链的业务场景。 公链算是联盟链的大规模延伸,可以少走一些弯路。

困惑二:数据存储在公链的情况下性能不高,但是联盟链的性能可以远高于公链,可以满足大部分场景的需求

数据一致性问题是分布式存储最大的问题,并发越高,发生冲突的概率就越大。 区块链技术之所以能够支持低每秒交易数(TPS),主要是因为共识机制比较复杂,或者说共识机制是为了降低并发性,降低数据冲突的概率而刻意设计的。

比特币的交易方式_比特币之父能不能随意制造比特币_比特币的记账方式

在公链上,这是一个无法逾越的难题,只能从事对实时性要求不敏感的业务。 但是在联盟链中,由于链上的参与者不多,每个节点都不需要记账,所以可以采用一些性能更高的共识机制,比如上面提到的PBFT。 我们已经尝试了一种可以支持更高性能的全对等算法。

困惑三:区块链技术的应用不一定需要矿工挖矿

刚开始接触区块链技术时,矿工/挖矿的概念很混乱:

(1) 为什么一定要挖矿?

(2)为什么要给记账成功的节点奖励比特币来鼓励记账?

(3) 如何鼓励非比特币业务记账?

比特币的记账方式_比特币之父能不能随意制造比特币_比特币的交易方式

归根结底,这种混淆是混淆了区块链和比特币造成的。 如前所述,挖矿是一种通过工作量证明(POW)的共识机制。 挖矿能力越强,记录权越强大。 更重要的是比特币的货币属性。 货币由国家信用(如纸币)或稀缺资源(如黄金)发行。 为了防止垃圾邮件,比特币需要将算力作为一种稀缺资源来使用。

这样一来,比特币实际上是用挖矿来解决共识算法、货币属性、鼓励记账。 这个想法真的很微妙。 但是在不同业务规则的联盟链中就不一样了。 除了其他更高效的共识算法之外,不需要稀缺资源,也不需要专门鼓励记账,因为记账已经是核心企业了。 合约可以通过技术手段保证数据同步,支持审计等能力,自然不需要挖矿。

困惑四:目前区块链技术的应用不是去中心化的,而是多中心化的

去中心是一个理想。 经常有人问,为什么要去中心? 去中心有什么好处? 你真的可以去中心吗? 后来深入研究联盟链的场景,发现实际业务场景大部分都是多中心的(这又是比特币的错,他真的很想去中心化),比如上面- 提到企业联盟方式,几个建联盟的核心企业是多中心的,它们一起成为一个新的中心。 传统的建立新中心的方式往往是通过建立清算机构,而区块链技术降低了建立中心的成本。

困惑五:并非所有的区块链节点都是记账节点,很多节点只用于数据同步

多中心意味着不是每个节点都需要记账。 几个中心节点负责记账工作就够了。 其他节点与记账节点之间存在数据同步关系,即所有非记账节点也有数据。 联盟链中的非记账节点一般位于加盟企业。 由于数据可见性的要求,非记账节点中的数据并不都是可见的,但是这个副本可以作为法律依据,增加了数据被篡改的风险。 成本。

比特币之父能不能随意制造比特币_比特币的交易方式_比特币的记账方式

三、总结

从数据的角度来看,区块链本质上是一个分布式数据库。 这里的“分布式”是指区块链技术采用链式存储结构,不仅解决了分布式数据存储的问题,还解决了存储的问题。 分布式一致性问题。 区块链技术使用分布式记账来保证可靠的数据传输和访问,并使用自动执行的智能合约来编程和操​​作数据。 因此,我认为基于分布式数据库来理解区块链,认识区块链技术中一些常见的混淆和误解,可以让大家对区块链有一个更正确的认识。