Quarter I 2022
原文作者:Ansem(推特@blknoiz06) 原文链接:Quarter I 2022always keep a few gems in your pockethttps://blknoiz06.substack.com译者:Evelyn、AluAyi、Henson、Rex|W3.Hitchhiker2022市场整体展望你好!对于我的堕落同胞(fellow degenerates)和其他不知何故闯入这个页面的读者们,我将尝试在这里梳理今年一季度的一些想法。这是我第二次写这样的长篇大论,所以请忍耐一下(哈哈),希望它比从我推特发出来的数百条零零散散的推文更有条理。 2021年对于加密资产来说很显然是突破性的一年,从机构接受度到散户采纳度,加密货币已经远远超过了其历史上的任何时期。加密资产经历了两年的强劲牛市,部分原因是FED的鸽派态度助长了市场参与者的风险偏好,再加上web3协议的快速创新。令人震惊的是,在这个周期中,我们能从这则典型的新闻吹嘘 "看这个代币上涨了10倍"体会到加密货币在社会中的流行程度。Visa购置了一个朋克,阿迪达斯买了一只无聊猴,许多TradFi公司如Jum...

Arweave—不仅仅是存储这么简单
项目简介Arweave 是个非典型或非主流方向的区块链项目,我们之前对其一无所知,稍有了解的人,可能也就是把它看作是众多类似 Filecoin 的去中心化存储项目之一。所以也造成了之前我们对Arweave的一些忽视,今天就好好的把整个项目重新再认识一下。 Arweave 协议的愿景是提供去中心化、可扩展和永久的链上数据存储(永存);就像以太坊被认为是世界计算机,Arweave 可以被认为是永远不会忘记的世界硬盘。创始人Arweave创始人兼CEO—Sam Williams是去中心化爱好者,在分布式系统设计和实施方面具有丰富的经验。英国人,黑客,博士,目前推特关注者15K。先简单了解Filecoin的方案Filecoin是去中心化存储赛道最知名的项目,我们聊Arweave肯定免不了先来了解下Filecoin。 首先,我们知道,Protocol Labs开创的IPFS 是去中心化存储领域的开创者 ,从 2014 年上线开始,自由生长,已经存储了大量的数据。但是要让 IPFS 成为商业可用的存储系统,而不是随意的数据分享平台,必须提供服务质量保障 ,这就是 Filecoin 要解决的问...

Lyra - Option AMM Pioneer
Created by Jack Ding|W3.HitchhikerAn Overview of On-chain OptionsAt present, there are three main types of on-chain options:OrderbookDeFi Option Vaults(structured products)Auto-market Marker(resource:https://www.panewslab.com/zh/articledetails/1644045861942159.html)Orderbooke.x.:Zeta,Psyoption,Opyn Option order books also require high tps blockchain to guarantee cheap and fast execution. Opyn used the Orderbook model on ETH main chain, but due to the lack of liquidity and high gas costs,trade...
W3.Hitchhiker aims to discover cutting-edge tech and innovative teams by first principles thinking and long-term analysis strategies.
Quarter I 2022
原文作者:Ansem(推特@blknoiz06) 原文链接:Quarter I 2022always keep a few gems in your pockethttps://blknoiz06.substack.com译者:Evelyn、AluAyi、Henson、Rex|W3.Hitchhiker2022市场整体展望你好!对于我的堕落同胞(fellow degenerates)和其他不知何故闯入这个页面的读者们,我将尝试在这里梳理今年一季度的一些想法。这是我第二次写这样的长篇大论,所以请忍耐一下(哈哈),希望它比从我推特发出来的数百条零零散散的推文更有条理。 2021年对于加密资产来说很显然是突破性的一年,从机构接受度到散户采纳度,加密货币已经远远超过了其历史上的任何时期。加密资产经历了两年的强劲牛市,部分原因是FED的鸽派态度助长了市场参与者的风险偏好,再加上web3协议的快速创新。令人震惊的是,在这个周期中,我们能从这则典型的新闻吹嘘 "看这个代币上涨了10倍"体会到加密货币在社会中的流行程度。Visa购置了一个朋克,阿迪达斯买了一只无聊猴,许多TradFi公司如Jum...

Arweave—不仅仅是存储这么简单
项目简介Arweave 是个非典型或非主流方向的区块链项目,我们之前对其一无所知,稍有了解的人,可能也就是把它看作是众多类似 Filecoin 的去中心化存储项目之一。所以也造成了之前我们对Arweave的一些忽视,今天就好好的把整个项目重新再认识一下。 Arweave 协议的愿景是提供去中心化、可扩展和永久的链上数据存储(永存);就像以太坊被认为是世界计算机,Arweave 可以被认为是永远不会忘记的世界硬盘。创始人Arweave创始人兼CEO—Sam Williams是去中心化爱好者,在分布式系统设计和实施方面具有丰富的经验。英国人,黑客,博士,目前推特关注者15K。先简单了解Filecoin的方案Filecoin是去中心化存储赛道最知名的项目,我们聊Arweave肯定免不了先来了解下Filecoin。 首先,我们知道,Protocol Labs开创的IPFS 是去中心化存储领域的开创者 ,从 2014 年上线开始,自由生长,已经存储了大量的数据。但是要让 IPFS 成为商业可用的存储系统,而不是随意的数据分享平台,必须提供服务质量保障 ,这就是 Filecoin 要解决的问...

Lyra - Option AMM Pioneer
Created by Jack Ding|W3.HitchhikerAn Overview of On-chain OptionsAt present, there are three main types of on-chain options:OrderbookDeFi Option Vaults(structured products)Auto-market Marker(resource:https://www.panewslab.com/zh/articledetails/1644045861942159.html)Orderbooke.x.:Zeta,Psyoption,Opyn Option order books also require high tps blockchain to guarantee cheap and fast execution. Opyn used the Orderbook model on ETH main chain, but due to the lack of liquidity and high gas costs,trade...
W3.Hitchhiker aims to discover cutting-edge tech and innovative teams by first principles thinking and long-term analysis strategies.

Subscribe to W3.Hitchhiker

Subscribe to W3.Hitchhiker
Share Dialog
Share Dialog


>100 subscribers
>100 subscribers
作者:Bec
修订:Evelyn
大家都知道,区块链技术的一个特点就是:存放在链上的数据是安全可靠的,不可篡改的。那数据可用性是指的什么呢?难道区块链的共识不能保证数据的安全了吗?显然不是,区块链数据的安全性,是大家都认可的,也是区块链一直持续发展的一个动力之一。那么 DA(数据可用性)层是什么,我们先来看看下面几种情况。
一个节点如果想验证某一笔交易或者某一个区块,这个节点需要下载所有的区块和交易数据。由于区块链的持续运行,区块和交易数据会持续增长,这个节点的成本也会越来越高。以至于越来越多的节点(特别是个人用户)只能选择运行轻节点。这些轻节点,没有下载所有的交易数据,它们不能对交易和区块进行验证,只能相信它们选择的共识节点(全节点)。因此,实际上这些轻节点是不知道获得的数据是否可用。
同时区块链网络为了提高效率,一直在尝试进行扩容。以太坊的 L2 就是以太坊的一种扩容方案,从而提高以太坊的吞吐量。但 L1 和 L2 在本质上还是两个网络,L1 是不会参与 L2 的共识,也不会验证和执行 L2 的交易,同理 L2 也不会参与 L1 的共识,亦不会验证和执行 L1 的交易。但是在此时,L1 与 L2 之间其实是有信任问题的,例如:Rollup 要求将所有交易数据都记录到以太坊的交易中,那么 Rollup 的用户为了验证自己的交易是否存入以太坊,他还需要运行一个以太坊的全节点吗?
从目前区块链的工作机制当中我们可以知道,当一个节点不参与共识的时候,特别是没有存储所有交易数据的时候,对于它自己获得的数据是否有效它是无法验证的,这些节点目前都只能相信自己连接的共识节点不会欺骗自己,或者多连接几个共识节点,做一个小小的容错。
因此DA层解决的问题是,在不参与共识、以及不用存储所有交易数据的情况下,依然能够对交易进行验证,从而证明这个交易是否可用。
在上面先介绍了什么是 DA,接下来,我们再来看看 Celestia 项目是打算如何来解决这个问题的。
Celestia 项目围绕二维 Reed-Solomon 纠删码,设计了一套随机抽样来验证数据、以及恢复数据的方案从而确保数据可用。
当一个全节点发现轻节点收到有问题的数据时,会构建一个欺诈证明并发送给这个轻节点,轻节点收到欺诈证明之后,从网络中通过随机抽样的方式,获得需要的数据,来验证这个欺诈证明是否有效,从而能够明确的知道自己之前获得的数据是否可用。轻节点不需要信任给自己发送数据的节点,也不需要信任给自己发送欺诈证明的节点,这是因为轻节点是通过随机抽样的方式,来获取进行此次验证所需要的数据,因此安全性能是由整个网络来提供的。这样也使得DA 层的安全等级,能够接近共识层的安全等级。
接下来,我们来了解一下 Celestia 具体是如何工作的。由于 Celestia 项目还处于开发测试阶段,因此这里采用的都是现阶段的白皮书的介绍方案,可能会与实际的解决方案有出入。
欺诈证明的验证,必须是高效的,并且不需要全部的交易数据,也不需要执行具体的交易,因此 Celestia 对于自己区块的数据,进行了一些扩展。
状态的稀疏默克尔树的根,这种默克尔树的叶节点,是一个 key-value 对。
定义了一种变量,状态见证(w):是一些 key-value 对,以及他们在默克尔树中的证明,组成的集合:

定义了一个函数,rootTransition :可以通过状态根、交易、以及这些交易的状态见证,转换得到交易执行后的状态的根。也就是每个交易执行后的状态的默克尔根 stateRoot`可以通过rootTransition(stateRoot, t, w) 得到

将交易,以及这些交易执行的中间状态根,组合成一个固定大小与固定格式的shares 。这些所有的交易的shares ,按照二维RS纠删码,进行扩展,最后得到一个默克尔树的根,即dataRoot。
具体步骤
将初始的交易数据,按照 shares 的大小与格式进行封装。
将 shares 放入一个 k×k 的矩阵,如果数量不够,则填充补齐。
然后应用 RS 纠删码,按照行和列进行 3 次补齐,最终得到一个 2k⋅2k 的矩阵。
对这个矩阵的每一行和每一列,都构建一个默克尔树,得到 2⋅k 个行根和 2⋅k 个列根。
最后将这 4⋅k 个根,组成一个默克尔树,得到根 dataRoot。


shares
shares 是 Celestia 项目定义的一个固定大小和格式的数据结构。主要内容是交易,以及执行这些交易的中间状态根。
由于没有具体规定多少交易,需要生成对应的中间状态根,项目方设定了一个 Period变量,作为最大限制周期,这个限制可以是最大多少交易之内必须生成中间状态根,也可以是多少字节,或者多少 GAS。
还定义了两个函数来帮助验证:
parseShares 函数:输入 shares,得到消息 m,可以是中间状态根,也可能是交易。
parsePeriod 函数:输入消息,得到前状态根,执行后状态根,以及交易列表。
设定的格式举例
固定 256 字节
0-80:开始的交易
81-170:包含的交易
171-190:中间状态根
191-256:下一批开始的交易
白皮书中,介绍了两种欺诈证明,下面将分别对此进行介绍:
这是一个针对 stateRoot 的一个欺诈证明。全节点利用 dataRoot 中的 shares,来帮助轻节点验证收到的区块头中的 stateRoot 是否有效。
状态转换无效的欺诈证明的组成:
对应块的 blockhash
相关的 shares
这些 shares 在 dataRoot 对应的默克尔树中的默克尔证明
这些 shares 包含的交易的 状态见证。
证明的验证:
验证 blockhash,确定是对于哪个区块的欺诈证明。
验证证明中的每个 shares 的默克尔证明是否有效。
通过 shares 的两个解析函数,可以正确得到对应的交易列表,以及这批交易的执行前状态根和执行后状态根。并且如果执行前状态根为空,则第一个交易一定是块的第一笔交易;同时如果执行后状态根为空,则最后一笔交易一定也是块的最后一笔交易。
根据 rootTransition 函数,来验证得到的两个状态根。
这是一个针对 shares 在网络传播时,当一个全节点从网络中收到 shares 恢复的数据,与自己的数据不匹配时,会向网络回应欺诈证明。
错误生成扩展数据的欺诈证明的组成:
错误的 shares 所在行或列的默克尔根。
这个行或列的默克尔根,在 dataRoot 对应的默克尔树中的默克尔证明。
这足够恢复这一行或列的 shares。(大于等于 k 个)
每个shares 在 dataRoot对应的默克尔树中的默克尔证明。
证明的验证:
验证blockhash,确定是对于哪个区块的欺诈证明。
验证证明中行或列的默克尔根的默克尔证明是否有效。注:VerifyMerkleProof(行或列的默克尔根,行或列的默克尔根的默克尔证明,dataRoot,长度,位置索引) 其中前面2个数据是证明携带的数据,后面3个是本地(之前接收的)数据。
验证证明中每个 shares 的默克尔证明是否有效。注:VerifyShareMerkleProof(shares,shares 的默克尔证明,dataRoot,长度,位置索引) 其中 dataRoot是本地数据,另外数据都是从证明中获得。
通过收到的 shares,恢复这一行或列的所有数据,并验证其默克尔根是否等于自己之前收到的对应行或列的默克尔根。
通过 2 维 RS 纠删码,Celestia 的轻节点通过随机抽样的方式,来获取区块数据,以及验证欺诈证明的相关数据。同时随机抽样的数据,并在网络中传播,当达到一定的数量时,也可以帮助网络恢复区块数据。下面介绍一下具体的工作流程:
轻节点从任意一个连接的全节点中获取一个新区块的块头,以及 2k 个行和 2k 个列的默克尔根。先用这些默克尔根与区块头中的 dataRoot 进行初步校验。如果错误则拒绝这个区块头。
在这个 2k × 2k 的矩阵中,轻节点随机挑选一组不重复的坐标,将这些坐标发送给与自己相连的全节点们。
如果一个全节点拥有这些坐标所对应的所有数据,就会将这个坐标对应的 shares,以及 shares 的行或列的默克尔证明,回应给轻节点。
轻节点对于每一个收到的 shares,都会验证其默克尔证明是否有效。注:VerifyMerkleProof( shares,shares 所在行或列的默克尔证明,对应行或列的默克尔根,长度,坐标位置索引)其中前面 2 个数据是证明携带的数据,后面 3 个是本地(之前接收的)数据。
如果一个全节点没有回应某一个坐标的 shares,轻节点则会将自己收到的对应的shares、以及它的默克尔证明发送给这个全节点,这个全节点也会将收到的数据转发给相连的其他全节点。
如果步骤 4 中的验证都没有问题,并且步骤 2 中抽样的坐标都有收到回应,同时在一个设定的时间段内没有收到关于这个区块的欺诈证明,则轻节点认为这个区块是数据可用的。
声明:本文内容仅供参考、交流,不构成任何投资建议。若存在明显的理解或数据的错误,欢迎反馈。
本文内容系 W3.Hitchhiker 原创,如需转载请标明出处。
W3.Hitchhiker 官方推特:
作者:Bec
修订:Evelyn
大家都知道,区块链技术的一个特点就是:存放在链上的数据是安全可靠的,不可篡改的。那数据可用性是指的什么呢?难道区块链的共识不能保证数据的安全了吗?显然不是,区块链数据的安全性,是大家都认可的,也是区块链一直持续发展的一个动力之一。那么 DA(数据可用性)层是什么,我们先来看看下面几种情况。
一个节点如果想验证某一笔交易或者某一个区块,这个节点需要下载所有的区块和交易数据。由于区块链的持续运行,区块和交易数据会持续增长,这个节点的成本也会越来越高。以至于越来越多的节点(特别是个人用户)只能选择运行轻节点。这些轻节点,没有下载所有的交易数据,它们不能对交易和区块进行验证,只能相信它们选择的共识节点(全节点)。因此,实际上这些轻节点是不知道获得的数据是否可用。
同时区块链网络为了提高效率,一直在尝试进行扩容。以太坊的 L2 就是以太坊的一种扩容方案,从而提高以太坊的吞吐量。但 L1 和 L2 在本质上还是两个网络,L1 是不会参与 L2 的共识,也不会验证和执行 L2 的交易,同理 L2 也不会参与 L1 的共识,亦不会验证和执行 L1 的交易。但是在此时,L1 与 L2 之间其实是有信任问题的,例如:Rollup 要求将所有交易数据都记录到以太坊的交易中,那么 Rollup 的用户为了验证自己的交易是否存入以太坊,他还需要运行一个以太坊的全节点吗?
从目前区块链的工作机制当中我们可以知道,当一个节点不参与共识的时候,特别是没有存储所有交易数据的时候,对于它自己获得的数据是否有效它是无法验证的,这些节点目前都只能相信自己连接的共识节点不会欺骗自己,或者多连接几个共识节点,做一个小小的容错。
因此DA层解决的问题是,在不参与共识、以及不用存储所有交易数据的情况下,依然能够对交易进行验证,从而证明这个交易是否可用。
在上面先介绍了什么是 DA,接下来,我们再来看看 Celestia 项目是打算如何来解决这个问题的。
Celestia 项目围绕二维 Reed-Solomon 纠删码,设计了一套随机抽样来验证数据、以及恢复数据的方案从而确保数据可用。
当一个全节点发现轻节点收到有问题的数据时,会构建一个欺诈证明并发送给这个轻节点,轻节点收到欺诈证明之后,从网络中通过随机抽样的方式,获得需要的数据,来验证这个欺诈证明是否有效,从而能够明确的知道自己之前获得的数据是否可用。轻节点不需要信任给自己发送数据的节点,也不需要信任给自己发送欺诈证明的节点,这是因为轻节点是通过随机抽样的方式,来获取进行此次验证所需要的数据,因此安全性能是由整个网络来提供的。这样也使得DA 层的安全等级,能够接近共识层的安全等级。
接下来,我们来了解一下 Celestia 具体是如何工作的。由于 Celestia 项目还处于开发测试阶段,因此这里采用的都是现阶段的白皮书的介绍方案,可能会与实际的解决方案有出入。
欺诈证明的验证,必须是高效的,并且不需要全部的交易数据,也不需要执行具体的交易,因此 Celestia 对于自己区块的数据,进行了一些扩展。
状态的稀疏默克尔树的根,这种默克尔树的叶节点,是一个 key-value 对。
定义了一种变量,状态见证(w):是一些 key-value 对,以及他们在默克尔树中的证明,组成的集合:

定义了一个函数,rootTransition :可以通过状态根、交易、以及这些交易的状态见证,转换得到交易执行后的状态的根。也就是每个交易执行后的状态的默克尔根 stateRoot`可以通过rootTransition(stateRoot, t, w) 得到

将交易,以及这些交易执行的中间状态根,组合成一个固定大小与固定格式的shares 。这些所有的交易的shares ,按照二维RS纠删码,进行扩展,最后得到一个默克尔树的根,即dataRoot。
具体步骤
将初始的交易数据,按照 shares 的大小与格式进行封装。
将 shares 放入一个 k×k 的矩阵,如果数量不够,则填充补齐。
然后应用 RS 纠删码,按照行和列进行 3 次补齐,最终得到一个 2k⋅2k 的矩阵。
对这个矩阵的每一行和每一列,都构建一个默克尔树,得到 2⋅k 个行根和 2⋅k 个列根。
最后将这 4⋅k 个根,组成一个默克尔树,得到根 dataRoot。


shares
shares 是 Celestia 项目定义的一个固定大小和格式的数据结构。主要内容是交易,以及执行这些交易的中间状态根。
由于没有具体规定多少交易,需要生成对应的中间状态根,项目方设定了一个 Period变量,作为最大限制周期,这个限制可以是最大多少交易之内必须生成中间状态根,也可以是多少字节,或者多少 GAS。
还定义了两个函数来帮助验证:
parseShares 函数:输入 shares,得到消息 m,可以是中间状态根,也可能是交易。
parsePeriod 函数:输入消息,得到前状态根,执行后状态根,以及交易列表。
设定的格式举例
固定 256 字节
0-80:开始的交易
81-170:包含的交易
171-190:中间状态根
191-256:下一批开始的交易
白皮书中,介绍了两种欺诈证明,下面将分别对此进行介绍:
这是一个针对 stateRoot 的一个欺诈证明。全节点利用 dataRoot 中的 shares,来帮助轻节点验证收到的区块头中的 stateRoot 是否有效。
状态转换无效的欺诈证明的组成:
对应块的 blockhash
相关的 shares
这些 shares 在 dataRoot 对应的默克尔树中的默克尔证明
这些 shares 包含的交易的 状态见证。
证明的验证:
验证 blockhash,确定是对于哪个区块的欺诈证明。
验证证明中的每个 shares 的默克尔证明是否有效。
通过 shares 的两个解析函数,可以正确得到对应的交易列表,以及这批交易的执行前状态根和执行后状态根。并且如果执行前状态根为空,则第一个交易一定是块的第一笔交易;同时如果执行后状态根为空,则最后一笔交易一定也是块的最后一笔交易。
根据 rootTransition 函数,来验证得到的两个状态根。
这是一个针对 shares 在网络传播时,当一个全节点从网络中收到 shares 恢复的数据,与自己的数据不匹配时,会向网络回应欺诈证明。
错误生成扩展数据的欺诈证明的组成:
错误的 shares 所在行或列的默克尔根。
这个行或列的默克尔根,在 dataRoot 对应的默克尔树中的默克尔证明。
这足够恢复这一行或列的 shares。(大于等于 k 个)
每个shares 在 dataRoot对应的默克尔树中的默克尔证明。
证明的验证:
验证blockhash,确定是对于哪个区块的欺诈证明。
验证证明中行或列的默克尔根的默克尔证明是否有效。注:VerifyMerkleProof(行或列的默克尔根,行或列的默克尔根的默克尔证明,dataRoot,长度,位置索引) 其中前面2个数据是证明携带的数据,后面3个是本地(之前接收的)数据。
验证证明中每个 shares 的默克尔证明是否有效。注:VerifyShareMerkleProof(shares,shares 的默克尔证明,dataRoot,长度,位置索引) 其中 dataRoot是本地数据,另外数据都是从证明中获得。
通过收到的 shares,恢复这一行或列的所有数据,并验证其默克尔根是否等于自己之前收到的对应行或列的默克尔根。
通过 2 维 RS 纠删码,Celestia 的轻节点通过随机抽样的方式,来获取区块数据,以及验证欺诈证明的相关数据。同时随机抽样的数据,并在网络中传播,当达到一定的数量时,也可以帮助网络恢复区块数据。下面介绍一下具体的工作流程:
轻节点从任意一个连接的全节点中获取一个新区块的块头,以及 2k 个行和 2k 个列的默克尔根。先用这些默克尔根与区块头中的 dataRoot 进行初步校验。如果错误则拒绝这个区块头。
在这个 2k × 2k 的矩阵中,轻节点随机挑选一组不重复的坐标,将这些坐标发送给与自己相连的全节点们。
如果一个全节点拥有这些坐标所对应的所有数据,就会将这个坐标对应的 shares,以及 shares 的行或列的默克尔证明,回应给轻节点。
轻节点对于每一个收到的 shares,都会验证其默克尔证明是否有效。注:VerifyMerkleProof( shares,shares 所在行或列的默克尔证明,对应行或列的默克尔根,长度,坐标位置索引)其中前面 2 个数据是证明携带的数据,后面 3 个是本地(之前接收的)数据。
如果一个全节点没有回应某一个坐标的 shares,轻节点则会将自己收到的对应的shares、以及它的默克尔证明发送给这个全节点,这个全节点也会将收到的数据转发给相连的其他全节点。
如果步骤 4 中的验证都没有问题,并且步骤 2 中抽样的坐标都有收到回应,同时在一个设定的时间段内没有收到关于这个区块的欺诈证明,则轻节点认为这个区块是数据可用的。
声明:本文内容仅供参考、交流,不构成任何投资建议。若存在明显的理解或数据的错误,欢迎反馈。
本文内容系 W3.Hitchhiker 原创,如需转载请标明出处。
W3.Hitchhiker 官方推特:
No activity yet