主页 > imtoken钱包开发 > 02-区块链技术原理

02-区块链技术原理

imtoken钱包开发 2023-03-09 07:59:29

区块链技术原理

一、什么是区块链1.0前言

区块链可能是目前最有希望和最具分裂性的技术和经济趋势。 它为数字世界带来了“价值表达”和“价值传递”两大新的基本功能。

现在区块链技术可能会带来互联网的第二次革命,使互联网从“信息互联网”走向“价值互联网”。 “互联网处理的是‘信息’,而区块链能处理的是‘价值’。

1.1 狭义的概念:区块链是一种链式数据结构,按时间顺序将数据块按顺序组合在一起,并通过密码学保证不可篡改、不可伪造的分布式账本。广义上讲:区块链技术采用区块链存储结构来验证和存储数据,使用分布式节点共识算法来生成和更新数据,使用密码学来保证数据传输和访问的安全性,并使用自动化通过智能合约组成的编程和操作数据的新型分布式基础设施和计算范式脚本代码 1.2 从比特币系统中发现区块链

在数字世界中,要创造一种具有中介性、去中心化的“电子现金”,需要解决以下一系列问题:

中本聪设计开发了比特币系统,完美解决了这些问题。 说起比特币用于比特币哈希运算的架构,人们往往会提到比特币,一种代表价值的电子现金。实际上,比特币作为电子现金只是比特币系统的表层,它包括三层

在这里插入图片描述

顶层是比特币,一种电子现金。 这是整个系统的应用层。 中间层的作用是发行比特币和处理用户之间的比特币转账。 这一层也称为比特币协议(bitcoin protocol),是整个系统的应用协议层。 底层是比特币的分布式账本和去中心化网络。 该层也称为比特币区块链,是整个系统的通用协议层。

比特币系统实现的去中心化点对点电子现金,其发行和转移依赖于中间比特币协议层。 类比真实的货币体系,这一层的作用相当于中央银行(发行货币)、银行(处理转账)等金融机构。

比特币系统架构图通常进一步细分为五层。 它对应于比特币协议和比特币区块链。 在这个五层架构中,比特币协议层被细分为:应用层、激励层和共识层。

在这里插入图片描述

在设计比特币系统时,中本聪创造性地将计算机算力竞争与经济激励相结合,形成工作量证明(POW)共识机制,让挖矿计算机节点在计算竞争中完成计算。 完成了货币发行和记账的功能,也完成了区块链账本和去中心化网络的运维。 这就形成了一个完整的循环:矿机挖矿(算力竞争),完成去中心化记账(操作系统),获得比特币形式的经济激励(经济奖励)。

比特币的工作量证明共识机制是承上启下,连接上层应用和下层技术:上层是电子现金的发行、转移和防伪; 下层,去中心化网络的节点达成共识,更新分布式账本。

2. 区块链数据结构

区块链的专业解释可能比较啰嗦。 顾名思义,区块链是以区块为单位生成和存储的数据,并按时间顺序首尾相接。 同时,密码学原理保证不可篡改,不可伪造,数据传输接入安全的去中心化分布式账本。

区块是链式结构的基本数据单元,聚合了所有与交易相关的信息,主要包括区块头和区块体。 区块头主要由①父区块哈希值、②时间戳、③默克尔树根等信息构成,区块体一般包含交易列表

在这里插入图片描述

3. 区块链基础技术 3.1 哈希运算 3.1.1 哈希运算的特点

一个优秀的哈希算法应该具有快进、输入灵敏、难逆、抗碰撞强等特点。

3.1.2 通过哈希构建区块链的链式结构,实现防篡改 3.1.3 通过哈希构建默克尔数,快速检测内容变化 3.2 数字签名 3.2.1 数字签名的作用

数字签名,又称电子签名,是通过一定的算法实现类似于传统物理签名的效果。 区块链主要利用数字签名实现权限控制,识别交易发起方的合法身份,防止恶意节点冒充。

3.2.2 数字签名原理

数字签名通常采用非对称加密算法,即每个节点都需要一对公钥和私钥。 签名时需要私钥,验证签名时需要公钥,即私钥加密,公钥解密

数字签名过程:

发送方A通过哈希算法计算出原始数据的数字摘要,并用非对称密钥中的私钥对数字摘要进行加密。 加密数据是数字签名。 数字签名与A的原始数据一起发送,无需任何一方验证签名

签名验证过程:

首先,验证者必须持有发送方A的非对称密钥对的公钥,收到A的数字签名和原始数据后,先用公钥对数字签名进行解密,得到原始摘要(original data Hash value)通过相同的哈希算法对A的原始数据计算摘要值,然后比较解密后的摘要值与重新计算的摘要值是否相等。 如果相同,则验证通过。

验证结果:

A的公钥可以解密数字签名,保证原始数据确实来自A的解密摘要值,与原始数据重新计算的摘要值相同,保证原始数据在使用过程中没有被篡改传播。 3.2.3 区块在链中的使用

在区块链网络中,每个节点都有一对公私钥。 节点发送交易时,首先用自己的私钥对交易内容进行签名,并将签名附在交易上。 其他节点收到广播消息后,首先对交易附带的数字签名进行验证,只有完成消息完整性验证和消息发送者身份验证后,交易才会触发后续处理过程。

3.3 共识算法 3.3.1 为什么需要共识

根据谁的记录?

3.3.2 什么是共识算法 PoWPo*BFT 3.4 智能合约

定义:

智能合约是一组数字定义的承诺,包括合同各方可以执行这些承诺的协议

简单地说,智能合约是一种在满足特定条件时自动执行的计算机程序。

例如,自动售货机可以看作是一个智能合约系统。 客户需要选择商品并完成付款。 满足这两个条件后,自动售货机就会自动吐出商品。

合同在生活中随处可见:租赁合同、欠条等。传统合同依靠法律背书,当出现违约和纠纷时,往往需要依靠法院等政府机构的权力进行裁决。 智能合约不仅仅是电子化的传统合约,其真正意义在于将传统合约的背书从法律到代码的革命性替代。

3.5 P2P网络

对等计算机网络是一种服务节点,它消除了中心化,将所有网络参与者视为对等体,并在它们之间分配任务和工作负载。

P2P结构打破了传统的C/S模式,去掉了中心服务器,是一种依赖于用户群体共同维护的网络结构。 由于节点之间的数据传输不再依赖于中心服务节点,因此P2P网络具有很强的可靠性。 任何单个或少量节点故障都不会影响整个网络的正常运行。 同时,P2P网络的网络容量没有上限,因为随着节点数量的增加,整个网络的资源也同步增加,因为每个节点都可以从任意(Competent)节点获取服务,并且由于P2P网络中隐含的激励机制也会尝试为其他节点提供服务,因此,实际上P2P网络中的节点越多,P2P网络提供的服务质量就越高。

3. 区块链的特点 3.1 透明可信的人人记账,保证每个人都能获得完整的信息,从而实现信息透明节点间决策过程的参数公用,共识保证可信 3.2 防篡改可追溯3.3 隐私安全保障 3.4 系统可靠性高 4. 区块链会带来哪些变化

“区块链是互联网的第二次革命。”

“区块链是互联网 2.0。”

“区块链让我们从信息互联网飞跃到价值互联网。”

信息互联网VS价值互联网

以前,互联网处理的是“信息”; 现在,互联网处理“价值”。 从2008年到2018年,酝酿了近十年的区块链技术,弥补了互联网和数字世界中缺失的另一半。 区块链提供了处理数字世界中价值所需的两个基本功能:价值表示和价值转移,让互联网向价值互联网过渡。

在这里插入图片描述

5、从架构设计的角度谈区块链

从架构设计的角度来看,区块链可以简单分为三层,协议层、扩展层和应用层。 其中,协议层又可分为存储层和网络层,两者相互独立又密不可分。 如图所示:

在这里插入图片描述

5.1 协议层

所谓协议层,就是指底层技术。 这个层次通常是一个完整的区块链产品,类似于我们电脑的操作系统,维护着网络节点,只提供Api供调用。 通常,官方会提供一个简单的客户端(俗称钱包)。 这个客户端钱包的功能也很简单。 它只能创建地址、验证签名、转账支付和查询余额。 这个层次是一切的基础。 搭建网络环境,搭建交易通道,制定节点奖励规则。 至于你想交易什么,你想做什么,不问也不能问。典型的例子自然是比特币,还有各种二次币,比如莱特币等。

5.2 扩展层

这个层面类似于电脑驱动,是为了让区块链产品更加实用。 目前有两种类型。 一是各类交易市场,是法币兑换加密货币的重要渠道。 实施简单,来钱快,成本低,但也有风险。 二是实现一定方向的扩张。 例如,基于易书侧链,可以为第三方发布机构、论坛网站等内容生产者提供定制化服务。 尤其值得一提的是大家听到最多的“智能合约”概念,它是一个典型的扩展级应用开发。 所谓“智能合约”是一种“可编程合约”,或者说是“合约智能”,其中的“智能”就是执行的智能,也就是说当满足一定条件时,合约自动执行,如证券自动转账、自动支付等,目前还没有相对成型的产品,但不可否认这将是区块链技术的一个重要发展方向。

5.3 应用层

这个级别类似于电脑中的各种软件程序用于比特币哈希运算的架构,是普通人真正可以直接使用的产品。 也可以理解为B/S架构产品中的浏览器。 该级别的应用目前几乎是空白。 市场迫切需要这样的应用来引爆市场,形成真正的扩张趋势,让区块链技术快速走进普通百姓,服务大众。 大家使用的各类轻钱包(客户端)应该算是应用层最简单最典型的应用。