元宇宙、区块链 通俗易懂

news2024/9/21 22:37:36

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

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.coloradmin.cn/o/393146.html

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

相关文章

新C++(13):布隆过滤器

"明白成功,不一定赢在起跑线!"位图反思上篇呢,我们在遇到海量数据时,如果只是进行诸如,查找一个数在不在这样的简单逻辑情况,在使用数组这样的内存容器,无法存储这么多数据时,我们采用…

计算机网络第八版——第三章课后题答案(超详细)

第三章 该答案为博主在网络上整理,排版不易,希望大家多多点赞支持。后续将会持续更新(可以给博主点个关注~ 第一章 答案 第二章 答案 【3-01】数据链路(即逻辑链路)与链路(即物理链路)有何区…

Numpy/Pandas常用函数

👂 不露声色 - Jam - 单曲 - 网易云音乐 目录 🌼前言 👊一,Python列表函数 👊二,Numpy常用函数 1,生成数组 2,描述数组属性 3,常用统计函数 4,矩阵运…

Soul 云原生网关最佳实践

作者:Soul 运维 公司介绍 Soul 是基于兴趣图谱和游戏化玩法的产品设计,属于新一代年轻人的虚拟社交网络。成立于2016年,Soul 致力于打造一个“年轻人的社交元宇宙”,最终愿景是“让天下没有孤独的人”。在 Soul,用户…

springboot复习(黑马)(持续更新)

学习目标基于SpringBoot框架的程序开发步骤熟练使用SpringBoot配置信息修改服务器配置基于SpringBoot的完成SSM整合项目开发一、SpringBoot简介1. 入门案例问题导入SpringMVC的HelloWord程序大家还记得吗?SpringBoot是由Pivotal团队提供的全新框架,其设计…

为什么低代码最近又火了起来?是钉钉的原因吗?

为什么低代码最近又火了起来?是钉钉的原因吗? 钉钉的入局固然推动了人们对于低代码的讨论,但低代码由来已久,其火爆其实是大势所趋。 那么本篇文章将来解读一下:为什么低代码最近又火了?是资本的推动还是…

佩戴舒适的蓝牙耳机有哪些?佩戴舒适的蓝牙耳机推荐

音乐对许多人而言,都是一种抚慰生命的力量,特别是在上下班的时候,在熙熙攘攘的人流中,戴着耳机听一首动听的曲子,无疑会让人心情变得更加舒畅,要想获得出色的音乐体验,没有一副出色的耳机可不行…

动态内存基础(三)

动态内存的相关问题 ● sizeof 不会返回动态分配的内存大小 #include<iostream> #include<new> #include<memory> #include<vector> int main(int argc, char *argv[]) {int* ptr new int(3);std::cout << sizeof(ptr) << std::endl; //…

阶段式/瀑布完整软件研发流程

软件产品开发流程&#xff1a;下图所示的是一个软件产品开发大体上所需要经历的全部流程&#xff1a;编辑1、启动在项目启动阶段&#xff0c;主要确定项目的目标及其可行性。我们需要对项目的背景、干系人、解决的问题等等进行了解。并编制项目章程和组建项目团队&#xff0c;包…

STM32实战项目-状态机函数应用

前言&#xff1a; 本章主要介绍一下&#xff0c;状态机在工程中的应用&#xff0c;下面我会通过这种方式点亮LED灯&#xff0c;来演示他的妙用。 目录 1、状态机应用 1.1流水灯函数 1.1.1led.h 1.1.2led.c 1.2状态机函数 1.2.1定义举常量 1.2.2结构体封装 1、状态机应…

设计模式-01

1&#xff0c;设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中&#xff0c;而是被用于建筑领域的设计中。 1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫亚历山大&#xff08;Christopher Alexand…

VUE3使用JSON编辑器

1、先看看效果图&#xff0c;可以自行选择展示效果 2、这是我在vue3项目中使用的JSON编辑器&#xff0c;首先引入第三方插件 npm install json-editor-vue3yarn add json-editor-vue33、引入到项目中 // 导入模块 import JsonEditorVue from json-editor-vue3// 注册组件 …

【pytorch onnx】Pytorch导出ONNX及模型可视化教程

文章目录1 背景介绍2 实验环境3 torch.onnx.export函数简介4 单输入网络导出ONNX模型代码实操5 多输入网络导出ONNX模型代码实操6 ONNX模型可视化7 ir_version和opset_version修改8 致谢原文来自于地平线开发者社区&#xff0c;未来会持续发布深度学习、板端部署的相关优质文章…

RocketMQ5.1控制台的安装与启动

RocketMQ控制台的安装与启动下载修改配置开放端口号重启防火墙添加依赖编译 rocketmq-dashboard运行 rocketmq-dashboard本地访问rocketmq无法发送消息失败问题。connect to &#xff1c;公网ip:10911&#xff1e; failed下载 下载地址 修改配置 修改其src/main/resources中…

【操作系统原理实验】银行家算法模拟实现

选择一种高级语言如C/C等&#xff0c;编写一个银行家算法的模拟实现程序。1) 设计相关数据结构&#xff1b;2) 实现系统资源状态查看、资源请求的输入等模块&#xff1b;3) 实现资源的预分配及确认或回滚程序&#xff1b;4) 实现系统状态安全检查程序&#xff1b;5) 组装各模块…

TCP模拟HTTP请求

HTTP的特性HTTP是构建于TCP/IP协议之上&#xff0c;是应用层协议&#xff0c;默认端口号80HTTP协议是无连接无状态的HTTP报文请求报文HTTP协议是以ASCⅡ码传输&#xff0c;建立在TCP/IP协议之上的应用层规范。HTTP请求报文由请求行&#xff08;request line&#xff09;、请求头…

Flutter 自定义今日头条版本的组件,及底部按钮切换静态样式

这里写目录标题1. 左右滑动实现标题切换&#xff0c;点击标题也可实现切换&#xff1b;2. 自定义KeepAliveWrapper 缓存页面&#xff1b;2.2 使用3. 底部导航切换&#xff1b;4. 自定义中间大导航&#xff1b;5.AppBar自定义顶部按钮图标、颜色6. Tabbar TabBarView实现类似头条…

iOS开发之UIStackView基本运用

UIStackView UIStackView是基于自动布局AutoLayout&#xff0c;创建可以动态适应设备方向、屏幕尺寸和可用空间的任何变化的用户界面。UIStackView管理其ArrangedSubview属性中所有视图的布局。这些视图根据它们在数组中的顺序沿堆栈视图的轴排列。由axis, distribution, align…

java医院云HIS系统:融合B/S版电子病历系统 能与公卫、PACS等各类外部系统融合

医院HIS系统源码 云HIS系统源码&#xff1a;SaaS运维平台完整文档 有源码&#xff0c;有演示 java基层医院云his系统 融合B/S版电子病历系统&#xff0c;支持电子病历4级 拥有自主知识产权。 看演示及源码可私信我哦&#xff01; 一、系统概述 一款满足二甲医院、基层医疗机构…

九、会话技术CookieSession

会话技术 1&#xff0c;会话跟踪技术的概述 对于会话跟踪这四个词&#xff0c;我们需要拆开来进行解释&#xff0c;首先要理解什么是会话&#xff0c;然后再去理解什么是会话跟踪: 会话:用户打开浏览器&#xff0c;访问web服务器的资源&#xff0c;会话建立&#xff0c;直到有…