主页 > imtoken钱包如何下载 > 区块链入门基本概念

区块链入门基本概念

imtoken钱包如何下载 2023-01-17 01:33:19

区块链的三个基本组成部分

交易:对账本的操作,导致账本状态发生变化

区块:一段时间内的所有交易和状态结果,共识机制产生新的区块

Chain:区块按顺序链接起来,是整个账本的日志记录

区块链如何运作? (以比特币为例)

比特币客户端发起交易并广播到比特币网络进行确认

网络中的所有节点将一段时间内收到的所有等待确认的记录,包括前一个区块头的哈希值,打包成一个候选区块。

通过寻找一个合适的随机值放入候选块,候选块的哈希结果满足一定的条件。 找到这个合适的哈希值的过程称为“挖矿”; 而寻找这个合适的哈希值的个人或组织称为“矿工”; 由于这个过程需要大量的算力,自然而然就出现了“矿池”。 而这种基于算力来寻找合适的随机字符串的共识机制称为PoW(Proof of Work)。

候选区块在网络中广播,其他节点收到候选区块进行验证,符合约定条件的区块将被添加到自己维护的区块链中。

当大多数节点将候选块添加到自己维护的区块链中时,该块将被网络接受,并且该块中的所有交易都将得到确认。

区块链的分类

共享链:任何人都可以参与和维护,信息完全公开,比如比特币

私有链:只有经过授权的人才能使用,信息不泄露

联盟链:两者之间,有多个组织共同维护,具有授权访问权限。

目前,私有链和联盟链在现实商户场景中得到了更多的应用和落地。

分布式核心问题

一致性问题:一致性不是指结果是否正确,而是系统呈现的状态是否一致。 分为:强一致性和弱一致性(顺序一致性;线性一致性)。

共识算法:分布式系统中多个节点间对某一状态批量达成共识结果的过程。

常见的共识算法:

(1) CFT:崩溃容错

(2) BFT:拜占庭容错

FLP不可能原则:在网络可靠但允许节点故障(即使只有一个节点)的最小异步模型系统中,不存在可以解决一致性问题的确定性共识算法。 (别浪费时间了,设计一个在任何场景下都能达成共识的异步分布式系统的算法)

CAP原则

(1)一致性:任务操作是原子的。

比特币入门基础知识_比特币看盘的基础知识_比特币基础技术

(2)可用性:在限定的时间内,任何发生故障的节点都可以响应请求。

(3) Partition tolerance(分区):网络可能被分区,即无法保证网络节点之间的通信

简单理解:当网络可能分区时,不可能同时保证一致性和可用性。 要么牺牲可用性,要么牺牲一致性。

酸原则

(1)原子性:每一个操作都是原子的,要么成功要么不执行

(2)一致性:最终状态是一致的比特币入门基础知识,没有中间状态

(3)隔离性:各个操作互不影响

(4)持久性:状态变化是持久的,不可改变

Paxos算法和Raft算法(系统存在故障,但没有恶意节点)

(1)paxos算法

Proposer:提出一个提案,等待大家通过,作为closed case

Acceptor:负责对提案进行投票和接受提案

学习者:获得批准结果,并可以帮助传播,不参与投票过程

(2) 筏算法

领导者:选举

候选人领袖(候选人):

追随者(花):

拜占庭问题及算法(系统存在故障,存在恶意节点)

N >= 3F+1,其中N为节点数,叛将数为F

可靠性指标

(1) 服务的可用性

服务承诺SLA

服务指示灯 SLI

服务目标 SLO

比特币看盘的基础知识_比特币基础技术_比特币入门基础知识

(2) 两次核心时间

MTBF:平均无故障时间,反映故障发生的频率

MTTR:Mean Time to Repair,反映从故障中恢复的时间

密码学和安全技术

哈希算法:可以将任意长度的明文映射为定长的二进制字符串

[x] 快进

[x] 反向难度

[x] 输入敏感

[x] 避免冲突:哈希冲突

常用算法:MD5和SHA系列算法,目前MD5和SHA1算法已经被破解,一般建议至少使用SHA-256或更安全的算法

哈希攻击和保护

(1) 哈希算法不是加密算法,不能用来保护信息。

(2) 主要攻击包括字典攻击和彩虹表攻击(只保存一个has链的首尾值,相对于字典攻击可以节省存储空间)

(3) 预防措施:加salt,hash结果和salt存储在不同的地方,只要两者不同时泄露,攻击者很难破解

数字摘要

数字摘要是对数字内容进行哈希运算,得到一个唯一的摘要值来代替原来完整的数字内容

加解密算法

[x] 对称加密算法:加解密密钥相同

优点:加密效率和强度高

缺点:所有参与者都需要维护密钥,在不安全的通道中分发密钥也是一个问题(可以通过Diffie-Helman协议或非堆栈加密解决)

基础:分组密码(DES、3DES、AES、IDEA)和序列密码

适用场景:大量数据的加解密,密钥提前分发的缺点

[x] 非对称加密算法:加解密密钥不同

优点:公钥可以在不安全的渠道分发 缺点:加解密速度慢,加密强度不如对称加密,靠数学题来保证安全性(大数素因数分解、离散对数、椭圆曲线)

比特币看盘的基础知识_比特币入门基础知识_比特币基础技术

基本原理:公钥加密比特币入门基础知识,私钥解密

代表算法:RSA、Diffie-Helman密钥交换、ELGamal、椭圆曲线算法、SM2

适用场景:签名和密钥协商,不适合大数据量的加解密

[x] 混合加密算法:使用非堆加密协商成对的加密密钥,然后通过对称加密算法对数据进行加密

消息认证码

含义:消息认证密钥给出成对加密,可以用来保护消息的完整性。它包括三个元素:K是预先共享的成对密钥; H是协商哈希算法; M是消息内容

场景:证明身份

代表算法:HMAC

电子签名

含义:基于非对称加密,不仅可以用来验证数字内容的完整性,还可以用来确认来源,是不可否认的。

场景:数字签名

代表算法:DSA、ECSDA

数字证书

数字证书的出现是为了解决未来非对称加密算法和数字签名中公钥分发带来的安全风险。根据保护公钥的用户,可以分为两类

[x] 加密数字证书:保护用于加密信息的公钥

[x] 签名验证数字证书:保护用于解密签名的公钥进行认证

PKI系统

CA:负责证书的颁发和吊销,接受RA的请求

RA:验证用户身份,验证数据合法性,负责注册,审核通过后发送给CA

证书数据库:存储证书

默克尔树

主要特征:

(1) 底部叶子节点包含存储的数据或哈希值

(2)非叶子节点是其两个子节点内容的哈希值

比特币基础技术_比特币入门基础知识_比特币看盘的基础知识

应用场景:

(1)快速比对大量数据:只需要比对根节点的hash值是否相同

(2) 快速定位修改:一个节点的值发生变化

(3) 零知识证明

布隆过滤器:元素是否在集合中

(1) 基于hash的快速查找

(2) 更高效的Bloom filter:基于多个hash函数,提高空间利用率,可以用更少的空间来表示更大集合的存在关系

同态加密

直接对密文进行处理,对明文进行处理后对处理结果进行加密,结果是一样的。 保证执行处理器无法访问有关数据本身的信息。

比特币原理与设计

基本交易流程

合法交易是指将一些已有交易的UTXO作为交易的输入,并产生新的输出。 转账方通过脚本签名证明自己是UTXO的合法用户,并指定输出脚本来限制未来交易的用户为收款人。 每笔交易的总输入不能低于总输出,总输入超过总输出的部分称为交易费,由生成包含该交易的区块的矿工赚取。

重要概念

账户/地址:比特币账户地址实际上是用户公钥经过一系列哈希(hash160,或者先sha256,再ripemd160)和编码操作后生成的一个160位(20字节)的字符串。

贸易:

交易脚本:脚本是保证交易完成的核心机制,主要用于教学和研究交易是否合法。 包括输出脚本和认领脚本:输出脚本一般由支付方对交易进行锁定,用户控制可以使用交易输出的对象(收款人)的权限; claim脚本用于证明他能够满足交易输出脚本条件的锁定。

区块:对于完整区块的验证,只需要验证区块头

避恶:用经济博弈论来避恶。 矿工首先要付出挖矿成本,消耗算力。 他们越想获得决定新区块的权利,他们抵押的算力就越多。 一旦失败,这些计算能力将被没收,这称为沉没成本。

负反馈调整:比特币网络中的矿工越多,比特币网络越稳定,比特币价值越高,但挖矿概率越低。 反之,比特币的矿工越少,比特币网络越不安全,比特币的价值就越低,但挖矿的概率会增加。

挖矿:参与维护比特币网络上的节点,协助产生新区块以获得一定的新比特币的过程。 矿工将前一个区块的哈希值、前一个区块生成后新验证的交易内容结合起来,用自己猜测的一个随机数将它们一起打包成一个候选新区块,使得新区块的哈希值小于 1 比特币网络中给定的数字。 算力一般以每秒哈希数为单位计算,记为h/s。

共识机制:

(1) 工作量证明

最长的链

(2) 股权证明

比特币入门基础知识_比特币基础技术_比特币看盘的基础知识

闪电网络:解决比特币交易网络的性能问题:全网交易速度约为每秒7笔交易; 同时,等待6个区块的可信确认,最终确认时间约为1小时。 引入智能合约思想,完善链下交易渠道。

(1) RSMC:一种可撤销的顺序到期合约,类似于资金池机制。 保证两个人之间的直接交易可以在链下完成。

(2) HTLC:带时钟的哈希合约。 保证任何两个人之间的转账都可以通过支付通道完成。

侧链:

侧链协议允许资产在比特币区块链和其他区块链之间转移。 比特币区块链作为主链,其他区块链作为侧链。 两者在两个方向上联动,实现比特币从主链转移到侧链流通。

(1) 简单支付验证证明SPV Proof:SPV客户端只需下载所有区块的区块头,进行简单的定位和计算工作,即可给出验证结论。

(2)双向挂钩:要实现比特币在主链和侧链之间的转移和归还,主链和侧链需要对彼此的特定交易进行SPV验证。

权衡:

(1) 区块上限为1MB:更大的区块大小可以带来更大的交易吞吐量,但会增加挖矿成本,带来中心化风险,增加存储成本。

(2) 出块间隔时间:较短的出块时间可以缩短交易确认时间,但也可能导致更多的分叉,降低网络可用性。

(3) 脚本支持级别:更强大的脚本指令集可以带来更多的灵活性,但也可能带来更多的安全隐患。

分叉:比特币网络的升级会带来分叉

(1) 软分叉:老节点可以接受新节点产生的交易和区块

(2) 硬分叉:老节点不能接受新节点产生的交易和区块

以太坊的核心概念

1. 智能合约

使用计算机程序运行各种结论和合同。 智能合约通过图灵完备的高级语言开发,包括solidity、serpent、viper等,智能合约运行在以太坊虚拟机中。

2.账户

比特币没有账户的概念,而是使用UTXO模型记录整个系统的状态。 用户的余额信息是通过交易历史计算出来的,而以太坊使用账户来记录系统的状态,每个账户存储余额信息、智能合约代码和内部数据存储等。具体可以分为两种:

(1) 合约账户:存放智能合约代码

(2) 外部账户:以太坊所有者的账户,对应某个公钥。

3. Ether:主要用于购买燃料和支付矿工维持在以太坊网络上运行智能合约的费用。

4.燃料:控制某笔交易执行顺序的上限。 未能执行合约规范将消耗固定数量的气体。

Hyperledger——面向企业的分布式账本