
Geth 源码系列:存储设计及实现
在区块链的世界中,状态存储是每一个节点的「记忆核心」 — — 它记录着亿万账户的余额、合约的代码、交易的痕迹,甚至决定着一笔交易能否被正确执行。作为以太坊生态的基石,Geth 客户端如何以精密的架构设计承载海量状态数据?其存储系统如何在性能、安全与可扩展性之间找到平衡? 这篇文章是 Geth 源码系列的第二篇,通过这个系列,我们将搭建一个研究 Geth 实现的框架,开发者可以根据这个框架深入自己感兴趣的部分研究。这个系列共有六篇文章,在这第二篇文章中,将系统讲解 Geth 的存储结构设计与相关源码,介绍其数据库层次划分并详细分析各个层次中相应模块的核心功能。 以太坊作为全球最大的区块链平台,其主流客户端 Geth(Go-Ethereum)承担了绝大部分节点运行与状态管理的职责。Geth 的状态存储系统,是理解以太坊运行机制、优化节点性能、以及推动未来客户端创新的基础。 本文作者: po Web3buidler.tech Core Contributor, EthStorage Engineer Geth 底层数据库总览 自 Geth v1.9.0 版本起,Geth 将其数据库分为...

以太坊单独质押实战教程:手把手教你完成部署
内容丨Ray 编辑 & 排版丨Yewlne、环环 以太坊的单独质押(Solo Staking)是保护网络安全和去中心化的黄金标准。通过运行自己的验证者节点,您可以直接参与网络共识,获得完整的质押奖励,并保持对资金的完全控制。本教程将为您提供详细的指导,帮助您在家中部署以太坊单独质押节点,确保安全性和稳定性。前提概要首先,我们需要有这样的一个基本概念:要处理来自执行层的传入验证器存款,您需要运行执行客户端以及共识客户端。这意味着我们至少需要部署两个客户端程序(在本教程中,为三个,共识客户端按照功能进行了拆分)。如果想了解更多执行客户端和共识客户端的差异及功能职责,可以点击阅读: https://ethereum.org/zh/developers/docs/networking-layer/一、选择执行客户端以太坊生态的客户端种类非常丰富,执行客户端和共识客户端都有多种不同语言的实现,如使用 Go 语言实现的 Geth, 使用 Rust 语言实现的 Reth 等。你可以根据自己喜好,选择不同的客户端,整体流程是类似的,只是不同客户端实现涉及的命令不同。在这里,我们不能对所有的客户端...

重磅 | LXDAO 中文名正式从“良心 DAO”改为“蓝翔 DAO”!
撰文 | Bruce 编辑&排版 | Connie 图片 | Ache、Connie、Cikey重磅消息! LXDAO 今日起中文名正式从“良心 DAO”改为“蓝翔 DAO”! 让我们抓紧看看到底怎么个事儿——Web3 技术哪家强?中国就找 LXDAO!LXDAO 创办于 2022 年 6 月,至今已有快 2 年的历史,是由几位喜欢开源的开发者联合发起的一所现代化、综合性的产学研一体的 DAO 组织,主要从事 Web3 公共物品相关的教育、研发和维护。 LXDAO 以创办历史不太悠久,但实训项目齐全、师资力量雄厚、培养模式先进而闻名全国。LXDAO 超过一半的同学为程序员,是现代化 Web3 技师、高级技工的摇篮。学院概况LXDAO 现有 0 个校区(正在筹备在清迈四海搭建第一个线下校区)。我们主要在 Internet 远程学习和工作交流。面向全球 13810 个城市招生,不限语言、地区和种族,能同时容纳上百万人。 LXDAO 拥有丰富的实训项目,涵盖了 Web3 的多种主题,包括但不限于教育、公共物品、全链游戏、开源、开发者关系维护、商务合作等。 我们也跟许多国际单位联合开展一...
LXDAO 是一个专注研发的 DAO 组织,致力于构建支持有价值的公共物品和开源项目的无限循环。 LXDAO is an R&D-focused DAO dedicated to building an Infinite Cycle that supports valuable

Geth 源码系列:存储设计及实现
在区块链的世界中,状态存储是每一个节点的「记忆核心」 — — 它记录着亿万账户的余额、合约的代码、交易的痕迹,甚至决定着一笔交易能否被正确执行。作为以太坊生态的基石,Geth 客户端如何以精密的架构设计承载海量状态数据?其存储系统如何在性能、安全与可扩展性之间找到平衡? 这篇文章是 Geth 源码系列的第二篇,通过这个系列,我们将搭建一个研究 Geth 实现的框架,开发者可以根据这个框架深入自己感兴趣的部分研究。这个系列共有六篇文章,在这第二篇文章中,将系统讲解 Geth 的存储结构设计与相关源码,介绍其数据库层次划分并详细分析各个层次中相应模块的核心功能。 以太坊作为全球最大的区块链平台,其主流客户端 Geth(Go-Ethereum)承担了绝大部分节点运行与状态管理的职责。Geth 的状态存储系统,是理解以太坊运行机制、优化节点性能、以及推动未来客户端创新的基础。 本文作者: po Web3buidler.tech Core Contributor, EthStorage Engineer Geth 底层数据库总览 自 Geth v1.9.0 版本起,Geth 将其数据库分为...

以太坊单独质押实战教程:手把手教你完成部署
内容丨Ray 编辑 & 排版丨Yewlne、环环 以太坊的单独质押(Solo Staking)是保护网络安全和去中心化的黄金标准。通过运行自己的验证者节点,您可以直接参与网络共识,获得完整的质押奖励,并保持对资金的完全控制。本教程将为您提供详细的指导,帮助您在家中部署以太坊单独质押节点,确保安全性和稳定性。前提概要首先,我们需要有这样的一个基本概念:要处理来自执行层的传入验证器存款,您需要运行执行客户端以及共识客户端。这意味着我们至少需要部署两个客户端程序(在本教程中,为三个,共识客户端按照功能进行了拆分)。如果想了解更多执行客户端和共识客户端的差异及功能职责,可以点击阅读: https://ethereum.org/zh/developers/docs/networking-layer/一、选择执行客户端以太坊生态的客户端种类非常丰富,执行客户端和共识客户端都有多种不同语言的实现,如使用 Go 语言实现的 Geth, 使用 Rust 语言实现的 Reth 等。你可以根据自己喜好,选择不同的客户端,整体流程是类似的,只是不同客户端实现涉及的命令不同。在这里,我们不能对所有的客户端...

重磅 | LXDAO 中文名正式从“良心 DAO”改为“蓝翔 DAO”!
撰文 | Bruce 编辑&排版 | Connie 图片 | Ache、Connie、Cikey重磅消息! LXDAO 今日起中文名正式从“良心 DAO”改为“蓝翔 DAO”! 让我们抓紧看看到底怎么个事儿——Web3 技术哪家强?中国就找 LXDAO!LXDAO 创办于 2022 年 6 月,至今已有快 2 年的历史,是由几位喜欢开源的开发者联合发起的一所现代化、综合性的产学研一体的 DAO 组织,主要从事 Web3 公共物品相关的教育、研发和维护。 LXDAO 以创办历史不太悠久,但实训项目齐全、师资力量雄厚、培养模式先进而闻名全国。LXDAO 超过一半的同学为程序员,是现代化 Web3 技师、高级技工的摇篮。学院概况LXDAO 现有 0 个校区(正在筹备在清迈四海搭建第一个线下校区)。我们主要在 Internet 远程学习和工作交流。面向全球 13810 个城市招生,不限语言、地区和种族,能同时容纳上百万人。 LXDAO 拥有丰富的实训项目,涵盖了 Web3 的多种主题,包括但不限于教育、公共物品、全链游戏、开源、开发者关系维护、商务合作等。 我们也跟许多国际单位联合开展一...
LXDAO 是一个专注研发的 DAO 组织,致力于构建支持有价值的公共物品和开源项目的无限循环。 LXDAO is an R&D-focused DAO dedicated to building an Infinite Cycle that supports valuable

Subscribe to LXDAO

Subscribe to LXDAO
Share Dialog
Share Dialog


<100 subscribers
<100 subscribers

编译丨岁岁
编辑 & 排版丨Soleil
本期文章由 LXDAO 翻译小组成员:岁岁翻译,跳校对。本书是 Absolute Essentials of Ethereum,作者是 Paul Dylan-Ennis。我们鼓励您仅将本翻译内容用于学习交流,如有途径和资源,请支持原版书籍。
英语学习-翻译小组:由 Guider 精选优质 Web3 内容,通过翻译第一手原文资料快速了解 Web3 行业基础概念、第一原则与相关资讯,同时主动学习英语。欢迎加入我们一起同行与共建!
本书为 Absolute Essentials of Ethereum(以太坊指南),作者:Paul Dylan-Ennis,全书共分为八个
本书目录:
赠言
前言与致谢
第一章 介绍以太坊
第二章 以太坊 · 执行层
第三章 以太坊 · 共识层
第四章 以太坊治理和文化
第五章 去中心化自治组织(DAO)
第六章 DeFi 去中心金融
第七章 非同质化代币(NFTs)
第八章 以太坊二层网络和路线图
收尾
术语
本期内容是该书籍的第七章内容:「非同质化代币(NFTs)」,约 4800 字,预计阅读时间需要 20 分钟
前六章内容可见:
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(二)
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(三)
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(四)
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(五)
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(六)
非同质化代币(Non-Fungible Tokens, NFTs)是区块链上代表独特资产的数字代币。在区块链领域,NFT 被视作是将资产所有权转让给特定的外部账户(EOA),即以太坊用户账户。NFT 可以作为单个项目或者集合中的个体项目创建。NFT 集合的业务逻辑由智能合约确定。开发者将集合部署到以太坊区块链上,创建一个合约账户,任何以太坊 EOA 都能与之交互。在实践中,NFT 通常被编码的代币,附带有指向外部元数据的链接或指针,比如一张图片或一组特征。这些元数据通常不存储在以太坊区块链上,因为在以太坊上存储数据可能成本高昂。理论上,NFT 可以代表任何类型的资产,但在实践中主要应用于一组受欢迎的用例。具体如下:
· 收藏品,尤其是头像(Profile Picture,PFP)。
· 艺术家个体创作的独特艺术作品。
· 游戏物品,尤其是在元宇宙中。
· 品牌商品,例如积分卡或粉丝通行证。
从文化角度来看,NFT 收藏者通常是热衷于收集独特或稀有物品的爱好者,有些类似收藏宝可梦卡片或电影纪念品的人。但这并不意味着 NFT 玩家对以太坊的价值或其基础设施的运作方式一无所知。事实上,NFT 用户通常是以太坊社区中最务实的成员之一,他们非常熟悉数字钱包的复杂性,包括管理私钥或直接从智能合约中创建 NFT。然而,NFT 领域也受到网络黑客的影响,他们主要针对新手散户,尤其是通过社交工程手段,同时,市场上充斥劣质的 NFT 项目。就像在跳蚤市场上收藏古董的新手需要谨慎辨别优劣一样,新手 NFT 收藏者也需要保持警惕,以筛选出真正有价值的项目。通常情况下(但不总是),NFT 包含两个主要组成部分。首先是技术组件,即 NFT 智能合约,通常基于 ERC-721 标准。其次是金融组件,特别是 NFT 市场所扮演的核心角色,也涉及传统商业关注的问题,如品牌和版权。
非同质化意味着某个物品无法与其他物品交换或彼此替代,而同质化物品可以等价互换。我们通常认为货币和商品是同质化的。例如,任何一张美元都可以与其他任何一张美元兑换(假设它们都没有被损坏)。如果我某天将一张 100 美元钞票存入银行,然后一周后取出 100 美元,我并不需要拿回原来那张钞票。美元是同质化的,石油这样的商品也是如此。在没有损坏的情况下,任何一桶石油都与其他任何一桶相同,我对于任何特定的一桶石油并没有特别的兴趣。类似地,加密货币也是同质化的。如果我某一天将 10 个比特币存入 Coinbase 交易所,然后一周后取出,我不会在乎是否收到原先存入的那 10 个比特币,它们完全是同质化的。以太坊上的 ERC-20 代币也是如此,ERC-20 是在以太坊区块链上创建货币或代币的标准。举例来说,我们可能计划创建一个以杏仁为主题的 ERC-20 代币 ALM。每个 ALM 代币都具有相同的性质和价值,因此,无论我向你转账这批还是那批 ALM 代币,都无关紧要。同样的原理适用于在以太坊上建立的其他众多 ERC-20 代币,比如 Shiba Inu(SHIB)或美元稳定币(USDC)或 West Ham (HAM)。
非同质化物品是独一无二的,一个 NFT 的具体性至关重要。可以从两个方面来理解这种独特性。首先,非同质化的独特性可能意味着该物品只有一个。比如《蒙娜丽莎》就是一件非同质化物品,只有一幅,无法与其他物品一对一交换。《蒙娜丽莎》是“独一无二”的,参加 EthCC 巴黎大会的人可能会特意前往观赏。而非同质化的第二个意义是指在更广泛范围内的独特性。比如,如果我想去贾斯汀·比伯的演唱会,我需要购买一张门票,但并非所有的门票都是等同的。可能有 5 万张门票售出,但其中一些具有独特特点:有些可能更靠近舞台,有些可能更远离舞台等等。它们虽然都是贾斯汀·比伯的门票,但我并不认为它们是一模一样的。再比如,一条街上的房屋。虽然都是房屋,属于同一类别,但在这个类别中他们各有特点。比如一栋房子的花园朝南,阳光更充足;另一栋房子可能被前任业主粉刷成不寻常的颜色。它们都是同一条街上的房屋,但它们的独特特征使它们彼此区分开来,某些房子可能比其他房子更有价值。
ERC-721 是在以太坊区块链上创建非同质化代币的标准。在以太坊社区中,NFT 和 ERC-721 通常是可以互换使用的术语。我们再来探讨 ERC-721 在头像项目(PFP)中的运用,这是它最常见的用途之一,但请记住,还有很多其他潜在用例。”一万个 PFP”这一概念源自加密朋克(Cryptopunks)项目,该项目于 2017 年 6 月由 Matt Hall 和 John Watkinson 以 Larva Labs 公司的名义创建。这些朋克们是简单的 24x24 像素图像,通过自动化脚本按照程序生成。需要注意的是,这一步并不涉及以太坊区块链,但可能会使用 Python 脚本来生成实际的图像。加密朋克脚本逻辑的设计是将各种特征(如莫霍克式发型、眼罩、红发等)组合成一个具有朋克特色的简单像素化头像图像。重要的是,该脚本还确定了某些特征的常见度和稀有度。例如,只有 9 个朋克采用外星人风格,这使得它们异常稀有。加密朋克先于 ERC-721 标准出现,但它们的流行程度真正凸显了对一个通用标准的需求。否则,每个项目都需要自定义智能合约和代币类型,但这将增加与市场的互操作性难度。于是,到 2018 年 1 月,一群以太坊爱好者——William Entriken, Dieter Shirley, Jacob Evans 和 Nastassia Sachs——发布了他们的非同质化代币标准 ERC-721 [1]。
ERC-721 PFP 智能合约的设计目标如下:a. 设定启动参数,包括创建日期和 NFT 的初始成本。b. 提供项目信息,例如项目名称、物品稀缺性或图像和元数据的位置。c. 提供用户可调用的函数。d. 在 NFT 发行后,确定用户与 NFT 之间的映射关系(哪些 EOA 用户账户拥有哪些 NFT)。
为了实现这些,一个 ERC-721 智能合约由一系列函数组成。函数是智能合约中执行特定任务的代码片段,任何想要与智能合约进行交互的 EOA 都可以调用这些函数。例如,当项目启动时,你可以调用函数 name,它将返回一个存储的文本片段(一个字符串),其中包含 Bored Ape Yacht Club 的名称。或者,你可以调以函数 totalSupply,它将返回一个数字,告诉你当前存在的无聊猿的总数量(返回值是为无符号整数 unit256)。然而,在这些情况下,我们实际上只是从以太坊上的智能合约账户中提取信息,更具影响力的函数是那些引起状态转换或更改以太坊世界计算机状态的函数。例如,当 BAYC 发布时,EOA 可以通过调用智能合约中的 mintApe 函数来创建一只无聊猿。此交易需要 EOA 发送 0.08 ETH 作为铸造费用。如果交易正当,生成的 NFT 将被转移到我的 EOA 钱包中,我现在拥有了一只无聊猿 NFT!一旦 NFT 被铸造,它就处于 EOA 的控制之下,EOA 可以选择将代币转移给其他人,或在市场上进行出售。在初始铸造结束后,大多数 NFT 智能合约会对当前 NFT 所有权进行索引,或授权市场代表 EOA 出售 NFT。
你可能会问,NFT 究竟是什么?如果我们查看 ERC-721 智能合约,会看到用户可以调用的函数列表。在这些函数中,我们可以看到一些术语,它们指出了 NFT 的重要属性。
TokenId:TokenId 是用来识别特定 NFT 的数字编号。
TokenURI: TokenURI 是指向与 TokenId 相关的元数据和图像位置的链接。URI 代表统一资源标识符(Uniform Resource Identifier),类似于URL 链接。
元数据(Metadata):实际的元数据(例如特征)包括 TokenURI 指向的图片。这些元数据通常存储在链外,最常见的存储选择是点对点(P2P)的星际文件系统(IPFS)存储协议或专为存储定制的区块链,比如 Arweave。不过,如果发现链接指向亚马逊网络服务(AWS),你也无需感到意外。
NFT 是这三个属性的组合:独特的参考编号(TokenId)、链上存储的元数据链接(TokenURI)以及通常存储在链外的实际元数据(Metadata)。即: TokenId + TokenURI + metadata = NFT。在某些情况下,但并非所有情况,这些数据经过哈希处理后,形成所谓的溯源记录(Provenance record)。溯源记录是由项目中各个独立 NFT 的哈希值集合而成的单一哈希值。这有用处,因为如果项目所有者决定篡改元数据,那么溯源哈希将随之改变。
让我们以一个例子来说明。到目前为止,ERC-721 代币标准在 NFT 领域最受欢迎的应用是“一万个 PFP”集合。无聊猿游艇俱乐部(Bored Ape Yacht Club, BAYC)集合(于 2021 年 4 月推出)将 PFP 模型带进了主流视野。BAYC 由 Greg Solano(化名 Gargamel)和 Wylie Aronow(化名 Gordon Goner)在 Yuga Labs 公司名下创建 [2]。无聊猿与加密朋克类似,是经过程序生成的,但是它以原创艺术作品为基础。它们的核心理念也相似,无聊猿拥有独特的特征,一些特征相对普遍,而另一些则相当稀有。智能合约采用了广泛使用的 ERC-721 模板,并进行了一些修改。每个无聊猿都有一个代币标识符(TokenID)和一个代币 URI(TokenURI),后者指向存储在 IPFS 上的元数据,其中包含图像信息。溯源记录是一个长表格,包括每个独立 NFT 的重要信息:序列位置、TokenID、TokenURI 和 IPFS 链接。合约包含了你所需的所有核心信息:项目名称、标识、无聊猿的数量等。在销售过程中,合约设定每个无聊猿的发行价格是 0.08 ETH,并随机确定铸造哪个具体作品、以及铸造时间 [3]。项目共为创建者保留了 30 个无聊猿,一旦所有无聊猿售出,BAYC 智能合约将追踪无聊猿在以太坊账户之间的转移,并授予在市场上进行出售的权限。BAYC 智能合约规定,未来在市场上销售无聊猿时,需要支付销售金额的 2.5% 作为交易手续费,这为 Yuga Labs 提供了一种收入来源。
NFT 市场汇集了 NFT 集合和希望互相交易的收藏者。连接到 NFT 市场的 EOA 用户账户可以在市场上列出并出售他们的 NFT,也可以浏览并购买其他人的 NFT。市场从 NFT 项目的智能合约中提取收藏信息,并以易于理解的方式展示给用户,通常包括从 TokenURI 中提取的元数据,比如图片。多年来,Opensea 一直是最受欢迎的 NFT 市场,但近年来一些新兴的竞争对手(如 Blur 和 X2Y2)正在逐渐挑战 OpenSea 的市场份额。市场通常会向卖家收取一定比例的销售费用,比如 Opensea 收取 2.5% 的手续费。需要强调的是,我们讨论的是 NFT 的创建和销售的普遍模式。不同市场的收费结构各不相同,包括是否支付创作者版税。
BAYC 没有进行版权登记,但据了解,它拥有 BAYC 知识产权(IP)的版权。BAYC 授予无聊猿所有者使用 NFT 的商业权利。“无聊猿”持有者可以制作 T 恤衫或开设以“无聊猿”为主题的酒吧(这两种情况都曾发生过)。如果你打算成为一名严肃的 NFT 收藏者,那么了解购买 NFT 可能会获得哪些权利是非常重要的。有些相当严格,有些相当开放。
NFT 的法律地位存在很多争议,知识产权(Intellectual Property, IP)是最常见的问题。知识产权涉及多个方面,我们预计未来几年会出现许多有趣的 NFT 法律案例。需要了解的第一个维度是版权。版权与原创性、创意性和人类著作权有关。例如,BAYC 是一个独创性很强的概念,它的基础艺术作品、生成脚本和智能合约的创建背后都有人类的努力。有趣的是,版权(Copyright)不同于版权注册(Copyright registration)。当一个新颖而有创意的项目推出时,版权会自动确立。版权注册是美国特有的程序,有助于在美国内确保版权受到保护,但不注册并不意味着没有版权。虽然 BAYC 没有进行版权注册,但人们普遍认为它拥有 BAYC 知识产权的版权。BAYC 授予“无聊猿”持有者商业使用该 NFT 的权利,可以制作 T 恤或者开设相关主题酒吧(这两种情况都已经发生过)。如果你打算成为一名认真的 NFT 收藏家,那么理解拥有特定 NFT 可能赋予你的权利就非常重要,一些可能非常严格,而另一些可能非常灵活。
[1] ERC-721 标准的制定在一定程度上受到了 2017 年 12 月推出的 CryptoKitties NFT 集合的影响。
[2] 值得注意的是,加密朋克(Larva Labs)和 BAYC(Yuga Labs)是由传统公司开发的 NFT 集合。事实上,Yuga Labs 在 2022 年从 Larva Labs 手中收购了加密朋克的知识产权。尽管有许多个人或社区创作的 NFT 项目,但也有很多由传统公司开发的项目。
[3] 至少在理论上是这样。但最终这一计划并未实际执行!尽管这确实是其最初的意图。

编译丨岁岁
编辑 & 排版丨Soleil
本期文章由 LXDAO 翻译小组成员:岁岁翻译,跳校对。本书是 Absolute Essentials of Ethereum,作者是 Paul Dylan-Ennis。我们鼓励您仅将本翻译内容用于学习交流,如有途径和资源,请支持原版书籍。
英语学习-翻译小组:由 Guider 精选优质 Web3 内容,通过翻译第一手原文资料快速了解 Web3 行业基础概念、第一原则与相关资讯,同时主动学习英语。欢迎加入我们一起同行与共建!
本书为 Absolute Essentials of Ethereum(以太坊指南),作者:Paul Dylan-Ennis,全书共分为八个
本书目录:
赠言
前言与致谢
第一章 介绍以太坊
第二章 以太坊 · 执行层
第三章 以太坊 · 共识层
第四章 以太坊治理和文化
第五章 去中心化自治组织(DAO)
第六章 DeFi 去中心金融
第七章 非同质化代币(NFTs)
第八章 以太坊二层网络和路线图
收尾
术语
本期内容是该书籍的第七章内容:「非同质化代币(NFTs)」,约 4800 字,预计阅读时间需要 20 分钟
前六章内容可见:
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(二)
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(三)
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(四)
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(五)
以太坊新手快速入门:一本书教你从0到1构建好你的以太坊知识体系(六)
非同质化代币(Non-Fungible Tokens, NFTs)是区块链上代表独特资产的数字代币。在区块链领域,NFT 被视作是将资产所有权转让给特定的外部账户(EOA),即以太坊用户账户。NFT 可以作为单个项目或者集合中的个体项目创建。NFT 集合的业务逻辑由智能合约确定。开发者将集合部署到以太坊区块链上,创建一个合约账户,任何以太坊 EOA 都能与之交互。在实践中,NFT 通常被编码的代币,附带有指向外部元数据的链接或指针,比如一张图片或一组特征。这些元数据通常不存储在以太坊区块链上,因为在以太坊上存储数据可能成本高昂。理论上,NFT 可以代表任何类型的资产,但在实践中主要应用于一组受欢迎的用例。具体如下:
· 收藏品,尤其是头像(Profile Picture,PFP)。
· 艺术家个体创作的独特艺术作品。
· 游戏物品,尤其是在元宇宙中。
· 品牌商品,例如积分卡或粉丝通行证。
从文化角度来看,NFT 收藏者通常是热衷于收集独特或稀有物品的爱好者,有些类似收藏宝可梦卡片或电影纪念品的人。但这并不意味着 NFT 玩家对以太坊的价值或其基础设施的运作方式一无所知。事实上,NFT 用户通常是以太坊社区中最务实的成员之一,他们非常熟悉数字钱包的复杂性,包括管理私钥或直接从智能合约中创建 NFT。然而,NFT 领域也受到网络黑客的影响,他们主要针对新手散户,尤其是通过社交工程手段,同时,市场上充斥劣质的 NFT 项目。就像在跳蚤市场上收藏古董的新手需要谨慎辨别优劣一样,新手 NFT 收藏者也需要保持警惕,以筛选出真正有价值的项目。通常情况下(但不总是),NFT 包含两个主要组成部分。首先是技术组件,即 NFT 智能合约,通常基于 ERC-721 标准。其次是金融组件,特别是 NFT 市场所扮演的核心角色,也涉及传统商业关注的问题,如品牌和版权。
非同质化意味着某个物品无法与其他物品交换或彼此替代,而同质化物品可以等价互换。我们通常认为货币和商品是同质化的。例如,任何一张美元都可以与其他任何一张美元兑换(假设它们都没有被损坏)。如果我某天将一张 100 美元钞票存入银行,然后一周后取出 100 美元,我并不需要拿回原来那张钞票。美元是同质化的,石油这样的商品也是如此。在没有损坏的情况下,任何一桶石油都与其他任何一桶相同,我对于任何特定的一桶石油并没有特别的兴趣。类似地,加密货币也是同质化的。如果我某一天将 10 个比特币存入 Coinbase 交易所,然后一周后取出,我不会在乎是否收到原先存入的那 10 个比特币,它们完全是同质化的。以太坊上的 ERC-20 代币也是如此,ERC-20 是在以太坊区块链上创建货币或代币的标准。举例来说,我们可能计划创建一个以杏仁为主题的 ERC-20 代币 ALM。每个 ALM 代币都具有相同的性质和价值,因此,无论我向你转账这批还是那批 ALM 代币,都无关紧要。同样的原理适用于在以太坊上建立的其他众多 ERC-20 代币,比如 Shiba Inu(SHIB)或美元稳定币(USDC)或 West Ham (HAM)。
非同质化物品是独一无二的,一个 NFT 的具体性至关重要。可以从两个方面来理解这种独特性。首先,非同质化的独特性可能意味着该物品只有一个。比如《蒙娜丽莎》就是一件非同质化物品,只有一幅,无法与其他物品一对一交换。《蒙娜丽莎》是“独一无二”的,参加 EthCC 巴黎大会的人可能会特意前往观赏。而非同质化的第二个意义是指在更广泛范围内的独特性。比如,如果我想去贾斯汀·比伯的演唱会,我需要购买一张门票,但并非所有的门票都是等同的。可能有 5 万张门票售出,但其中一些具有独特特点:有些可能更靠近舞台,有些可能更远离舞台等等。它们虽然都是贾斯汀·比伯的门票,但我并不认为它们是一模一样的。再比如,一条街上的房屋。虽然都是房屋,属于同一类别,但在这个类别中他们各有特点。比如一栋房子的花园朝南,阳光更充足;另一栋房子可能被前任业主粉刷成不寻常的颜色。它们都是同一条街上的房屋,但它们的独特特征使它们彼此区分开来,某些房子可能比其他房子更有价值。
ERC-721 是在以太坊区块链上创建非同质化代币的标准。在以太坊社区中,NFT 和 ERC-721 通常是可以互换使用的术语。我们再来探讨 ERC-721 在头像项目(PFP)中的运用,这是它最常见的用途之一,但请记住,还有很多其他潜在用例。”一万个 PFP”这一概念源自加密朋克(Cryptopunks)项目,该项目于 2017 年 6 月由 Matt Hall 和 John Watkinson 以 Larva Labs 公司的名义创建。这些朋克们是简单的 24x24 像素图像,通过自动化脚本按照程序生成。需要注意的是,这一步并不涉及以太坊区块链,但可能会使用 Python 脚本来生成实际的图像。加密朋克脚本逻辑的设计是将各种特征(如莫霍克式发型、眼罩、红发等)组合成一个具有朋克特色的简单像素化头像图像。重要的是,该脚本还确定了某些特征的常见度和稀有度。例如,只有 9 个朋克采用外星人风格,这使得它们异常稀有。加密朋克先于 ERC-721 标准出现,但它们的流行程度真正凸显了对一个通用标准的需求。否则,每个项目都需要自定义智能合约和代币类型,但这将增加与市场的互操作性难度。于是,到 2018 年 1 月,一群以太坊爱好者——William Entriken, Dieter Shirley, Jacob Evans 和 Nastassia Sachs——发布了他们的非同质化代币标准 ERC-721 [1]。
ERC-721 PFP 智能合约的设计目标如下:a. 设定启动参数,包括创建日期和 NFT 的初始成本。b. 提供项目信息,例如项目名称、物品稀缺性或图像和元数据的位置。c. 提供用户可调用的函数。d. 在 NFT 发行后,确定用户与 NFT 之间的映射关系(哪些 EOA 用户账户拥有哪些 NFT)。
为了实现这些,一个 ERC-721 智能合约由一系列函数组成。函数是智能合约中执行特定任务的代码片段,任何想要与智能合约进行交互的 EOA 都可以调用这些函数。例如,当项目启动时,你可以调用函数 name,它将返回一个存储的文本片段(一个字符串),其中包含 Bored Ape Yacht Club 的名称。或者,你可以调以函数 totalSupply,它将返回一个数字,告诉你当前存在的无聊猿的总数量(返回值是为无符号整数 unit256)。然而,在这些情况下,我们实际上只是从以太坊上的智能合约账户中提取信息,更具影响力的函数是那些引起状态转换或更改以太坊世界计算机状态的函数。例如,当 BAYC 发布时,EOA 可以通过调用智能合约中的 mintApe 函数来创建一只无聊猿。此交易需要 EOA 发送 0.08 ETH 作为铸造费用。如果交易正当,生成的 NFT 将被转移到我的 EOA 钱包中,我现在拥有了一只无聊猿 NFT!一旦 NFT 被铸造,它就处于 EOA 的控制之下,EOA 可以选择将代币转移给其他人,或在市场上进行出售。在初始铸造结束后,大多数 NFT 智能合约会对当前 NFT 所有权进行索引,或授权市场代表 EOA 出售 NFT。
你可能会问,NFT 究竟是什么?如果我们查看 ERC-721 智能合约,会看到用户可以调用的函数列表。在这些函数中,我们可以看到一些术语,它们指出了 NFT 的重要属性。
TokenId:TokenId 是用来识别特定 NFT 的数字编号。
TokenURI: TokenURI 是指向与 TokenId 相关的元数据和图像位置的链接。URI 代表统一资源标识符(Uniform Resource Identifier),类似于URL 链接。
元数据(Metadata):实际的元数据(例如特征)包括 TokenURI 指向的图片。这些元数据通常存储在链外,最常见的存储选择是点对点(P2P)的星际文件系统(IPFS)存储协议或专为存储定制的区块链,比如 Arweave。不过,如果发现链接指向亚马逊网络服务(AWS),你也无需感到意外。
NFT 是这三个属性的组合:独特的参考编号(TokenId)、链上存储的元数据链接(TokenURI)以及通常存储在链外的实际元数据(Metadata)。即: TokenId + TokenURI + metadata = NFT。在某些情况下,但并非所有情况,这些数据经过哈希处理后,形成所谓的溯源记录(Provenance record)。溯源记录是由项目中各个独立 NFT 的哈希值集合而成的单一哈希值。这有用处,因为如果项目所有者决定篡改元数据,那么溯源哈希将随之改变。
让我们以一个例子来说明。到目前为止,ERC-721 代币标准在 NFT 领域最受欢迎的应用是“一万个 PFP”集合。无聊猿游艇俱乐部(Bored Ape Yacht Club, BAYC)集合(于 2021 年 4 月推出)将 PFP 模型带进了主流视野。BAYC 由 Greg Solano(化名 Gargamel)和 Wylie Aronow(化名 Gordon Goner)在 Yuga Labs 公司名下创建 [2]。无聊猿与加密朋克类似,是经过程序生成的,但是它以原创艺术作品为基础。它们的核心理念也相似,无聊猿拥有独特的特征,一些特征相对普遍,而另一些则相当稀有。智能合约采用了广泛使用的 ERC-721 模板,并进行了一些修改。每个无聊猿都有一个代币标识符(TokenID)和一个代币 URI(TokenURI),后者指向存储在 IPFS 上的元数据,其中包含图像信息。溯源记录是一个长表格,包括每个独立 NFT 的重要信息:序列位置、TokenID、TokenURI 和 IPFS 链接。合约包含了你所需的所有核心信息:项目名称、标识、无聊猿的数量等。在销售过程中,合约设定每个无聊猿的发行价格是 0.08 ETH,并随机确定铸造哪个具体作品、以及铸造时间 [3]。项目共为创建者保留了 30 个无聊猿,一旦所有无聊猿售出,BAYC 智能合约将追踪无聊猿在以太坊账户之间的转移,并授予在市场上进行出售的权限。BAYC 智能合约规定,未来在市场上销售无聊猿时,需要支付销售金额的 2.5% 作为交易手续费,这为 Yuga Labs 提供了一种收入来源。
NFT 市场汇集了 NFT 集合和希望互相交易的收藏者。连接到 NFT 市场的 EOA 用户账户可以在市场上列出并出售他们的 NFT,也可以浏览并购买其他人的 NFT。市场从 NFT 项目的智能合约中提取收藏信息,并以易于理解的方式展示给用户,通常包括从 TokenURI 中提取的元数据,比如图片。多年来,Opensea 一直是最受欢迎的 NFT 市场,但近年来一些新兴的竞争对手(如 Blur 和 X2Y2)正在逐渐挑战 OpenSea 的市场份额。市场通常会向卖家收取一定比例的销售费用,比如 Opensea 收取 2.5% 的手续费。需要强调的是,我们讨论的是 NFT 的创建和销售的普遍模式。不同市场的收费结构各不相同,包括是否支付创作者版税。
BAYC 没有进行版权登记,但据了解,它拥有 BAYC 知识产权(IP)的版权。BAYC 授予无聊猿所有者使用 NFT 的商业权利。“无聊猿”持有者可以制作 T 恤衫或开设以“无聊猿”为主题的酒吧(这两种情况都曾发生过)。如果你打算成为一名严肃的 NFT 收藏者,那么了解购买 NFT 可能会获得哪些权利是非常重要的。有些相当严格,有些相当开放。
NFT 的法律地位存在很多争议,知识产权(Intellectual Property, IP)是最常见的问题。知识产权涉及多个方面,我们预计未来几年会出现许多有趣的 NFT 法律案例。需要了解的第一个维度是版权。版权与原创性、创意性和人类著作权有关。例如,BAYC 是一个独创性很强的概念,它的基础艺术作品、生成脚本和智能合约的创建背后都有人类的努力。有趣的是,版权(Copyright)不同于版权注册(Copyright registration)。当一个新颖而有创意的项目推出时,版权会自动确立。版权注册是美国特有的程序,有助于在美国内确保版权受到保护,但不注册并不意味着没有版权。虽然 BAYC 没有进行版权注册,但人们普遍认为它拥有 BAYC 知识产权的版权。BAYC 授予“无聊猿”持有者商业使用该 NFT 的权利,可以制作 T 恤或者开设相关主题酒吧(这两种情况都已经发生过)。如果你打算成为一名认真的 NFT 收藏家,那么理解拥有特定 NFT 可能赋予你的权利就非常重要,一些可能非常严格,而另一些可能非常灵活。
[1] ERC-721 标准的制定在一定程度上受到了 2017 年 12 月推出的 CryptoKitties NFT 集合的影响。
[2] 值得注意的是,加密朋克(Larva Labs)和 BAYC(Yuga Labs)是由传统公司开发的 NFT 集合。事实上,Yuga Labs 在 2022 年从 Larva Labs 手中收购了加密朋克的知识产权。尽管有许多个人或社区创作的 NFT 项目,但也有很多由传统公司开发的项目。
[3] 至少在理论上是这样。但最终这一计划并未实际执行!尽管这确实是其最初的意图。
No activity yet