探索

区块链应用系统的核心技术(区块链应用系统的核心技术有哪些)

时间:2010-12-5 17:23:32  作者:时尚   来源:探索  查看:  评论:0
内容摘要:区块链应用系统的核心技术区块链应用系统的核心技术有哪些)区块链系统2022-10-267简介本文目录一览: 1、区块链的核心技术包含了哪些?... 本文目录一览:1、区

区块链应用系统的区块区块核心技术(区块链应用系统的核心技术有哪些)

  • 区块链系统
  • 2022-10-26
  • 7
简介本文目录一览: 1、区块链的链应链核心技术包含了哪些?...

本文目录一览:

  • 1、区块链的用系用系核心技术包含了哪些?
  • 2、区块链的统的统核心技术:共识机制&智能合约
  • 3、区块链的核心核心核心技术是什么?

区块链的核心技术包含了哪些?

首先,我们可以看一下区块链技术的技术技术官网解释。狭义来讲,区块区块区块链是链应链一种按照时间顺序将数据区块以顺序相连的方式组合成的一 种链式 数据结构, 并以密码学方式保证的用系用系不可篡改和不可伪造的分布式账本。

广义来讲,统的统区块链技术是核心核心利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、技术技术利用密码学的区块区块方式保证数据传输和访问的安全、利用由自动化脚本代码组成的链应链智能合约来编程和操作数 据的一种全新的分布式基础架构与计算范式。

可能大家都知道的用系用系是,区块链技术是从比特币系统当中独立出来的底层构架,从架构模型上来说,它就是一套分布式的账本,所谓账本,自然就是用来记账的。

在区块链技术当中,要想生成记账记录,就要有资金的交易和流动,所以最开始的区块链技术上,都有其主网所对应的加密货币作为流通物品,加密货币在区块链主网的各个账户之间的流通交易记录都会被记录在主网上。

与其他的交易记录数据库不同的是,区块链技术主网上的交易记录会被记录在主网中所有的区块区块节点(即所有的数据区块)上,这也就是所谓的去中心化原理,也就是说在区块链技术上,是没有一个中心数据库来保存所有记录的,链上每一个区块都拥有全链的交易数据,也就是说,每一个数据块,都是中心。

而区块链技术的另一个特性,就是不可篡改,因为在区块链上的每一笔交易都会被记录在链上所有的区块中,所以任何一个单独数据块都无法更改记录,即便你更改了,其他所有的数据块中也会记录真实数据,并且每一组数据都可以追溯到最先出现的时候。

正因为区块链技术的这些特性,比特币问世后,区块链也受到了很多关注的目光,很多人也开始想要利用区块链的技术来做一个无中心、可溯源、不更改的数据,以此保证数据的可信度。

但是区块链技术也面临很多问题,比如应用场景单一、原生错误数据不可修改,黑客盗走货币不可追回等。

区块链的核心技术:共识机制&智能合约

不论你是否接受,未来终将改变。

区块链技术给数字经济时代带来了巨变的曙光。

这种巨变在互联网近50年的历史上曾发生过两次。第一次巨变是全球性的联

网……第二次巨变是全球性的应用……第三次巨变正在蕴酿。

————摘自《腾讯区块链方案白皮书》 

当第一次读到这段时,完全不敢想象这是一家世界级企业对一项新技术的评价,

瞬间引起了我的兴趣。“巨变”是什么含义?就是说完全有可能颠覆我们现有的

经济结构和认知,彻底改变我们的生活方式。

一种从2009年才诞生的比特币技术中 抽象而来的block chain(区块链)技术,

居然获得了这么高的评价,这难道不是很神奇的一件事么?不管这件事会不会发

生,已经令人非常激动了,我们正在迎接一项变革并且可能参与其中,不是任何

时代的人都有这种机会,何其幸运!

不论你是否接受,未来终将改变。全球众多经济学家、企业家、国家政要都在推

崇区块链,声称区块链技术将重塑商业、货币和世界,将颠覆互联网、银行、证

券、保险、物流、电力、制造、会计税收、法律服务、文化创业、医药卫生等众

多行业。

虽然说到“区块链”,大家都会提到“去中心化”,也举了很多形象的例子。但

是我是一个较真的人,希望能够找到大家做出这种判断,背后的逻辑到底是什

么?就需要搞懂一切推断背后的本质,就需要了解区块链的核心技术逻辑。

阅读了一些书籍和资料之后,抛开“比特币”不说,要了解区块链,有两个核心

名词:共识机制、智能合约。

共识机制是区块链技术的核心,要搞清楚”共识机制“,就不得不提著名的“拜

占庭将军问题”,拜占庭将军问题由莱斯利·兰伯特提出的点对点通信中的基本

问题,主要是用于分析在分布式节点传输信息时如何保持数据的一致,即共识这

个问题。

拜占庭将军问题

一组拜占庭将军分别各率领一支军队共同围困一座城市。为了简化问题,将各支

军队的行动策略限定为进攻或撤离两种。

因为部分军队进攻部分军队撤离可能会造成灾难性后果,因此各位将军必须通过

投票来达成一致策略,即所有军队一起进攻或所有军队一起撤离。因为各位将军

分处城市不同方向,他们只能通过信使互相联系。

在投票过程中每位将军都将自己投票给进攻还是撤退的信息通过信使分别通知其

他所有将军,这样一来每位将军根据自己的投票和其他所有将军送来的信息就可

以知道共同的投票结果而决定行动策略。

系统的问题在于,将军中可能出现叛徒,他们不仅可能向较为糟糕的策略投票,

还可能选择性地发送投票信息。这样各支军队的一致协同就遭到了破坏。由于将

军之间需要通过信使通讯,叛变将军可能通过伪造信件来以其他将军的身份发送

假投票。而即使在保证所有将军忠诚的情况下,也不能排除信使被敌人截杀,甚

至被敌人间谍替换等情况。因此很难通过保证人员可靠性及通讯可靠性来解决问

题。

假始那些忠诚的将军仍然能通过多数决来决定他们的战略,便称达到了拜占庭容

错。

拜占庭将军问题被认为是容错性问题中最难的问题类型之一。在一个有n个节点的

系统中,每一个节点都有一个输入的值,其中一些节点具有故障,甚至是恶意

的。

在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策

略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递

信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策

略得出不同结论,从而破坏系统一致性。

但是中本聪在设计比特币系统时应用的“工作量证明链”(PoW)模型很好的解决

了共识问题,至于什么是“PoW”,感兴趣的可以研究下。

智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在

上面执行这些承诺的协议。一个合约就是存在区块链里的程序。合约的参与双方

将达成的协议提前安装到区块链系统中。在双方的约定完成后,开始执行合约,

不能修改。至于合约执行所需要的“燃料”,也就是手续费,也需要提前支付。

智能合约可以解决日常生活中常见的违约问题,如果应用到各行业中,可以避免

违约的信用问题。

在区块链出现之前,商业领域的信任关系通常要依赖于正直、诚信的个人、中介

机构或其他组织才能建立起来。在区块链这个新兴的领域中,信任关系的建立是

基于网络,甚至是网络上的某个对象。由区块链驱动的智能合约将会要求双方遵

守他们的承诺。

在区块链体系中,共识机制和智能合约,保证了数据的真实性和合约执行力,实

现“去中心化”。当然还有很多技术层面的东西没有说到,感兴趣的可以深入了

解下。

虽然大部分人对于区块链的认知还停留在比特币、各种代币上,也就是对金融行

业的变革。但是了解区块链核心逻辑后,结合自己所在的行业“区块链 +”,区

块链的各行业的应用刚进前半场,相信都会想到很多好的创新方向。

区块链的核心技术是什么?

简单来说,区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。

或许以上概念过于抽象,我来举个例子,你就好理解了。

你可以想象有 100 台计算机分布在世界各地,这 100 台机器之间的网络是广域网,并且,这 100 台机器的拥有者互相不信任。

那么,我们采用什么样的算法(共识机制)才能够为它提供一个可信任的环境,并且使得:

节点之间的数据交换过程不可篡改,并且已生成的历史记录不可被篡改;

每个节点的数据会同步到最新数据,并且会验证最新数据的有效性;

基于少数服从多数的原则,整体节点维护的数据可以客观反映交换历史。

区块链就是为了解决上述问题而产生的技术方案。

二、区块链的核心技术组成

无论是公链还是联盟链,至少需要四个模块组成:P2P 网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。

1、P2P 网络协议

P2P 网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。

通常我们所用的都是比特币 P2P 网络协议模块,它遵循一定的交互原则。比如:初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求 Peer 节点的地址数据以及区块数据。

这套 P2P 交互协议也具有自己的指令集合,指令体现在在消息头(Message Header) 的 命令(command)域中,这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能,这些功能都是非常底层、非常基础的功能。如果你想要深入了解,可以参考比特币开发者指南中的 Peer Discovery 的章节。

2、分布式一致性算法

在经典分布式计算领域,我们有 Raft 和 Paxos 算法家族代表的非拜占庭容错算法,以及具有拜占庭容错特性的 PBFT 共识算法。

如果从技术演化的角度来看,我们可以得出一个图,其中,区块链技术把原来的分布式算法进行了经济学上的拓展。

在图中我们可以看到,计算机应用在最开始多为单点应用,高可用方便采用的是冷灾备,后来发展到异地多活,这些异地多活可能采用的是负载均衡和路由技术,随着分布式系统技术的发展,我们过渡到了 Paxos 和 Raft 为主的分布式系统。

而在区块链领域,多采用 PoW 工作量证明算法、PoS 权益证明算法,以及 DPoS 代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是,它们融入了经济学博弈的概念,下面我分别简单介绍这三种共识算法。

PoW: 通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。

PoS: 这是一种股权证明机制,它的基本概念是你产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例,它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。

DPoS: 简单来理解就是将 PoS 共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账。这个圈子可能是 21 个节点,也有可能是 101 个节点,这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将会极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。

3、加密签名算法

在区块链领域,应用得最多的是哈希算法。哈希算法具有抗碰撞性、原像不可逆、难题友好性等特征。

其中,难题友好性正是众多 PoW 币种赖以存在的基础,在比特币中,SHA256 算法被用作工作量证明的计算方法,也就是我们所说的挖矿算法。

而在莱特币身上,我们也会看到 Scrypt 算法,该算法与 SHA256 不同的是,需要大内存支持。而在其他一些币种身上,我们也能看到基于 SHA3 算法的挖矿算法。以太坊使用了 Dagger-Hashimoto 算法的改良版本,并命名为 Ethash,这是一个 IO 难解性的算法。

当然,除了挖矿算法,我们还会使用到 RIPEMD160 算法,主要用于生成地址,众多的比特币衍生代码中,绝大部分都采用了比特币的地址设计。

除了地址,我们还会使用到最核心的,也是区块链 Token 系统的基石:公私钥密码算法。

在比特币大类的代码中,基本上使用的都是 ECDSA。ECDSA 是 ECC 与 DSA 的结合,整个签名过程与 DSA 类似,所不一样的是签名中采取的算法为 ECC(椭圆曲线函数)。

从技术上看,我们先从生成私钥开始,其次从私钥生成公钥,最后从公钥生成地址,以上每一步都是不可逆过程,也就是说无法从地址推导出公钥,从公钥推导到私钥。

4、账户与交易模型

从一开始的定义我们知道,仅从技术角度可以认为区块链是一种分布式数据库,那么,多数区块链到底使用了什么类型的数据库呢?

我在设计元界区块链时,参考了多种数据库,有 NoSQL 的 BerkelyDB、LevelDB,也有一些币种采用基于 SQL 的 SQLite。这些作为底层的存储设施,多以轻量级嵌入式数据库为主,由于并不涉及区块链的账本特性,这些存储技术与其他场合下的使用并没有什么不同。

区块链的账本特性,通常分为 UTXO 结构以及基于 Accout-Balance 结构的账本结构,我们也称为账本模型。UTXO 是“unspent transaction input/output”的缩写,翻译过来就是指“未花费的交易输入输出”。

这个区块链中 Token 转移的一种记账模式,每次转移均以输入输出的形式出现;而在 Balance 结构中,是没有这个模式的。

copyright © 2023 powered by 防伪防窜货   sitemap