元宇宙、区块链 通俗易懂

什么是区块链?比特币挖矿是什么?元宇宙是什么?

Web(万维网)的三权化进化:

基于此,介绍下“元宇宙”。1992年,美国作家史蒂芬森在《雪崩》一书中首次提出了“元宇宙(Metaverse)”的概念。元宇宙实际上就是一种虚拟现实技术,通过技术手段让用户进入到一个虚拟世界

构建元宇宙四大要素:

  1. 显示技术(DISPALY): 连接现实世界和元宇宙世界。比如VR等

2.游戏(GAME): 为元宇宙提供内容支撑以及AI。Gamefi:Game+finance,游戏加金融,即游戏装备通过区块链实现金融化,所有的游戏都变成赚钱的游戏了。比如:《Axie Infinity》

3.区块链(BLOCKCHAIN): 去中心化保障元宇宙经济系统的稳定,安全不可篡改

4.网络通信(NETWORK):5G网络提供的带宽

2021年3月,随着游戏公司Roblox(罗布乐思)在纽交所上市,元宇宙从概念走向现现实,并迅速被各大互联网大厂和投资机构热捧

元宇宙标签:Identity(身份)、Friends(朋友)、Immersive(沉浸感)、Anywhere(随地)、Variety(多样性)、Low Friction(低延迟) 、Economy(经济)、 Civility(文明)

在1982年,来斯里. 兰伯特提出了一个点对点通信中的问题,也就是拜占庭将军问题,拜占庭是一个国家首都,地址位于最近发生地震的土耳其国家,是东罗马帝国的首都。当时拜占庭罗马帝国国土辽阔,地大物博,将军们分散在各地,如果打仗,需要统一命令,打还是撤。那时候没有高启强的小灵通,只能通过派人挨个的传达消息,但是中间难免会出现叛徒。所以,拜占庭将军问题的实质就是要寻找一个方法,使得将军们在一个有叛徒的非信任环境中建立对战斗计划的共识。这个问题引起了广泛巨大的讨论和各种计算

针对讨论的就结果,科学家们提出了有两个办法处理,但是这两个办法都存在不可抗拒弊端:

1.口头协议:如果有10个将军,将军们派人用口信传达消息,互相传递一轮后,那么每个将军都会收到10个消息。此时存在不同的意见,采用少数服从多数

问题:口头协议并不会告知消息的上一个来源是谁,也就是消息不可追根溯源,出现信息不一致也很难找到叛徒在哪

讨论的最终结果:当叛变者不超过1/3时,存在有效的算法,不论叛变者如何折腾,忠诚的将军们总能达成一致的结果。如果叛变者大于等于1/3,则无法保证一定能达到一致性

2.书面协议:假设10个将军,每个将军都可以派人向其他将军派信,约定 “2月14号,一起去打x国”。收到信的将军如果同意的话,就可以在原信上签名盖章,将军们能够使用签名技术,签名不可伪造,一旦篡改即可发现,也可以实现可追根溯源

问题:真正可信的签名体系难以实现,而且签名造假的问题也没法避免

讨论的最终结果:对于任意m,最多只有m个背叛者情况下,算法SM(m)能解决拜占庭将军问题。

但是在实际状况中,书面协议却会有一些问题,比如没考虑传输信息的延迟时间,书面协议的签名体系难以实现,而且签名消息记录的保存难以摆脱一个中心化机构而独立存在,最终完美解决这个问题的是中本聪,使用的就是区块链技术。继续沿用上面的例子,通俗的解释一下(解释的比较片面,只做理解使用)

1.以当前时代为背景。比如,现在这10个将军,他们都有手机,可以收发短信。系统选中一个将军,让其统一给其他9个将军发短信,其他的9个将军都听从这一个将军的消息,那就能保证信息唯一了(广播机制)

2.那么如何挑选出来这个将军呢,没错,最公平的办法就是随机。随机选中谁,谁来发短信(比特币场景是采用工作量证明机制)

3.那如果随机到的这个将军是个叛徒,怎么办?所以我们假设有一个腾讯支持多人编辑的文档,文档里有10个sheet,10个将军分别在sheet页上编写自己的想法,是打还是不打,并且各个将军只能编辑自己的sheet页数据,同时也能查看其他将军sheet页的数据,每个sheet页记录了每个将军想法,是打还是不打,亦或者是其他各种想法(签名加密技术)

4.当这9个将军在收到短信时,他们都会看自己的sheet页的数据,来对手机收到的短信结果,进行投票,选择同意还是不同意。如果结果超过半数同意,少数服从多数,就采用当前将军的短信方案。如果结果不同意,则重新随机选发短信的将军,重新执行这个流程(详细了解可以参考:最长链选择机制)

中本聪

所以区块链技术,完善了口头协议与书面协议的缺点,完美解决了拜占庭将军问题

区块链目的是在解决分布式下,数据真实有效且保持一致性的核心原理。分布式、去中心化、记账本是区块链核心要素,保证数据难以篡改,实现安全性、匿名性、独立性、开放性

区块链起源于比特币,2008年11月1日,一位自称中本聪(Satoshi Nakamoto)的人发表了《比特币:一种点对点的电子现金系统》一文,阐述了基于P2P网络技术、加密技术、时间戳技术、区块链技术等的电子现金系统的构架理念,这标志着比特币的诞生。两个月后理论步入实践,2009年1月3日第一个序号为0的创世区块诞生。几天后2009年1月9日出现序号为1的区块,并与序号为0的创世区块相连接形成了链,标志着区块链的诞生

很多人一开始并不了解区块链,都是从比特币价格的飙升,才开始关注比特币,并且了解区块链,10几年前,我周边朋友,也有人参加了挖矿。那么所谓的比特币挖矿,到底在挖什么?

1.应该有人听说过,使用比特币买披萨的例子,比特币就像我们银行账户里面的金额一样。既然产生了交易,那么就会产生数据,实际上比特币系统一直都在产生交易。比特币系统会将一段时间内的交易数据打成的一个包,称为区块,每一个区块都链接到上一个区块,依次相连形成区块链。比特币全网平均每10分钟产生一个区块

2.区块从1开始编号,因此节点A连接节点B后,只要检查双方的区块编号高度,就能方便地同步交易数据。例如节点A自己的区块高度是100,发现节点B的区块高度是110,则只要向B请求同步101~110这10个区块即可

3.为保证有节点打包比特币交易的数据,比特币规则规定:负责打包交易的节点将获得比特币作为酬劳

4.既然有酬劳,那就使得有大量节点想打包交易。但是为保证区块链的唯一性,比特币规则规定:每一个节点都来使用做题的方法争夺交易打包权。系统会出一个计算题,节点会进行不断的计算,谁首先计算出结果,谁就能获得这个区块的交易打包权,以及这个区块的打包奖励,也就是比特币的奖励

5.计算题在实现上是计算机做一次哈希(SHA-256)运算,并检查运算结果,错误之后,就会再次重复的计算,再次验证结果,直到正确。节点获胜的唯一诀窍是提高计算效率,提高试错的次数,一个每秒能计算100亿次的节点(做100亿次哈希计算)的节点,抢到打包权的概率是每秒计算1亿次哈希节点的100倍

6.一旦有某个节点扔出符合系统规则的硬币结果,他就会立即将这段时间搜集到的交易打包成一个区块,附上计算出的哈希结果、当前的区块序号、上一区块关系等附加信息广播出去,其它节点一旦收到区块信息并验证无误,就会停止计算,停止抢这一区块,转而在这一区块的基础上开始计算抢下一区块

7.节点大量进行哈希计算需要计算机设备,并消耗大量电力,这个过程在本质上和金矿挖矿很相似(通过挖矿设备,消耗能源换取黄金)。比特币总量恒定,产量越来越少的产生方式也和黄金很相似。因此人们形象地将比特币抢打包权的过程称为挖矿,将抢打包权的比特币节点称为矿工

8.矿工将一定数量的交易打包到同一个区块,然后共同去计算同一道数学题来决定以谁的结果为准,并且决定谁赢得新发行的比特币和交易费。这种靠竞争来解决交易共识的问题,避免了单一节点垄断整个网络的风险,让整个网络形成了良性竞争的局面

上图中,密密麻麻的都是AMD高性能显卡,在不停的挖矿。我们已知,所谓的挖矿就是通过一种算法,来不停的计算哈希值并循环验证,计算量虽然很大,但计算方法确很简易。想提高效率, 增加线程即可,而这正符合GPU的工作原理。目前高性能的CPU最多是128、256进程,而GPU都是上千的进程,并且GPU都只能进行相应的测算,正好符合这一原理

根据区块链网络中心化程度的不同,分化出3种不同应用场景下的区块链:

1.公有链:全网公开,无用户授权机制的区块链,称为公有链。比如:BTC-比特币、ETH-以太坊币等

2.联盟链:允许授权的节点加入网络,可根据权限查看信息,往往被用于机构间的区块链,称为联盟链或行业链,比如:蚂蚁链,星火链等

3.私有链:所有网络中的节点都掌握在一家机构手中,称为私有链

要想深入了解区块链,一定要知道共识机制、共识算法

什么是共识机制? 对中心的数据库操作,为保证数据一致性,同时只可以有一个节点操作(串行)。通过一个算法筛选出具有代表性的节点,这个机制就是共识机制。所谓的共识就是在人人平等的社会里需要大家共同形成一个共识,产生一个操作者、临时决策者,代表大家来进行中心化的操作

什么是共识算法?为了实现分布式一致性协议而产生的一系列流程与规则。当分布在不同地域的节点都按照这套规则进行协商交互之后,最终总能就某个/某些问题得到一致的决策,从而实现分布式系统中不同节点的一致性。共识算法种类近30多种,我只说常用的几个:

  1. 工作量证明PoW(在公有链中,常见的选择是通过工作量证明算法(PoW)来防止拜占庭攻击,比如:比特币(BTC)、以太坊(ETH)、莱特币(LTC)

2.权益证明PoS,比如:点点币(ppc)

3.委托权益证明DPOS,比如:比特股( Bitshare)

4.拜占庭共识算法系列PBFT/DBFT机制(在联盟链中,常见的选择是通过理论完备的BFT共识算法来防止拜占庭攻击)

具体解释一下工作量证明算法(PoW):

PoW本质上就是在求一个概率题,谁先算出来就算谁赢,奖励就归谁。难度随着答题的速度会动态调整,而这个难度就是由上面的难度目标值决定,这样就能保证平均每10分钟完成一次挖矿

说工作量证明怎么来之前我们先说下Hash算法,Hash算法有一个特性,通过hash加密的文本或文件,哪怕只有一个字节改变,Hash的值就完全不相同。在区块链中,需要找出一个Nonce,Nonce的值和区块上的信息拼接后进行SHA256哈希运算,当hash值满足给定条件时候,那么第一个找出nonce值的节点获得记账权

假设我们区块上的信息是 blockchain ,我们要找出一个Nonce随机数和blockchain拼接,最后计算的Hash值结果以6个0开头(或者小于某个值), 率先找到随机数的节点就获得此次记账的唯一记账权。Nonce一般从0开始递增计算,所以Nonce计数器可以统计总共计算了多少次,有了Nonce值,这样别的矿工就可以根据Nonce数字大小再一次印证这个矿工是否有作弊

工作量证明算法(POW)机制好处:工作量证明其实相当于提高了做叛徒(发布虚假区块)的成本,这也不会产生做叛徒的动机

工作量证明算法(POW)机制存在明显的弊端:一是浪费大量的算力,只用来竞争挖矿权,并没有更多实际或科学价值。二是它并不完全公平,当计算机硬件升级到一定程度,比如量子计算机可能几秒就计算出了Hash值。

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

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

相关文章

【MIT 6.S081】Lab3: page tables

PgtblPrint a page tableA kernel page table per processSimplify copyin/copyinstr本Lab简单优化了系统的页表功能,使得程序在内核态时可以直接解析用户态的指针。笔者用时约8hPrint a page table 第一部分是为系统添加一个打印给定页表的函数vmprint&#xff0c…

C语言-程序环境和预处理(2)

文章目录预处理详解1.预定义符号2.#define2.1#define定义的标识符2.2#define定义宏2.3#define替换规则注意事项:2.4#和###的作用##的作用2.5带副作用的宏参数2.6宏和函数的对比宏的优势:宏的劣势:宏和函数的一个对比命名约定3.undef4.条件编译…

centos系统/dev/mapper/centos-root目录被占满的解决方式

最近在做虚拟机部署docker微服务时,发现磁盘内存占满,无法进行操作。open /var/lib/dpkg/info/libc6:amd64.templates: no space left on device接下来就写下我在备份虚拟机上如何解决根目录被占满的问题:1、查看虚拟机磁盘使用情况df -h可以…

D - 统计子矩阵 (双指针+前缀和+降维处理)

D - 统计子矩阵 (双指针前缀和降维处理) 1、问题 D - 统计子矩阵 2、分析 代码 (1)纯暴力做法: 这个做法就很简单了,我们直接枚举所有的子矩阵,然后在对每一个子矩阵内部的元素逐一累加起…

【计算机二级】综合题目

计算机二级python真题 文章目录计算机二级python真题一、《大学慕课 两问 》二、综合应用题——价值链三、基本操作题 ——信息输出一、《大学慕课 两问 》 附件中的文件data.txt 是教育部爱课程网中国大学MOOC平台的某个 HTML页面源文件,里面包含了我国参与MOOC建设的一批大学…

STM32之点亮一个LED小灯(轮询法)

目录 一、初始化GPIO口 二、按键点亮LED灯(轮询法) 一、初始化GPIO口 1、点亮LED小灯前,需要先初始化GPIO口 HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) GPIO_TypeDef *GPIOx: //指初始化GPIO…

libvirt零知识学习5 —— libvirt源码编译安装(3)

接前一篇文章libvirt零知识学习4 —— libvirt源码编译安装(2) 在上篇文章及上上篇文章中构建libvirt的时候遇到了一个问题“ERROR: Problem encountered: YAJL 2 is required to build QEMU driver”。上篇文章讲到即使安装了相应的YAJL库仍然不能解决问…

HC小区管理系统window系统安装教程

实操视频 HC小区管理系统局域网window物理机部署教程_哔哩哔哩_bilibili 一、下载安装包 百度网盘: 链接:https://pan.baidu.com/s/1XAjxtpeBjHIQUZs4M7TsRg 提取码:hchc 或者 123盘 hc-window.zip官方版下载丨最新版下载丨绿色版下…

12个 Python 装饰器让代码cleaner

0 — 引言装饰器能在在不影响质量的情况下用更少的代码做更多的事情。Python 装饰器是强大的工具,可帮助你生成干净、可重用和可维护的代码。我等了很久才想了解这些抽象,现在我已经有了扎实的理解,本篇是为了帮助你也掌握这些对象背后的概念…

uni-app+uView如何轮播图滑动时改变背景颜色和导航栏颜色

今儿的创作欲很高涨哈 😄 这也是在群里看到的,群友问如何在滑动(或者自动滑动)的时候背景颜色能跟着变 正好之前做过这个需求,也分享一下 首先,页面的组成分为三部分: 自定义navbar 页面背景轮…

JavaSE进阶之(十六)枚举

十六、枚举16.1 背景16.2 枚举类型16.3 EnumSet 和 EnumMap01、EnumSet02、EnumMap16.1 背景 在 Java 语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组 int 类型的常量,常常用的就是: public static final int SPRING 1; …

ElementUI学习笔记

目录 一、简单介绍 二、安装 1、下载 2、引入 三、布局 1、简介 2、使用 3、好处 四、布局容器 1、常见排布 2、调整样式 五、按钮 1、简单引用 2、改变样式 3、加载中效果 六、表格 1、简单使用 2、样式修改 七、对话框 1、简单使用 2、添加自定义内容 3、…

7个最受瞩目的 Python 库,提升你的开发效率

当今时代,数据分析和处理已经成为了各行各业中不可或缺的一环。Python作为一种非常流行的编程语言,为我们提供了许多强大的工具和库来处理不同类型的数据。 在这篇文章中,我将向您介绍七个非常有用的Python库,这些库各自有着独特…

js调用gpt3.5

参考链接&#xff1a;直接在前端调用 GPT-3 API 效果图&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>ChatGPT Web Example</title><style>body {font-family: "Helvetica Neue"…

TimeQuest时序路径详解

&#x1f4a1; 基于TimeQuest软件来查看时序报告和分析时序路径 分析最坏传输路径 根据[FPGA典型时序路径的分析可知&#xff0c;最坏传输路径对应的建立时间&#xff08;setup time&#xff09;余量最小。所以&#xff0c;查看最坏传输路径也就是查看建立时间余量最小的路径。…

【Linux】安装DHCP服务器

1、先检测网络是否通 get dhcp.txt rpm -qa //查看软件包 rpm -qa |grep dhcp //确定是否安装 yum install dhcp //进行安装 安装完成后 查询 rpm -ql dhcp 进行配置 cd /etc/dhcp 查看是否有遗留dhcpd.conf.rpmsave 删除该文件 cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sampl…

ChatGPT能代替Oracle DBA吗?用Oracle OCP(1z0-083)的真题测试一下。

让我们来看看ChatGPT不能通过Oracle OCP的考试&#xff1f; 文章目录引言测试过程总结和分析关于博主&#xff0c;姚远&#xff1a;Oracle ACE&#xff08;Oracle和MySQL数据库方向&#xff09;。Oracle MAA 大师。华为云MVP。《MySQL 8.0运维与优化》的作者。拥有 Oracle 10g和…

mysql和mysql2模块的区别!!(nodejs中的模块)

mysql 和 mysql2 都是 Node.js 中常用的操作 MySQL 数据库的模块&#xff0c;它们的主要区别是在实现方式上略有不同。 mysql&#xff1a;是 Node.js 中比较早期的 MySQL 操作模块&#xff0c;该模块底层使用的是回调函数&#xff08;callback&#xff09;来实现异步操作。在处…

ESP32设备驱动-DHT12温湿度传感器驱动

DHT12温湿度传感器驱动 文章目录DHT12温湿度传感器驱动1、DHT12介绍2、硬件准备3、软件准备4、驱动实现1、DHT12介绍 DHt12是经典DHT11温湿度传感器的升级版&#xff0c;完全向下兼容&#xff0c;精度更高&#xff0c;增加了I2C接口。 DHT12 具有单总线和标准 I 2C 两种通讯&…

一文7个步骤从0到1教你搭建Selenium 自动化测试环境

【导语】Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。本文详细介绍了搭建自动化测试环境所需的工具&#xff0c;让你学习自动化测试不…