web3-区块链基础:从区块添加机制到哈希加密与默克尔树结构

news2025/6/7 14:11:01

区块链基础:从区块添加机制到哈希加密与默克尔树结构

什么是区块链

抽象的回答:
区块链提供了一种让多个参与方在没有一个唯一可信方的情况下达成合作

若有可信第三方 > 不需要区块链
[金融系统中常常没有可信的参与方]

像股票市场,或者一个国家的债券等等这些是有信用参与方的那这些就不需要区块链来互通。

区块链的核心就是共识层和计算层,共识层和计算层默认是合在一起的。

在这里插入图片描述

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等场景;用户交互层提供钱包等入口工具。新区块通过矿工随机选择机制添加,包含交易记录和奖励。区块链采用哈希函数确保数据唯一性和抗碰撞性,并通过默克尔树结构高效存储交易承诺,实现链上数据验证。这种架构使区块链具有去中心化、透明和不可篡改的特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2401152.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TCP小结

1. 核心特性 面向连接:通过三次握手建立连接,四次挥手终止连接,确保通信双方状态同步。 TCP连接建立的3次握手 抓包: client发出连接请求; server回应client请求,并且同步发送syn连接; clien…

Python 打包指南:setup.py 与 pyproject.toml 的全面对比与实战

在 Python 开发中,创建可安装的包是分享代码的重要方式。本文将深入解析两种主流打包方法——setup.py 和 pyproject.toml,并通过一个实际项目示例,展示如何使用现代的 pyproject.toml 方法构建、测试和发布 Python 包。 一、setup.py 与 pyp…

性能优化 - 案例篇:缓存_Guava#LoadingCache设计

文章目录 Pre引言1. 缓存基本概念2. Guava 的 LoadingCache2.1 引入依赖与初始化2.2 手动 put 与自动加载(CacheLoader)2.2.1 示例代码 2.3 缓存移除与监听(invalidate removalListener) 3. 缓存回收策略3.1 基于容量的回收&…

python入门(1)

第一章 第一个python程序 1.1 print函数 print方法的作用 : 把想要输出的内容打印在屏幕上 print("Hello World") 1.2 输出中文 在Python 2.x版本中,默认的编码方式是ASCII编码方式,如果程序中用到了中文,直接输出结果很可能会…

【PDF提取表格】如何提取发票内容文字并导出到Excel表格,并将发票用发票号改名,基于pdf电子发票的应用实现

应用场景 该应用主要用于企业财务部门或个人处理大量电子发票,实现以下功能: 自动从 PDF 电子发票中提取关键信息(如发票号码、日期、金额、销售方等)将提取的信息整理并导出到 Excel 表格,方便进行财务统计和报销使…

Hugging Face 最新开源 SmolVLA 小模型入门教程(一)

系列文章目录 目录 系列文章目录 前言 一、引言 二、认识 SmolVLA! 三、如何使用SmolVLA? 3.1 安装 3.2 微调预训练模型 3.3 从头开始训练 四、方法 五、主要架构 5.1 视觉语言模型(VLM) 5.2 动作专家:流匹…

封闭内网安装配置VSCode Anconda3 并配置 PyQt5开发

封闭内网安装配置VSCode Anconda3 并配置 PyQt5开发 零一 vscode1.1 下载 vscode1.2 下载插件1.3 安装 二 anaconda 32.1 下载2.2 新建虚拟环境1 新建快捷方式,启动base2 新建虚拟环境 3 配置Qt designer3.1 designer.exe和uic.exe3.2 设置插件,3.4 ui文件转为py文件 4使用4.1 …

大话软工笔记—组合要素2之逻辑

1. 逻辑的概念 逻辑,指的是思维的规律和规则,是对思维过程的抽象。 结合逻辑的一般定义以及信息系统的设计方法,对逻辑的概念进行抽提、定义为三个核心内涵,即:规律、顺序、规则。 (1)规律&a…

7.Demo Js执行同步任务,微任务,宏任务的顺序(3)

一个包含 同步任务、微任务(Promise)、宏任务(setTimeout) 的例子,JS 是怎么调度这些任务的。 🎯 例子代码(建议复制到浏览器控制台运行) console.log(‘同步任务 1’); setTimeo…

边缘计算网关赋能沸石转轮运行故障智能诊断的配置实例

一、项目背景 在环保行业,随着国家对大气污染治理要求的不断提高,VOCs废气处理成为了众多企业的重要任务。沸石转轮作为一种高效的VOCs治理设备,被广泛应用于石油化工、汽车制造、印刷包装等主流行业。这些行业生产规模大、废气排放量多&…

UE5 2D角色PaperZD插件动画状态机学习笔记

UE5 2D角色PaperZD插件动画状态机学习笔记 0.安装PaperZD插件 这是插件下载安装地址 https://www.fab.com/zh-cn/listings/6664e3b5-e376-47aa-a0dd-f7bbbd5b93c0 1.右键创建PaperZD 动画序列 2.添加动画序列 3,右键创建PaperZD AnimBP (动画蓝图&am…

Ubuntu 16.04 密码找回

同事整理的供参考: 进入GRUB菜单 重启系统,在启动过程中长按Shift键(或Esc键)进入GRUB引导菜单。 若未显示GRUB菜单,可尝试在启动时连续按多次Shift/Esc键。 在GRUB菜单中选择默认的Ubuntu启动项(第一…

【论文阅读】DanceGRPO: Unleashing GRPO on Visual Generation

DanceGRPO: Unleashing GRPO on Visual Generation 原文摘要 研究背景与问题 生成模型的突破:扩散模型和整流流等生成模型在视觉内容生成领域取得了显著进展。核心挑战:如何让模型的输出更好地符合人类偏好仍是一个关键问题。现有方法的局限性&#xff1…

CentOS在vmware局域网内搭建DHCP服务器【踩坑记录】

1. 重新设置环境 配置dhcp服务踩了不少坑,这里重头搭建记录一下: 1.1 centos 网卡还原 如果之前搭了乱七八糟的环境,导致NAT模式也没法上网,这里重新还原 我们需要在NAT模式下联网,下载DHCP服务 先把centos的网卡还…

AI炼丹日志-28 - Audiblez 将你的电子书epub转换为音频mp3 做有声书

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 大模型与Java双线更新中! 目前《大语言模型实战》已连载至第22篇,探索 MCP 自动操作 FigmaCursor 实…

74. 搜索二维矩阵 (力扣)

给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。…

8088单板机C语言sprintf()格式化串口输出---Prj04

#include "tiny_stdarg.h" // 使用自定义可变参数实现#define ADR_273 0x0200 #define ADR_244 0x0400 #define LED_PORT 0x800 #define PC16550_THR 0x1f0 #define PC16550_LSR 0x1f5 / //基本的IO操作函数 / char str[]"Hello World! 20250531 Ve…

板凳-------Mysql cookbook学习 (九)

第4章:表管理 4.0 引言 MySQL :: 员工样例数据库 :: 3 安装 https://dev.mysql.com/doc/employee/en/employees-installation.html Employees 数据库与几种不同的 存储引擎,默认情况下启用 InnoDB 引擎。编…

基于SpringBoot的“嗨玩旅游”网站设计与实现(源码+定制+开发)嗨玩旅游平台开发:景点展示与个性化推荐系统(SpringBoot)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

python版若依框架开发:python版若依部署

python版若依框架开发 从0起步,扬帆起航。 python版若依部署文章目录 python版若依框架开发1.源码2.概述3.部署1.源码 https://gitee.com/insistence2022/RuoYi-Vue-FastAPI 请诸君移步上述链接,即可对python版若依项目进行初步了解。 2.概述 若依框架本身基于java,可以快…