Web3入门-理论篇
# Web3入门-理论篇
# 名词解释
开始之前,先来了解几个名词,首先了解下什么是区块链~
# 区块链 Block Chains
区块链(Block Chains)网络是一种点对点连接,其中信息在多个设备之间共享,几乎不可能被黑客入侵。它是一种记录信息的系统,其方式使得很难或不可能更改保存在网络上的信息。
区块链起源于比特币,2008年11月,一位自称中本聪(Satoshi Nakamoto)的人发表了《比特币:一种点对点的电子现金系统》一文,阐述了基于P2P网络技术、加密技术、时间戳技术、区块链技术等的电子现金系统的构架理念,这标志着比特币的诞生。两个月后理论步入实践,2009年1月3日第一个序号为0的创世区块诞生。几天后2009年1月9日出现序号为1的区块,并与序号为0的创世区块相连接形成了链,标志着区块链的诞生。
区块链是去中心化的分布式记账系统。 狭义区块链是按照时间顺序,将数据区块以顺序相连的方式组合成的链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
区块链技术是一种不依赖第三方、通过自身分布式节点进行网络数据的存储、验证、传递和交流的一种技术方案。通过去中心化和去信任的方式集体维护一个可靠数据库。具有去中心化、公开透明、不可篡改、可追溯性、匿名性和自治性。
特点
- 去中心化
区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。去中心化是区块链最突出最本质的特征。
- 开放性。
区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
- 独立性
基于协商一致的规范和协议(类似比特币采用的哈希算法等各种数学算法),整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。
- 安全性
只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。
- 匿名性
除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行
根据不同的技术形态,区块链可以分为公有链、联盟链、私有链:
- 公有链:任何节点都是向任何人开放的,每个人都可以参与到这个区块链中进行计算,而且任何人都可以下载获得完整区块链数据(全部账本)。其中,公有链中包含了一种最重要的平台—基础链。这个基础链不依赖第三方、通过自身分布式节点进行网络数据存储、验证、传递和交流的区块链平台。
比特币、以太坊是两大最重要的基础链。
- 联盟链:是指有若干机构或组织共同参与管理的区块链,他们各自运行着一个或多个节点,之中的数据只允许系统内不同的机构进行读取和发送交易,并且共同记录交易数据。
- 私有链:有些区块链的应用场景下,并不希望这个系统任何人都可以参与,任何人都可以查看所有数据,只有被许可的节点才可以参与并且查看所有数据,这种区块链结构我们称为私有链
对于区块链的发展阶段,主要分为三个阶段:区块链1.0——数字货币;区块链 2.0——智能合约;区块链3.0——去中心化应用(DApps):
- 区块链1.0数字货币——比特币,莱特币,狗狗币
数字货币是最早大家认识到的区块链应用,其中最有名的就是比特币,除此之外还有莱特币,狗狗币等。
# 比特币(Bitcoin)
比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。与大多数货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币其总数量有限,该货币总数量将被永久限制在2100万个。
比特币网络通过“挖矿”来生成新的比特币。所谓“挖矿”实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性。比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为区块奖励,奖励获得答案的人。
2009年,比特币诞生的时候,区块奖励是50个比特币。诞生10分钟后,第一批50个比特币生成了,而此时的货币总量就是50。随后比特币就以约每10分钟50个的速度增长。当总量达到1050万时(2100万的50%),区块奖励减半为25个。当总量达到1575万(新产出525万,即1050的50%)时,区块奖励再减半为12.5个。该货币系统曾在4年内只有不超过1050万个,之后的总数量将被永久限制在约2100万个。
区块链是一种技术,基于区块链的技术可以有很多的应用,而比特币是其中一种最为人熟知的应用。
- 区块链2.0智能合约平台币——以太币,卡尔达诺,币安智能链,Solana,波卡
区块链的第二大基础应用就是智能合约平台,智能合约说白了就是按照提前设定好的交易条件自动执行的合约。
- 区块链3.0去中心化应用DApps
当前,去中心化应用的三大方向分别为DeFi(去中心化金融),GameFi(链游),和NFT(非同质化货币)。
# 币(Coin)
基于公有链原生的“币”,一般被称为“Coin”。以比特币为例,比特币记账需要矿工消耗大量的能源进行计算,因此比特币是作为一种挖矿奖励(记账奖励)、以及交易手续费奖励的形式给予矿工的。
# 代币(Token)
代币是具有某种权益的区块链项目代币,项目一般基于基础链研发的一个应用型的区块链DApp(Decentralized Application)上。
coin是区块链中交易费(gas)的等价物,充当货币的角色,而token则是一种权益证明,一般coin都可以算作token,但token却不能算作coin。我们常常见到的比特币(BTC),以太币(ETH),SOL等等,都是coin,而SAND(著名元宇宙游戏公司Sandbox的代币),BNB(币安发行的代币),USDT(稳定币)等则是token。
代码的执行由调用者以称为Gas的方式支付费用。 Gas是运行以太坊虚拟机的燃料。 我们可以将其视为每次执行指令的付款。
构架在区块链技术上的互联网产品一般有以下特点:
- 去中心化
用户数据不再存储于平台的中心化数据库当中,而是存在去中心化的数据库,用户数据与平台的关系是租赁关系。平台租用用户的数据以提高平台的盈利能力,用户提供数据给平台以提高自身的用户体验,同时收取信息租金以分享平台收益。当用户拥有绝对的数据主动权,平台则无法强迫用户进行二选一操作;
- 公开透明
所有涉及资金交易的过程全部在链上公开,同时引入见证人惩罚机制,激励见证人去发现价格歧视,从而杜绝大数据杀熟的行为;
- 产业自治
大家彼此利益共担,共同分享产业链带来的价值;
- 可追溯
内容创作者持续拥有内容的所有权和使用权,每次内容的引用都可追溯的,由此产生的商业价值将分配给创作者,从而杜绝创作者是内容的贡献者,但无法获得相应的收益。
区块链是一个分布式账本,存储数据并且连接更多的人到互联网当中,同时不一定需要一个中介机构,与区块链促进去中心化的方式一样,我们希望看到Web3平台采用这一原则。在Web3中,平台可以在没有任何中央机构的情况下运行,Web3将由用户控制,用户通过为平台做出贡献并帮助他们运行而获得相应的收益。
所以可以认为,Web3.0必须基于区块链技术构建。这样的Web3.0,在产品特征、利益分配、组织形式上都有鲜明的特点。
# web3.0
Web3.0的概念最早出现在2014年,由以太坊联合创始人及波卡创建者Gavin Wood首次提及,笼统地说是指基于区块链技术搭建的「去中心化生态系统网络」,此系统会包含一系列开源协议,能够为应用程序的开发者提供构建模块,而基于区块链技术构建的Web3.0平台和应用程序不由传统的中心化企业所有,网络所赋予的权利和资产归开发者和用户所有。
Web 3.0是将主权还给人的革命,用户数据的话语权不再被互联网巨头垄断,这就需要Web 3.0 全新的范式来颠覆如今的互联网巨头垄断局面,保护每一个互联网用户的利益。得益于区块链技术的去中心化存储、无法篡改、信息加密等特点,再结合我们近期的研究总结,可以大致地将 Web 3.0 贴上这么 4 个标签:
- Web3.0必须是开放的
- Web3.0必须是安全的。因为开放,且安全,所以必须用到密码学技术
- Web3.0必定是去中心化的或者叫分布式的。开放协议,必定造就去中心化
- Web3.0的平台和应用必定具有原生通证,因为去中心化需要通过通证自动结算各方的利益分配
- 在Web 1.0阶段,用户通过浏览器获取信息,这个过程是网站到用户的单向行为,Web1.0时代的典型代表网站包括新浪、网易等门户网站。
- Web2.0则更注重用户的交互作用,用户既是网站内容的受众,也是网站内容的制造者,代表网站包括微博、Twitter等大部分社交媒体。
在Web 2.0时代,巨头的崛起为生活带来了便利,但也引发了种种有关垄断的担忧,批评者认为,权力集中在亚马逊、谷歌、苹果、Facebook、Twitter等少数几家巨头平台手里,它们掌控者大量在互联网上共享的数据和内容。
- 在Web3的世界里,分享照片、与朋友交流和在线购物将不再需要通过大型科技公司,而是通过区块链上的众多小型竞争服务来实现。这意味着可以绕开目前科技垄断巨头制定的一切费用、规则和限制。在这个互联网世界里, 人们控制着自己的数据,并在区块链上创建所有这些活动的公共记录。
Web3.0 是以太坊区块链 Ethereum blockchain 和你的智能合约 Smart Contracts 之间的连接。
提示
- Web 3 是协议的扁平化,规则制定权的下放,一种组织关系和协作关系的革新;
- Web 3 不是对 Web 2 的迭代,而是对 Web 1 及 Web 2 的延展。Web 1表现为网站/门户;Web 2表现为平台,Web 3 则是开放协议的时代;
- 区块链技术是信息科技发展的里程碑,为 Web 3 定型提供了技术支撑;另一方面 Web 3是区块链最契合的大规模使用场景;
- Web 3 的跃迁表现在从原子化时代进入到比特化时代,区块链将人类理解世界的最小单位从原子(atom)转变为比特(byte)和加密世界中的聪(sat)。其不仅包含信息,还凝聚了价值和权力结构的诠释。
- 去中心化 Decentralized
数据状态不由中央实体 central entity、平台 platform 或个人 individual 收集
- DAO
去中心化自治组织, Decentralized Autonomous Organization (DAO)。许多人认为DAO是许多平台的下一个发展阶段。在DAO中,没有中心化统治实体,相反,用户会做出决定。他们可以在DAO中添加标记,以便对社区内的提案进行表决。如果一项建议获得通过,开发商就会对其进行研究,并将其付诸实施,因此,每个人都对DAO的运行方式有发言权。
DAO是围绕一个共同使命而建立的组织,它允许成员提出提案,参与治理。它以智能合约的形式部署在区块链上,并且根据协议自动执行。其中Token是DAO治理过程中的重要激励手段,持有token的人享有投票权、提案权、收益权等等。DAO 不是将所有权集中到创始人和投资者手中,而是将所有权分配给生态系统中的各种利益相关者,也就因此成为了Web 3.0实现去中心化的核心要素。而DAO治理的范围,不仅仅在于技术上的治理,也在于社区管理,将用户聚集在一起。
# 智能合约 Smart Contracts
一份”智能合约”就是运行在以太坊区块链网络上简单程序,它们是存储在区块链上的计算机程序 computer programs ,在满足预定条件时运行。智能合约是用 Solidity 语言编写的。
Solidity (opens new window):一种用于编写智能合约 writing smart contracts 的面向对象 object-oriented 的编程语言。它用于在各种区块链平台上实施智能合约,最著名的是以太坊。Solidity 的语法类似于 javascript。Github地址 (opens new window)
智能合约也可以执行预定义的计算机程序,在程序被触发时执行各种操作。
智能合约平台最早、当前最成功的就是以太坊(ETH)了,同时,还有许多潜在的挑战者,比如以太坊联合创始人创立的卡尔达诺(ADA),币安平台推出的币安智能链(BSC/BNB),以及由旧金山的Solana Labs开发人员构建的Solana(SOL), 等等。
你可以把智能合约,同样理解为一种可以运行的程序。只不过这个程序比较特殊,它是运行在以太坊的EVM虚拟机 (opens new window)环境上。并且,程序本身、程序的输入输出、运行结果,对所有人可见。
一份智能合约除了是一段可执行的程序外,还有什么?
- 当合约发布到以太网后会有一个合约地址,该地址其实跟你加密货币钱包上的账号一样,其实也是一个账号,可以发送和接收ETH。(160-bit 的地址)
- 状态变量,跟其实面向对像语言一样,当实例化后,所有字段为该对像实例的状态变量,合约发布后状态变量永久保存在以太坊网络,除非合约自己销毁。
- 合约代码,byte-code 字节码,可用于在以太坊节点上读取(call)或者修改状态变量(sendTransaction/sendRawTraction)
- 合约可以调用其他合约,比如调用Oracle节点获取最新币价。
每次执行一次交易(Transaction),不管是转账,发布合约,还是合约调用(改变状态状态)简单说的,每次上链操作,都得给钱,而且ETH 上的Gas Fee 相对其他链,实在太贵了,所以一般复杂的计算都放到链下进行。
完全理解以太坊智能合约 (opens new window)
# 以太坊 Ethereum
以太坊(Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether)提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约。以太坊的概念首次在2013至2014年间由程序员Vitalik Buterin受比特币启发后提出,大意为“下一代加密货币与去中心化应用平台”,在2014年通过ICO众筹开始得以发展。
我们常常听说的以太币(ETH),就是智能合约平台以太坊发行的代币。以太币和比特币最大的区别是以太币不仅仅具有比特币的货币属性,还可以执行智能合约。
以太坊与比特币最大区别就是多了智能合约,比特币只是一种加密货币,做为一种价值存储的手段素有数字黄金的美称,而以太坊也是一种加密货币,但相对比特币,他更是无限可能,在以太坊上诞生的De-Fi,Game-Fi 等应用创造出我们无法想像的价值,这都得益于以太坊上的智能合约。
- 以太坊是如何运作的?
与其它区块链一样,以太坊需要几千人在自己的计算机上运行一个软件,为该网络提供动力。网络中的每个节点(计算机)运行一个叫做以太坊虚拟机(EVM)的软件。将以太坊虚拟机想象成一个操作系统,它能理解并执行通过以太坊特定编程语言编写的软件。由以太坊虚拟机执行的软件/应用程序被称为“智能合约”。
要在这一世界计算机上做任何事都需付费。不过,付的不是美元或英镑等普通货币,而是该网络自带的加密货币,叫做以太币。以太币与比特币大致相同,除了一点,即以太币可以为在以太坊上执行智能合约而付费。
- 为什么以太坊可以执行智能合约呢?
以太坊为智能合约提供了图灵完备的编程语言(Solidity)和相应的运行环境,让区块链应用开发者可以直接基于以太坊平台进行开发。而比特币的脚本由于没有条件分支、循环等控制指令,因此不能根据任何设定的指令判断出结果,因此不具备图灵完备性,也并不能拓展出除了货币属性外的应用场景。所谓图灵完备,就是一切可计算的问题都能计算,说白了就是给了指令就能得到结果。
以太坊可以看做一个公共数据库,这个数据库提供了读、写功能,但是不能删除。
发起交易其实就是将交易写库,写库不能白写,其他节点帮你记录了数据,你要支付一些费用给帮你记录的节点,这个费用就是我们经常看到的gas。因此以太坊上所有对链上的数据进行更改的操作都是需要花费gas的,而读取是免费的。
以太坊 - 深入浅出虚拟机 (opens new window)
# 以太币
与比特币一样,以太币并非无限可分的,以太币的最小单位是Wei。Wei是一个非常小的单位,1以太币= 1018 Wei。除了基本单位Wei,为了使用方便,以太坊还有其他的单位,他们的关系如下:
Kwei(Babbage) = 10^3 Wei
Mwei(Lovelace) = 10^6 Wei
Gwei(Shannon) = 10^9 Wei
Microether(Szabo) = 10^12 Wei
Milliether(Finney) = 10^15 Wei
Ether = 10^18 Wei
# Gas
gas 翻译过来的是【燃料】的意思,在以太坊区块链上执行写入操作时,网络中的每个全节点(full-node)都会进行相同的计算并存储相同的值,这种执行的消耗是昂贵的,为了奖励矿工在链上每运行一条写入指令都需要支付一定的费用,用gas为单位来计数,每个在链上可以执行的命令都设置了一个消耗的gas值,例:PUSH操作需要消耗3个gas,一次转账一般要消耗21000gas,gas使用ETH来支付。
无论命令是否执行成功,都要支付计算Gas费用,因为即可失败,节点也验证并运行了计算。
每一个区块都设置有gas limit,就是单个区块允许的最多gas总量,故可以用来决定单个区块中能打包多少笔交易。
我们每一次交易或合约调用都要设置一个gas limit,如果该次操作所使用的gas数量小于或等于您所设置的gas limit,则会被执行,但如果gas总消耗量超过gas limit,所有的操作都会被重置,但费用依旧会被收取。在执行中实际消耗的gas值总和叫gas used,没有使用完的gas会退还到原账号。
gas price:在发起交易或合约调用时,可以自己设置gas的价格,即gas price,一般以GWei(1 ETH = 1000000000 GWei)为单位。通过调整gas price可以节省矿工费用,但会减慢矿工打包的速度,矿工会优先打包gas price设置高的交易。
# Dapp
代表去中心化应用程序 Decentralized App 。它们是在去中心化网络或区块链上运行其后端代码(主要用 Solidity 编写的智能合约)的应用程序。可以使用 react、vue 或 Angular 等前端框架构建 Dapps。
# DeFi、NFT、GameFi
- DeFi
DeFi的全称是Decentralized Finance,即去中心化金融。DeFi项目利用智能合约技术实现了传统金融机构的各种功能,如衍生品、借贷、交易、理财、 资产管理、和保险等。DeFi与传统金融机构最大的区别在于其去中心化,不依赖任何第三方中介机构实现金融功能,公开透明,根据发行代码执行设定功能,任一节点无法对代码进行修改,必要时需要通过链上大部分节点的同意才能进行更新。目前主流的DeFi项目主要运行在以太坊和币安智能链的生态上。
- NFT
NFT,全称为Non-Fungible Token,指非同质化代币,是用于表示数字资产(包括jpg和视频剪辑形式)的唯一加密货币令牌,可以买卖。
NFT 是 Fungible Token (FT)的相对概念,两者之间最大的区别在于独一无二和能否分割。
例如,作为FT,你的一个以太币和我的一个以太币没有什么本质的区别,而且可以拆分成更小单位的比特币。而从NFT的概念上,你的猫和我的猫不能随便互换。造成NFT和FT之间区别的主要在于以太坊上的协议标准。
NFT的应用方向最早还是从艺术/收藏品开始,2021年由于Gamefi链游、以及元宇宙的爆发,相关游戏装备NFT,虚拟土地NFT的交易量也大增。
- GameFi
GameFi通俗讲就是game+defi,游戏提供方式载体,NFT承担游戏内的装备、道具,defi提供其收益协议。在 DeFi 与比特币被市场充分定价之后,2021年 GameFi 与 NFT 便成为了市场焦点。
# 参考
- 什么是Web3? (opens new window) 币圈极简入门Primer | 真正看懂各种币 (opens new window)
- 北京大学肖臻老师《区块链技术与应用》公开课 (opens new window)
- 万字长文 | 比特币白皮书精读详解 (opens new window)
- 如何成为一个区块链开发者 (opens new window)
- 区块链学习资源(基础篇) (opens new window)
- 网易公开课-区块链100问 (opens new window)