搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
我家小花儿
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
python123题目——特殊数列求和_用户输入一个小于10的正整数n,求1 + 12 + 123 + 1234 + …… 的前n项的和。当
2
软件测试常用的7种方法,最后一个是升职加薪关键!(零基础小白转行IT互联网高效进阶)_软件测试方法
3
Mac m1安装AWVS
4
USB Hub
5
Data truncation: Incorrect datetime value: ‘0000-00-00 00:00:00.000‘ for column ‘createTime‘ at row
6
倒计时3天!点击查看openGauss Summit 2023关键词
7
wazuh4.7利用python脚本发送告警信息到飞书机器人_wazuh 配置告警
8
python做数据查询系统_[Python实战] 功能简单的数据查询及可视化系统
9
Golang入门
10
[MySQL] error 1292 数据类型错误_truncated incorrect double value: 'a
当前位置:
article
> 正文
番外篇-区块链基础知识入门
作者:我家小花儿 | 2024-06-02 11:00:39
赞
踩
番外篇-区块链基础知识入门
今天聊聊番外篇之
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和分片)的开发变慢,并对预言机的创新造成重大限制。最终,在区块链的基础层存在的复杂性越多,攻击面和风险对于运行在其上的所有应用程序来说越大。即使不使用预言机或不涉及对抗性数据请求的应用程序也可能卷入其中,并在整个链因预言机问题而停滞时潜在受到干扰。
正因为这些原因以及其他诸多因素,预言机并未集成到任何主要区块链的基础层,而是作为单独的网络运行。这确保了区块链的攻击面较小,并通过专注于共识来保持其确定性,而预言机则具备所需的灵活性,可以从复杂和主观的链下世界生成确定性,而不会产生依赖和风险,从而危及其他所有应用程序。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/我家小花儿/article/detail/662421
推荐阅读
article
MySQL
-
创建
和管理
表
:
基础知识
、
创建
和管理
数据库
、
创建
表
、修改
表
、重命名
表
、删除
表
、清空
表
、拓展...
因为从系统架构的层次上看,
MySQL
数据库
系统从大到小依次是
数据库
服务器、
数据库
、数据
表
、数据
表
的行与列。_
mysql
...
赞
踩
article
Python
数据分析
与
可视化
(
基础知识
)...
757_python
数据分析
与
可视化
python
数据分析
与
可视化
...
赞
踩
article
【基础知识】什么是
PPO
(
Proximal
Policy
Optimization
,近端
策略
优化)...
PPO
(
Proximal
Policy
Optimization
,近端
策略
优化)是一种强化学习算法,由John Schu...
赞
踩
article
Unity
C# 之 使用
HttpWebRequest
基础知识
/
HttpWebRequest
进...
可以使用
Unity
WebRequest 访问,不过好似只能用协程的方式,并且访问只能在主线程中;所以这里使用 C# 中...
赞
踩
article
ROS
教程1
机器人
操作系统 基础知识 节点 话题 消息 服务 行动 参数 日志 TF变换 ...
ROS
机器人
操作系统 基础知识 节点 话题 消息 服务 行动 参数 日志 TF变换 目标结构 启动文件1. 安装官方安装...
赞
踩
article
「
第一章
」
python
-
docx
基础知识
、
引言篇...
源于一次我们单位领导的神奇需求,我认识了一个利用Python语言处理Word的神器,即为本专栏所介绍的:
python
-d...
赞
踩
相关标签
数据库
mysql
sql
数据挖掘
深度学习
大数据
多模态模型
人工智能
unity
c#
HttpWebRequest
post
流式获取网络数据
topic
message
service
action
log
python
开发语言