番外篇-区块链基础知识入门

今天聊聊番外篇之Web3、区块链的基础知识~

1. 区块链是如何工作的?

  • Hash算法
    • 将输入的数据映射为一个固定长度的字符串
    • 字符串是64长度,16进制(2^4),4 * 64 = 256
    • 【SHA256】hash演示:https://andersbrownworth.com/blockchain/hash

  • 区块
    • 记录数据的一个section
    • 问题:“挖矿”是在做什么(计算随机数是多少)
    • 演示:https://andersbrownworth.com/blockchain/block

  • 区块链
    • 演示:https://andersbrownworth.com/blockchain/blockchain

  • 分布式
    • 能够解释如何证明正确性,为何不可篡改
    • 演示:https://andersbrownworth.com/blockchain/distributed

  • 公私钥 + 数字签名
    • 私钥是密码,自己掌握。公钥对外公开。两者一一对应
    • 秘钥+公钥:https://andersbrownworth.com/blockchain/public-private-keys/keys
    • 签名demo:https://andersbrownworth.com/blockchain/public-private-keys/signatures

    • 交易签名(交易明细+私钥,签名后,任意用户可以通过公钥来验证交易的正确性)demo:https://andersbrownworth.com/blockchain/public-private-keys/transaction

    • 私钥->公钥->地址
  • 矿工的工作
    • 创建新的区块
    • 交易验证
  • Layer1、Layer2、侧链(side chain)、分片(sharding)、Rollup
    • Layer1(第一层):Layer1是指区块链的基本层级,也称为主链或基础层。在Layer1中,包含了区块链的核心组件,如共识机制、区块生成规则、加密算法、数据结构等。比特币和以太坊就是典型的Layer1区块链。Layer1的设计决定了区块链的基本性能和安全性。Layer1区块链的扩展性有限,因为在主链上的交易处理和验证需要所有节点的共识,导致处理能力有限。为了解决这个问题,人们提出了Layer2解决方案。
    • Layer2(第二层):Layer2是指构建在Layer1区块链之上的第二层扩展方案。它旨在通过在区块链之外处理和验证交易,从而减轻主链的负担,提高整个网络的吞吐量和性能。Layer2技术通常采用侧链、状态通道或Rollup等方法来实现。
      • 侧链:侧链是与主链相互独立的链,它可以采用不同的共识机制和验证规则。一些交易可以从主链转移到侧链上进行处理,从而减轻主链的负担,提高交易处理能力。
      • 状态通道:状态通道允许参与者在区块链之外进行交易,并在需要时将最终状态提交到主链上。这样,交易不必每次都在主链上进行,大部分交易可以在状态通道中完成,从而提高交易速度和吞吐量。
      • Rollup:Rollup是一种将交易数据聚合并打包到一起,然后在主链上提交一笔交易来验证整个打包数据的方式。这样,大量交易可以在侧链上处理,然后通过一笔主链交易提交到主链上,从而提高主链的处理能力。
    • Sharding是一种在区块链中采用的分布式技术。它将整个区块链网络分割成许多小的片段,称为"分片",每个分片独立地处理一部分交易。每个分片都包含一个子集的节点和交易数据。这样,区块链的交易处理和验证不再需要所有节点共同参与,而是可以并行处理在不同的分片上进行。Sharding的优势在于它能够将整个区块链网络的负载分散到多个分片上,从而提高整个网络的处理能力。它有助于解决传统区块链因每个节点都必须验证所有交易而导致的性能瓶颈问题。通过Sharding,区块链可以并行处理更多的交易,从而提高吞吐量和交易速度。
  • 交易背后的流程

2. 链上交易为什么需要收费?

  • 区块链浏览器
    • 允许我们查看链上的交易数据的应用
    • 比如: https://etherscan.io/address/0xc568949D0faE7229469B59134c246909506EEAf1
  • Gas
    • Gas:链上数据发生变化所需要的计算资源的多少
    • Gas Price:每消耗一个Gas的价格
    • Gas Limit:一次交易最多消耗的Gas量
    • Transaction Fee:交易所需的Gas * Gas Price = 实际消耗的费用
    • 问题:交易费付给了谁?
    • 问题:Gas Price的波动取决于什么?

  • Wei VS Gwei
    • 都是Gas Price的表达

    • 查看Wei、GWei、ETH的对应关系:https://eth-converter.com/

3. 区块链开发提到的一些名词

  • Mainnet VS Testnet
    • 主网是大家日常接触到的,交易需要真正消耗真金白银的
    • 测试网是为了开发者测试开发的智能合约,免费的

  • 水龙头(faucet)
    • 测试网领取代币

4. 智能合约又是什么?

  • 智能合约(利用区块链的不可篡改、分布式特性解决真实世界的信任问题)
    • 智能合约是可以内置到区块链中以促进合约协议的计算机代码。智能合约在用户同意的一系列条件下运行。当满足这些条件时,协议条款将自动执行。
    • 例如,假设潜在租户想使用智能合约租赁公寓。房东同意在租客支付押金后立即向租客提供公寓的门禁密码。付款后,智能合约会自动将门禁密码发送给租户。如果未支付租金或满足其他条件,它还可以被编程为更改代码。
  • 预言机(Oracle)问题
    • 智能合约很好,但它们有一个巨大的问题,就是没有以任何方式与外部世界相连。
    • 区块链并不适合回答涉及主观性领域或需要外部数据的问题,这些数据并不容易让网络中的每个节点访问。例如,一个简单的问题,比如“比特币的市场价格是多少?”或“纽约的天气如何?”可能会引出一系列不同的答案,这些答案可能取决于使用的数据源和请求数据的时间。那么问题来了,什么是正确的答案,如何验证其真实性?在区块链的基础层引入主观性将打开一个充满安全性、可靠性和治理方面的潘多拉魔盒,这将使区块链的价值主张面临风险。
      • 其中一个主要问题是如何确保输入到区块链的外部数据具有高质量?即使是对比特币价格的基本数据请求也相当具有挑战性,因为简单地查看一个网站或单一交易所的数据可能不如支付专业数据聚合器的API订阅准确可靠,而后者在数据过滤和市场覆盖方面拥有几十年的经验,并受到维持高质量服务的财务激励。对于通过区块链节点提交的链下数据进行管理和强制执行质量是极其困难的,因为任何人都可以伪匿名地运行一个节点并提交答案,即使他们不愿意购买高质量的链下API订阅。如果强制执行数据质量,区块链将降低去中心化的上限,因为在网络上运行节点的成本会随着网络上每个新的预言机任务而增加,这将影响到运行在特定区块链上的所有其他应用程序的安全性。
      • 另一个主要问题是可扩展性。每当需要将新的数据源添加到网络中或调整现有的数据聚合方法时,都需要大规模的社会治理协调,以确保网络中的每个节点同意并升级其软件。加入治理开销会导致摩擦增加,核心区块链特性(如PoS和分片)的开发变慢,并对预言机的创新造成重大限制。最终,在区块链的基础层存在的复杂性越多,攻击面和风险对于运行在其上的所有应用程序来说越大。即使不使用预言机或不涉及对抗性数据请求的应用程序也可能卷入其中,并在整个链因预言机问题而停滞时潜在受到干扰。
    • 正因为这些原因以及其他诸多因素,预言机并未集成到任何主要区块链的基础层,而是作为单独的网络运行。这确保了区块链的攻击面较小,并通过专注于共识来保持其确定性,而预言机则具备所需的灵活性,可以从复杂和主观的链下世界生成确定性,而不会产生依赖和风险,从而危及其他所有应用程序。

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

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

相关文章

android 9 reboot流程

机器出现开机 自动进入fastboot模式。可能是init 那个进程挂了 然后调用了 RebootSystem(ANDROID_RB_RESTART2, “bootloader”); 函数进入重启流程,然后重启后进入fastboot 浅读一下reboot流程和怎么进入的fastboot 比如说是那个进程挂了调用了这个函数&#xff0c…

实现目标检测中的数据格式自由(labelme json、voc、coco、yolo格式的相互转换)

在进行目标检测任务中,存在labelme json、voc、coco、yolo等格式。labelme json是由anylabeling、labelme等软件生成的标注格式、voc是通用目标检测框(mmdetection、paddledetection)所支持的格式,coco是通用目标检测框&#xff0…

cosmos及特定应用程序的区块链

特定应用程序的区块链,简单来说,一个区块链就是一个专门的应用程序。为了实现某一特定的去中心化应用而专门实现一个区块链。 传统的用智能合约构建去中心化应用不行吗? 灵活性不足:智能合约本质上受到虚拟机本身的限制。例如,以…

【Spring Boot】SpringBoot maven 项目创建图文教程

创建一个Spring Boot项目并使用Maven进行构建是一项相对简单的任务。以下是使用IntelliJ IDEA创建Spring Boot Maven项目的详细教程: 步骤 1:安装 IntelliJ IDEA 确保你已经安装了最新版本的 IntelliJ IDEA。你可以从官方网站下载并安装。 步骤 2&am…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖微信小程序端(十一)

加入redis缓存 1. 缓存菜品1.1 问题说明1.2 实现思路1.3 代码开发1.4 功能测试 2. 缓存套餐2.1 Spring Cache2.1.1 介绍2.1.2 常用注解2.1.3 入门案例 2.2 具体实现思路2.3 代码开发 1. 缓存菜品 1.1 问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,…

MySQL一主一从读写分离

​ MySQL主从复制 一、主从复制概念 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从服务器中,然后在从服务器上对这些日志重新执行也叫重做,从而使得从数据库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行赋值,从…

20240110-Python实现读取当前文件夹下所有视频名称和时长并生成一张表

代码 import os import cv2 import csv# 获取当前文件夹路径 folder_path os.getcwd() # 如果当前文件夹就是目标文件夹可以直接使用 ./,否则修改为目标文件夹的路径# 获取当前文件夹中所有视频文件的名称 video_files [f for f in os.listdir(folder_path) if …

腾讯云对象存储COS计算文件的大小

properties配置类 TencentCos.APPIDxxxxx TencentCos.SecretIdxxxxxxx TencentCos.SecretKeyxxxxxx TencentCos.testBucketxxxxxx TencentCos.CosPathhttps://xxxxxxxx.cos.ap-chengdu.myqcloud.com TencentCos.regionap-chengdu读取properties中的配置 import lombok.AllArg…

kubeSphere DevOps自定义容器环境JDK11

kubeSphere DevOps自定义容器环境JDK11 🍂前言🍂增加JDK11容器环境🍁检查是否成功 🍂不生效的原因排查🍁按步骤执行如下命令 🍂前言 kubeSphere 版本v3.1.1 遇到问题:kubeSphere默认支持容器只有JDK8,目前…

Ubuntu22.04,Nvidia4070配置llama2

大部分内容参考了这篇非常详细的博客,是我最近看到的为数不多的保姆级别的教学博客,建议大家去给博主点个赞【Ubuntu 20.04安装和深度学习环境搭建 4090显卡】_ubuntu20.04安装40系显卡驱动-CSDN博客 本篇主要是基于这篇博客结合自己配置的过程中一些注…

DC电源模块技术的未来发展趋势

BOSHIDA DC电源模块技术的未来发展趋势 随着科技的不断发展,DC电源模块技术也在不断演进。以下是DC电源模块技术未来发展的一些趋势: 1. 高效能:未来DC电源模块的效能将得到进一步提高。通过改进转换拓扑结构、优化控制算法和使用高效能元器…

Kafka 除了用作消息队列还能干吗?

Kafka 除了用作消息队列还能干吗? 本文转自 公众号 ByteByteGo,如有侵权,请联系,立即删除 Kafka 最初是为大规模处理日志而构建的。它可以保留消息直到过期,并让各个消费者按照自己的节奏提取消息。 与其之前的竞品不…

CPT203-Software Engineering 笔记

Week 1 -- Introduction failure reason professional software development*** maintain, security, efficiency, acceptability two kinds***: generic, customized software deterioration 软件退化 reduce changes/ side effects after changes software engineering …

VMware Visio OmniGraffle模板和图标

VMware Visio OmniGraffle模板和图标 包含可用于Visio、omnigraffle的图标和SVG矢量图。 简介 这组资源适用于 IT 管理员、系统架构师、网络工程师和其他需要可视化 VMware 基础架构的专业人士创建精确的 VMware 网络和数据中心部署图,通过使用这些模板和图标&am…

了解开源协议吗,简单介绍下开源协议

简单图解 开源协议的简单图解 列表图解

计算机毕业设计-----SSH校园精品课程网前后台

项目介绍 本项目是很不错的一个校园精品课程网源码,前台和后台源码都有,分为管理员与学生两种角色; 前台功能:网站首页,校园新闻,课程中心,资源下载,互动交流,个人中心…

chrony 时间同步

一.chrony简介 chrony 的优势: ① 更快的同步,从而最大程度减少了时间和频率误差,对于并非全天 24 小时运行的虚拟计算机而言非常有用。 相对于NTP来说,chrony性能更好 NTP是网络时间协议(Network Time Protocol),它…

VUE购物车商品的添加、删除和计算总金额功能

效果 代码 <template><div id"box"><!--全选功能--><input type"checkbox" change"handleChange" v-model"isAllChecked" /><!--绑定事件&#xff0c;不选用click&#xff0c;使用change每次check值改变会…

【人工智能】智能电网:未来能源的革命

未来能源的革命 智能电网革命的意义在于将电力行业从传统的集中式发电和集中式输配电模式转变为智能化、分布式、互动式的能源网络。 现在我们从以下方面详细认真的了解一下智能电网&#xff1a; 智能变电站&#xff0c;智能配电网&#xff0c;智能电能表&#xff0c;智能交互…

基于传统机器学习模型算法的项目开发详细步骤

1 场景分析 1.1 项目背景 描述开发项目模型的一系列情境和因素&#xff0c;包括问题、需求、机会、市场环境、竞争情况等 1.2. 解决问题 传统机器学习在解决实际问题中主要分为两类&#xff1a; 有监督学习&#xff1a;已知输入、输出之间的关系而进行的学习&#xff0c;从而…