您的位置: > 火币数字货币新闻> 正文

打印本文             

比特币地址类型概说

作者:Anony,BTC Study

用户在接触比特币的时候,往往第一时间就会遇到 “地址” 这个概念。在你尝试收取比特币支付时,就需要提供自己的地址。在区块浏览器中查询支付是否已经到账时,往往也以具体的地址为搜索条件。

你可能会以为:“地址就相当于比特币世界里的银行账号,可以用来接收比特币”。但这种理解,在面对钱包使用过程中的一些情形时,可能还是会让你犯迷糊。比如说:在初次使用一款比特币软件钱包时,它可能会请你选择一种地址 “类型”,如:“Bech32(SegWit)”、“P2PKH”、“Nested-SegWit(P2SH)” 等等。甚至,在你要换用另一款软件钱包时,它也会给你惊吓:新的软件钱包可能会给你一组跟原软件钱包完全不同的比特币地址;这时候,该怎么办呢?

本文就是要对比特币的地址概念和地址类型作稍微深入一些的解释,以帮助读者解决在自主保管比特币的过程中可能遇到的一些问题,包括但不限于地址类型的选择以及软件钱包迁移过程中会发生的困扰。

最末一个章节会集中描述读者可能接触到的不同地址的特征和经济性;如果你对技术细节完全不感兴趣,或只是想快速查证资料,可以跳到最后一个章节;但如果你希望规划自主保管的方法,则推荐你从头读起。

要而言之,比特币地址实际上是用于标准化的比特币脚本的关键数据在经过特殊编码(转译)之后结果;特殊的编码方法使之更适合于传递,并且提供了提醒错误的能力;而其经济性的区别就来自于其底层的比特币脚本在经济性上的区别。

标准化的比特币脚本

众所周知,比特币是一种运行在点对对网络中的电子货币。在开发比特币时,中本聪为这种货币设计了一种后来被称为 “UTXO” 的存在形式。这种形式使得比特币资金不太像放在一个又一个账户里的钱,倒像是一笔又一笔相互独立的支票。这些 “支票” 记录了两种关键信息:该笔资金的面额(以“聪(sat)” 为单位);脚本公钥(scriptPubkey),用来定义这笔钱在什么情况下可以被花费。脚本公钥就像一种锁,要求特定的钥匙来开启。

中本聪意识到,如果我们可以定制巧妙的锁,比特币就可以更灵活地用在不同场景中。于是,他还设计了一种叫做 “Bitcoin Script” 的编程语言,以及基于 UTXO 的交易验证模式;从而,我们可以编写用作脚本公钥的程序,并且,当相关的资金被花费时,可以依据这样的程序得到验证。

这种创新带来了一个实际的困难:交易在点对点网络中传播时,接收到交易的节点会先运行一些验证工作。如果这种编程语言和编程有内在的漏洞,可以让节点在验证交易的过程中就崩溃,那么,能够利用这种漏洞的交易就可以被用来摧毁整个网络。在交易的自由传播和网络的安全性之间,如何取得平衡呢?

除了有意限制 Bitcoin Script 的灵活性,中本聪还想出了一种办法:将一些已知足够简洁、不会触发故障的脚本定义为 “标准化的比特币脚本” [1];在花费使用这样的脚本的资金时,交易被当作 “标准的比特币交易”,可以在网络中无碍传播。反之,如果不使用这样的标准化脚本,即使交易是有效的,也只能直接提交给矿工,由矿工打包进区块并挖出之后,再传播到整个网络。这就限制了可能引发安全问题的交易在网络中传播、导致节点崩溃。

最早被实现的标准化比特币脚本有两种:“P2PKH” 和 “P2PK”;顾名思义,它们是在脚本公钥中放置一个公钥(或者一个公钥的哈希值),要求花费资金的交易提供该公钥(背后的私钥)的签名。

一个 P2PKH 脚本公钥是这样的:

OP_DUP OP_HASH160 55ae51684c43435da751ac8d2173b2652eb64105 OP_EQUALVERIFY OP_CHECKSIG

(来自著名的比特币科普网站:learn me a bitcoin)

地址的概念

标准化的脚本让比特币系统具备了基本的功能(个人可以通过持有私钥来保管比特币、向他人发起电子货币支付)。但是,它依然是一种为计算机而设计的数据 —— 要理解这些字符串的主体是计算机。计算机对字符串的长度并不敏感,也不会在复制数据的过程中出错。而人在许多方面都相反。

问题在于,人作为这个系统的使用者,确实要跟这些数据打交道:当一个人接收比特币支付的时候,TA 所要求的是对方将一笔比特币资金发送到由 TA 控制(或者说 TA 可以成功解锁)的一段比特币脚本中;此外,当 TA 要长期保管自己的资金的时候,TA 可能要备份自己的比特币脚本。

这时候该怎么办呢?像上面那样长长的字符串,显然既不适于传递(太长了),也不适于备份(容易抄错)。

前面我们已经提到,对大部分人都实用的脚本都是标准化的,这种标准化意味着,两个脚本仅在其中一处关键数据上有所区别:对两个 P2PKH 脚本来说,它们唯一的区别就是所记录的公钥哈希值不同。因此,在收款时,我们只需提供这个哈希值、以及脚本的类型(它是个 P2PKH 脚本),就足够了。支付方(的软件)会根据这些信息复原出完整的比特币脚本,从而在交易中将比特币发送到正确的地方。

而且,(谙熟工程学的中本聪意识到),我们可以不传递这个哈希值的十六进制形式(55ae51684c43435da751ac8d2173b2652eb64105,40 位字符)。借助专门设计的编码方法,我们可以将它转换为更短、更容易正确辨认的形式。

这就是 “地址”:经过编码、携带了关键信息、使我们可以正确复原出比特币脚本的数据。

编码方法

Base58

“Base58” [2] 是由中本聪发明的编码方法,是从一种著名的编码方法 “Base64” 改造而来。Base64 的字符集包括:所有的数字和大小写字母,还有两种符号(“ ” 和 “/”);总计 64 种字符。而中本聪从中删去了数字 0、大写字母 I 和 O、小写字母 l 以及符号,就成了 Base58。

这种删减是有考虑的。中本聪的自述是:

为什么要使用 base58 而不是 base64 呢?

  • 不使用 0OIl 是因为这些字符看起来很像,可以用来创建出看起来几乎一模一样的账号。

  • 人们不容易接受账号中会有字母和数字以外的字符。

  • 不使用标点符号的话,在 E-mail 中通常就不会被换行打断。

  • 双击就可以选定整个字符串,因为只有字母和数字。

– 中本聪,Bitcoin v0.1 (base58.h)

地址是要被复原成比特币脚本的,因此,只要一个字符错误,资金就有可能被发送到完全不一样的比特币脚本(可能是完全无法解锁的脚本!)中、导致资金损失;甚至,如果允许使用这样容易造成混淆的字符,恶意软件可以将你的地址悄悄替换成看起来相似、但实际上由攻击者控制的地址,让你在接收支付时丢失资金。

因此,中本聪的考虑是完全有道理的。

在执行 Base58 编码之前,我们还要给关键数据(比如上述 P2PKH 脚本中的哈希值)加上类型码作为前缀、并以带前缀的关键数据的连续两次 SHA256 运算结果的前 4 个字节作为后缀。

  • 前缀可以迅速说明数据的类型和用途;也正因为添加了前缀,同一类型的数据在经过 Base58 编码的结果中,总是会出现相同的开头。这就是为什么我们只需看一个比特币地址的开头,就知道它是什么类型的地址。

  • 后缀则可以起到校验和的作用:如果你向软件输入了一个有抄写错误的地址,软件会提醒你可能出错了(尽管无法指明是哪里抄错了)。

即,在开始编码前,我们要构造出这样的字符串:

类型码   关键数据   SHA256(SHA256(类型码   关键数据))[0:4](这里的 “ ” 是字符串拼接的意思)

以上面的 P2PKH 脚本为例,我们先要给关键数据(55ae51684c43435da751ac8d2173b2652eb64105)加上前缀 00;然后对此数据运行连续两次 SHA256 计算,取前 4 个字节(十六进制的 8 个字符,96ab3cb1),作为后缀,得到 0055ae51684c43435da751ac8d2173b2652eb6410596ab3cb1。最后,运行 Base58 编码,得到:18p3G8gQ3oKy4U9EqnWs7UZswdqAMhE3r8

这段字符串,既包含了用在比特币脚本中的关键信息(公钥哈希值)、又能说明它该如何使用(前缀 1 表示应该将它复原成一个 P2PKH 脚本)、还具备检测抄写错误的功能,依然只有 34 个字符,比原先的哈希值还要短。

Bech32

“Bech32” 是由 BIP 0173 [3] 定义的编码方法,该 BIP 的两位作者是 Pieter Wuille 和 Greg Maxwell 。不过,这种编码也有自身的源流:“Bech” 指的是 “BCH” [4],是一种由三位数学家分别在 1959 和 1960 年发明的循环纠错编码算法(BCH 这个名字就来自于这三位数学家的姓氏)。而 “32” 则表示,该编码法的字符集只有 32 种字符:小写的英文字母和数字,除去数字 “1”、字母“b”、“i”和“o”。

该 BIP 的考虑是,借着 “隔离见证(SegWit)” 升级的机会,为两种全新的标准化脚本 “P2WPKH” 和 “P2WSH” 的地址使用新的编码方法。

在 BIP 0173 的开头,作者们指出了 Base58 的不理想之处:

  • Base58 同时使用大小和小写的英文字母,这使得其数据在绘制成二维码时,无法使用体积更小的 “数字字母表” 模式,只能使用体积更大的 “字节数据” 模式。

  • 同时使用大小写也使得它不便于抄写、在手机键盘上输入以及念出来。

  • 校验和需要连续两次 SHA256 运算,运算缓慢,而且没有定位错误的功能。

  • 大部分可定位错误的编码方法都只适用于字符集大小是质数幂的情形,而 58 并非质数幂。

  • Base58 的解码较为复杂,运算也较慢。

于是,Bech32 这种新方法只使用小写字母和数字;在有需要的时候(比如绘制二维码的时候),这些字母可以全部换成大写,从而获得更紧凑的表现形式。同时,Bech32 还具备定位错误的能力:它不仅能发现你抄写错误了,还能指出你的哪几位抄错了(这种发现错误的能力远远优于 Base58)。

实际上,BCH 算法还具有 “纠错” 功能:它不仅能指出你的哪几位抄错了,还能指出它应该是什么字符。然而,BIP 0173 的作者们发现了它内在的危险性:一方面,强化纠错功能会削弱定位错误的功能;另一方面,如果用户过于信任软件的纠错能力,那么软件就有可能将用户输入的错误数据纠正成一个 “有效但无用” 的数据 —— 虽然作为一段 BCH 编码数据,它是有效的了;但是,凭借它复原出来的比特币脚本却有可能不是收款方能够控制的、甚至不是任何人能够控制的。这是极其危险的。因此,BIP 0173 慎重提醒:“除了提醒用户哪几位可能抄错了之外,软件不应该实现纠错能力(给出纠正建议)。”

除此之外,Bech32 沿用了 Base58 编码中的模式:

  • Bech32 数据的开头会有一段 “带有含义的数据(hrp)”,就类似于 Base58 中的前缀,可以说明这是一段什么样的数据。

    • hrp 可以使用的字符远远多于 32 个;于是,Bech32 还将数字 “1” 作为分隔符,用来分割 hrp 和真正要被解码的数据。

    • 除了比特币,还有许多别的项目也采用了 Bech32 ;不同项目的数据就使用 hrp 来相互区别。这里有一份已注册的 hrp 的列表,非常有趣(但也仅仅是有趣) [5]。

  • Bech32 也设计了校验和,占据编码后的数据的最后 6 个字符。

假设我们跟上文的案例一样,使用完全相同的公钥哈希值,它的 P2WPKH 脚本会是这样的:0 55ae51684c43435da751ac8d2173b2652eb64105(没错,比原来的 P2PKH 要更简单、更抽象);而其 Bech32 编码的地址是:bc1q2kh9z6zvgdp4mf634jxjzuajv5htvsg9ulykp8,长度是 42 个字符。

Bech32m

“Bech32m” 是由 BIP 0350 [6] 定义的编码方法。它的提出是因为开发者们在 Bech32 编码中发现了一个漏洞:

当最后一个字符是 “p” 的时候,在该字符前面插入或删除任意数量个 “q”,都不会导致校验和报错,那么校验和机制就完全失去作用了。

如果不再增设标准化的比特币脚本,这问题很容易解决:P2WPKH 地址和 P2WSH 地址都有确定的长度,增加长度校验就好。然而,考虑到未来我们还会增加新的标准化脚本,其地址长度可能发生改变,就有必要修复这个问题。

Bech32m 通过改变 Bech32 校验和生成程序中的一个参数,修复了这个问题。

当前,Bech32m 仅用于编码随 “Taproot” 升级而增加的 “P2TR” 脚本的地址。未来可能用在其它标准化脚本的地址编码中。

经济性

在我们理解了地址是一个标准化的比特币脚本的特殊表现形式、地址的类型实际上来自于标准化比特币脚本的类型之后,不同类型的地址何以具有不同的经济性 —— 在花费时可能具有不同的手续费代价 —— 的问题也就迎刃而解。这是因为不同的比特币脚本具有不同的经济性。

为了维持网络的去中心化和安全性,比特币的区块大小是有限制的,能让交易体积更小的脚本就有了经济性上的优势。

在这一方面,带来最大变化的当属 2017 年激活的 “隔离见证(SegWit)” 软分叉。隔离见证在带来两种新的标准化脚本 “P2WPKH” 和 “P2WSH” 的同时,也为这两种脚本设计了全新的交易验证模式:

在传统(Legacy)的比特币脚本中,用于通过脚本公钥所定义的验证程序的数据(比如数字签名)会被放在交易(scriptSignature 字段)中;这就带来了所谓的 “交易熔融性” 问题 [7],阻碍了我们用比特币脚本编程多方参与的应用,甚至会让钱包完全无法跟踪交易。

而隔离见证的交易验证模式,会将这部分数据放在交易之外(witness 字段);而且,隔离见证引入了一种新的度量体积的单位(“virtual byte(vByte)”),放在 witness 字段中的数据,在度量体积时会得到折扣(这是有意的设计,为了让隔离见证的交易具备比传统交易更好的经济性)。

最终的结果是,隔离见证类型的脚本 P2WPKH 和 P2WSH 相比传统脚本 P2PKH 和 P2SH,具有显著更好的经济性:一方面,隔离见证脚本的脚本公钥更简洁;另一方面,传统脚本的签名放在交易中,隔离见证脚本的签名放在交易外,即使数据体积相同,后者的 vByte 也更小。

这里有一张表格,可以说明不同类型的脚本在作为交易的输入和输出时,会占据多大的体积。

s9gFgaqN47o1CioUt3eIwKmwQNATpK3jI2gLjyu6.jpeg

- 图片来自:Optech 限定周刊·等待确认 -

然后,这里还有一个交易体积计算器,可以告诉你不同数量的某一类型脚本会造成多大体积的交易。

注意:在考虑经济性时,不能只比较脚本在作为输入时候的体积,因为,一般来说比特币交易都会有 “找零输出”(你为交易提供的资金数量往往大于支付额,因此会把一些钱转回给自己)。找零输出通常会使用跟本钱包收款地址相同的类型的脚本。

地址类型

本章节将介绍用户可能会接触到的不同类型的地址的特征和经济性。

P2PKH

  • 使用 Base58 编码法。以数字 “1” 开头,长度一般是 34 个字符。

  • 用于单签名钱包。

  • 经济性较差。

  • 例子(同上文):18p3G8gQ3oKy4U9EqnWs7UZswdqAMhE3r8

P2SH

  • 使用 Base58 编码法。以数字 “3” 开头,长度一般是 34 个字符。

  • 用户最常接触到的 P2SH 地址实际上是一种被称作 “Nested SegWit(P2SH)” 的脚本的地址,这个名字的意思是 “封装了隔离见证脚本的 P2SH 脚本”。

    • 能够实现这种封装是 P2SH 本身的能耐,但定义这种封装的根本目的是应对钱包软件的兼容性问题。由于隔离见证的地址使用了全新的编码方法,不实现新方法的钱包软件会将隔离见证地址识别为错误输入、无法从中复原出有效的比特币脚本。Nested SegWit P2SH 脚本则提供了一种恰当的折中:支付者的钱包(不论升不升级)都会将这样的地址理解为普通的 P2SH 地址,然后复原出一个 P2SH 脚本、正确构造交易;接收者的后续花费资金时,又可以(凭借支持隔离见证的钱包软件)获得一部分由隔离见证带来的好处。

  • 在同为单签名钱包时,经济性比 P2PKH 更好。

  • 可用于多签名钱包(不论是否使用隔离见证特性)。

  • 例子:38Y2PBD1mihxtoVncaSz3oC2vRrjNF8sA2(这个 P2SH 脚本封装了跟上文一样的 P2PKH 脚本,尽管这没有什么好处)

  • 用于单签名钱包。

  • 经济性显著好于 P2PKH,也好于 Nested SegWit P2SH。

  • 例子(同上文):bc1q2kh9z6zvgdp4mf634jxjzuajv5htvsg9ulykp8

  • P2WSH

    • 原生的隔离见证脚本。使用 Bech32 编码法,以数字和字母 “bc1q” 开头,长度是 62 个字符。

    • 通常用于多签名钱包。

    • 作为多签名钱包时,经济性显著好于 P2SH。

    • 例子:bc1q56cuwyqlmq64aq0y3c8swd8a9gefe4wf7faxe2uyatyahfrly5aq0e6mfc(这个 P2WSH 脚本封装了跟上文一样的 P2PKH 脚本,尽管这没有什么好处)

    P2TR

    • 原生的隔离见证脚本(Taproot 是 “隔离见证 v1”)。使用 Bech32m 编码法,以 “bc1p” 开头,长度是 62 个字符。

    • 既可用于单签名钱包,又可用于多签名钱包。

    • 作为单签名钱包时,经济性略好于 P2WPKH,但已经几乎没有区别(此处是假设是将一个输入和一个找零输出作为交易的固有开销;使用的输入越多,P2TR 优势越大)。

    • 作为多签名钱包时,借助一些 Schnorr 签名聚合算法的帮助,经济性可以比 P2WSH 还要好。但在本文撰写的时间(2024 年 11 月),钱包软件还很少实现这样的聚合算法,这是因为这些算法在交互上的复杂性。

    • P2TR 与以前的比特币标准脚本的重大区别在于:原来的脚本都会区分单签名钱包用户和高级脚本功能(“智能合约”)的用户,前者会使用公钥哈希值脚本,而后者(包括多签名装置和闪电通道这样的高级装置)会使用赎回脚本哈希值脚本;P2TR 第一次统一了两者,让我们无法从 脚本/地址 的外在形态上直接推测其用途。因此,从长远来看,P2TR 会有更好的隐私性。

    • 目前为止,还不是所有钱包都支持 P2TR 地址(但几乎所有钱包都支持 P2WPKH 和 P2WSH)。用户的选择范围和迁移能力都比较受限。此外,对基于 P2TR 的多签名装置的支持更是少之又少。

    • 例子(随机选出):bc1pxy5r3slcqc2nhc0r5698gmsqwruenj9c8pzmsy5cedp3649wyktstc6z3c

    结语

    一个地址就代表着一个具体的比特币脚本;这样的比特币脚本是标准化的,凭借地址中的信息就可以完整复原出来。使用专门的编码方法,让地址变得更加紧凑,并具备检查抄写错误的功能。而不同地址类型的经济性,就来自于其背后的标准化比特币脚本的经济性。

    附录 A. 描述符

    在 “地址的概念” 一节,我们已经提到,在两个场景中,用户可能需要一种紧凑而可靠的脚本记录:支付(传递)场景和长期保管场景。

    而在 “编码方法” 一节,我们可以看出,这些编码方法的设计主要基于传递过程,而非长期保管场景。那么,在保管场景中,应如何保存地址?

    幸运的是,我们如今有了一种恰当的方法,来表示一组(而非一个)地址,它就是 “输出(地址)描述符(output descriptor)”。

    自比特币诞生、地址的概念出现以来,自主保管的技术和安全习惯都已改进了很多。一个重大的进步是所谓的 “层级确定式(HD)钱包”,其理念是用一段秘密材料按确定式随机算法推导出许多私钥,进而得出许多地址,从而一方面能够满足 “不重复使用地址” 的安全习惯,又能尽可能减少备份私钥的负担。

    描述符也基于这一概念,它的做法是,将地址的类型以及生成这组地址的步骤用明文表示出来,再加上校验和。例如:

    wpkh([8b47f816/84h/0h/0h]xpub6C8vwWQ[...]NgW2SnfL//*)#c38kz2nr

    从上面这段文字中,我们可以看出,它表示的是一组 P2WPKH 地址,而用在这组地址中的公钥,则是从一个指纹为 8b47f816 的主公钥中根据 84h/0h/0h BIP32 派生路径中派生出来的;并且,使用 0 和 1 的派生路径来区分收款地址和找零地址。最后, c38kz2nr 是校验和,可以校验有无抄写错误。

    这样的字符串非常适合长期保管,也非常适合用于钱包迁移,因为它已将生成这组地址的过程完整地描述了。

    脚注

    1. https://en.bitcoin.it/wiki/Script#Script_examples ↩

    2.https://learnmeabitcoin.com/technical/keys/base58/ ↩

    3.https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki ↩

    4.https://en.wikipedia.org/wiki/BCH_code ↩

    5.https://github.com/satoshilabs/slips/blob/master/slip-0173.md ↩

    6.https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki ↩

    7.https://www.btcstudy.org/2022/10/07/segregated-witness-benefits/#修复熔融性问题 ↩

    查看更多

    关于「链抽象」的常见误解

    一、只有尾部的链和应用才需要链抽象,头部不需要

    我们从两个角度论证这种观念的错误之处:

    • 现状并非 「只有头部链和应用有流量」。

    • 未来不可能建立在单链之上,也不会 「只有头部链和应用有流量」。

    目前的多链生态并非 「只有头部链和应用有流量,所以不需要链抽象」。

    需要明确的一点是,C 端用户的社交媒体流量感知与链的实际运营状况之间并不对等。

    1)风头正盛的 Base 链的真正起量始于 3 月,距今也只有 8 个月的历史。从向以太坊提交的 blob 数量看,Base 的优势并非碾压性的。

    2)从 TVL 角度,一些 C 端用户当下感知不明显的 L2,比如 Arbitrum, Mantle 等沉淀了大量的 TVL,而链抽象可以将这部分沉淀的流动性真正利用起来。

    3)从月活角度,Solana 遥遥领先,500 万月活以上的公链共有 9 个, TON 和 Aptos 都超过了 Ethereum。

    4)从费用角度,排名前 5 位的是 Ethereum, Tron, Bitcoin, Solana 和 BNB,就连 10 名开外的 Polygon, Blast, TON, Starknet 一年也可以产生 2000-3000 万美元的费用收入,认为这些链「没有流量」是不合理的。

    面对破碎的多链现状,有两种「去碎片化」思路:

    • 一种认为多链是未来,链抽象帮助解决碎片化问题,让用户在多链之间畅通无阻。

    • 一种认为单链是未来,目前的小碎片之后都会灭亡,应该集中资源发展强势 L1。

    单链未来显然是站不住脚的。

    1)任何单体链的扩容都不可能是无限的。如果你对 Web3 的未来有信心,就不会天真地认为能将整个 Web3 建立在一个状态机上。

    2)不存在完美的链,区块链不可能三角之间总要做权衡,不同链的优势是相对场景而言的。

    3)依赖单一链=集中风险,如果出问题,整个生态系统可能受到严重影响。

    4)单一、集中的生态系统是对创新性的扼杀和去中心化精神的背离。

    未来也不可能「只有头部链和应用有流量,所以不需要链抽象」。

    1)愈发多元的 L2 生态:目前 L2 Beat 收录的 L2 超过了 100 条,待上线的超过 80 条。Unichain, Movement 等也将登场,我们无法预测一年后前三大 L2 的位置是否还和今日一致。

    2)新 EVM L1 的崛起:新兴的并行 EVM L1,如 Monad, Sei 等因可扩展性优势受到了广泛关注和资本青睐。Berachain 也吸引了大量社区成员。

    3)非 EVM 生态的活跃:Solana 上出现了 Sonic 这样 EVM 兼容的 L2 项目。Move 语言的 Sui, Aptos 因技术创新备受青睐,生态也初具规模。

    4)Appchain 部署门槛持续降低:@AndreCronjeTech 曾发文表示 L2/Appchain 的建造复杂性被低估了,而评论区的 @ItsAlwaysZonny 和 @0xkatz 在十几分钟内就部署好了一条 andrechain,并且表示每个月的运营成本只需要一千美元。

    总结来说,我们面临的是一个不可逆转的多链未来,链抽象的到来不以任何个人意志为转移。

    二、链抽象把风险也抽象了,会带来安全问题

    对这个问题的回答包括三个要点:

    • 在链抽象的交易逻辑下,用户对每笔交易的底层交互逻辑保有知情权。

    • 链抽象的出发点并非去干涉用户与什么 dApp 交互的决策,而是使用户做好的决策更无感、更高效地得到执行。

    • 有很多种方案可以帮助用户判断要不要信任 dApp。

    首先,链抽象并没有剥夺用户知情权,或者掩盖底层交互。用户随时可以检查每一笔交易的详情。

    其次,链抽象也不会平白无故提高用户和所谓不安全 dApp 的交互意愿和频率。

    一个事实是:当用户计划使用一款 dApp 的时候,已经默认「该 dApp 会选择一个值得信任的链,并且产生值得信任的交互」。

    是用户的信任驱使其做出与 dApp 交互的决策,链抽象并非干涉用户决策,只是在用户决策之后提高了交互效率。

    所以交互安全问题的核心还是用户如何决策,而不在于决策后如何执行。目前已经有很多方案去帮助用户思考和决策要不要信任某个 dApp,链抽象方案的风控层是其中之一。

    三、链抽象并没有根本上解决碎片化问题

    这个问题的提出和大单体链沙文主义有异曲同工之处,说白了这不是链抽象的问题,而是提问者的幻想。

    我们从两个受众群体出发去定义碎片化问题的解决。

    对于用户来说,碎片化带来的最直接的问题就是:需要在多链之间手动桥接,需要准备不同的 gas 代币,需要频繁在多链之间管理余额。

    而链抽象已经解决了这个问题,允许用户使用任意链的任意代币余额和任意 dApp 交互,任意链上的流动性在购买力上都是等效的。

    对于开发者来说,碎片化问题的解决有两种思路:

    1)全链部署智能合约,但用户侧体验的割裂依然存在。

    2)只在一条链上部署,但可以被任意链的用户访问,可以无缝引入其余链的流动性,这就是链抽象的解决方案。

    所以链抽象已经可以从用户侧和开发者侧都解决碎片化问题。

    至于所谓的完全统一底层区块链流动性,这是不可行的。不同区块链之间存在共识机制、数据结构和经济模型等的根本差异,不可能做到原子化的等效,否则就还是回到了要在单一链上建立整个 Web3 的问题。

    链上费用超以太坊 SOL 真的要取代 ETH 的地位了?

    不得不说,Solana 确实是这轮牛市中热度最高的链了,前有 DePin 热潮中超过半数明星项目出自 Solana 生态,后有一波又一波的 Meme 热潮,不可谓不热闹。

    那么,目前我们看到的 Solana 生态的高收益主要来自哪儿呢?这样火爆的状态又能可持续多久?

    Solana 链上费用情况一览

    和以太坊类似,Solana 的链上收入也包括基础交易手续费、MEV小费等。以太坊在EIP1599提案之后,将所有的基础 Base 费销毁,MEV 小费则直接奖励给验证节点,Solana 也有类似的销毁机制,将基础手续费按固定比例销毁(初期设定 50%),剩下的分配给验证者。

    因此,在对比以太坊和 Solana 链上收入时,所有被销毁的基础交易费用也纳入其中。

    具体来说,Solana 的链上收入包括基础费用、有限交易费用、小费(Jito)和投票费用,如下图所示。

    从这张图所展示的 Solana 链上每日费用变化趋势来看,相比其他两项来说,基础交易费和投票费用变化不是太大,但是优先交易费用和小费自今年三月以来获得了飞速增长。

    那么,这两项费用分别是什么呢?优先交易费很好理解,即用户为了加快交易速度而支付的费用,一般在交易的时候直接添加。小费(Jito)则是用户给验证者支付的额外费用,一般用于 MEV 相关的交易,定向支付。

    这两者的快速增长,都意味着 Solana 网络的活跃性提升、DeFi 活动增多导致的网络拥堵加剧,用户更愿意通过增加优先交易费的方式提升交易速度,同时验证者通过优化交易顺序捕获的 MEV 机会也增多。

    那么,Solana 链上的 DeFi 交易具体是哪些,是不是完全是 Meme 驱动的?

    通过上图数据不难看出,Solana 链上的交易主要包括 Meme(Pumpfun)、Meme(其他)、项目 Token、LST Token、稳定币和 SOL 交易等,其中项目 Token除了以上列出来的所有类别,还包括 DePin、SocialFi 等。

    最近两个月,所有 Meme 的交易量占比从 48% 提升到了 74%,当然,其他几项交易量比重的大幅缩水并不意味着交易量的下降,在行情上行之际,Solana 链上的项目 Token、LST、稳定币以及 SOL 交易量都有了大幅增长,但是,Meme 的增幅实在太夸张,最近两个月增长了 667%,所以,相比较起来其他交易占比才大幅下降。

    这也印证了上面的数据,因为 Meme 交易量的迅猛增长,且在 Meme 交易中「时间就是金钱」这一信念的驱使下,用户自然更加愿意支付优先交易费。而链上交易越活跃,MEV 的机会也就越多。

    Solana 链上活跃 Dapp

    1)DEX

    目前 Solana 链上以 Meme 交易为主,自然一众 DEX 是最活跃的 Dapp 了,目前 Solana 生态一众的DEX中,热度最高的要数 Raydium,下图数据显示,得益于 Meme 的爆发,目前和 Meme 深度绑定的 Raydium 已经占据整个 Solana 生态交易量的 63.5%,而一开始占据 Solana 生态绝对优势的 Orca 随着 Meme 交易量的爆发,市场份额被不断挤压,已经从超过 60% 的份额到降至目前的 15% 左右。

    PumpFun 作为 Meme 发射平台,其自带的 Meme 交易功能,也在这一波 Meme 爆发中交易量占比将近 5%,而且有逐渐增加的趋势。

    Solana 生态 DEX 市场份额占比,来源:Dune.com

    2)聚合 DEX 及交易机器人

    除了 DEX 的直接交易之外,Solana 生态中的聚合 DEX 以及交易机器人也非常活跃。下图展示按交易来源划分的 Solana 生态 DEX 市场份额,最新数据显示 Jupiter 交易量占 33%,其他协议(包括交易机器人)占 19%。

    按交易来源划分的 Solana DEX 市场份额,来源:Dune.com

    Jupiter 作为 Solana 生态中最大的聚合交易 Dex,目前 TVL 突破 15.7 亿美元创下新高,而且最近 Jupiter 动作非常多:

    • 先是 10 月 2 日「未申领的 2.3 亿枚 JUP 用于延长和资助 ASR」提案获得通过,主动权益质押奖励(ASR)将再延续一年;

    • 随后在 10 月 8 日推出移动应用程序,支持 Apple Pay、信用卡等多种支付方式,被认为是一个新的法 B 通道;

    • 10 月 17 日又推出Solana MemeCoin 终端「Ape Pro」,着力实现 MEV 保护,改善交易中的三明治攻击现象。

    • 一系列动作之下,Token JUP 的价格也非常强势。

    除了聚合交易平台之外,Solana 生态中的交易机器人也非常活跃,超过 10% 的交易由交易机器人贡献,其中收入排名前四的分别为 Photon、Trojan、BONKbot 和 Banana Gun。Photon 过去三十天的收入达到 2985 万美元,成为 Solana 生态中仅次于 Solana 主链收入的协议。除了 Solana 主链和 Pump 协议之外,Solana 生态收益前五协议的其他三席全是交易机器人,吸金能力可见一斑。

    Solana 生态协议收益排名,来源:DefiLlama

    3)其他 Dapp

    尽管在整个 Meme 季中,围绕 Meme 的 DEX、聚合 DEX 以及交易机器人非常火热,不过,随着 Solana 链上的火热,SOL 价格也一路水涨船高,从而带动生态中的质押、再质押、借代、杠杆等协议,以下是目前比较热门的几个 Dapp。

    Jito

    Jito 目前已经是 Solana 生态中 TVL 最高的 DApp,TVL 超过 30 亿美元,占 Solana 整个生态 TVL 的三分之一以上。Jito 支持用户存入 Solana 或者 Solana 的 LST Token 进行再质押,相比于其他质押协议,Jito 最大的特色是其 MEV 套件,通过对 Solana 生态中的交易提取 MEV 收入,将这部分收入分配给质押者,从而提高质押者的收入。

    目前 Jito 的再质押存款已经达到 2500 万美元的硬顶,表示第二阶段将提高上限以满足更多用户的质押需求。

    Kamino

    Kamino 是 Solana 生态中顶级的稳定币和 LST 资产收益平台,同时整合了借代、流动性提供和杠杆等功能,目前整个协议的 TVL 已经达到了 20 亿美元。

    Kamino 支持一键式自动复利集中流动性策略,方便用户通过控制借代资金来最大化收益。另外今年第四季度预计将推出 Lend V2 ,届时将允许无许可创建不同的借代市场,满足更广泛的用户需求,以及引入自动化单一资产借代金库,跨市场聚合流动性,以期成为 Solana 链上金融的基础层。

    Marinade

    Marinade 也是 Solana 生态的流动性质押协议,目前 TVL17.9 亿,仅次于 Raydium 位列第五名。不过同为流动性质押协议,Marinade 协议收益远不如 Jito,近期 Marinade 在力推面向机构投资者的 Solana 质押服务,这一个半月来 TVL 上涨近 50%。

    小结

    Meme 热潮确实带动了整个 Solana 生态的火热,最直接的体现是 Solana 的链上收益以及用户活跃度。

    不过目前的 Meme 毕竟只是牛市行情下特定时期的产物,一旦进入熊市,MeMe 行情若不再持续,Solana 生态如何保住公链的领先优势是需要考虑的事情。就像曾经火爆出圈的 NFT 行情,盛宴过后也是一地鸡毛,Solana 能否借势 MeMe 的火热,打造更加健康的生态收益结构呢?

    关于我们

    火币下载官方app|火币iOS版|火币安卓版|火币电脑网页版

    • 用户支持
    • 帮助中心
    • 服务条款
    微信二维码
    火币 (huobi) 数字货币交易平台 Powered by htx
    QR code