区块链基础:从区块添加机制到哈希加密与默克尔树结构
什么是区块链
抽象的回答:
区块链提供了一种让多个参与方在没有一个唯一可信方的情况下达成合作
若有可信第三方 > 不需要区块链
[金融系统中常常没有可信的参与方]
像股票市场,或者一个国家的债券等等这些是有信用参与方的那这些就不需要区块链来互通。
区块链的核心就是共识层和计算层,共识层和计算层默认是合在一起的。
1️⃣ 共识层(Consensus Layer)
定义:
提供数据一致性和不可篡改性的保障机制,确保所有参与节点在不需要相互信任的前提下,达成对数据的统一认定。
特点:
- 公共数据结构:所有交易数据、区块等均记录在公开账本中。
- 不可篡改性:一旦数据上链,无法删除或修改。
- 一致性:所有诚实节点维护相同账本副本。
- 活性:诚实节点能够持续添加新交易和区块。
- 开放性:任何人均可参与数据的添加与验证(依据公链/联盟链而定)。
2️⃣ 计算层(Computation Layer)
定义:
DApp的业务逻辑与规则以程序形式部署在区块链上,节点共同执行和验证程序结果。
特点:
- 透明性:应用逻辑写在开放、公开的源代码中,无需依赖中心化可信方。
- 公共可验证性:任何人都能独立验证程序执行过程与结果。
- 去信任执行:新区块的创建者(矿工/验证者)需执行DApp程序,记录状态变更。
3️⃣ 应用层(Application Layer)
定义:
基于区块链的去中心化应用程序(DApps)与智能合约,构建具体业务场景,如DeFi、NFT、DAO等。
特点:
- 运行在链上计算机(虚拟机)上
- 应用逻辑透明、数据不可篡改
- 无需中心化服务方
4️⃣ 用户交互层(Interaction Layer / Interface Layer)
定义:
用户与区块链网络及DApps交互的界面与入口。
组成:
- 钱包(如MetaMask、Phantom)
- 浏览器插件、移动端App
- 前端界面与API交互
特点:
- 提供友好的交互体验
- 管理用户身份、密钥、签名等
- 调用区块链节点API,与链上数据与应用交互
区块链的生态
区块如何被添加到链上
假设有3个参与方A,B,C;他们3个人每个人都有私钥对交易进行签名,3个人每个人都创建了独立的交易 ;3个人都有矿工的地址他们也将交易发送到了对应的矿工的地址中;矿工收到发布的交易然后通过一些网络协议把这些交易发出去
这边会有有一个出块者的选择机制,矿工会被随机的选中,假设这一轮最上面的矿工被选中;他就会构建包含当前区块的区块链接然后把区块发布在交易上;这时候就会给这个矿工奖励我们称之为区块奖励;
加密:哈希函数
加密哈希函数
一个有效计算函数。H:M ->T
其中:||>>||
无论输入多少字节的数据,哈希函数最后就是输出一个32字节的数据
抗碰撞性(Collision resistance)
定义:碰撞是指对于:H M–>T,一对X≠Y€M使得H(x) = H(y)
因为定义域 |M|>> 值域|T|说明存在很多碰撞
白话来说就是无论你输入多少字节的数据最后输出的都是一个32字节的算数,由于函数是抗碰撞的,这32个字节都是唯一的没有重复。
大家如果感兴趣可以去了解一下密码学的课程。
默克尔树(Merkle tree-1989)
首先承诺一个大小为N的列表S,如下图有8个元素,生成一个承诺h–32个字节 ;其实就是一个哈希值
当在区块链上写入一个区块交易时,只需要写入的承诺就足够,保持小链。
后面,可以证明每个链上的内容。
总结
区块链是一种去中心化技术,使多方在没有可信第三方的情况下达成共识。其架构分为四层:共识层确保数据安全和一致性;计算层运行智能合约业务逻辑;应用层构建DeFi、NFT等场景;用户交互层提供钱包等入口工具。新区块通过矿工随机选择机制添加,包含交易记录和奖励。区块链采用哈希函数确保数据唯一性和抗碰撞性,并通过默克尔树结构高效存储交易承诺,实现链上数据验证。这种架构使区块链具有去中心化、透明和不可篡改的特性。