主页 > imtoken华为 > 不懂区块链?先来看看这个

不懂区块链?先来看看这个

imtoken华为 2023-06-24 10:03:02

---------------------------------------------- ---------------------------------------------- ---------------------------------------------- ------

从开始学习JavaEE,到自学大数据,再到现在在区块链实习,算是边实习边学习。 工作一段时间后,我将这四个月的实习所学的知识总结一下,希望对自己和他人有所帮助。

说起区块链,我想先从比特币说起……

一、比特币基本信息

1. 什么是比特币

1)比特币系统:一个软件,每个人都可以下载运行,每个人都维护一个版本

2)比特币:比特币系统维护的账本上的交易号(为完成支付功能而产生的交易号)

3)区块链:(简称区块链)记录各种交易编号的数字账本,是伴随比特币在系统中流通的概念

2. 比特币与区块链的关系

1)比特币是区块链技术的应用

2)区块链是比特币的底层支撑系统

3)区块链是从比特币中提炼出来的概念

2. 比特币区块链使用的基础技术

1.哈希算法(用于工作量证明)

1)功能:将任意长度的输入格式化为定长的十六进制字符串

2)主流算法:MD5(128位)、sha256(256位)

3) 自然

① 抗碰撞:当知道一个x时,不可能找到ay,使得x和y的Hash值相同

② 原图不可逆性:无法根据x的Hash值计算出x

③ 解谜友好性:计算Hash时,没有捷径可走。 要想计算出预定的Hash值,只能反复尝试(这是pow共识机制的基础)

2.密码学(用于验证资产所有权和交易)

1)对称加密:A和B使用相同的秘钥

2)非对称加密(生成公私钥)

① 简介:公钥和私钥之间存在一一对应关系。 公钥负责加密和公开; 私钥用于解密和签名,不能暴露

② 公钥:用对方的公钥加密,对方用自己的私钥解密,因为私钥自己持有,公钥无法解密,可以保证安全

③ 私钥:签名,保证数据的来源,保证数据未被篡改,但不能保证数据安全

④ 常用算法:RSA、ECC

⑤ 特点:安全性高,加解密复杂,效率低

3、编码(用于网络传输、地址生成等)

区块链底层比较常用的编码方式是base64编码

4. p2p网络(点对点,点对点)

1)简介:点对点技术,没有中央服务器,互联网系统依靠用户群交换信息

2)特点:抗攻击、高容错、地位平等

5. Merkle树(用于快速交易验证)

1)介绍:Merkle Tree,俗称Hash Tree,是一种存储Hash值的树,Merkle Tree的叶子就是数据块的Hash值

2)特征:二叉树

3)应用:可以快速检索,尤其是数量急剧增加时,检索效率高(在比特币中,可以用来验证某笔交易是否存在于某个区块)

6. 工作量证明

1)比特币的POW需要运行Hash算法(sha256)找到一个符合要求的Block Hash(Block Hash = sha256(区块信息+随机值n)),Hash值由n个前导0组成,零的个数取决于关于网络的难度值。 找到一个合理的 Block Hash 需要大量的试算,计算时间取决于机器的 Hash 运算速度。

2)工作量证明过程:生成Coinbase交易,与所有其他交易组成交易列表打包成区块,通过Merkle Tree算法生成Merkle Tree Hash,将Merkle Tree Hash等相关字段组装成区块头,以及区块头的80字节数据(Block Header)作为工作量证明的输入,不断改变区块头中的随机数,即nonce值,对每个改变的区块进行双重SHA256运算header(即SHA256(SHA256(Block_Header))),将结果与当前网络的目标值进行比较,如果小于目标值,则问题成功解决,工作量证明完成

3. 比特币区块结构

1、块状结构

比特币的区块结构由区块大小、区块头、交易计数器、交易

1

2.区块头

区块头的信息主要包括版本、父区块头的哈希值、默克​​尔根、时间戳、难度目标、Nonce

2

3.区块体(交易)

1)Coinbase交易:第一笔交易,挖矿交易(没有付款人,只有收款人,即矿工); 每个区块都有一个 Coinbase 交易

2)普通转账交易:每笔交易包括付款人、收款人、支付金额、手续费等。

4.完整结构图

3

4.交易

UTXO(unspent transaction output):未花费输出,是比特币交易中最小的支付单位,不可分割,每一个UTXO都必须一次性消耗掉,然后形成一个新的UTXO,存放在比特币网络的UTXO池中

一、区块链基本信息

一、什么是区块链

与比特币一起诞生,它是一个分布式数据库(本质); 网络底层协议(摘要); 存储引擎、计算引擎

2. 区块链的特点

1)去中心化:所有参与网络节点共同维护,无中心节点控制

2) 不可变的:交易一旦发出,就无法修改或删除,每笔交易和每个区块都有时间戳

3)匿名性:私钥和地址都是无需认证即可使用网络的条件

4) 可追溯性

2. 区块链协议

区块链是一种网络底层协议,可分为数据层、网络层、共识层、激励层、合约层、应用层

4

1.数据层

区块链数据,链结构,哈希函数,默克尔树,非对称加密,时间戳。数据层需要突破的是区块容量问题

2.网络层

P2P网络、传播机制、验证机制(ad hoc网络)

3.共识层

共识机制:是所有节点对某个状态达成共识的一种方式。 只有有去中心化的共识机制才有意义、可信,否则只是数据共享。目前主流的共识机制有:POW、POS、DPOS、PBFT等。

1)POW(Proof of Work):工作量证明

特点:如果你计算出一个有难度的谜题,系统会奖励你挖矿奖励; 更多的工作,更多的回报

优势:

① 所有节点均可参与,记账权公平分配给各节点,去中心化

② 多劳多得比特币是区块链最早的应用,矿工积极性高

③ 安全性高,作弊成本高,如果能作弊成功,那么做诚实节点的收益会更大

缺点:

① 主流矿池垄断严重,存在51%算力攻击风险

② 资源浪费严重(2018年底占全球用电量的0.5%)

③ 持币者没有话语权,算力决定一切

④ 网络性能低,共识时间长

项目:比特币、以太坊、比原链等。

2)POS(Proof of Stake):权益证明,根据持币量和持币时间发放利息(币天销毁)

特征:

① 不挖矿,依靠币龄(持有币数*持有天数)确定记账权,利息即奖励

②按钱分配,钱生钱

优势:

① 在一定程度上缩短达成共识的时间

② 节省资源

③ 防作弊,币种越老,获得记账权的几率越大,避免51%攻击,因为攻击会损害你的权益

缺点:数字货币过于中心化,富者愈富,散户参与积极性低

3)DPOS(Delegated Proof of Stake):委托权益证明

让每个持有币的人投票,从而产生n个代表,可以理解为n个超级节点或者矿池,这n个超级节点之间的权利是完全平等的

特点:不挖矿,每年按比例增发代币,奖励超级节点

优点:效率高,可扩展性强

缺点:不是去中心化的,而是多中心化的

项目:EOS

4)PBFT后面会单独讲解

4、激励层:发行机制、分配机制

5.合约层

智能合约

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

本质:数字合约

特点:代码代替人仲裁和执行合约,同时可以触发支付

1)构建:本地构建

智能合约由区块链上的多个用户共同制定比特币是区块链最早的应用,可用于用户之间的任何交易。协议定义双方的权利和义务,开发者将这些权利和义务电子化编程,代码包含触发条件合约自动执行

2)存储:链上存储

一旦编码完成,智能合约就会上传到区块链网络,即全网的验证节点都会收到你和对方之间的合约。

3)执行:在EVM中执行

① 智能合约会定期检查是否有相关事件和触发条件,符合条件的事件会被推送到队列中进行验证

② 区块链上的验证节点首先对事件进行验证和签名,确保其有效性; 大多数验证节点对该事件达成共识后,智能合约将成功执行,并通知用户

6、应用层:业务逻辑

三、区块链的分类

按应用场景可分为:

1)公链:任何人都可以随时加入和退出,每个节点都是平等的,有交易权和记账权,属于公开代表:比特币、以太坊等。

2)联盟链:只有一部分人参与。 加入和退出都需要授权。 有的节点被选为记账人,有的节点可以交易,但没有记账权。 半封闭代表:R3CEV、IBM Farbric

3)私有链:公司内部使用,实现更好的权限控制、管理和审计,是半封闭的

4. 区块链相关概念

1. 矿工:由运行比特币客户端的节点代理,竞争记账权以获得奖励

2、矿机:CPU挖矿—>GPU挖矿—>FPGA挖矿—>ASIC挖矿(专业矿机)

3.挖矿

1)矿场:挖矿设备集中的地方

2)矿池:一个软件,矿场和普通矿工连接,矿池负责打包,连接的设备负责挖矿,按照贡献算力比例分配收益

4、算力:即算力,表示矿工挖矿的能力。 算力越大,计算出Hash值的概率越高

5.fork:代码升级时不同社区意见不合的结果,重大bug修复会fork

1)软分叉:旧节点无感知地接收新协议产生的区块,新旧协议共同维护一条链

2)硬分叉:老节点拒绝接受新节点创建的区块,分裂成两条独立的链(以太坊分叉)

6.叔叔块(孤儿块)

与此同时,两名矿工同时将矿井挖出。 这时会出现临时分叉。 区块链会同时保留两条链,等待新产生的区块。 新区块选择的链是最长的链。 ,也就是主链,那么另外一个区块叫做叔块(以太坊中的叔块是有奖励的,而比特币中的叔块是没有奖励的)。

7.节点

1)轻节点SPV(Simplifed Payment Verification):手机钱包,只同步所有与自身相关的区块头信息和交易数据

2)全节点:包含账本的节点

联盟链还可以细分为共识节点、交易节点、账本节点、钱包节点、托管节点

8. Token:创建交易和运行智能合约的燃料。 以太坊代币是eth,fuel是gas,最小单位是wei

9.钱包:创建公私钥,保存私钥,相当于一个钱包,可以存放多个地址

类型:PC钱包、手机钱包、轻节点钱包