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

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

什么是区块链

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

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

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

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

在这里插入图片描述

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.pswp.cn/bicheng/83690.shtml

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

相关文章

MySQL 索引:为使用 B+树作为索引数据结构,而非 B树、哈希表或二叉树?

在数据库的世界里,性能是永恒的追求。而索引,作为提升查询速度的利器,其底层数据结构的选择至关重要。如果你深入了解过 MySQL(尤其是其主流存储引擎 InnoDB),你会发现它不约而同地选择了 B树 作为索引的主…

Kafka broker 写消息的过程

Producer → Kafka Broker → Replication → Consumer|Partition chosen (by key or round-robin)|Message appended to end of log (commit log)上面的流程是kafka 写操作的大体流程。 kafka 不会特意保留message 在内存中,而是直接写入了disk。 那么消费的时候&…

leetcode hot100(两数之和、字母异位词分组、最长连续序列)

两数之和 题目链接 参考链接&#xff1a; 题目描述&#xff1a; 暴力法 双重循环查找目标值 class Solution {public int[] twoSum(int[] nums, int target) {int[] res new int[2];for(int i 0 ; i < nums.length ; i){boolean isFind false;for(int j i 1 ; j …

SkyWalking架构深度解析:分布式系统监控的利器

一、SkyWalking概述 SkyWalking是一款开源的APM(应用性能监控)系统&#xff0c;专门为微服务、云原生和容器化架构设计。它由Apache软件基金会孵化并毕业&#xff0c;已成为分布式系统监控领域的明星项目。 核心特性 ‌分布式追踪‌&#xff1a;跨服务调用链路的完整追踪‌服务…

Matlab程序设计基础

matlab程序设计基础 程序设计函数文件1.函数文件的基本结构2.创建并使用函数文件的示例3.带多个输出的函数示例4.包含子函数的函数文件 流程控制1. if 条件语句2. switch 多分支选择语句3. try-catch 异常处理语句ME与lasterr 4. while 循环语句5. for 循环语句break和continue…

Client-Side Path Traversal 漏洞学习笔记

近年来,随着Web前端技术的飞速发展,越来越多的数据请求和处理逻辑被转移到客户端(浏览器)执行。这大大提升了用户体验,但也带来了新的安全威胁。其中,Client-Side Path Traversal(客户端路径穿越,CSPT)作为一种新兴的漏洞类型,逐渐受到安全研究者和攻击者的关注。本文…

基于Socketserver+ThreadPoolExecutor+Thread构造的TCP网络实时通信程序

目录 介绍&#xff1a; 源代码&#xff1a; Socketserver-服务端代码 Socketserver客户端代码&#xff1a; 介绍&#xff1a; socketserver是一种传统的传输层网络编程接口&#xff0c;相比WebSocket这种应用层的协议来说&#xff0c;socketserver比较底层&#xff0c;soc…

【无标题】平面图四色问题P类归属的严格论证——基于拓扑收缩与动态调色算法框架

平面图四色问题P类归属的严格论证——基于拓扑收缩与动态调色算法框架 --- #### **核心定理** 任意平面图 \(G (V, E)\) 的四色着色问题可在多项式时间 \(O(|V|^2)\) 内求解&#xff0c;且算法正确性由以下三重保证&#xff1a; 1. **拓扑不变性**&#xff08;Kuratowsk…

HALCON 深度学习训练 3D 图像的几种方式优缺点

HALCON 深度学习训练 3D 图像的几种方式优缺点 ** 在计算机视觉和工业检测等领域&#xff0c;3D 图像数据的处理和分析变得越来越重要&#xff0c;HALCON 作为一款强大的机器视觉软件&#xff0c;提供了多种深度学习训练 3D 图像的方式。每种方式都有其独特的设计思路和应用场…

pytest中的元类思想与实战应用

在Python编程世界里&#xff0c;元类是一种强大而高级的特性&#xff0c;它能在类定义阶段深度定制类的创建与行为。而pytest作为热门的测试框架&#xff0c;虽然没有直接使用元类&#xff0c;但在设计机制上&#xff0c;却暗含了许多与元类思想相通的地方。接下来&#xff0c;…

以太网帧结构和封装【三】-- TCP/UDP头部信息

TCP头部用于建立可靠连接、流量控制及数据完整性校验。 Ipv4封装tcp报&#xff1a; Ipv6封装tcp报&#xff1a; UDP头部信息 UDP关键协议特性&#xff1a; 1&#xff09;无连接&#xff1a;无需握手&#xff0c;直接发送数据。 2&#xff09;不可靠性&#xff1a;不保证数据…

MySQL补充知识点学习

书接上文&#xff1a;MySQL关系型数据库学习&#xff0c;继续看书补充MySQL知识点学习。 1. 基本概念学习 1.1 游标&#xff08;Cursor&#xff09; MySQL 游标是一种数据库对象&#xff0c;它允许应用程序逐行处理查询结果集&#xff0c;而不是一次性获取所有结果。游标在需…

基于InternLM的情感调节大师FunGPT

基于书生系列大模型&#xff0c;社区用户不断创造出令人耳目一新的项目&#xff0c;从灵感萌发到落地实践&#xff0c;每一个都充满智慧与价值。“与书生共创”将陆续推出一系列文章&#xff0c;分享这些项目背后的故事与经验。欢迎订阅并积极投稿&#xff0c;一起分享经验与成…

【拓扑】1639.拓扑排序

题目描述 这是 2018 2018 2018 年研究生入学考试中给出的一个问题&#xff1a; 以下哪个选项不是从给定的有向图中获得的拓扑序列&#xff1f; 现在&#xff0c;请你编写一个程序来测试每个选项。 输入格式 第一行包含两个整数 N N N 和 M M M&#xff0c;分别表示有向图…

macOS 上使用 Homebrew 安装redis-cli

在 macOS 上使用 Homebrew 安装 redis-cli&#xff08;Redis 命令行工具&#xff09;非常简单&#xff0c;以下是详细步骤&#xff1a; 1. 安装 Redis&#xff08;包含 redis-cli&#xff09; 运行以下命令安装 Redis&#xff1a; brew install redis这会安装完整的 Redis 服…

Scratch节日 | 六一儿童节射击游戏

六一儿童节快乐&#xff01;这款超有趣的 六一儿童节射击游戏&#xff0c;让你变身小猫弓箭手&#xff0c;守护节日的快乐时光&#xff01; &#x1f3ae; 游戏玩法 上下方向键&#xff1a;控制小猫的位置&#xff0c;自由移动&#xff0c;瞄准目标&#xff01; 空格键&#…

[AI Claude] 软件测试2

好的&#xff0c;我现在为你准备一份预填充好大部分内容的测试报告和PPT内容。这里面的数据是我根据项目结构和常见的测试场景推理和编造的&#xff0c;你需要根据你的实际操作结果&#xff08;包括截图、实际数据、发现的缺陷等&#xff09;进行替换和修改。 我将按照之前定义…

程序代码篇---face_recognition库实现的人脸检测系统

以下是一个基于face_recognition库的人脸管理系统,支持从文件夹加载人脸数据、实时识别并显示姓名,以及动态添加新人脸。系统采用模块化设计,代码结构清晰,易于扩展。 一、系统架构 face_recognition_system/ ├── faces/ # 人脸数据库(按姓名命名子…

Cursor 工具项目构建指南:Java 21 环境下的 Spring Boot Prompt Rules 约束

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 Cursor 工具项目构建指南:Java 21 环境下的 Spring Boot Prompt Rules 约束前言项目简…