区块链技术与应用学习笔记(5-7节)——北大肖臻课程

目录

​BTC实现

基于交易的账本模式:

UTXO集合:

交易费用:

BTC网络

1.应用层:

2.网络层:

3传播层:

什么是鲁棒?

BTC挖矿:

出块奖励:

挖矿难度调整:

挖矿过程:

挖矿难度调整:

挖矿收益:


BTC实现


基于交易的账本模式:

在比特币网络中,不像传统的银行账户系统那样,系统并不会记录每个账户的余额。相反,它跟踪的是每个交易的流动。 
这意味着比特币网络上并没有账户的概念,而是通过追踪交易来确定每个地址(公钥)的余额。 

UTXO集合:


UTXO是指未被花费的比特币交易输出。每当比特币被发送到一个地址时,它们会形成一组UTXO。 
比特币全节点维护着一个UTXO集合,其中包含所有尚未被花费的交易输出。这个集合的维护对于检测双重支付非常重要。 


交易费用:


在比特币交易中,总输入必须等于总输出。如果总输入大于总输出,剩余的部分就会成为交易费用。 
交易费用是为了激励矿工处理和确认交易。矿工通过打包交易并添加到区块链中来获得奖励,其中包括交易费用。 
通常情况下,交易费用是根据交易的大小(字节数)和网络的拥堵程度来确定的。高网络拥堵时,交易费用可能会增加,以便更快地得到确认。​编辑 
通过这种基于UTXO的交易模型,比特币实现了一种去中心化的、安全的数字货币系统,同时确保了交易的可追踪性和不可篡改性。


BTC网络


比特币网络是一个分布式的系统,由应用层、网络层和传播层构成,每一层都有着特定的功能和作用。


1.应用层:


在比特币网络中,应用层主要由比特币区块链组成。这是一个持续增长的、由区块构成的公开账本,记录了所有的交易和区块信息。
区块链技术是比特币的核心,它通过去中心化的方式实现了交易的验证和记录,保证了交易的安全性和透明性。


2.网络层:


比特币网络采用P2P(Peer-to-Peer)Overlay网络结构,这意味着网络中的节点彼此平等,没有中心化的服务器或管理机构。节点之间通过TCP协议进行通信,建立连接并交换信息。
P2P网络结构使得比特币网络具有高度去中心化的特点,任何人都可以加入或退出网络,而不需要获得中央控制机构的许可。

3传播层:

信息传播是比特币网络中的关键环节,它通过种子节点和邻居节点的机制进行。种子节点是网络中的一小部分节点,它们的作用是帮助新加入的节点找到其它节点并加入网络。
邻居节点是每个节点连接的直接对等节点,它们之间通过TCP连接进行通信,交换交易和区块数据。
传播方式采用了flooding方式,即当一个节点接收到新的消息时,它会将该消息广播给它的所有邻居节点。这种方式确保了消息可以快速地传播到整个网络,增强了网络的鲁棒性和抗攻击能力。
比特币网络的设计原则是简单、鲁棒,


什么是鲁棒?


比特币网络的鲁棒性表现在几个方面:
节点自治:每个比特币节点都是自治的,它们独立地验证和转发交易,而不依赖于中心化的实体。这意味着即使部分节点受到攻击或离线,网络仍然能够运行。
去中心化的传播机制:比特币网络采用P2P Overlay网络结构,没有单一的中心节点负责传播信息。节点通过与相邻节点进行直接通信来传播交易和区块数据,这种分布式的传播方式使得网络更加鲁棒,不易受到单点故障的影响。
消息传播的弹性:比特币网络使用flooding方式进行消息传播,这意味着每个节点在接收到新消息后会将其广播给它的所有邻居节点。这种方式虽然可能导致网络中存在大量的重复消息,但它确保了消息能够迅速传播到整个网络,增强了网络对于恶意攻击和分布式拒绝服务(DDoS)攻击的抵抗能力。
区块大小限制:为了确保网络的吞吐量和稳定性,比特币协议限制了每个区块的大小。这样做可以避免网络过载和交易拥堵,同时降低了网络分叉的可能性。
总体来说BTC旨在实现高度的去中心化和安全性。每个节点都维护着邻居节点的集合,并通过简单而有效的传播方式来保证信息的传递。由于带宽是网络传播的瓶颈,比特币协议限制了区块的大小,以确保网络的稳定性和效率。通过深入理解比特币的核心机制、网络结构以及挖矿激励机制和难度调整策略,我们可以更好地理解比特币的运作原理和技术细节,从而更好地参与和贡献到这个生态系统中。

BTC挖矿:


比特币挖矿是通过解决密码学难题来验证交易并添加到区块链上的过程。挖矿的主要概念包括:


出块奖励:


挖矿者通过成功挖出新的区块来获得比特币奖励,这是挖矿的主要激励机制。出块奖励每隔21万个区块减半,平均每隔4年进行一次减半。


挖矿难度调整:


比特币网络设计了一个挖矿难度调整机制,以保持平均出块时间约为10分钟。每2016个区块后,就会根据前一段时间的挖矿情况自动调整难度。


挖矿过程:


在比特币网络中,矿工通过执行一系列计算任务来竞争创建新的区块。这个计算任务被称为“工作量证明”(Proof of Work,PoW),矿工们通过不断尝试计算出符合一定条件的哈希值来解决这个任务。
比特币的工作量证明机制基于SHA-256哈希算法,矿工需要找到一个符合特定难度条件的哈希值,这个条件是由比特币网络根据前一段时间内的挖矿速度自动调整的。
一旦某个矿工找到了符合条件的哈希值,他就可以创建一个新的区块,将待确认的交易打包进去,并将该区块广播到整个网络中。其他节点收到该区块后会验证其有效性,并将其添加到自己的区块链中,从而完成了一次挖矿过程。


挖矿难度调整:


比特币网络通过每2016个区块调整一次难度来确保平均出块时间约为10分钟。调整难度的目标是使当前网络中的总算力每隔约两周能够产生约2016个新区块。
调整难度的公式如下:
新难度 = 旧难度 × (实际时间 / 目标时间)
其中,实际时间是最近2016个区块所花费的时间,目标时间是2016个区块所花费的预期时间,即约为两周(10分钟 × 2016)。
例如,如果实际时间短于目标时间,说明算力增加,难度将增加,反之亦然。

挖矿收益:


成功挖出新区块的矿工将获得两种收益:
包含在新区块中的所有交易的交易费用。
新发行的比特币奖励,即出块奖励。
目前,每个新区块产生的比特币奖励为6.25个BTC。这个奖励每隔大约四年减半一次,这一过程被称为“比特币减半”,直到最终总量达到2100万个BTC为止。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Centos安装/更新Docker

首先要配置好Centos 配置好静态IP 替换yum源为阿里云 Docker是什么? Docker 是一种开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后部署到任何流行的 Linux 机器上。是一种虚拟化的技术,可以把…

基于socket编程实现TCP和UDP的通信流程

socket编程的常用函数,可以参考以下这篇博客 socket编程-----常用socket编程函数https://blog.csdn.net/ZZZCY2003/article/details/138071210 关于TCP的三次挥手、四次挥手过程和UDP的报文分析可以参考以下两篇博客 计算机网络--运输层https://blog.csdn.net/ZZ…

深度学习-N维数组和访问元素

目录 N维数组访问元素 N维数组 N维数组是机器学习和神经网络的主要数据结构 访问元素 最后一个子区域中的::是跳的意思,这个区域说明的是从第一个元素(即第一行第一列那个)对行开始跳3下循环下去直到行结束、对列开始跳2下循环下去直到列…

如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题

🐯 如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题 🐾 文章目录 🐯 如何解决IntelliJ IDEA 2024打开项目时频繁闪退问题 🐾摘要引言正文📘 识别问题📙 内存配置调整步骤1: 定位vmoptions文件步骤2: 修改…

C++初阶之入门

零、什么是C C是基于C语言而产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行面向对象的程序设计。 C缺点之一,是相对许多语言复杂,而且难学难精。许多人说学…

为什么g++编译后的cpp文件名字为a,out

文章目录 为什么g编译后的cpp文件名字为a,out能修改默认名变成cpp文件名吗关于作者 为什么g编译后的cpp文件名字为a,out 在使用g编译C源代码时,默认情况下生成的可执行文件名为 a.out。这是由于在Unix和类Unix系统上,编译器的默认行为是将生成的可执行文…

可视化+多人协同技术原理和案例分享

前言 hi,大家好,我是徐小夕,之前和大家分享了很多可视化低代码的技术实践,最近也做了一款非常有意思的文档搭建引擎——Nocode/Doc: 也做了一些分享: Nocode/Doc,可视化 零代码打造下一代文件编…

Unity读书系列《Unity3D游戏开发》——脚本(一)

文章目录 前言一、脚本模版及其拓展1、脚本模版2、拓展脚本模版 二、脚本的生命周期三、脚本的执行顺序四、脚本序列化1、序列化数据2、serializedObject3、监听部分元素修改事件 五、定时器与间隔定时器六、工作线程(多线程)总结 前言 脚本在Unity的重…

Rust HTTP 客户端:易于使用、功能强大 | 开源日报 No.228

seanmonstar/reqwest Stars: 8.9k License: Apache-2.0 reqwest 是一个易于使用且功能强大的 Rust HTTP 客户端。 异步和阻塞客户端支持普通数据、JSON、urlencoded 和 multipart 数据格式可定制的重定向策略支持 HTTP 代理和系统原生 TLS 或 rustls 的 HTTPSCookie 存储功能…

RoadBEV:鸟瞰图中的道路表面重建

1. 代码地址 GitHub - ztsrxh/RoadBEV: Codes for RoadBEV: road surface reconstruction in Birds Eye View 2. 摘要 本文介绍了RoadBEV:鸟瞰图中的道路表面重建。道路表面条件(特别是几何形状)极大地影响了自动驾驶汽车的驾驶性能。基于…

就业班 第三阶段(nginx) 2401--4.22 day1 nginx1 http+nginx初识+配置+虚拟主机

一、HTTP 介绍 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件…

ubuntu安装Qv2ray2.7.0及配置

需要下载两个文件,一个是zip文件,一个是AppImage执行程序。 执行AppImage需要先下载fuse sudo apt install libfuse2然后为AppImage赋予执行权限 sudo chmod x ./Qv2ray-v2.7.0-linux-x64.AppImage执行,执行前可以解压zip文件 ./Qv2ray-refs.tags.v1…

操作系统(Operating System)知识点复习——第十一章 I/O管理与磁盘调度

目录 0.前言 1.I/O设备 2.I/O功能的组织 3.Operating System Design Issues 4.I/O缓冲 4.1 单缓冲Single Buffer 4.2 双缓冲Double Buffer 4.3 循环缓冲 5.磁盘调度Disk Scheduling 5.1 磁盘性能参数 5.2 磁盘调度策略 ①First-in,first-out(FIFO) ②Pr…

鸿蒙ArkUI实战开发-如何通过上下滑动实现亮度和音量调节

场景说明 在音视频应用中通常可以通过上下滑动来调节屏幕亮度和音量大小,本例即为大家介绍如何实现上述UI效果。 说明: 由于当前亮度和音量调节功能仅对系统应用开发,所以本例仅讲解UI效果的实现。 效果呈现 本例效果如下: 当在…

决策树分析及其在项目管理中的应用

决策树分析是一种分类学习方法,其主要用于解决分类和回归问题。在决策树中,每个内部节点表示一个属性上的测试,每个分支代表一个属性输出,而每个叶节点则代表类或类分布。通过从根节点到内部节点的路径,可以构建一系列…

Haystack

文章目录 关于 Haystack提供 NLP项目所有阶段的功能 Building blocks组件 Components管道 Pipelines代理 Agents 基本使用 - RAG 关于 Haystack 官网:https://haystack.deepset.ai官方文档:https://docs.haystack.deepset.ai/docs/intro教程&#xff1a…

IP地址定位是怎么实现的?

IP地址定位技术的实现是一个涉及多方面技术和方法的复杂过程。IP地址作为互联网通信中的关键元素,每个设备在网络中都被分配一个唯一的IP地址,用于标识和定位网络上的设备。通过一系列技术手段,我们可以对这些IP地址进行分析,进而…

MATLAB 向量

MATLAB 向量 向量是一维数字数组。MATLAB允许创建两种类型的向量 行向量 列向量 行向量 行向量通过将元素集括在方括号中并使用空格或逗号定界元素来创建。 示例 r [7 8 9 10 11] MATLAB将执行上述语句并返回以下结果- r 7 8 9 10 11 列向量 列向量 通过将元素集括在方…

大型网站系统架构演化实例_6.使用分布式文件系统和分布式数据库系统

1.使用分布式文件系统和分布式数据库系统 任何强大的单一服务器都满足不了大型网站持续增长的业务需求。数据库经过读写分离后,从一台服务器拆分成两台服务器,但是随着网站业务的发展依然不能满足需求,这时需要使用分布式数据库。文件系统也一…

【高校科研前沿】东北地理所在遥感领域顶刊RSE发布中国主要红树植物群落遥感分类成果

目录 01 文章简介 02 研究内容 03 文章引用 01 文章简介 论文名称:Mangrove species mapping in coastal China using synthesized Sentinel-2 high-separability images(基于Sentinel-2高分离度图像的中国沿海红树群落制图) 第一作者及…