区块链基础
Web3教程:https://github.com/smartcontractkit/Web3_tutorial_Chinese
区块链技术简史
2008 – 比特币(Bitcoin)白皮书发布
2008年美国次贷危机之后,一个ID名为中本聪(Satoshi)的人发布了比特币的白皮书。
白皮书就是技术的介绍,一篇短的论文 《A PEER — TO — PEER ELECTORONIC CASH SYSTEM》点对点电子现金系统。
虽然白皮书没有提到过“区块链”这个词汇,但是比特币协议在技术上是将用户在某一段时间内的所有交易(数据)存储到一个叫做区块的数据结构中,随着时间的推移会有越来越多的区块产生,如果这些区块被先后的顺序连起来,也就形成了区块链这样一种存储结构。
后来把具有类似存储结构的协议都统称为区块链。
比特币的诞生就是解决在现有金融系统中由于资金管理的不透明、货币超发等种种不合规操作带来的问题。
为了解决这些问题,它将每一笔交易(用户数据)都记录在一个完全透明的公共账本中,同时为了激励大家可以参与到这个账本维护,这个协议就会发放比特币当做奖励。
如今比特币已经变成了一种数字黄金,比特币成为了虚拟世界中的一种价值存储工具。
由于比特币这种定位1,在创建之初他其实只能用于转账和一些非常简单的脚本,而很多其他指令(比如编程中if判断、for循环)都是没有的,导致很多逻辑没有办法在比特币这个网络上实现,所以比特币这个协议并不是图灵完备2的。
2013 – 以太坊(Ethereum)白皮书发布
为了解决这个问题,在经过了大概5年的时间(到2013年)一个叫 Vitalik Buterin 的俄裔加拿大人创建的一个《以太坊协议》,这个协议基于区块链基础的数据结构进行了一些修改,加入了虚拟机,最大能看到的工程实现就是加入了智能合约3
在智能合约中,用户可以实现任意的业务逻辑。比如:DeFi[^Defi]、预言机4、NFT5、跨链6
智能合约是以太坊协议和比特币协议最大的区别,正是这一点导致了以太坊协议是图灵完备的,而比特币不是(截止2024年)
2014 – 以太坊核心团队开始开发
.
2015.07.30 – 以太坊主网上线
.
2016 – The DAO 事件,以太坊硬分叉
.
2022 – Merge,PoW –> PoS,进入以太坊2.0
.
至今
现在有很多团队研究比特币的虚拟机,希望以 Layer2 7 (二层网络)的方式实现比特币的智能合约
所以之后可能看到比特币的智能合约
不管智能合约在比特币协议上还是在以太坊协议上,它的使用场景和编程思路都是非常相似的
区块链设计哲学
去中心化
区块链中的去中心化是指将控制权和决策权从中心化实体(个人、组织或团体)转让给分布式网络。
区块链白皮书中高频出现的词汇,点对点网络
也就是说区块链是分布式系统,分布式系统指的就是去中心化,所以也可以称它为 去中心化系统 或者 去中心化网络
在去中心化网络中,任何两个参与方都可以在没有中介的情况下进行交互,在比特币网络中交互主要体现在转账上。
比如:张三给李四转账,这笔转账就不需要类似于通过银行、支付宝这样中心化的权威来记录交易,而是可以通过点对点的进行转账。就如同我们在使用现金一样。
这时候问题就来了,如果没有一个可信的第三方,谁来记账,谁来记录所有的数据呢?
答案就是在去中心化网络所有的节点上共同记账,新的交易出现以后,每个人都可以把这笔交易记录在自己的账本中,这样就形成了大家共用的公共账本。
由于数据是存储在多个节点中的,所以并没有中心化的权威机构随意的更改公共账本。
因为改了一个还有很多其他的副本,也存储在其他的节点上。
这就是区块链去中心化的体现,也是数据不可篡改的主要原因。
这样的公共账本也会存在一个问题,如何防止有人在公共账本中记假账,写假数据。
共识
如何保证不同节点的数据一致?
每当有一个数据需要被创建或者更新的时候,都必须有一个节点将这个数据发送给整个网络,然后这个网络中的每个节点都需要对这个消息进行合法性的验证。
什么叫合法性的验证?
比如张三要给李四去转10块钱,那就需要验证这个交易有没有张三的签名,张三的账户里面有没有10块钱这么多的余额,种种这类型的合法性的验证。
当这个网络里面的绝大部分的节点验证成功以后,并且将这个更新以后的数据写到自己的数据库里,这个交易就会写到公共账本中,这个过程就被称为上链。
这时候你可能会有一个新的问题,就是假设有一个或者多个节点,源源不断的去给这个公共的账本去发送这个假的数据,整个网络里面充斥着错误的信息,所有的节点大部分资源都用来验证这些错误的信息,岂不是造成了网络的拥堵?
其实以前也有人考虑到了,也就是中本聪考虑到了,这就叫女巫攻击 8。
对于这个问题比特币协议给出的解决方案是:
比特币网络中,需要解决复杂的数学难题来添加交易。这个过程需要大量计算资源和时间,确保只有具备足够的计算能力的人才能参与区块链的维护。
提升不诚实节点的作恶成本,增加诚实节点经济激励,让作恶的收益远远小于成本。来保证在区块链网络中个体和个体的交互的诚实。
我们在提交自己的交易之前,也就是在记账之前,那需要先进行大量的计算来解一道难题,那只有成功的解开了这道难题以后,那才有记账的资格。
这个难题是极难计算,但是验证它是否是正确的,又是非常容易的。
如果你想要提交大量的交易,那就需要解开大量的难题,以此就可以通过提升造假成本的方式来避免造假,以经济学的方式来解决这个问题。
在具体的实现层面解决这个难题的过程呢就叫做挖矿,那用于提供这些计算资源的机器呢就叫做矿机,这种验证方式呢叫Proof Of Work,也叫工作量证明。
POW
POW(Proof Of Work)工作量证明
难题:矿工们需要解决一个复杂的数学问题,这个问题很难解,但一旦解出来了,其他人很容易验证解的是否正确。
计算力:解这些问题需要大力的计算资源和电力,这意味着矿工们需要投资昂贵的硬件和支付电费。
验证:当一个矿工解出问题并获得一个新块,他会把解和新块广播到整个网络。其他矿工会验证这个解是否正确,如果正确,这个新块就会被添加到区块链中。
奖励:成功解出问题并添加新块的矿工会得到比特币作为奖励,这是他们投入大量资源的回报。
PoS
PoS(Proof of Stake)权益证明
由于在pow的模式中,需要大量的矿机不停的在进行运算,这个过程就消耗了大量的电力,所以为了去节约能源,以太坊在2022年进行了一次重要的升级,把pow的验证方式呢变成pos,也叫权益证明。
在2022年9月15日,以太坊的共识方式从PoW转变为PoS,这个事件被称为以太坊Merge(合并)。
Merge包含多个过程,将 以太坊PoW链 与 以太坊Beacon Chain 合并,然后转变称为了 ETH PoS 链。
PoS它的原理是什么?
就是节点在提交交易的时候,你不用像以前一样通过进行计算来解决这个难题,而是需要预先去质押一些资产,如果这个节点提交了错误的信息,他质押这个资产就会被扣除,那在这种条件下就不需要矿机了,只要通过质押资产就可以保证整个网络的一个安全性。
其他共识算法
PoA(权威证明):通过预先选定的一组可信节点(验证者)来验证和生成区块。由于只有少数授权节点参与共识过程,网络速度和性能通常很高。
PoH(历史证明):用于证明事件或交易在特定时间的发生顺序。通过减少共识时间,提高了网络的吞吐量和性能。
PBFT(实用型拜占庭容错):通过预备、预确认和确认三个阶段的投票机制来达成共识,可以容忍网络中最多三分之一的恶意或故障节点。
除了POW工作量证明和PoS的权益证明以外,还有一些其他的验证方式,比如说POA(权威证明)、PoH(历史证明)、PBFT使用的拜占庭容错等等,但是主流的验证方式就是PoW工作量证明和PoS权益证明以及基于他们的一些变种。
面向资产的互联网
安全性和去中心化的权衡
共识算法复杂性:共识也需要多个节点进行验证和沟通,增加了共识达成的时间和复杂性。
去中心化存储:每个节点都维护着整个区块链的副本。每笔交易都需要广播到全网,并由大多数节点验证和存储。
去中心化网络中,无论是PoW还是PoS的验证方式,每一个交易、每一次数据的更新都需要网络中所有的节点对其进行验证和更新,这样会导致区块链网络的效率很低。
因为每次操作都需要全网的节点去做一遍同样的运算,所以就可以说区块链技术的一个设计哲学就是去构建一个分布式的网络。在这个网络中去中心化的程度很高,但是效率非常低,也可以说呢我们是通过了降低效率增加成本的方式来提升数据的安全性。
所以在开发中,如果要使用到区块链技术,要开发 去中心化应用(Decentralized application)简称Dapp,首先需要考虑开发这个Dapp是不是需要这样的一个特性。
安全性高、效率低这样的特点,适合什么样的操作,适合什么样的应用,那是不是比较适合于对于资产的操作?
拥有所有权的数据就是一种资产。
去中心化系统适用于处理数据资产。
如果说一个数据除了你以外,没有其他人可以更改,并且需要长期存在,那么理论上这个数据就拥有了所有权这一项属性,拥有所有权的数据其实就是一种资产,所以区块链这个分布式的系统或者叫去中心化的系统,特别去适合处理这个数据资产,让互联网呢不单单是可以处理数据,也可以处理资产。
你可能呢听说过一个词叫做web3(新一代的互联网范式),虽然现在web3有很多不同各种各样的定义,但是无论怎样去定义它都有一个非常重要的特点,就是用户可以在web3中存储和操作数字资产。
Web 1.0 Web 2.0 Web 3.0
只读 可读可写 可读可写可拥有
例如微信、抖音、美团、小红书等等都是Web 2.0的应用, Web3让互联网不单单可以存储和流转数据,也可以存储和流转资产。
如果不仅可以在应用中存储这个数据,还可以在应用中存储资产,这样的应用就是web3应用。
比如说你可能玩过很多不同的游戏,在游戏中有可能获得了很多的道具,如果有一天出于种种原因,可能是这个代理公司和厂家这个谈判破裂,游戏就被关掉了,那么你在游戏中辛苦获得的这些物品也就全部随着游戏公司的服务器关闭而消失不见了。
但是如果在Web3的模式下,游戏内的种种资产它其实可以存储在区块链上作为一种有所有权的数据,并且这个所有权只属于你,除了你以外没有任何人可以随意的去更改这个数据,在游关闭后你依然可以拥有它,使用它,交易它,甚至在有人想要做一款新的游戏的时候呢,也可以依据于这些数据,依据于这些资产来进行开发。
另外对于金融系统也可以增加监管,比如说现在你把钱存在银行里面,银行会告诉你,他们会将你的钱用作某某用途,那其实你根本没有办法去验证对吧?
你只能选择去相信他们,虽然呢种种的监管机构,但是美国的次贷危机以及硅谷银行的破产,这些事件让人感觉到这些监管其实也并不能够完全防止这种事情的发生,
原因其实很简单,因为人性是难以接受考验的,如果使用了Web3的方式,通过智能合约来控制数据资产,那么任何一个验证者都可以在Web3中检查这些资产的安全。
智能合约
以太坊的智能合约
智能合约是一种自执行的合约,合同条款直接写入代码中,并在区块链网络上运行。他们自动执行和强制执行合同中的条款和条件,无需第三方干预。
那在现实世界中合同和合约呢是一切商务活动的基础。
和传统的合约相比,智能合约还有一些其他的的特点。
特点:
-
去中心化
智能合约不像传统的合同,它需要依赖于一个传统的仲裁机构或者是权威机构,因为它是运行在区块链上的,而区块链是被成百上千个节点所控制,所以运行在区块链上的智能合约,不会被某个人或者是某个机构所控制。
-
数据透明
因为区块链是一个公共账本,所以在这个网络中所有的节点都可以看到所有的数据,所以并没有什么数据可以被藏起。
这个透明性呢就保证了每一个参与方可以在统一的规则下看到同样的数据。
- 不可篡改(数据安全)
一旦智能合约被部署以后,它就不能被修改或者删除,这个不变性就保证了这个合约的任何一个逻辑和数据不会被某一个人所修改的,在中性化的系统里面这个问题就会比较明显,
如果这个服务器被黑了,或者是流程管理不严,或者是临时工的这个操作失误,那数据就有可能会被篡改,但是在去中心化的网络中,那如果要攻击者想要去恶意修改数据是非常难的,因为攻击者通常需要控制至少一半以上的节点才有可能去影响这个数据。
- 消除交易的对手风险
在传统的合同中总会存在一方去履行合同,那另一方不履行合同这样的一个风险。
在智能合约中双方进行了操作都会以程序的方式去执行,使得甲方和乙方的操作是不可拆分的,也就具备了原子性。那通过这样特性就消除了这个单方面作恶的一个风险。
小结
区块链历史:
-
区块链的起源:《一种点对点电子现金系统》
区块链它的一个技术的雏形是来源于比特币的白皮书,点对点的电子现金系统,
-
以太坊:智能合约承载多重编程逻辑
5年以后以太坊的出现又带来了智能合约,让开发者可以在区块链上去写一些逻辑,来实现各种各样的应用。
区块链设计哲学:
-
去中心化 & 共识
- 去中心化:在没有中介参与的情况下完成交易
这个特性保证了参与者在没有中介的情况下可以完成交易,而之所以能够实现去中心化,那就是因为在区块的网络中并没有一个中心化的服务器,这个网络是由所有的节点共同去维护的。
- 共识算法:PoW工作量证明、PoS权益证明
共识就是用来保证数据的统一,所以为了避免有人给这个公共的账本去提交假的数据,那就有各种不同的验证方式来防止女巫攻击,其中主流的验证方式是PoW工作量证明和PoS权益证明。
-
Web3
基于以上的一些基础特性,基于去中心化,基于区块链就形成了第3代互联网
- 定义:流转资产和价值的互联网
Web3中数据不仅仅是可读可写的,而且还是可以拥有的,这样的数据就变成了一种资产,Web3和Web2相比不仅可以处理数据,也可以处理数字资产。
- 典型应用:DeFi,NFT,DAO,游戏
区块链交易
发送第一笔交易
发送交易之前,需要先建立一个账户,一般来说用户在和区块链上的资产打交道的时候,都会通过两种不同类型的账户,一种呢叫做托管账户,另一种呢叫做自托管账户。
以太坊的账户类型
托管账户:是一个第三方替用户保管资产
第三方完全掌握用户的加密资产,承担管理用户的这个钱包、私钥、签名、交易以及保护用户加密资产的责任,其中最典型的代表就是中心化的交易所 【coinbase】
所以说如果你的资产存入了中心化的交易所,那本质上你就是将资产存入了托管账户中。
在这种模式下呢,托管方其实拥有你所有的资产的控制权,你只能通过它来进行操作,因为你不知道这个账户的私钥,就如同在这个日常生活中大部分的用户使用这个银行的服务一样。
你需要将钱存入银行。然后你如果想对这笔钱进行操作,那都需要通过银行来进行,你自己是没有办法操作的,它因为它并不是现金。
那本质上这种模式下就是你对于自己的资产是没有控制权的。
自托管账户:指这个加密资产的所有者需要完全去对自己的资产负责。
用户完全掌控他自己的加密资产,管理自己的私钥,并且自行处理交易。
这种账户的好处就是你可以自己掌握自己的私钥,完全掌握自己的资产,但是它的优点可能恰恰也就是它的缺点,因为并没有第三方来托管,如果你一旦遗失了自己的私钥,就会失去所有的资产,并不存在像是一个找回密码的选项。
如果别人获取了你的账户(私钥),意味着他可以调用你账户中的所有资产。
托管账户 | 自托管账户 | |
---|---|---|
私钥管理 | 托管方或者第三方网站控制了私钥和资产 | 用户自己控制私钥和资产 |
安全性 | 托管方或者第三方网站对私钥和资产的安全性负责 | 用户自己对私钥和资产的安全性负责 |
是否可以恢复 | 用户丢失了密码,还是有可能恢复 | 用户丢失了私钥或者助记词,就会永远丢失资产 |
用户体验 | 用户不需要区块链知识 | 用户需要了解区块链知识 |
安装Metamask
在发送第1笔交易之前,首先需要安装一个钱包,就是上面所提到的自托管钱包。
现在开发者群体里面使用的最多的就是一个叫做Metamask的钱包。
在这个钱包里边呢它可以给你提供很多的功能,比如说让你通过发送交易的方式跟链上的智能合约发生交互,同时也可以进行一些通证的转移。
钱包
助记词 master key
账户1:私钥1 -> 地址1
账户2:私钥2 -> 地址2
… …
Tokens 在某个账户下有哪些通证(例如:SepoliaETH)
NFTs 非同质化通证(例如:一幅画、)
Activity 日志,用metamask发送过什么交易,做过什么transfer都会记录上
NFT (非同质化通证 / 非同质化代币 Non-Fungible Token)
密码学 (Cryptography)
凯撒密码学(Caesar Cipher)
每个字母向右平移三位
XYZABCDEF
ABCDEFGHI
区块链中的密码学
哈希函数(Hash Function)
将一个任意长度的数据转换为一个固定长度的数据
例如:文档、视频、字符串等不定长度(无限长度)的数据转换为一个固定长度(有限长度)的数据
特性:
确定性
:同样的数据生成的哈希值相同。
单向高效
:计算数据的哈希算法很高效。容易通过计算数据的哈希值,但是很难从哈希值反推原始数据。
常见的算法:MD5、SHA256
例如有些网站上的软件安装包 会有文件的哈希值
Checksum(SHA256):1EXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX8912 这个值也被认为是文件的一种数据指纹
在线网站工具:https://andersbrownworth.com/blockchain/hash
公钥和私钥(Public Key and Private Key)
Cryptographic Keys
两种类型的秘钥:
对称加密
(单个秘钥)
加密和解密都是通过同一个秘钥
非对称加密
(一对秘钥)
一堆秘钥。明文加密成密文 用的其中一个秘钥(公钥)、密文解密成明文 用的是另外一个秘钥(私钥),这两个秘钥被称为公钥和私钥
在区块链中使用的是非对称加密
非对称加密
加密:
- 任何人都可以通过接受者的公钥对信息加密
- 只有公钥对应的私钥的持有人才可以对加密信息进行解密
电子签名的原理
验证:
- 用户通过私钥签名/授权交易(电子签名)
- 通过公钥验证电子签名,确保是私钥持有人在发送交易
助记词生成私钥的过程
-
Entropy (熵)128 bit
生成随机数
-
Entropy => 32bit + 32bit + 32bit + 32bit
拆分成四份
-
hash (entropy) = checksum
-
Checksum + (4 × 32bit) = 4 × 33bit
-
(4 × 33bit) => 4 × 3 × 11bit =132bit = 12 × 11bit
-
11bit = 2 ^ 11 = 2048 - 词库中的一个单词
-
12 × 11bit =12个单词 - 助记词
-
PBKDF2(助记词) => 512bit - seed
-
HD(seed) => master key - 主秘钥
-
主密钥 –> 多个子密钥
-
子密钥 –> 公钥 –> 地址
领取测试通证
众所周知比特币是一个去中心化的系统,每一次的这个交易都需要不同的节点把你的数据存到他们的数据库里面,形成共识然后数据才能入块(上链),那别人为什么做这个事情呢?那肯定是有激励,他为了获得这个激励,这个方式就叫挖矿。你每次去更改这个链上的数据(不管是去做transfer还是跟合约进行交互调用什么函数)都要支付一部分手续费,如果要支付手续费的话,你必须要有一些原生的通证。
比如说在以太坊上,他的原生通证就是 ETH
如果在
taoleigai
上 他的原生通证就是maizheike
如果在 Avalanche 也就是 雪崩链 上,它的原生通证就是 AVAX
如果想做一个简单的Transfer那就需要一些手续费,如果想支付手续费就必须有原生的通证
如果现在使用的是 Sepolia,也就是以太坊的测试网,那就需要有测试网的原生通证,在测试网上叫 SepoliaETH,是一个模拟的ETH,既然是模拟的,那就可以免费的去获取
Sepolia 是应用程序开发时推荐使用的默认测试网。主网上使用的叫 ETH
这里面有个概念叫 faucets (水龙头),搜索 faucets chainlink
https://faucets.chain.link/
gas 介绍
交易信息
Transaction Hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 交易的ID
Status: Success
Block: 6235124
Timestamp: 25 secs ago(Jul-12-2024 09:17:12 AM UTC)
From: 0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 发送者地址
To: 0xyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy 接收者地址
Value: 0.05 ETH($0.00) 发送总值(因为是模拟的,所以真实价值是0)
Transaction Fee: 0.00009443312655 ETH($0.00)
Gas Price: 4.49681555 Gwei(0.00000000449681555 ETH)
Gas Limit & Usage By Txn: 21,000 | 21,000(100%)
Gas Fees: Base: 2.99681555 Gwei | Max: 5.662935086 Gwei | Max Priority: 1.5 Gwei
Burnt & Txn Savings Fees: Burnt: 0.00006293312655 ETH($0.00) Txn Savings:0.000024488510256 ETH($0.00)
Transaction Fee、Gas Fee 就是我们每次去做一次交互或者去做一个Transfer都要支付的一些手续费。
那它具体是有哪些部分去组成的,因为在具体的一个学习过程中,或者是看资料的一些过程中,经常会听到这个gas fee、gas price、gas limit、还有tips就是种种不同的一个称呼。
Transaction fee,它的这个构成呢是有两部分:gas limit、gas price
Gas Limit
这个gas limit怎么理解?
可以把它理解成是一个计算单元,就是比如说要完成这笔交易,需要这个节点帮你去运算多少次或者执行多少个计算单元。
举个很简单的例子,就是像你要在100万个数据里面查找其中的某一个数据,然后把它拿出来再做一个非常复杂的操作。那这个计算资源可能就非常的多。
但是呢你如果仅仅是计算一下1+1=几或者1+2=几,那这个计算过程呢就非常的简单,那它的这个计算单元呢就非常少。
那这里看到如果我们仅仅是做一次这个transfer,那它的这个计算单元呢其实是非常少的。
这里只有这个21K,也就是21,000个计算单元,这就是gas limit。
Gas Price
是指的每一个计算单元所要消耗的一个价格
这个价格一般是由网络拥堵的情况所所决定的
比如说现在在这个网络上,有很多人都要去发送交易,大家都很急,都要想让自己的交易最先被执行最先被共识,最先被写到区块链里面。
那这个网络它的这个平均的这个gas price呢就会非常的高,因为大家都很急嘛,
这个就是供小于求,那根据这个经济学的常识呢,既然大家都想要,那这个gas price就很高。
但是如果这个网络呢没什么人用,就是大家都不用,然后呢这个反而是这个节点它想要去获得更多的这个经济激励。
那自然这个节点就卷起来了,每个人就说我这个更低一点我也能干,那另一个人说那我要的更低,那这个gas price就变低了。所以说就是这个gas press是由当前的网络拥堵情况所决定的。
最终 gas limit × gas price = transaction fee,也就是 gas fee(总共需要支付的这个费用)
gas limit、gas price、gas fee是三个不同的概念,
gas fee(总共需要付的这个费用) 是由 计算单元(gas limit) 乘以 每一个计算单元的价格(gas price) 所得到的。
EIP–1599
Value: 0.05 ETH($0.00) 发送总值(因为是模拟的,所以真实价值是0)
Transaction Fee: 0.00009443312655 ETH($0.00) 也就是Gas Fee
Gas Price: 4.49681555 Gwei(0.00000000449681555 ETH)
Gas Limit & Usage By Txn: 21,000 | 21,000(100%)
Gas Fees: Base: 2.99681555 Gwei | Max: 5.662935086 Gwei | Max Priority: 1.5 Gwei
Burnt & Txn Savings Fees: Burnt: 0.00006293312655 ETH($0.00) Txn Savings:0.000024488510256 ETH($0.00)
Gas Fees里面还有三个不同的值:Base、Max、Max Priority
那这个呢其实跟以太坊的一次升级有关系,这次升级叫做 EIP–1559。这个升级大概来说就是把以太坊上面的这个Gas费分为两部分:
- 一部分是要烧掉的(Base)
这个烧掉部分ETH就自动的去退出了总的这个ETH的流通,也就退出了一个总的循环。
就比如说在以太坊的网络上,现在现存100万个ETH,然后呢我发送了一笔交易,消耗了这么多这个ETH。
这部分ETH就永远退出流通,在以太坊的网络上就不到100万个ETH,变成了99点多少万个,那我们也可以把它叫做烧掉了。
所以这个Base
的这个费用呢就是把它烧掉这个费用。
- 一部分是给到节点的,也就是给到矿工的。
这个
Max
就是代表着最多愿意去付的Gas Fees,也就是说除了这个Base被烧掉以外我还想再多付一点。那为什么我想多付呢?
是因为我想让我的这个交易被更快的去处理,如果说现在这个平均的这个Gas Fees发生了变化,在我的Base费的基础上,我就愿意去提高一些,让我的交易更快的被写到这个区块里面,这个其实也很好理解,就是我愿意最多支付的。
那如果高于这个呢,大家都比这个高,那就你就不要执行我的这个交易了,我也不会付那么多的这个手续费。
Max Priority
是指的我愿意单独付给这个节点,也就是付给矿工的一个小费。那让他能够更快的去执行我的交易。这个都是由EIP–1559这个协议升级所带来的,以前没有这个的,在升级EIP–1559协议之前,只有 Gas Price 和 Gas Limit,然后 Gas Limit × Gas Price = Gas Fee。
这个Gas Fee就全部都支付给矿工,导致这个ETH一直是一个通胀的一个资产,就是它不停的在增加。那后面呢有一部分这个资产呢在我进行交易的时候就会被烧掉,就谁都得不到了。
这就导致ETH如果在某些情况下它就会变成一个通缩的一个资产,那也可以根据这个网络情况,那可能有一部分时间就让它通缩的速度快一点,
就是大家如果都在去交易,都在去这个发送各种信息的话,那就通过这个机制呢让这个成本变得高一点,就让大家这个冷静一下,如果同时大家都不去发送交易了,也通过这个方式能够让这个交易的数量变得更多一点。
小结
-
区块链账户:托管账户 & 自托管账户
作为开发者和Web3应用的使用者,主要使用自托管账户)
-
Metamask(小狐狸):通过浏览器插件安装
创建自己的账户
-
账户概念:助记词,私钥,公钥,地址
助记词 —> 主私钥 —> 子私钥1 —> 公钥1
子私钥2 —> 公钥2
子私钥n —> 公钥n
1组助记词是包括24个或者12个单词,这些单词代表着一个随机数
同一组词可以生成多个私钥,每个私钥对应一个公钥和一个地址。
如果丢失了助记词,那就丢失了通过这个助记词所生成的所有私钥
如果丢失了私钥,那就丢失了私钥中的所有资产
永远不要和别人去共享你的助记词或者是私钥
-
Faucet(水龙头)领取测试通证 –> 发送交易
-
Gas Fee(交易手续费) = Gas Limit(计算单元) × Gas Price(你愿意为单个计算单元所支付的费用)
-
EIP–1559:gas fee = base fee + max fee + tips
以太坊的一个升级,对开发没什么影响,ERP—1559的目的是尽可能的提升以太坊的网络效率。
-
比特币的设计哲学:系统简单,使用简洁的脚本语言减少了复杂性,使得系统更易于理解、维护和审计。 ↩
-
图灵完备(Turing complete):
计算机科学中的一个术语,通俗地解释,一个系统如果是图灵完备的,就意味着只要给它足够的时间和资源,它能够执行任何可以通过编程描述的计算任务。 ↩ -
智能合约(Smart Contract):是一种运行在区块链上的自执行协议,能够自动执行和验证合约条款。
通俗地解释,智能合约就像是一个自动化的 “如果……那么…...” 的程序,可以在特定的条件满足时自动执行预定的操作。 ↩ -
预言机:将区块链系统外的数据以去中心化的方式写入到智能合约中。 ↩
-
NFT(Non–Fungible Token):非同质化通证,一项通证编程标准,用于承载业务逻辑。
是一种代表独特资产的数字通证。
与比特币和以太坊等同质化通证不同,每个NFT都是独一无二的,不能与其他NFT互换。
它最初其实是一个技术概念,但是随着web3的生态不断的去发展,现在已经演变成一个非常广泛的概念,它可以代表的是数字艺术品,真实世界的一些资产映射,数字世界的身份证明等等。
现在在web上的生态里面,无论去做什么样的应用,可能都会多多少少用到NFT。 ↩ ↩ -
跨链:不同区块链之间的智能合约进行互相操作。 ↩
-
Layer2(二层网络):
二层网络是指基于某一个区块链网络,开发一个新的协议,新的协议可以积累大量的交易收集并且一次提交给主网,作用是:
- 提升主网的效率
- 增加主网可扩展性
- 增加更多的功能 ↩ -
女巫攻击(Sybil Attack):
是指攻击者通过创建多个虚假身份,来操控和破坏网络系统的一种攻击方式。
可以把它想象成一个人伪装成很多人来投票,试图影响投票结果。在区块链和其他分布式系统中,这种攻击可以用来获取不公平的优势,比如控制多数节点来影响共识过程或干扰网络正常进行。 ↩
-
DeFi(Decentralized Finance):去中心化金融,指利用区块链技术和智能合约构建的一系列金融服务和产品。
DeFi的目标是,无需中介的情况下,通过去中心化技术提供传统金融服务 ↩ -
去中心化自治组织(Decentralized Autonomous Organization:DAO):
通过智能合约在区块链上运行的组织。
DAO的决策和管理过程是去中心化的,由所有持有通证的成员共同参与和投票决定。
可以在DAO里面设置不同的这个规则和提案,让多个参与方共同去投票。 ↩