<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>damian-dyor.eth</title>
        <link>https://paragraph.com/@damian-dyor</link>
        <description>杂学家，CFA Candidate，爱好DYOR，阅读，思考</description>
        <lastBuildDate>Thu, 16 Jul 2026 10:22:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>damian-dyor.eth</title>
            <url>https://storage.googleapis.com/papyrus_images/429ec692cdca181dfddfc331fea7da1eacee34b380e4732dc27690773ea6de75.png</url>
            <link>https://paragraph.com/@damian-dyor</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[Chainlink 2.0 详细解读及一些思考]]></title>
            <link>https://paragraph.com/@damian-dyor/chainlink-2-0</link>
            <guid>QiciNbeMGaixWGyxSEJx</guid>
            <pubDate>Wed, 05 Apr 2023 02:45:29 GMT</pubDate>
            <description><![CDATA[0. 前言所谓预言机（Oracle），就是帮助连接链下世界与链上世界的中间件，比如当我们超额抵押加密货币借出 DAI 时，MakerDAO 为了防止出现资不抵债的情况发生，会实时检测所抵押资产的价格，一旦价格低于阈值，就会触发强平，在这个过程中，预言机就充当着不断喂价的角色。一般来说，链下的数据是很难直接上链的，因为上链意味着所有节点对该数据达成共识，而获取链下的数据时环境相较于区块链更加复杂，导致很难达成共识，所以就需要预言机来架起这座链上与链下的桥梁，让信息流动的更加顺畅 预言机总体来说又分为两种：中心化预言机和去中心化预言机，中心化预言机一般是具有一定的权威性，有信誉背书的，来降低其作恶的可能性，但是它终究是一个中心化的东西，且不论它是否有作恶的动机，但它完全具备作恶的能力，试想一个去中心化的系统，给它输入数据的却是一个中心化的系统，那么其实从整体来看，这不过是一个披着去中心化外衣的中心化系统（木桶效应），所以去中心化的区块链配有去中心化的预言机，才更加符合去信任的去中心化思想，而 Chainlink 就是为了解决这个问题而诞生的 Chainlink 的基本工作流程：用户通...]]></description>
            <content:encoded><![CDATA[<blockquote><h2 id="h-0" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">0. 前言</h2></blockquote><p>所谓预言机（Oracle），就是帮助连接链下世界与链上世界的中间件，比如当我们超额抵押加密货币借出 DAI 时，MakerDAO 为了防止出现资不抵债的情况发生，会实时检测所抵押资产的价格，一旦价格低于阈值，就会触发强平，在这个过程中，预言机就充当着不断喂价的角色。一般来说，链下的数据是很难直接上链的，因为上链意味着所有节点对该数据达成共识，而获取链下的数据时环境相较于区块链更加复杂，导致很难达成共识，所以就需要预言机来架起这座链上与链下的桥梁，让信息流动的更加顺畅</p><p>预言机总体来说又分为两种：中心化预言机和去中心化预言机，中心化预言机一般是具有一定的权威性，有信誉背书的，来降低其作恶的可能性，但是它终究是一个中心化的东西，且不论它是否有作恶的动机，但它完全具备作恶的能力，试想一个去中心化的系统，给它输入数据的却是一个中心化的系统，那么其实从整体来看，这不过是一个披着去中心化外衣的中心化系统（木桶效应），所以去中心化的区块链配有去中心化的预言机，才更加符合去信任的去中心化思想，而 Chainlink 就是为了解决这个问题而诞生的</p><p><strong>Chainlink 的基本工作流程：</strong></p><ol><li><p>用户通过请求合约向 Chainlink 发起数据请求，同时需要附上对服务水平的要求</p></li><li><p>预言机服务商会根据自己的服务水平以及服务范围决定是否对该请求投标，竞标会在投标的寓言集达到一定数量且达到规定时间时结束，从所有候选者中按要求选出规定数量的预言机节点，未被选中的预言机节点会被退回保证金</p></li><li><p>被选中的预言机会分别去获取数据，在链下进行数据聚合（Off-chain Report）后返回链上，任务结束</p></li></ol><p>在公开会议中 Sergry Nazarov 曾表达过 Chainlink 2.0 的发展愿景：</p><ul><li><p><strong>短期愿景：发展混合智能合约（Hybrid Smart Contract）</strong></p></li><li><p><strong>中期愿景：超线性质押（Super-Linear Staking）</strong></p></li><li><p><strong>长期愿景：Chainlink 元开发层（Metalayer）</strong></p></li></ul><p>下面就根据时间线，来为大家介绍 Chainlink 2.0</p><blockquote><h2 id="h-1-hybrid-smart-contract" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1. 混合智能合约（Hybrid Smart Contract）</h2></blockquote><p>首先，混合智能合约并非特指某一种智能合约，而是一种通用的设计模式，包括链上的智能合约以及为链上智能合约提供支持的去中心化预言机网络（Decentralized Oracle Networks，DONs），链上智能合约的局限性在于它不能直接接入传统 Web2 的网络中，且无法很好执行复杂的任务，而这两点则可以通过 DONs 来弥补，一方面 DONs 可以接入传统 Web2 的 API，获取链下数据，为链上智能合约的计算提供数据，另一方面，由于是链下，所以 DONs 可以实现对数据的复杂计算（也可以看作是对数据的压缩），如此一来，链上链下两部分无缝且安全的交互，共同构成了一个单一的混合智能合约</p><p>本质上来说，混合智能合约其实就是将更多的计算任务任务转移至链下，以此来实现之前纯粹的链上智能合约无法做到的功能，基于混合智能合约的思想，Chainlink 目前初步实现了一些高级去中心化服务：</p><ul><li><p><strong>可验证随机数（Varifiable Random FUnction，VRF）</strong>：目前的链上随机数其实都是伪随机数，且高度依赖区块的哈希值作为 Seed 来产生随机数，很容易被攻破，Chainlink VRF解决了这些问题。首先智能合约向 Chainlink 或 Chainlink 预言机网络提供一个 seed 来请求随机数。这个 seed 是预言机无法预测的，会被用来生成一个随机数。每个预言机都会使用自己专属的密钥生成随机数。当结果和证明在链上发布后，可以使用预言机的公钥和智能合约的seed进行验证，这样即使某一节点被攻陷，该节点也无法操控或影响最终结果，因为它无法通过链上的加密验证</p></li><li><p><strong>公允排序服务（Fair Sequenceing Services，FSS）</strong>：目前区块中的交易大多由矿工来进行排序，在某种程度上来看，这其实是一种比较中心化的行为，也正是得益于这种中心化，给了矿工获取 MEV（Miner-Exactable Value）的机会，有一些 MEV 可以帮助 Defi 中的价格回归标记价格，这些是有益的 MEV，而一些 MEV，诸如三明治攻击和抢跑交易，会让一些用户蒙受损失，FSS 这项服务就是为了解决这个问题而生。首先交易会被加密传递到一个排序委员会，解密的私钥以秘密共享的形式分发给委员会成员，在确定排序后，委员会合成私钥并解锁交易，目前众多的 L2 网络将排序交易的权利保留在了 L2，L2 Tx Sequencer 可以启用 FSS 服务来实现更佳的交易服务</p></li></ul><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1009d1a0866990b74f9e42180ece5d2288a2b3c631e006c0cac9bd2790c39973.png" alt="Fig 1. Ari Juels: Keynote on Chainlink Fair Sequencing Services (FSS) | Youtube" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 1. Ari Juels: Keynote on Chainlink Fair Sequencing Services (FSS) | Youtube</figcaption></figure><ul><li><p><strong>区块链保险（On-Chain Insurance）</strong>：在赋予链上智能合约强大的计算能力后，区块链保险服务将有更多可能，因为保险赔付主要解决两个问题：是否要赔付？赔付多少？而这两个问题前者为布尔型，后者为整型，要得到结果，很可能需要大量的计算才可以，所以混合智能合约为区块链保险提供了更大的想象空间</p></li><li><p><strong>智能合约管理员（Keeper）</strong>：目前的链上智能合约并不能完成自动交易，还需要外部调用，而 Keeper 可以在需要的时候调用智能合约，这样开发者就无需再构建链下基础设施来启动链上合约</p></li><li><p>……</p></li></ul><blockquote><h2 id="h-2-super-linear-staking" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2. 超线性质押（Super-linear Staking）</h2></blockquote><p>正如前文所提到的，一个去中心化系统的安全性是有木桶效应的，所以去中心化预言机网络的安全至关重要，Chainlink 2.0 将会引入超线性质押来增强其安全表现</p><p>Chainlink 采用双层预言机网络来确保预言机充分履行服务协议，第一层 DONs 效率高且成本低，其中节点会通过显性质押的方式质押 LINK 代币，并负责定期更新预言机报告，第二层 DONs 由 Aave，Synhetix 和 Compound 等利益相关方构成，来裁决一层 DONs 上报的任何有关预言机报告的问题，为了防止在最极端的情况下二层 DONs 出现分歧，因此 Chainlink 2.0 内置了一个仲裁层，进一步提高安全保障。一层 DONs 与二层 DONs 之间机制的安排，使得贿赂网络的成本远高于网络中目前的保证金总额，所以被称为超线性质押</p><p>在讲解超线性质押之前，需要先介绍一下 **OCR（Off-Chain Report）**的流程：</p><ol><li><p>每个节点将自己找来的数据签名后发送给由 Pacemaker 算法选出的 Leader 节点</p></li><li><p>Leader 节点将数据进行链下聚合后形成报告，并返还至各个预言机节点，让每个预言机节点进行检查</p></li><li><p>若没有问题，则各个节点对报告签名并发送至 Leader 节点，在达到阈值签名数量后，Leader 节点合成最终的报告，并将最终报告发送至各个预言机节点</p></li><li><p>节点会依据随机算法选择一个负责将最终数据送上链的节点，最后智能合约验证了这个由阈值数量的节点签名过的报告，并将结果发送给消费者合约</p></li></ol><p>在每一轮报告中，每个一层预言机节点都会被随机分配一个号码，当某个预言机节点发现报告有问题时，就可以发出警报，发出警报的预言机节点被称为监督节点，但需要注意的是，二层 DONs 不一定会第一时间受理该预言机节点的警报，因为有可能还有别的预言机节点也同时发出了警报，且这个预言机节点被分配的数字的优先级更高，这便是随机分配的号码的作用所在</p><p>二层 DONs 会通过使用 DECO 生成的加密 TLS 证明，投票决定受争议预言机报告的真实性，一旦二层 DONs 判定一层 DONs 报告错误，那么一层网络中生成报告的多数恶意节点就会被没收所质押的保证金，<strong>没收的保证金会奖励给被分配数字的优先级最高的监督节点</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/16973a9b90695ae08840ab3c3e114cec7c43fb9db07b0452f11df94e43970be2.png" alt="Fig 2. Chainlink Staking Model | Chainlink" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 2. Chainlink Staking Model | Chainlink</figcaption></figure><p>现在我们已经了解了每个预言机节点可能会收到的奖励与惩罚，引入一个例子，帮助大家更好的理解什么是超线性质押：</p><p>假设一层 DONs 中有 <code>n</code> 个节点，每个节点都质押金额为 <code>d</code> 的保证金，因此网络中质押的保证金总额为 <code>d * n</code>。要生成错误的预言机报告需要买通多数节点，因此恶意节点质押的保证金总额至少为 <code>(d * n) / 2</code>。如果一层节点上报，并且被二层节点判定为有效，则优先级最高的监督节点将至少获得 <code>(d * n) / 2</code> 的保证金作为奖励。然而，由于任何节点都有可能成为监督节点，因此攻击者要给每个节点至少 <code>(d * n) / 2</code> 的贿赂才能确保它们不上报。因此，贿赂一层DON的总成本至少是 <code>(d * n²) / 2</code></p><p><strong>可以看到贿赂的成本与预言机节点数量是呈二次关系，而非线性关系，所以这种质押机制被称为超线性质押机制</strong></p><p>一层 DONs 生成预言机报告后可能出现三种结果：</p><ol><li><p>所有节点达成共识：所有一层节点都正常运行，并一致同意报告中的聚合数值为正确值。每个预言机节点都获得每轮固定的报酬</p></li><li><p>部分达成共识：一些节点下线，或少数节点报告错误数据，但是大部分节点生成了正确的数值，并且聚合出预言机报告，没有节点发出报警。所有诚实/正常节点都获得服务费，而所有问题/下线节点都扣除部分保证金（如：金额为服务费的10倍）</p></li><li><p>监督节点报警：如果一层网络中一个或以上的节点认为报告有问题，他们可以公开报警，升级至二层网络进行验证，并产生两种可能的结果：（1）有效上报：二层网络判定预言机报告有问题，所有一层中的问题节点被扣除全部保证金，并且全数奖励给优先级最高的监督节点；（2）无效上报：二层网络判定预言机报告没问题，并判定上报无效，所有发出报警的节点都被部分扣除保证金</p></li></ol><blockquote><h2 id="h-3-chainlink-yuanmetalayer" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">3. Chainlink 元开发层（Metalayer）</h2></blockquote><p>MetaLayer 是区块链技术中的一个概念，它通常用来描述在区块链协议之上的一层抽象。在这一层之上，可以构建更高层次的应用程序和协议，从而实现更丰富的功能。通常来说，MetaLayer 的设计目的是为了提供更高层次的抽象，使得区块链技术更加易用和灵活（例如，以太坊的智能合约就可以看作是在以太坊区块链协议之上的 MetaLayer）</p><p>在 Chainlink 的 V2 白皮书中，MetaLayer 是指一个基于 Chainlink 协议的抽象层，为开发人员提供了一种简单的方式来将任何外部数据源（如 Web API、传感器等）与智能合约集成。MetaLayer 允许开发人员在区块链上编写智能合约，以访问和使用来自外部数据源的数据，从而提高了智能合约的灵活性和应用场景</p><p><strong>MetaLayer 具有以下特点：</strong></p><ol><li><p>**抽象性：**MetaLayer 可以对外部数据源进行抽象，使得开发人员可以更轻松地访问和使用这些数据。开发人员只需要了解 MetaLayer 的接口，就可以使用任何外部数据源，无需考虑底层的实现和技术细节</p></li><li><p>**灵活性：**由于 MetaLayer 可以与任何外部数据源集成，因此开发人员可以根据需要使用不同的数据源来满足不同的应用场景。此外，MetaLayer 还可以通过链外逻辑来自定义数据处理和过滤规则，使得智能合约可以更加灵活地使用外部数据</p></li><li><p>**安全性：**MetaLayer 的设计考虑了安全性问题，确保外部数据源的数据可以被可靠地验证和证明。MetaLayer 还可以通过使用多个数据源、多个链外节点等方式来增强安全性和可靠性</p></li></ol><p>MetaLayer 是 Chainlink 中一个重要的组成部分，通过抽象外部数据源，为智能合约提供了更多的灵活性和应用场景</p><blockquote><h2 id="h-4" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">4. 一些思考</h2></blockquote><p>Chainlink 联合创始人 Sergey Nazarov 曾表示过：DONs 和 区块链是互补的技术，而非替代关系，确实是这样，纵观 Chainlink V2 Whitepaper，<strong>Chainlink 的目标其实就是为区块链提供更加强大的链下支持，进一步来丰富链上功能，给区块链以更多想象空间</strong>，但需要注意的是，Chainlink 的去中心化预言机网络并不是一张大网去实现不同的功能，而是不同的功能对应着不同的去中心化预言机网络，虽然不同的网络中节点会有重叠，但是 Chainlink 的去中心化程度不够确是事实，但这既是它的缺点，同时也是它的优点，否则如何实现高效率、低成本的链下计算，如果预言机网络的去中心化程度与以太坊处在同一水平，姑且不讨论网络达成共识困难这个问题，计算成本就已经与以太坊处在同一水平了，预言机存在的必要性就消失了</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/140c74c7a6c445ff9223ed6c671195706703db78d0d21b7db53cb0d926e54794.png" alt="Fig 3. Chainlink 活跃节点数量 ｜ 2023.04.05" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 3. Chainlink 活跃节点数量 ｜ 2023.04.05</figcaption></figure><p>Chainlink 团队也非常清楚自身的优劣势，所以 Chainlink 目前选取节点运营商的方式主要是通过与可信节点合作（需要 KYC ），然后用 token 激励节点，并准备引入超线性质押机制来进一步加强安全性，<strong>在重奖励重惩罚的机制下，Chainlink 团队试图在去中心化和安全性之间找到一个完美的平衡点</strong></p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div><p><strong>Reference：</strong></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://research.chain.link/whitepaper-v2.pdf">Chainlink V2 Whitepaper</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.chain.link/chainlink-2-0-lays-foundation-for-adoption-of-hybrid-smart-contracts/">Chainlink 2.0 Lays Foundation for Adoption of Hybrid Smart Contracts</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://developer.aliyun.com/article/763266">Chainlink VRF 可验证随机函数详解</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://blog.chain.link/explicit-staking-in-chainlink-2-0-zh/">一文读懂Chainlink 2.0的显性质押机制</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://zhuanlan.zhihu.com/p/373833300">OCR：基于链下共识的数据聚合机制</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.qianba.com/news/p-413889.html">Chainlink的理想与现实</a></p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://chat.openai.com">Chat-GPT</a></p>]]></content:encoded>
            <author>damian-dyor@newsletter.paragraph.com (damian-dyor.eth)</author>
        </item>
        <item>
            <title><![CDATA[比特币扩容方案-闪电网络 Lightening Network 机制详解]]></title>
            <link>https://paragraph.com/@damian-dyor/lightening-network</link>
            <guid>45FSUnEwT90I2PzxYKzG</guid>
            <pubDate>Mon, 03 Apr 2023 13:23:28 GMT</pubDate>
            <description><![CDATA[0. 前言闪电网络（Lightening Network）是比特币核心团队为了解决比特币网络容量不佳所提出的扩容方案，它实现了快速的链下转账，在需要结算时才会上链，所以实现了快捷的支付，且通过这链上、链下两层网络实现了对网络的扩容 闪电网络是基于微支付通道演进而来，创造性的设计出了两种类型的交易合约：序列到期可撤销合约 RSMC（Revocable Sequence Maturity Contract）哈希时间锁定合约 HTLC（Hash Timelock Contract）其中： RMSC 解决了通道中币单向流动的问题，HTLC 解决了币跨节点传递的问题，这两种类型的交易组成了闪电网络1. RSMC（建立两个节点间的快速转账通道）现有 A 和 B 经常有业务往来，所以准备各处 0.5 BTC 放入通道，以便于业务往来Fig 1. 构建 RSMC 的流程构建 RSMC 的流程为：双方各拿出 0.5 BTC，分别构建 Funding Tx A，Funding Tx B，且双方也建立 2/2 多签地址，用来储存这 1 BTC，相当于一个保证金账户，此时 Funding Tx 不签名（...]]></description>
            <content:encoded><![CDATA[<h2 id="h-0" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">0. 前言</h2><p>闪电网络（Lightening Network）是比特币核心团队为了解决比特币网络容量不佳所提出的扩容方案，它实现了快速的链下转账，在需要结算时才会上链，所以实现了快捷的支付，且通过这链上、链下两层网络实现了对网络的扩容</p><p>闪电网络是基于微支付通道演进而来，创造性的设计出了两种类型的交易合约：</p><ul><li><p><strong>序列到期可撤销合约 RSMC（Revocable Sequence Maturity Contract）</strong></p></li><li><p><strong>哈希时间锁定合约 HTLC（Hash Timelock Contract）</strong></p></li></ul><p>其中： RMSC 解决了通道中币单向流动的问题，HTLC 解决了币跨节点传递的问题，这两种类型的交易组成了闪电网络</p><blockquote><h2 id="h-1-rsmc" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1. RSMC（建立两个节点间的快速转账通道）</h2></blockquote><p>现有 A 和 B 经常有业务往来，所以准备各处 0.5 BTC 放入通道，以便于业务往来</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/a3bf8173cf2ce73edd9c4cdd168104183d7b5b95953f1b31bacfe4a303d99c6b.jpg" alt="Fig 1. 构建 RSMC 的流程" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 1. 构建 RSMC 的流程</figcaption></figure><p>构建 RSMC 的流程为：</p><ol><li><p>双方各拿出 0.5 BTC，分别构建 Funding Tx A，Funding Tx B，且双方也建立 2/2 多签地址，用来储存这 1 BTC，相当于一个保证金账户，此时 Funding Tx 不签名（未生效）</p></li><li><p>A 构造 Commitment Tx：Ca1 和 RD1a，并交给 B 签名，Ca1 交易的第一个输出为多重签名地址，是 A 的第二把私钥 A2 和 B 的 2/2 多重签名， C1a 这笔交易的第二个输出为 B，转 0.5 BTC</p></li><li><p>RD1a 为 C1a这笔交易第一个输出的花费交易（将这笔输出花出去的交易），转账给 A 0.5 BTC，但此类型的交易带有 Sequence，作用是阻止当前交易进块（惩罚作用），只有前向交易有 Sequence 个确认才能进块</p></li><li><p>B 的操作与 A 对称，此时由于并未对 Funding Tx 进行签名，所以双方任何一方均无法作恶，任何一方也不会有损失</p></li><li><p>双方均完成对 Commitment Tx 的签名并交换后，各自再对 Funding Tx 进行签名，此时 Funding Tx 是完整的交易，之后广播交易</p></li></ol><p><em>*注：图的左侧为 A 可见内容，右侧为 B 可见内容，A &amp; B 2/2多签地址也是二人共同可见；C1a，C1b 这两笔交易画的钱正是两人共同建立的多签地址中的钱（A &amp; B 2/2 多签地址）；C1a，C1b 中的第一个输出（0 号）实际去向也是一个多签地址，要把里面的钱转出也需要2个人的签名</em></p><p>C1a 与 C1b 两笔交易花费的是同一组输出（两人共同建立的多签地址），所以两笔交易如果同时发布，只有其中一个可以进入区块，若 A 签名并发布了 C1a 交易，则按照交易， B 可以立即获得本就属于他的 0.5 BTC，二另外 0.5 BTC 先进入 A2 &amp; B 的多签地址，此时 A 再签名 RD1a ，想取出 0.5 BTC，但由于 Sequence的缘故，要等 1000 个区块的确认才可以取出来，也即约 7 天：</p><pre data-type="codeBlock" text="1000 × 10min ÷ 60 ÷ 24 ≈ 7 days
"><code><span class="hljs-number">1000</span> × <span class="hljs-number">10</span>min ÷ <span class="hljs-number">60</span> ÷ <span class="hljs-number">24</span> ≈ <span class="hljs-number">7</span> days
</code></pre><p>也就是说，<strong>单方面毁约的人会延迟拿到币，另一方则是立即就可以拿到币</strong></p><p>通道建立好后，此时两个人开始交易，A 和 B 都拥有 0.5 BTC，此时 A 从 B 处购买了一件商品，价格为 0.1 BTC，那么 A 的余额变为 0.4 BTC，B 的余额变为 0.6 BTC，为了完成这笔交易，需要重新构建 Commitment Tx，对于 A 来讲是 C2a 和 RD2a，对 B 来讲是 C2b 和 RD2b，与之前的步骤一致：</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/66b1e83ec90c0c3d47b89eea46f87b068cbb2a2f20d1f764a639a969648c055b.jpg" alt="Fig 2. 重新构建 Commitment Tx" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 2. 重新构建 Commitment Tx</figcaption></figure><p>但有一个问题，之前的 C1a，RD1a，C1b，RD1b 交易签名后依然可以发布，这样很有可能会使一方的利益受损，如何才能废掉之前的交易呢？</p><p>其实在产生 C2a，RD2a，C2b，RD2b 之前，双方需要互相交换 A2，B2 私钥，这样即使 A 在完成交易后，私自发布 C1a 交易想抵赖这 0.1 BTC，那么在 1000 个区块确认时间之内，B都可以 拿着 A2 私钥，将 RD1a 的转账人改成自己，这样 A 不但得不到这 0.1 BTC，还会损失剩余的所有钱</p><p>关闭交易通道时，A，B就可以用多重签名正常把钱取回自己的地址</p><blockquote><h2 id="h-2-htlc" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2. HTLC（将双向支付通道扩展为闪电网络）</h2></blockquote><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/76a94e7224418855b537359d47bf318d22d1f21b54cbcd6457e8edee551139a7.jpg" alt="Fig 3. 闪电网络" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 3. 闪电网络</figcaption></figure><p>上面的闪电网络图其实并不是每个节点之间都有支付通道，若 A 想给 C支付，就需要路由节点 B</p><pre data-type="codeBlock" text="A ---&gt; B ---&gt; C
"><code>A <span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-operator">></span> B <span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-operator">-</span><span class="hljs-operator">></span> C
</code></pre><p>这时就需要解决一个问题：如何保证中间的路由节点是诚实的？这就需要用到 HTLC（Hash Timelock Contract）:</p><ol><li><p>C 会选择一个随机密文 X，计算得到其哈希值，再将此哈希值交给 A</p></li><li><p>A 拿到哈希值后，会构建一笔转账给 B 的交易，这笔交易需要 B 拿到 X 才能解锁，且如果 B 在限定时间内没有解锁成功，这笔钱就会退回 A</p></li><li><p>B 从 A 处拿到哈希值，B 构建一笔转账给 C 的交易，C必须拿着 X 来解锁才能取走钱</p></li><li><p>C 输入 X 取走了钱，同时 B 也知道了 X，用 X 从 A 构建的交易中把钱取走，交易结束</p></li></ol><p><em>*注：实际交易中，A 还需要支付 B 一定的路由费来激励 B 充当路由节点（但会比直接在链上交易便宜很多），同时还要注意两笔交易之间的哈希时间长度设置，第二步事件必须大于第三步时间，如果 B 在 A 关闭交易之后拿 X 来解锁，那么解锁将会失败</em></p><p>Reference：</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="">硬核干货｜6000字读懂闪电网络原理</a></p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div>]]></content:encoded>
            <author>damian-dyor@newsletter.paragraph.com (damian-dyor.eth)</author>
        </item>
        <item>
            <title><![CDATA[聊聊AI的产生及未来发展方向]]></title>
            <link>https://paragraph.com/@damian-dyor/ai</link>
            <guid>MF7Npv81cTPiklDeKWi5</guid>
            <pubDate>Wed, 22 Mar 2023 00:49:56 GMT</pubDate>
            <description><![CDATA[最近 OpenAI 开发的 ChatGPT 火遍了生活圈，一时间，不论男女老幼，还是大牛小白，几乎人人都在把玩 ChatGPT 并惊讶于 ChatGPT 的超强能力。恰巧，最近又把 KK 的《失控》翻出来读了一遍，结合《失控》这本书，今天来说说我眼中的 AI 及一些个人思考 在讲 AI 之前，首先让我们先观察一下我们自己——大自然所创造出的最杰出的作品 显然，人类在已知的所有生物中是最具有智慧的，我们具有超高的脑容量，会使用工具，会思考外部的世界，甚至会思考自身的存在性问题，那么问题来了，如此高的智慧从何而来？很多人可能会不假思索的回答当然是大脑啦，这么说并没有错，只是还不够深入，如果我们再进一步，大脑的智能是从何而来呢？这时我们不得不剖析我们的大脑，大脑的结构虽然非常复杂，但是构成其的也不过是功能简单的各类脑细胞，它们相互配合组成了大脑，在这过程中并没有一个中心化的“指挥官”来指导每个细胞应该怎么配合，每个细胞只是简单的接受输入，做出相应的输出，大脑就神奇般地产生了智能。同样的，单个蜜蜂的记忆只有6天，而作为整体的蜂巢的记忆时间为3个月，是一只蜜蜂平均寿命的2倍，种种如此，向我...]]></description>
            <content:encoded><![CDATA[<p>最近 OpenAI 开发的 ChatGPT 火遍了生活圈，一时间，不论男女老幼，还是大牛小白，几乎人人都在把玩 ChatGPT 并惊讶于 ChatGPT 的超强能力。恰巧，最近又把 KK 的《失控》翻出来读了一遍，结合《失控》这本书，今天来说说我眼中的 AI 及一些个人思考</p><p>在讲 AI 之前，首先让我们先观察一下我们自己——大自然所创造出的最杰出的作品</p><p>显然，人类在已知的所有生物中是最具有智慧的，我们具有超高的脑容量，会使用工具，会思考外部的世界，甚至会思考自身的存在性问题，那么问题来了，如此高的智慧从何而来？很多人可能会不假思索的回答当然是大脑啦，这么说并没有错，只是还不够深入，如果我们再进一步，大脑的智能是从何而来呢？这时我们不得不剖析我们的大脑，大脑的结构虽然非常复杂，但是构成其的也不过是功能简单的各类脑细胞，它们相互配合组成了大脑，在这过程中并没有一个中心化的“指挥官”来指导每个细胞应该怎么配合，每个细胞只是简单的接受输入，做出相应的输出，大脑就神奇般地产生了智能。同样的，单个蜜蜂的记忆只有6天，而作为整体的蜂巢的记忆时间为3个月，是一只蜜蜂平均寿命的2倍，种种如此，向我们揭示了：<strong>智能是从低级存在构成的群落中涌现的</strong></p><p>AI 的诞生也是基于同样的思想，以神经网络为例，其最基本构成单位被称为神经元，神经元的作用就是接受加权的输入，加总后依据映射规则产生输出，功能非常简单（下图展示了含有 1 个神经元的 BP 神经网络），但当把神经元的数量增加，层数增加，网络的能力也会非线性的增加，看起来就好像具有了智慧，所以 AI 的诞生，与仿生学也是密不可分的</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/16a75a70e7ccef657c30a4254c7c60a73ce2b14e9ba572595720bf1efddb4681.png" alt="Fig 1. 含有 1 个神经元的 BP 神经网络" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 1. 含有 1 个神经元的 BP 神经网络</figcaption></figure><p>众多低级的存在，彼此之间又简单的沟通机制，这样的一个群落就会涌现出单个个体所不具备的智能，基于以上的想法，人们创造了 AI，当我们再仔细看这段话，不知道大家是否有发现 AI 与去中心化系统之间的联系，如果把一个一个神经元看作是去中心化系统中的节点，节点构成的 P2P 网络就是这些节点间彼此沟通的通道，当这个去中心化的系统运行起来时，更加高级的智能从中涌现而出，便产生了 AI，如果在 AI 模型之上再嵌套去中心化系统，就可以获得鲁棒性更强的 AI（比如集成学习），下图展示了集成学习中的 Bagging 策略，所以<strong>本质上来说 AI 就是紧凑的去中心化系统</strong></p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/120047ea374cca48bc167321572614982fd1629e6bc8f99b23c4ce5f41c48519.png" alt="Fig 2. 集成学习Bagging结合策略" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 2. 集成学习Bagging结合策略</figcaption></figure><p>如果我们更进一步，观察 AI 是如何学习的，就会发现 AI 实际上是通过不断的试错来达到训练的效果，而非通过计算机科学家通过精心的设计其中的参数来实现智能（人类并不适合从事高复杂度的工作），不断试错的思想其实也来源于自然进化，大家都知道，生物的变异是相对随机的，变异可能会带来有利于生存的特性，也有可能带来不利于生存的特性，而拥有不利于生存的变异的个体在激烈的竞争中会处于不利地位，进而被淘汰，这就是自然选择。试错也是如此，AI 不断的“变异”，从中挑选出最优秀的个体来作为最终的模型，但在这个过程中，我们其实是不需要知道 AI 内部在学习过程中发生了什么样的变化的，因为 AI 是否有用才是我们关注的重点，我们需要做的就只是准备好数据，其余交给 AI 自我进化即可，<strong>在训练 AI 的过程中，我们实际上是完成了一次的硅基生物的进化</strong>，进化完毕的 AI 实际上就是一个黑箱，我们给它一个输入，它给我们一个输出，其中输入怎么变成输出的我们并不知道，也不需要知道（因为人类无法分析如此高复杂度的系统），而这，也体现了《失控》这本书的核心观点，即<strong>想要获得更好的系统的方式就是放弃对它的控制，给予其自由度，让其自由生长</strong>，这个道理对 AI 是如此，对亲子之间的关系是如此，对整个社会也是同样如此</p><p><strong>中心化的系统就意味着控制，而去中心化的系统就意味着失控</strong>。这里插一句题外话，我个人对于区块链中 Layer 1 的看法就是首先要做好去中心化和安全性，之后再去解决可扩展性，那些为了高 TPS 而牺牲了去中心化程度的公链个人是有偏见的，虽然目前以太坊的去中心化程度还可以再继续提高，但是其发展的逻辑基本是符合上述观点的，所以个人比较看好以太坊的发展，做好 Layer 1 的去中心化和安全后，再辅以 layer 2，最起码的好处是用户有得选择，当其想要更多的安全保障时，可以选择 Layer 1，而想要更低的成本时，可以选择 Layer 2</p><p>其实当 ChatGPT 出世时，我并没有感到特别的意外，这是因为目前的 AI ，所能做的就只是提高做事的效率，而这些事，是人类本身就可以做的，只是没有 AI 做的快，这一阶段的 AI 担任的是一个出色的工具的角色，因为此时 AI 所学习的东西，如何学习，都是人为规定的，从某种程度上来说，此时 AI 能力的上限就是我们人类自己，人类以自身的所学所识训练出来的 AI 是不可能超过人类本身的，此时我们并没有完全放弃对于 AI 的控制。未来随着对 AI 潜力进一步开发的需求，对于 AI 的控制会越来越少，最终人类完全放弃对于 AI 的控制，达到 AI 自主探索，自主学习，自主进化的状态，这也无疑是打开了潘多拉的魔盒，带来了诸多的不确定因素，就像《失控》中预言的那样：<strong>人类的存在就是为了孕育更高级形式的生命，而这个更高级形式的生命在我看来很可能就是 AI</strong>。我们当然可以通过我们的智慧一边限制 AI，一边开发 AI 的潜力，但人性是贪婪的，我们始终想要更多，更多，当我们有一天终于迈出了解开封印的那最后一步时，这或许就将是另一个伟大文明的开端</p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div>]]></content:encoded>
            <author>damian-dyor@newsletter.paragraph.com (damian-dyor.eth)</author>
        </item>
        <item>
            <title><![CDATA[LayerZero 白皮书翻译及一些思考]]></title>
            <link>https://paragraph.com/@damian-dyor/layerzero</link>
            <guid>eJyKIBP8HHKptheiS1SJ</guid>
            <pubDate>Fri, 10 Mar 2023 14:29:11 GMT</pubDate>
            <description><![CDATA[0. 摘要区块链的不断发展给了开发者更多的选择，让他们可以根据对吞吐量、安全及成本的角度去选择合适的区块链运行自己的智能合约，但同时这也造成了严重的碎片化问题，流动性只局限于区块链内部，很难做到流动性的跨链转移 本文将介绍第一个实现去信任的全链互操作性协议—— LayerZero，其提供了一个强大的底层通信原语，使得各式的跨链应用可以基于其实现，开发者可以使用新的原语开发无缝跨链的应用（比如跨链的DEX或多链的收益聚合器）而不再需要依赖收信人的托管人或者中间交易。LayerZero 是第一个在所有链上实现无信任直接交易的系统。允许交易在链之间自由流动，为用户提供了合并分散的流动性的机会，同时也充分利用单独链上的应用程序。通 LayerZero，我们提供了未来全连接的全链生态系统的网络结构1. 引言区块链最核心的概念就是去中心化、透明性和不可变性三大支柱，没有任何一个单一的实体可以控制区块链，任何在链上的交易都是可验证及不可逆的，这些支柱创建了一个实体可以在不信任任何其他实体的情况下交易的基础。这种信任保证是加密货币相较于法定货币更具有吸引力的原因之一Fig 1. LayerZer...]]></description>
            <content:encoded><![CDATA[<h2 id="h-0" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">0. 摘要</h2><p>区块链的不断发展给了开发者更多的选择，让他们可以根据对吞吐量、安全及成本的角度去选择合适的区块链运行自己的智能合约，但同时这也造成了严重的碎片化问题，流动性只局限于区块链内部，很难做到流动性的跨链转移</p><p>本文将介绍第一个实现去信任的全链互操作性协议—— LayerZero，其提供了一个强大的底层通信原语，使得各式的跨链应用可以基于其实现，开发者可以使用新的原语开发无缝跨链的应用（比如跨链的DEX或多链的收益聚合器）而不再需要依赖收信人的托管人或者中间交易。LayerZero 是第一个在所有链上实现无信任直接交易的系统。允许交易在链之间自由流动，为用户提供了合并分散的流动性的机会，同时也充分利用单独链上的应用程序。通 LayerZero，我们提供了未来全连接的全链生态系统的网络结构</p><h2 id="h-1" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1. 引言</h2><p>区块链最核心的概念就是去中心化、透明性和不可变性三大支柱，没有任何一个单一的实体可以控制区块链，任何在链上的交易都是可验证及不可逆的，这些支柱创建了一个实体可以在不信任任何其他实体的情况下交易的基础。这种信任保证是加密货币相较于法定货币更具有吸引力的原因之一</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/1c8e458218d0524914d45486230b112245a78ea3a2e4b40cad187d8de55d1ba5.png" alt="Fig 1. LayerZero enables cross-chain transactions" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 1. LayerZero enables cross-chain transactions</figcaption></figure><p>如果所有的用户及应用全都存在于一条区块链上，那么本文也就没有存在的必要了，然而区块链的实用性导致了各种应用程序的激增，这些应用程序具有独特的复杂性和需求。对多样化功能的需求阻碍了专业化区块链的发展，每一条链其自身的生态巨大发展，但是不同生态之间的隔绝成为了继续增长的重要阻力，用户及开发者被迫将时间、资源、流动性分割后分配给不同的链，Layer1 的数量众多（写这篇文章时有109条公链）的一个自然结果就是需要去扩展上述的三大支柱，来同时包含不同的跨链操作，特别是代币跨链操作的需求就很高涨，我们之后来讨论</p><p>按区块链的说法，工作的单位是交易，不可变且不可逆，最后被区块收纳，构成了区块链系统的安全基础，但是交易从来都是单链上的概念，跨链交互，传统上是需要一个生态以外的第三方，作为对比，本文将介绍第一个使得原生跨链交易成为可能的通信协议——LayerZero</p><p>为了说明 LayerZero 提供的强大通信原语，让我们来看一个代币跨链的例子，目前兑换两条不同链的代币，用户必须利用中心化的交易所，或者跨链的去中心化交易所（也被称为跨链桥），但是用二者都有所妥协。在使用中心化交易所（比如币安），用户必须信任跟踪存款和取款的交易所，这种信任关系与区块链最基础的去信任恰恰相反，且相较于链上自动化系统缺乏安全性，使用去中心化交易所（AnySwap, THOR-Chain）视同链上交易减轻了信任问题，但现存的 DEX 在实现链上交易时，会将用户的代币转换为适用于特定协议的代币，通过中间共识层，来实现交易的共识，该中间共识层，虽然通常以安全的方式实现，但确实需要用户信任侧链来促进代币兑换，正如我们在本文中所提及的，这种开销是不必要的，尽管有强烈的需求，但还没有能够提出一个高效、直接的解决方案，同时仍然保持最初使用区块链的核心原因：去信任化。退后一步，LayerZero 的直接跨链交易给了开发者去实现这一切的工具</p><p>要留意，LayerZero 和交易所是运行在不同层级的，LayerZero 是通信原语，使得多样化的全链应用成为可能，而交易所只是会从 LayerZero 受益的一种应用。第2节会概述区块链技术的蓝图及进一步探讨交易的实例</p><p>为了更恰当的解释 LayerZero 的功能及其在区块链生态中扮演的角色，我们首先呈现一个实现链交易所必须的基础通信原语，我们称之为有效传输（第3节会讲），之后会详述 LayerZero 是如何在去信任的方式下提供原语，并保持区块链的安全承诺。LayerZero 是第一个去信任化的全链互操作层，支持直接与 Layer1，Layer2 通信</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/238a128c2ff1530541c79d59e7e7da4536a9f3e4f3f0d426c886e59adc3220e3.png" alt="Fig 2. LayerZero ensures the validity of cross-chain communication by requiring that two independent entities, the Oracle and Relayer, corroborate the transaction" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 2. LayerZero ensures the validity of cross-chain communication by requiring that two independent entities, the Oracle and Relayer, corroborate the transaction</figcaption></figure><p>对链A与链B之间的跨链交易来说，包含A链上的交易tA和A与B之间的通信协议，以及信息m，有效传输是说有且只有tA被执行且有效时，才会传递信息m，支持 LayerZero 的关键思想是：如果两个独立的实体证实交易的有效性（在本例中为 tA），那么链 B 可以确定 tA 是有效，图2在更高层面说明了这一点，给定两个并未合谋的实体，如果：（1）其中一个实体可以获取链A上包含tA的区块头；（2）另一个实体可以独立的产生tA的链上交易证明；（3）区块头与交易证明相符，之后通信协议就会在tA已被承认的前提下，將信息m传送至链B上的客户端。LayerZero 的通信协议（第4节说明）保证接收链的交易匹配的是发送链上一个有效的、被承认的交易，而不涉及任何中间链，我们通过结合两个互相独立的实体：一个提供区块头的预言机和一个提供前述交易的证明的中继器来实现上述功能</p><p>LayerZero 的接口是一个我们称之为 LayerZero 端点的轻量级客户端，每个（LayerZero 支持的）链上存在一个 LayerZero 端点，任何具有 LayerZero 端点的链都可以与任何其他具有 LayerZero 端点的链进行跨链交易，本质上来说，者创建了一个各个节点直接与其他节点相连接的全链接网络，第5节会通过以太坊链上的例子演示这个过程</p><p>直接与网络中其他区块链进行跨链交易的能力使得以前无法实现的大规模应用成为可能，比如跨链去中心化交易所、多链的收益聚合器及跨链借贷应用。第6节会详细解读这样的几个应用，通过LayerZero，用户可以自由的將流动性在不同链之间转移，同时也允许单个流动资金池参与跨不同链和生态系统的多个去中心化金融（DeFi）应用程序，而无需经由第三方或中介代币</p><h2 id="h-2" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2. 背景</h2><p>为了给 LayerZero 奠定基础，我们回顾了现有的相关系统，来说明它们为何不能满足新兴应用程序的需求，相关的讨论最终深入解释了在 LayerZero 上构建跨链交换的优势</p><h3 id="h-21" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">2.1 相关工作</h3><p>本节建立对跨链交互空间中重要参与者的理解，为什么他们无法实现无信任有效交付的想法，以及 LayerZero 如何解决这个问题的</p><p><strong>Ethereum</strong> 是基于智能合约构建去中心化金融应用最受欢迎的平台，以太坊使用图灵完备的编程语言扩展其底层区块链，使去中心化应用程序库能够通过对开发人员友好的抽象来利用底层链的强大安全属性，但是底层区块链较低的交易速度（每秒15-45笔交易）被证明是一个严重的瓶颈，限制了直接运行在以太坊区块链上的应用的流行。由于其编程模型及其受欢迎程度，有许多链间通信技术围绕第三方链与以太坊的接口展开，LayerZero提供了直接从/向以太坊区块链传递状态信息的能力，而不需要任何中介，允许用户和应用程序利用以太坊链的稳定性和可信度，而不会出现下述解决方案的成本和瓶颈</p><p><strong>Ethereum2.0</strong> 是一组提议的升级，以解决以太坊在可扩展性、安全性和可持续性方面的缺点，以太坊2.0 介绍了通过分片链將链上交易压力分散而非集中在以太坊主链的方案，从 POW 到 POS 共识机制的转变则消除了51%攻击的可能，并且降低了交易的能耗。这些进步在很大程度上与 LayerZero 是无关的，除了它们肯定会提高以太坊的流行度，从而产生对方便和廉价的链间通信的更多需求</p><p><strong>Polygon</strong> 前身为 Matic Network，是一个用于解决以太坊链吞吐量与所有权挑战的Layer2，尽管以太坊已经成为最受欢迎的区块链开发平台，但其却被低网络吞吐量所困扰，导致其并不适合部署应用，Polygon 提供特定于应用程序的、与以太坊兼容的侧链，这些侧链结合了独立链的可扩展性和独立性以及以太坊的社区和安全性，特定的或者对吞吐量有高需求的应用运行在侧链，并且阶段性的与以太坊主链进行交易合并。相比之下，LayerZero 是一个较低层级的平台，可实现直接的链间通信，并可用于促进向太坊链的传输，而无需复杂的 Polygon 协议</p><p><strong>Polkadot</strong> 是一个潜在的开放的跨链生态的早期案例，在 Polkadot 中许多特定的平行链（“parachains”）通过一个公共的中继链连接，使得代币和数据可以在其中流通，但是链间通信总是要通过中继链来实现从而导致了额外的花销，LayerZero 在没有额外交易及链上中介需求的情况下，提供了与 Polkadot 相同的低层级通信网络</p><p><strong>THORChain</strong> 是利用币对流动性池在第三方链实现代币兑换的去中心化交易所，每一个流动性池將特定的第三方代币与扮演兑换媒介的 THORChain 原生代币RUNE绑定，没有这个公共的媒介，所有交易对都需要一个流动性池，这意味着流动性池的数量將与代币种类数量的平方成正比，不幸的是，虽然RUNE解决了这个问题，但它在处理过程中却产生了繁琐的开销，使简单的操作变得相当复杂，这在 THORChain 交易算法的复杂性中显而易见。LayerZero 不存在 THORChain 内在的可扩展瓶颈、媒介代币的麻烦以及复杂的协议，同时实现了直接的链间通信系统</p><p><strong>AnySwap</strong> 是一个面向简单的成对代币交换的 DEX，类似于 THORChain。也依赖基于 Fusion的分布式控制权限管理的媒介代币 ANY，与 THORChain 一样，使用 ANY 中间代币会带来不必要的开销、延迟和额外的转账费用</p><p><strong>Cosmos</strong> 是是一种区块链网络技术，允许在支持的链之间发送任意消息。Cosmos包括一个基于 Tendermint BFT 构建的通信器协议以促进构建在 Cosmos Hub 上的链间消息传递，Cosmos 与 LayerZero 有两个重要区别：（1）IBC运行一个完成的链上轻节点（2）IBC仅提供 fastfinality 链之间的直接通信，这些IBC的局限性连同其利用中介链达成共识使其与AnySwap，THORChain， Polkadot,类似，而不是类似于LayerZero的通用通信层，Cosmos也同样提供与 AnySwap 或 THORChain 类似的被称为 Gravity Bridge 的去中心化交易所，相较于 Cosmos 与 IBC，LayerZero 提供去信任的全链发信功能，并且可以扩展在不同链上运行</p><p><strong>Chainlink</strong> 是一个去开发和连接至去中心化预言机网络（DONS）的框架，虽然智能合约是防篡改的，但其链上性质阻碍了对其更广泛应用至关重要的基本连接：智能合约无法获取执行合约所需的链下数据，如股票价格、物联网设备测量和保护安全链下计算的输出，DAO 在不信任任何中心化实体的情况下，将智能合约的防篡改属性扩展到合约所依赖的数据源和外部资源。在 DAO 中，用户的智能合约对 Chainlink 的接口智能合约发出一个链上请求，来对其他预言机节点广播请求信息，每一个预言机节点都会针对请求的信息查询多种数据来源，整合并且过滤错误、恶意的数据源，并可选得对数据执行信任最小化计算，预言机节点响应 Chainlink 接口协议，该协议执行第二级聚合以过滤错误或恶意的预言机节点。这种双层过滤保证了最终数据的可信度，而不需要信任任何单独的预言机节点或数据源。因此，Chainlink 提供了一个鲁棒的信息检索网络以及安全的链下计算解决方案，已在整个行业得到广泛应用。通过利用 Chainlink DON框架，LayerZero 协议获得了确保不同链之间无信任传递消息的能力</p><h2 id="h-22-layerzero" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2.2 实际应用中的 LayerZero</h2><p>开发者可以在不牺牲去信任化及引入复杂的中间链，智能合约的情况下，基于 LayerZero 开发复杂的跨链应用，Fig 3 演示了 LayerZero 在构建交换环境中的功能</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bc91ab25c93b45fc84d16a12f6fe5786338f20e28c56952927c19935cb14d47f.png" alt="Fig 3. LayerZero is a building block for cross-chain applications. This figure visualizes the architectural differences between a centralized exchange, a decentralized exchange, and a cross-chain bridge built using LayerZero as its underlying communication primitive." blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 3. LayerZero is a building block for cross-chain applications. This figure visualizes the architectural differences between a centralized exchange, a decentralized exchange, and a cross-chain bridge built using LayerZero as its underlying communication primitive.</figcaption></figure><p>左边的图显示的中心化交易所要求用户将代币存入中心化的可信任机构中，然后跟踪链下存款，并在用户请求时在其他链上授予代币。信任这个权威的机构一开始就违背了使用区块链的初衷，所以这导致了去中心化交易所的出现</p><p>中间的图在较高层次通过使用智能合约管理的共识协议来促进链B上的自动铸币，展示了去中心化交易所如何工作，DEX 可以克服对中心化及信任的链下中间人的需要，然而去中心化交易所最大的局限在于其涉及的媒介代币及媒介链，在B链上只能铸造中间代币和包装代币，而这并不是用户真正想要的，用户必须在另外的交易中兑换其中间代币（RUNE）或者包装代币（ANY），这也带来了不必要的开销</p><p>右边的图展示了构建在 LayerZero上 的交易所是什么样的，链 A 能够启动一个跨链交易，促进链 A 上的本地交易，并通知链 B 上的应用程序他们可以安全地向用户授予代币。在这个应用程序中，LayerZero 支持干净且最小化的单个交易交换，不包括任何中间代币。实际的交换协议由跨链交易两端的智能合约处理，LayerZero 在两者之间传递消息。这提供了极大的灵活性，并遵循端到端原则，大部分高级交换逻辑由源链和目标链上的智能合约处理</p><h2 id="h-3" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">3. 有效传输</h2><p>在本节中，我们将描述去信任化链间通信的基本属性。为了正式描述在不同链上验证交易的问题，我们定义了有效传输的概念。有效传输是一个通信原语，通过提供以下保证来实现跨链代币的传输：</p><ol><li><p>通过网络发送的每条消息 m 都与发送端区块链上的交易 t 相绑定</p></li><li><p>只有在发送端链上交易 t 被确认及被验证才可以将信息 m 发送给接收端</p></li></ol><p>中心化交易所保证有效传输，因为客户端和交易所之间的协议是，客户端将把他们的代币从一条链转移到交易所，交易所将在收到该代币后，发行一些余额(非加密货币)。然后，这种非加密货币余额可以从任何可用的链中提取，这种便利性是由交易所在每个受支持的链上维护的广泛的流动性池所实现的。交易所在交易中扮演中间人的角色，用户必须相信他们会遵守交易的约定。然而，恶意的交易所可以从客户端获取代币，发出余额，然后拒绝从另一个链中提取余额，有效地从用户那里窃取代币。即使用户愿意信任交易所，近年来已经出现了许多成功的黑客攻击或破坏加密货币交易所[15]的尝试，因此用户最好使用不需要任何可信中间人的解决方案。在更高的层面上，加密货币的核心租户之一是它们独立于银行等中心化实体，因此依赖中心化交易所违背了它们的目的</p><p>使用中心化交易所的替代选项就是使用去中心化交易所，如 THORChain 或者 AnySwap，所有现有的 DEX 都使用媒介代币，就像RUNE 之于 THORChain，ANY 之于 AnySwap，因为这些中间代币由每个 DEX 各自的协议管理，所以 DEX 可以保证有效传输，恶意的用户是不可能伪造中间代币的，现有 DEX 的解决方案并不理想，因为它们涉及两个中间交易——一个是将发送方的代币转换为中间代币，另一个是将中间代币转换为接收方链上所需的“真实”代币。除此之外，用户还必须完全信任中间共识层，该层在源链上确认交易，并向目标链传达铸造代币的要求。虽然现有的交易所确实支持跨链代币转移，但他们这样做的代价是不必要的复杂性和成本。这样做的缺点很明显，因为跨链应用程序还没有被广泛采用。链间交易问题的理想解决方案是在链间使用单个一次交换交易，而不涉及任何受信任的中间实体——换句话说，去信任化的有效传输。在我们的工作中，我们实现了一个通用的消息传递协议，它提供了任意用户数据(而不仅仅是代币)的去信任化的有效传输。去中心化交易所或其他 DeFi 应用程序将使用我们的消息传递原语来提供跨链交易，底层的消息传递协议提供的灵活性使高级应用程序能够实现以前不可能实现的广泛功能</p><h2 id="h-4" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">4. 设计</h2><p>LayerZero 的核心是提供去信任化有效传输的通信协议，我们的协议建立在一系列的组件之上（4.1节介绍），我们在 4.2 节讨论传输协议的通信流，4.3 节讲述 LayerZero 如何在不引入受信任的中介服务情况下实现有效传输，并提出了一种基于智能合约的低成本轻客户端的新设计（4.4节介绍）</p><h3 id="h-41-layerzero" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">4.1 LayerZero 组件</h3><p><strong>LayerZero Endpoint</strong>（LayerZero 端点）使用面向接口连接 LayerZero，每条在 LayerZero网络中的区块链上都有用一系列智能合约实现的 LayerZero 端点，端点的作用为允许用户利用 LayerZero 协议后端来发送信息并保证有效传输</p><p>一个 LayerZero 端点被分为 4 个模块：Communicator（通信器）、Validator（验证器）、Network（网络）及Libraries（库），这 4 部分构成了端点的核心功能（Fig 4），LayerZero支持的每一个新链都会被作为一个额外的库添加。这种设计允许我们在不修改三个核心模块的情况下添加对新链的支持。4.4 节中会对每个模块的功能进行说明：</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cc6dbe655387b9556969743b16644219b2e682498c06487611d99c0809991e1d.png" alt="Fig 4. The communication flow in a single LayerZero cross-chain transaction" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 4. The communication flow in a single LayerZero cross-chain transaction</figcaption></figure><p><strong>Oracle</strong>（预言机）是一个独立于 LayerZero 组件在区块链读取区块头并发送给另一条链的第三方服务，理论上这一服务可以被很多第三方预言机提供，但实际中，我们期望用目前去中心化预言机网络行业的龙头—— Chainlink</p><p><strong>Relayer</strong>（中继器）是一个功能类似于预言机的链下服务，但并不是收取区块头，而是收取特定交易的证明。在用 LayerZero 协议发送特定消息时只需要保障预言机与中继器是相互独立的就可以保证有效传输，协议本身对中继器并无任何要求，同时理论上，用户可以搭建自己的中继器服务，这种设计可以让用户确定中继器与预言机没有合谋，4.3 节会介绍这种独立性也是我们实现去信任化有效传输的基础，实际中，LayerZero 提供中继器服务，而预言机服务则由去中心化预言机网络 Chainlink 提供</p><h3 id="h-42-layerzero" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">4.2 LayerZero 协议</h3><p>Fig 4 说明了在 LayerZero 中单次信息有效传递的步骤，图中每个数字圈代表协议的一个步骤，对应于本节中的一个段落。本节将介绍链 A 上的用户应用程序通过 LayerZero 向链 B 上的用户应用程序发送一条消息的示例。在第 5 节中，我们描述了在两个以太坊虚拟机之间发送消息的情况下，如何实现各种组件和步骤</p><p>**Step1：**在 A 链上的用户应用程序执行一系列的命令来作为交易 T 的一部分，我们用交易标识符 <code>t</code> 唯一的标识交易 T，随着 A 链的不同该标识符也会不同，交易 T 中步骤 A 是在交易 T 有效的条件下，通过 LayerZero 有效传输消息，为了说明问题，同时不失概括性，我们假设该场景下 App A 使用我们参考的中继器，App A 发送包含一下信息的请求给 LayerZero 的通信器：</p><ul><li><p><code>t</code>：交易 T 的唯一标识符</p></li><li><p><code>dst</code>：指向链 B 上智能合约的全局标识符</p></li><li><p><code>payload</code>：App A 希望发送给App B 的消息</p></li><li><p><code>relayer_args</code>：当 App A 希望使用引用中继器时，描述支付信息的参数</p></li></ul><p>**Step2：**通信器构建一个包含<code>dst</code>和<code>payload</code>的 LayerZero 数据包，被称为<code>Packet(dst, payload)</code>，然后將数据包连同<code>t</code>、<code>relayer_args</code>一起发送给验证器</p><p>**Step3：**验证器发送<code>t</code>和<code>dst</code>给 Network，这一步是通知 Network 需要将链 A 上当前区块的区块头发送到链 B</p><p><strong>Step4</strong>：验证器转发<code>Packet(dst, payload)</code>，<code>t</code>，<code>relayer_args</code>给中继器，通知中继器交易T的交易证明需要被提前获取并最终发送给链B，这一步与Step3同时进行</p><p>**Step5：**Network 给预言机发送当前交易的<code>dst</code>和区块编号（<code>cur_blk_id</code>），这也通知了预言机要拿取链 A 当前区块的区块头并发送给链 B，如果同一个区块中发生多个 LayerZero 交易，Step5 只执行一次</p><p>**Step6：**预言机从链 A 读取区块头（<code>blk_hdr</code>）</p><p><strong>Step7</strong>：中继器从链 A 读取与交易T有关的交易证明（<code>proof(t)</code>），并将其在链下存储，Step6 与 Step7 不同时进行</p><p>**Step8：**预言机确认链A上该区块头所对应的区块已经在区块链上被确认，之后发送该区块头给链 B 上的 Network，确定何时发生这种情况的机制因链而异，但通常涉及等待一定数量的区块确认</p><p>**Step9：**Network 发送该区块头的哈希（<code>blk_hdr_hash</code>）给验证器</p><p>**Step10：**验证器转发区块头哈希给中继器</p><p>**Step11：**在收到区块头哈希后，中继器发送一个与当前区块匹配的 <code>Packet(dst, payload)</code>，<code>t</code>，<code>proof(t)</code>清单，如果多个用户同时在相同的端点之间发送消息，则同一块中可能存在多个数据包和相关的交易证明</p><p>**Step12：**验证器用收到的交易证明结合 Network 存储的区块头来验证相关的交易T是否有效及被承认，如果区块头和交易证明不匹配，那么消息被废弃，如果匹配，<code>Packet(dst, payload)</code>会被发送给通信器</p><p>**Step13：**通信器给 App B 发送 <code>Packet(dst, payload)</code></p><h3 id="h-43" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">4.3 实现去信任化的有效传输</h3><p>**Trustlessness（去信任化）：**LayerZero 设计的核心思想是用户不需要信任 LayerZero 的组件。我们不要求信任，这是一个较强的条件，我们只要求预言机和中继器之间的独立性这个较弱的条件。这种对独立性而不是信任的要求是 LayerZero 高效和轻量级的原因之一。只要预言机和中继器之间没有恶意的勾结，那么 LayerZero 就保证了有效传递</p><p>**Valid delivery（有效传输）：**通过 4.2 节展示的 LayerZero 协议，当且仅当与 m 关联的交易t的交易证明可以在 Step12 中被验证时，通信器才会将消息 m 传输给用户应用程序。当且仅当区块头和交易证明匹配时，该验证步骤才会成功，这只会在以下两种情况下发生：</p><ol><li><p>预言机提供的区块头与中继器提供的交易证明都是有效的</p></li><li><p>预言机提供的区块头与中继器提供的交易证明都是无效的，但仍然匹配</p></li></ol><p>第 2 种情况只有在预言机和中继器勾结的情况下才会发生，因为从统计上来说，不可能在不知道特定区块头的情况下发送可以针对区块头进行验证的交易证明，反之亦然。然而， LayerZero 的设计消除了共谋的可能性，如第 1 节所述。因此如果消息在接收端被传递给用户应用程序，则保证它满足有效传输</p><p>如第 3 节所述，跨链交易的理想解决方案是可以保证无信任有效传输的通信协议，即不信任中介实体或代币的有效传输。LayerZero 是第一个也是唯一一个证明这一特性的系统。这一事实将推动用户采用 LayerZero 作为消息跨链传递的首选方法</p><h3 id="h-44-layerzero" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">4.4 LayerZero 端点</h3><p>LayerZero 端点目前被 LayerZero 网络中每个链上的一系列智能合约来实现。LayerZero 端点的核心功能封装在三个模块中:通信、验证和网络。这些模块的工作方式类似于网络堆栈，消息从发送方的堆栈向下发送——通信器到验证器再到网络——然后向上发送到接收方的堆栈</p><p>除了核心模块外，LayerZero Endpoint 还可以通过库进行扩展，库是辅助智能合约，定义了如何处理特定链的通信。LayerZero 网络中的每个链都有一个相关联的库，每个端点都包含每个库的副本。这种模块化设计允许 LayerZero 网络快速、轻松地扩展，以包括需要被加入的新链。此外，两条链之间的通信只需要它们各自的库出现在两端，使 LayerZero 成为一个完全连接的网络，能够编排任何节点对之间的交易</p><h3 id="h-45-layerzero" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">4.5 LayerZero 端点成本可伸缩性</h3><p>正如许多读者可能会指出的那样，在 Layer1 上运行智能合约的成本高得令人望而却步，特别是随着存储数据量的增加。为了使 LayerZero 端点经济实用，我们有必要尽可能设计最轻量级的客户端。之前通过跨链状态机复制（SMR）进行的无信任跨链验证工作，如 Golden Gate，每天可能需要花费数百万美元才能在以太坊等流行的 Layer1 上运行</p><p>为了解决这个问题，我们开始设计最轻量级的客户端。我们的关键发现是，在客户端复制和存储区块头是不必要的。相反，我们将获取必要的跨链区块头和交易证明的任务委托给链外实体：预言机和中继器。这造就 LayerZero 端点非常轻量级，即使在以太坊这样以昂贵著称的链上也具有成本效益</p><h2 id="h-5-evm-layerzero" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">5 案例学习：EVM 上的 LayerZero</h2><p>在本节中，我们简要描述了如何实现在以太坊虚拟机（EVMs）上运行 LayerZero。为了简洁起见，我们将重点介绍系统的各个方面，这些方面的实现可能因链而异，并强调 LayerZero 如何处理以太坊链的特定需求。如 4.1 节所述，当前版本的 LayerZero 依赖 Chainlink 提供预言机服务，并期望用户使用我们提供的中继器服务</p><p>LayerZero packet（LayerZero包）：LayerZero包的格式取决于源链和目标链。我们在图5中演示了EVM端点的LayerZero包的准确布局。每个字段的作用如图6所示</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/bcd6d98b12bbac606c4c505f7745f5635a3c1885c89f4c59242b256e6e3aa93c.png" alt="Fig 5. LayerZero packet layout for EVM endpoints" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 5. LayerZero packet layout for EVM endpoints</figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c4c636275a958ad5f3ef52490ee055db1a99bb9e0a0dd779dc60fe853f270ff2.png" alt="Fig 6. Functions of each field" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 6. Functions of each field</figcaption></figure><p>**发送端区块链交易稳定性：**为了确保消息交易在源链上是稳定的，我们依赖于去中心化预言机网络的固有属性——预言机只会在听到一定数量的区块确认后通知目标链特定的区块头，在以太坊的情况下是 15 个。准确地说，LayerZero 协议（章节4.2）的 Step8 只有当预言机在链 A 上听到 15 个块确认后才会执行</p><p>**LayerZero 端点：**我们将 LayerZero 端点实现为一系列智能合约，由我们在 4.4 节中描述的四个主要模块组成。对于大多数现有的区块链，包括以太坊区块链，我们能够将通信器、验证器和网络分别实现为单独的智能合约。但是，这种设计并不排除在具有不同要求的（未来）链上实现 LayerZero Endpoint</p><p>在这个案例研究中，LayerZero 端点的 Library 组件是为以太坊区块链提供支持的关键。我们实现了一个库来处理特定于 EVM 的 LayerZero packet 的构造，如图 5 所示，并处理 EVM 智能合约地址信息的编码和解码</p><p>标准库的另一个职责是处理验证交易证明所涉及的实际计算。我们的 EVM 库基于开源的 Golden Gate 处理 EVM 区块上交易的 Merkle-Patricia 验证，我们基于 Golden Gate 的开源实现</p><h2 id="h-6-layerzero" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">6 LayerZero 的应用</h2><p>**跨链去中心化交易所：**正如 2.2 节中简要描述的那样，LayerZero 启用了一个跨链 DEX（跨链桥），专门处理本地资产。与现有的发行包装代币或通过中间侧链的 DEX 设计相反，使用LayerZero 构建的 DEX 可以在链之间发送消息，这样两条链上都存在流动性池，用户可以简单地将本地资产存入一个池，并从另一个池中提取本地资产。LayerZero 消息原语功能的强大，足以支持直接桥接（1:1 定价）、自动做市（ab = k 定价）和任何其他派生（例如类似于Curve DAO 定价）。LayerZero 提供的有效交付保证使广泛的去中心化交换应用成为可能</p><p>**多链受益聚合器：**目前的收益聚合器通常在单链生态的范围内运行，如 Yearn Finance 等项目可以使用单链策略实现收益聚合。这些单链产量聚合系统的一个关键弱点是它们无法利用当前生态系统之外的任何机会，可能会错过许多很好的机会。一个使用 LayerZero 进行跨链交易的收益聚合器将允许在所有生态系统中挖掘最佳的机会，增加获得高收益的机会，并使用户能够利用市场的无效率状态。严格来说，多链收益聚合器要比单链收益聚合器好，因为在最坏的情况下，策略会退化到只利用一条链上的机会，而在最好的情况下，它会有指数级数量的机会可以选择</p><p>**多链借贷：**今天，用户没有简单的方法来利用他们未持有资产的链上的机会。例如，假设一个资产在 ETH 的用户想要利用 Polygon 上的机会，他的选择是：（1）将整个资产转移到另一个链上，并将其转换为所需的货币；（2）在以太坊上出借资产，借入所需的资产，然后将该资产连接到目标链上。LayerZero 启用了一个借贷协议，允许用户将他们的整个资产基础保留在以太坊上，将其出借，然后直接在 Polygon 的 MATIC 中借入。这消除了中间成本：如过桥和掉期费用</p><p>这三个例子只代表了 LayerZero 实现的众多可能性中的一小部分。通过利用 LayerZero ，开发人员将能够编写他们的应用程序，而不必担心链间和链内交易之间的语义差异，用户将能够在链间自由移动流动性。鉴于无信任的跨链交易的力量，我们期待着社区将开发出创造性的新应用程序</p><h2 id="h-7" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">7 结论</h2><p>本文介绍了首个不涉及任何中间交易的去信任化全链互操作平台 LayerZero 的设计与实现。我们展示了通过利用两个独立的、不受信任的链下实体（预言机和中继器）， LayerZero 能在不需要昂贵的跨链状态机复制或中间代币的情况下实现有效传输。我们的协议设计在某种程度上不排除任意中继服务的使用，这确保了中继器和预言机之间没有勾结。LayerZero 协议支持其网络所支持的区块链之间的本地交易，而新颖的 LayerZero 端点设计可以轻松扩展来支持任何区块链。除此之外，我们的端点设计足够轻量级，可以在昂贵的第一层链（如以太坊）上运行，而不会产生过高的成本。我们展示了一个如何在 LayerZero 中实现对基于 evm 的链的支持的案例研究，使用中继器和 Chainlink 的去中心化预言机网络来实现跨链交易</p><h2 id="h-8" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">8 一些思考</h2><p>LayerZero的优点很突出，可以说是区块链必不可少的项目，将碎片化的区块链流动性连接了起来，很有实际意义，下面主要讲讲它的局限性：</p><p>通过白皮书的介绍，可以发现 layerZero 具有很强的可扩展性，只要在目标链部署以智能合约为基础的 Endpoint，就可以实现信息的传递了，但同时白皮书也提到了，Endpoint 是以源链与目标链的不同而不同的，如果是这样，考虑最坏的情况（支持智能合约的区块链彼此间的 Endpoint 都不同），那么 Endpoint 的种类，将会是一个目前支持智能合约的区块链的数量的排列问题，Endpoint 的开发复杂程度不可小觑。同时由于其具有很强的扩展能力，势必会牺牲一些复杂的功能实现，鱼与熊掌不可兼得，所以 LayerZero 在不同链之间主要起到的是数据的传递作用，至于数据传递过去会做怎么样的处理，它是一概不管的，同时，LayerZero的网络虽然很轻巧，但是它传递信息的速度一定是要慢于源链确认交易的速度，Step8 需要等待交易确认后才能进行下一步，所以 LayerZero 传递消息速度的极限就是源链交易确认的速度，如果碰到像以太坊这样 TPS 较低的公链时，LayerZero 也是无济于事</p><p>LayerZero 在我看来更像是把原来不同跨链桥所用的通信标准给统一了，并做了一定程度的扩展，这样以来，就会有跨链桥基于 LayerZero 来进行开发，既降低了开发的难度，同时如果有其他链上应用是基于 LayerZero 来进行开发，那么彼此之间可以互相交互，虽然之前也有项目尝试去这样做，就比如跨链桥，但是单个跨链桥所支持的区块链数量又很有限，并没有达到像 LayerZero 这样的规模，网络有了规模就容易形成网络效应及产生相应的 LayerZero 生态，所以很看好 LayerZero 及 基于 LayerZero 的生态</p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div>]]></content:encoded>
            <author>damian-dyor@newsletter.paragraph.com (damian-dyor.eth)</author>
        </item>
        <item>
            <title><![CDATA[以太坊DVT赛道-SSV机制详解与思考]]></title>
            <link>https://paragraph.com/@damian-dyor/dvt-ssv-2</link>
            <guid>3i1sywWg7rYuW5M6cTEf</guid>
            <pubDate>Mon, 06 Mar 2023 15:57:19 GMT</pubDate>
            <description><![CDATA[0. 前言本来自己给这篇文章的标题是《关于SSV的一些思考》，主要是想和大家分享一下最近对于ssv的一些思考，但为什么又加上了对ssv机制详解这部分内容呢？一方面是想结合官方文档，和大家科普一下，另一方面也是想借着这个机会，更加详细的学习ssv的机制及逻辑，尽量去避免自己的观点有失偏颇，所以这篇文章将包含三部分的内容，分别为ssv简介、ssv运作机制，及文尾附上我对于ssv的一些思考，下面开始正文1. SSV 简介1.1 什么是 ssv.networkssv.network 是一个完全去中心化的开源 ETH 质押网络，基于秘密共享验证器 (Secret Shared Validator) 技术。SSV 属于DVT的一种，即分布式验证器技术（Distributed Validator Technology），因为它提供了一个开放和简单的基础设施，可以将验证器的密钥拆分并将拆分后的密钥分发，以实现在多个非信任节点上运行以太坊验证器。有以下优点：可以有效降低单个验证器的离线风险，增加以太坊网络的鲁棒性为非托管的以太坊质押提供了技术支持完全去中心化，自由市场1.2 参与方Stakers：...]]></description>
            <content:encoded><![CDATA[<blockquote><h2 id="h-0" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">0. 前言</h2></blockquote><p>本来自己给这篇文章的标题是《关于SSV的一些思考》，主要是想和大家分享一下最近对于ssv的一些思考，但为什么又加上了对ssv机制详解这部分内容呢？一方面是想结合官方文档，和大家科普一下，另一方面也是想借着这个机会，更加详细的学习ssv的机制及逻辑，尽量去避免自己的观点有失偏颇，所以这篇文章将包含三部分的内容，分别为<strong>ssv简介</strong>、<strong>ssv运作机制</strong>，及文尾附上我<strong>对于ssv的一些思考</strong>，下面开始正文</p><blockquote><h2 id="h-1-ssv" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">1. SSV 简介</h2></blockquote><h3 id="h-11-ssvnetwork" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">1.1 什么是 ssv.network</h3><p>ssv.network 是一个完全去中心化的开源 ETH 质押网络，基于秘密共享验证器 (Secret Shared Validator) 技术。SSV 属于DVT的一种，即分布式验证器技术（Distributed Validator Technology），因为它提供了一个开放和简单的基础设施，可以将验证器的密钥拆分并将拆分后的密钥分发，以实现在多个非信任节点上运行以太坊验证器。有以下优点：</p><ol><li><p>可以有效降低单个验证器的离线风险，增加以太坊网络的鲁棒性</p></li><li><p>为非托管的以太坊质押提供了技术支持</p></li><li><p>完全去中心化，自由市场</p></li></ol><h3 id="h-12" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">1.2 参与方</h3><ul><li><p><strong>Stakers</strong>：包括Lido之类的质押服务提供商、以太坊个人质押者等</p></li><li><p><strong>Operators</strong>：提供硬件基础设施，运行 SSV 协议，并负责维护以太坊验证器和 ssv.network 的整体健康状况。 operators 自行确定提供这些服务的费用，并向 stakers 收取运营和维护其以太坊验证器的费用</p></li><li><p><strong>DAO</strong>：对 ssv.network 拥有资金所有权及治理权</p></li></ul><h3 id="h-13" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">1.3 费用</h3><p>ssv.network 的费用是对 staker 收取的，主要包括两部分：</p><p><strong>运营商费用（operator fees）</strong>：operator 帮助 staker 运营以太坊验证器，staker需要给operator的费用，这个费用从目前的官方文档来看，是以 SSV 计价的，并且具体给多少是operator自己报价的，也就是说这里存在一个自由市场，当 operator 报价太高时，可能面临没有 staker 光顾的情况，而且该费用在报价时，通常是年费的形式来报，但是 staker 在实际操作中是按区块来付钱，即以太坊中每产生一个区块（12秒），staker 就需要给 operator 一笔“工资”</p><p>举个例子：若每天以太坊只产生100个新区块，且 operator的报价是365 SSV 一年，则：</p><pre data-type="codeBlock" text="365SSV / （100 * 365） = 0.01 SSV per block
"><code>365SSV <span class="hljs-operator">/</span> （<span class="hljs-number">100</span> <span class="hljs-operator">*</span> <span class="hljs-number">365</span>） <span class="hljs-operator">=</span> <span class="hljs-number">0</span><span class="hljs-number">.01</span> SSV per <span class="hljs-built_in">block</span>
</code></pre><p><strong>网络费用（network fees）</strong>：网络费是一笔固定的费用，由 DAO 决定的，支付的费用会直接进入 DAO 的金库，来资助和发展生态中已经投票通过的项目和活动</p><h3 id="h-14" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">1.4 代币</h3><p>根据官方文档，目前SSV代币可以用于支付 ssv.network 内的费用，用于 ssv.network 的治理，且可参加DAO的财富分配</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d40c166e3ed9069d8ba7b4e4086486df98a4669d6615e1b07f121cbbaa1793eb.png" alt="Fig 1. Operators receive SSV payments and generate ETH rewards for stakers. Stakers pay SSV and receive generated ETH rewards in return" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 1. Operators receive SSV payments and generate ETH rewards for stakers. Stakers pay SSV and receive generated ETH rewards in return</figcaption></figure><h3 id="h-15" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">1.5 技术概述</h3><p>SSV可以被看作是一个拥有共识层的复杂多重签名钱包，是位于信标链和验证器客户端之间的中间层。 如果从用户的角度来看，它只是一个组件， SSV 配置的主要组件如下：</p><ol><li><p><strong>分布式密钥生成（Distributed Key Generation）</strong>：运行 SSV 的 operators 会计算并生成共享的公钥和私钥集。 每个operator都拥有私钥的一部分，确保没有任何一个 operator 可以影响或控制整个私钥并私自操作账户</p></li><li><p><strong>秘密共享（Shamir Secret Sharing）</strong>：所谓<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://www.cnblogs.com/pam-sh/p/16994056.html">秘密共享</a>，即当收集到了一定数量的被拆分密钥后，就可以重构出密钥（比如密钥被拆分为5份，而当收集到其中任意3份，便可以重构出密钥），但并不会真的在各个 operator 之间共享这些密钥片段，否则会有密钥泄露的风险，而是共享用这些密钥片段进行的签名，最后利用 <a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://learnblockchain.cn/2019/08/29/bls">BLS 签名</a>，组合多个签名以重新创建验证器密钥签名</p></li><li><p><strong>伊斯坦布尔拜占庭容错共识（Istanbul Byzantine Fault Tolerance Consensus）</strong>：SSV 的共识层基于伊斯坦布尔拜占庭容错 (IBFT) 算法。 该算法随机选择一个 operator 负责新区块的产生并与其他参与者共享信息。 一旦认为该区块有效的 operators 达到阈值（即发出密钥片段的签名），该区块就会被添加到链中</p></li></ol><blockquote><h2 id="h-2-ssv" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">2. SSV 运作机制</h2></blockquote><h3 id="h-21" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">2.1 账户与支付</h3><p>每一个 ssv.network 的参与者都会在 ssv.network 的智能合约中拥有一个账户，账户中记录着所有参与者的账户余额，通过实时跟踪没个账户的流水来更新账户余额</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2046b4d23f8f77ce64148f78de7503f4f2279ab53b7e16697a83000f26e8bf32.png" alt="Fig 2. Contract payment flow" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 2. Contract payment flow</figcaption></figure><p>Operator 收入包括：</p><pre data-type="codeBlock" text="Earning(current) = Earning(previous) + (bc - bp) * f * v
"><code><span class="hljs-built_in">Earning</span>(current) = <span class="hljs-built_in">Earning</span>(previous) + (bc - bp) * f * v
</code></pre><ul><li><p>Earning(previous)：先前累计收入</p></li><li><p>bc：当前区块的区块编号</p></li><li><p>bp：前一个区块的区块编号</p></li><li><p>f：每一个区块费用（SSV计价）</p></li><li><p>v：operator 管理的验证器个数</p></li></ul><p>Staker 的费用就是 operator 收入的基础上，再加网络费用</p><h3 id="h-22" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">2.2 清算</h3><p>Staker 的账户余额由两个重要部分组成：<strong>liquidation collateral</strong> 和 <strong>operational runway</strong>，为了方便，我们定义而这两者之间的分界线就是清算线，当 staker 账户中的余额高于清算线时，账户可以正常给 operator 发“工资”，而当余额低于清算线时，就会有 liquidator 将账户标记为“不足以支付费用”，并且会将 liquidation collateral 全数没收，被没收的 liquidation collateral 则会被作为 liquidator 辛勤工作的奖励</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3c1aacfef5be883699eb4d6761647ab9b21cbb9d5892a557ac98211bcc928b27.png" alt="Fig 3. Account balance of staker" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 3. Account balance of staker</figcaption></figure><p>当一个账户的余额不足以支付未来一段时期的费用时，该账户就变成了“可清算的”，而未来的这段时期被称为<code>liquidation_threshold_period</code>，这段时期以区块的数量来计</p><p>再引入一个概念：<code>burn_rate</code>：该 staker 账户在1个区块产生间隔内（12秒），所有的费用（付给管理其以太坊验证器的每一位 operator 的“工资”）与所有收入的差值</p><pre data-type="codeBlock" text="liquidatable = balance &lt; burn_rate * liquidation_threshold_period
"><code>liquidatable <span class="hljs-operator">=</span> balance <span class="hljs-operator">&#x3C;</span> burn_rate <span class="hljs-operator">*</span> liquidation_threshold_period
</code></pre><ul><li><p><code>burn_rate</code>：1个区块间隔内，该账户所有的费用（付给管理其以太坊验证器的每一位 operator 的“工资”与网络费用）与所有收入的差值</p></li><li><p><code>liquidation_threshold_period</code>：区块的数量</p></li></ul><p>要注意的是清算是按账户来计算的，并不是按验证器来计算的，且由于每一个账户所选择的 operator 的数量及验证器的数量不同，所以每一个账户的清算线是不同的，都需要单独计算得到</p><p>一旦账户被清算，账户的状态就变成了非活跃状态，此时 operator 也不会继续再管理验证器，该账户不仅要受到 ssv.network 的惩罚，还要不断受到以太坊信标链的处罚，直至该账户被重新激活，那么如何重新激活账户呢？其实就是网账户中充入足够的金额（liquidation collateral）</p><pre data-type="codeBlock" text="reactivation_balance &gt; expense * liquidation_threshold_period
"><code>reactivation_balance <span class="hljs-operator">></span> expense <span class="hljs-operator">*</span> liquidation_threshold_period
</code></pre><ul><li><p>expense：1个区块间隔内，运行该账户中所有验证器的总费用（operator 的“工资” 加网络费用）</p></li><li><p><code>liquidation_threshold_period</code>：区块的数量</p></li></ul><p>**算例：**B（staker）在 ssv.network 上注册了验证器，operator 的报价是每年345个 SSV 代币，网络费为20个 SSV 一年，B 存入395个 SSV 到他的账户余额中，假设 liquidation threshold period 是30天（其实应该是以区块数量来计，这里为了方便，直接用天数），则 B 的 liquidation collateral 为：</p><pre data-type="codeBlock" text="（345（operator fees）+ 20（network fees））* 30 / 365 = 30 SSV
"><code>（<span class="hljs-number">345</span>（operator fees）<span class="hljs-operator">+</span> <span class="hljs-number">20</span>（network fees））<span class="hljs-operator">*</span> <span class="hljs-number">30</span> <span class="hljs-operator">/</span> <span class="hljs-number">365</span> <span class="hljs-operator">=</span> <span class="hljs-number">30</span> SSV
</code></pre><p>一年以后，根据 B 账户的 burn_rate = 1 SSV per day，则 B 的账户余额为395 - 365 = 30 SSV，在清算线以下，A（liquidator）持续监控网络参与者的账户，发现了 B 的账户在清算线以下，将 B 的账户标记为清算，协议也确认了 B 的账户“资不抵债”，并执行了清算，此时 B 的账户变为非活跃状态，且 operator 暂停管理其验证器，而A 则获得30 SSV 的奖励，在受到惩罚后，B 向账户中又充入了60 SSV（大于30 SSV，可以重新激活账户）</p><h3 id="h-23" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">2.3 更新机制</h3><p>Operator 报价可以在任何时间点进行更改，更改报价通常是出于获得竞争优势及与市场价格波动保持一致，为了保证报价更新的透明度及给予 staker 充分的调整时间（充值更多的余额防止被清算或者直接换另一位 operator），网络会使用 operator 费用变更周期，分为两步：</p><ol><li><p>声明新报价（Declaring a new fee）：向网络广播该 operator 已变更其报价</p></li><li><p>执行新报价（Executing the declared fee） ：完成报价更新（在此之后新报价才生效）</p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0cad102ef00895077e8e178e0558fc7b57c11094402ad1975551bafda1acd4a5.png" alt="Fig 4. Operator fee update cycle" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 4. Operator fee update cycle</figcaption></figure><p>在上述两个步骤之间的时期，被称为 declaration period，是由 DAO 来确定，也就是说 operator 必须要等 declaration period 这么长时间，新的报价才会生效，且在第2步时，若operator 在 execution period 时间段内没有执行新的报价，那么新报价就失效了，此时如果需要改报价，就需要重新再回到第一步</p><p>为了保护 staker 免受由于费用突然大幅变化而导致的清算，ssv.network 对 operator 每次报价改变的幅度有限制，该限制的幅度由 DAO 决定</p><p>同样的，staker 也具有相当大的自由度，他可以自行确定运行验证器的 operator，当要更换 operator 时，staker 需要重新向每一位 operator 分发密钥片段，且只有在 staker 账户余额在清算线以上时（用新 operators 来计算），才可以更新 operator</p><h3 id="h-24" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">2.4 退出机制</h3><p>Operator 可以在任何时候选择退出网络，此时网络会立刻停止其获得收益，并将其从网络中移除，此过程是不可逆的，当其想要再返回网络是，就需要重新注册账户</p><p>同样的 staker 也可以随时选择退出网络，此时网络会将其验证器密钥的所有记录删除，且退出的验证器所对应的 liquidation collateral 会加到该账户的 operational runway 中，减小清算风险</p><h3 id="h-25" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">2.5 评分机制</h3><p>网络会根据每一个 operator 的表现情况，给每一位 operator 打分，评分 = 出勤次数 / 总应出勤次数，比如：一段时间内，operator A 应该出勤投票100次，但是由于种种原因，其只出勤98次，则评分为：98%</p><blockquote><h2 id="h-3-ssv" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">3. 关于SSV的一些思考</h2></blockquote><p>每次提到 SSV技术时，大家往往将更加去中心化挂在嘴边，刚开始学习 SSV 时的我半知半解，看到这种网络结构，也觉得这肯定是帮助以太坊更加去中心化了，这下 POW 和 POS 哪个更加去中心化应该有个定论了。可是当我更加深入的去学习和思考时，发现情况似乎并不是这么回事，基于以下两个原因：</p><ol><li><p>在主网上线后，推测大多数运行 SSV operator 节点的其实还是那些为Lido等质押服务提供商提供验证计算服务的运营商，虽然也会有更多的个人 operator 加入网络，但是由于个人计算机与专业做验证服务的计算机相比会有更多的离线时间，或者说是更大的离线风险（因为大多数人的计算机都不只是用来跑验证器的，还有其他很多用处，而专业做验证服务的计算机则用途单一，防离线的措施也更加到位），长此以往就会导致，个人 operator 的评分就会比较低，此时个人 operator 不得不采用更低的报价来赢得订单，而过低的利润，又会过滤掉一批个人 operator ，市场上的个人 operator 逐渐变少，主流的operator 还是那些大型运营商，那问题来了，在没有DVT技术前，大多数验证器就被控制在大型运营商手中，而有了DVT技术后，大多数验证器还是被控制在大型运营商手中，区别只不过是前者控制的验证器是确定的，而后者控制的验证器是随机分配的，而且单个大型运营商手中控制的验证器个数可能比没有DVT时更多，更加集中（现在SSV也要抽走一部分利润，利润更低，需要管理更多的验证器才能保证利润），从这个角度来看，DVT似乎并没有很好的解决中心化的问题</p></li><li><p>Operator 的收入取决于它的报价与它所管理的验证器数量，在这样一个自由市场中，竞争非常激烈，如果 operator 报价过高，就没有 staker 会选择它，所以 operator 会尽可能的报低价来吸引 staker，同时为了保证利润，又会想要尽可能多的去管理验证器，这样一来，整个网络朝着更加中心化的方向发展</p></li></ol><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d2ab609f8ce531918f58c1804ff85b3e74d443aff5ddc1bdcb24487e131ad75e.png" alt="Fig 5. SSV测试网一个operator管理1070个验证器" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig 5. SSV测试网一个operator管理1070个验证器</figcaption></figure><p>但如果 SSV 通过限制每个 operator 可以管理的验证器个数来达到一定程度的去中心化，由于趋利性，operators 会从网络中不断流失，而去加入那些不限制数量的 DVT 网络，所以从 SSV 的层面，很难解决这个问题，除非以太坊有相应的监控和惩罚措施。作为 SSV 的竞争对手，Obol labs 也意识到了质押中心化的问题，但并未在当前阶段提出具体的解决方案，以下文字摘自 Obol官网：</p><p><em>“The network can be best visualized as a work layer that sits directly on top of base layer consensus. This work layer is designed to provide the base layer with more resiliency and promote decentralization as it scales. </em><strong><em>As Ethereum matures over the coming years, the community will move onto the next great scaling challenge, which is stake centralization</em></strong><em>. To effectively mititgate these risks, community building and credible neutrality must be used as a primary design principles.”</em></p><blockquote><h2 id="h-4" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">4. 结语</h2></blockquote><p>但这并不是说 SSV 技术就一无是处，虽然 SSV 对于以太坊的质押中心化问题并没有提出很好的解决方案，但是其对于质押服务提供商（比如Lido）的去中心化、非托管化提升却是巨大的，大大减小了监管的风险，这对于质押行业来说是绝对的刚需，且会大大提升以太坊网络的抗离线风险，增强在极端情况下网络的鲁棒性，所以SSV token 依旧是具有相当投资潜力的标的，只不过之前的我们，可能在 SSV 身上寄托了太多美好的期望</p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div>]]></content:encoded>
            <author>damian-dyor@newsletter.paragraph.com (damian-dyor.eth)</author>
        </item>
        <item>
            <title><![CDATA[以太坊DVT赛道-SSV估值]]></title>
            <link>https://paragraph.com/@damian-dyor/dvt-ssv</link>
            <guid>oQKCWT6YOTOBbobhxRF4</guid>
            <pubDate>Thu, 02 Mar 2023 16:16:32 GMT</pubDate>
            <description><![CDATA[在很多情况下，对某一事物进行估值其实是非常困难的，在分析师得出最后的估值之前，必然会引入众多的假设来辅助结论的产生，而对每一条假设，其中都必然掺杂了很强的主观色彩，而分析师所能做的，就是在主观的迷雾中，尽量找到一些客观的证据来辅佐自己判断方向，仅此而已，所以我需要陈述的是：本文完全是建立在本人尽可能获得客观数据后，基于主观假设的成果，欢迎大家各抒己见，一起交流讨论 本文思路：首先获得 01-Jan-2023 的ETH供给量，通过年复合通缩率，计算出 01-Jan-2025 的ETH供给量，再通过质押率计算出验证者节点个数，从而计算出 01-Jan-2025 的质押奖励，再通过SSV的市场占比，收费分成最终计算出 01-Jan-2025 单个SSV Token的价格，在这其中，需要引入很多假设，下文会通过加粗的字体标记出来以太坊2023年初供应量（Total Supply of Ether on 01-Jan-2023）从Ultra Sound Money的数据库中，可以找到，在 01-Jan-2023 时ETH的供应量为：120,525,886.37枚，这将作为计算的起点Fig1...]]></description>
            <content:encoded><![CDATA[<p>在很多情况下，对某一事物进行估值其实是非常困难的，在分析师得出最后的估值之前，必然会引入众多的假设来辅助结论的产生，而对每一条假设，其中都必然掺杂了很强的主观色彩，而分析师所能做的，就是在主观的迷雾中，尽量找到一些客观的证据来辅佐自己判断方向，仅此而已，所以我需要陈述的是：本文完全是建立在本人尽可能获得客观数据后，基于主观假设的成果，欢迎大家各抒己见，一起交流讨论</p><p>本文思路：首先获得 01-Jan-2023 的ETH供给量，通过年复合通缩率，计算出 01-Jan-2025 的ETH供给量，再通过质押率计算出验证者节点个数，从而计算出 01-Jan-2025 的质押奖励，再通过SSV的市场占比，收费分成最终计算出 01-Jan-2025 单个SSV Token的价格，在这其中，需要引入很多假设，下文会通过加粗的字体标记出来</p><hr><blockquote><h2 id="h-2023total-supply-of-ether-on-01-jan-2023" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">以太坊2023年初供应量（Total Supply of Ether on 01-Jan-2023）</h2></blockquote><p>从<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ultrasound.money/">Ultra Sound Money</a>的数据库中，可以找到，在 01-Jan-2023 时ETH的供应量为：120,525,886.37枚，这将作为计算的起点</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/4ac4cb28f54f07bca811b4f26ac2846e5589a241cb74b8379dba021217ee3dbe.png" alt="Fig1. Total Supply of Ether on 01-Jan-2023" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig1. Total Supply of Ether on 01-Jan-2023</figcaption></figure><hr><blockquote><h2 id="h-anticipated-compound-annual-deflation-rate-of-ether" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">以太坊的预期年复合通缩率（Anticipated Compound Annual Deflation Rate of Ether）</h2></blockquote><p>想要知道估计以太坊的预期年复合通缩率，就系要先要清楚，是什么导致了以太坊的通缩，以及通缩的程度与什么有关。在以太坊伦敦升级以后，将Gas费分为：<code>base_fee</code>和<code>priority_fee</code>，其中<code>base_fee</code>会被燃烧，退出流通，同样的，如果验证者有行为不规范，会受到惩罚，这些被没收的以太坊实际上也被燃烧了，而以太坊的增发则是通过奖励的形式发放给验证者，当燃烧量大于了增发量，也就导致了通缩，具体的机制可以查看我的另外两篇科普：</p><ul><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/damian-dyor.eth/Ffu2eFppO39c1DAgj06GF40aZhFqu7kMMnXfCHjBQLQ">以太坊2.0-奖励与惩罚机制</a></p></li><li><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/damian-dyor.eth/_4r0yr-68cZeC_xDyiC0OoQ4MyJhvY-Ih-ghZp96d08">以太坊2.0-Gas and Fees</a></p></li></ul><p>当网络越拥挤，<code>base_fee</code>会以最大每个区块12.5%的增长率增加，也即加速了燃烧，而此时，验证者的奖励会因为<code>priority_fee</code>的攀升而增加，但需要注意的是，<code>priority_fee</code>的以太坊并不是新增发的，所以并不影响以太坊供应量，所以我们容易得到结论：当以太坊链上交易量越多时，通缩也越严重，当以太坊链上交易量越少时，通缩则越轻，甚至会变为通胀</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2076723933824ead25180637a242dec1c4fe9020795d2b3b506e9bbe2624cd69.png" alt="Fig2. Total Supply of Ether" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig2. Total Supply of Ether</figcaption></figure><p>观察上图，可以发现在今年年初的迅猛上涨之前，市场低迷，链上交易量萎靡，大致呈通胀，而今年年初价格以太坊价格上涨时，链上交易量增加，以太坊供应量迅速下降，呈通缩，由此也验证了上面得到的结论。但是链上交易量的影响因素众多，通缩率必定是一个波动性极强的指标，为了更好的估计以太坊的预期年复合通缩率，需要拉长时间跨度，而自伦敦升级以来，到目前为止573天，引入<strong>假设1：选用这573年内的通缩数据得到以太坊的预期年复合通缩率为：0.99%</strong></p><p>此时可以算出 2025 年的平均以太坊供应量为：</p><pre data-type="codeBlock" text="120,525,886.37 * (1 - 0.99%)^2 = 118,151,286.56
120,525,886.37 * (1 - 0.99%)^3 = 116,981,588.83
（118,151,286.56 + 116,981,588.83）/ 2 = 117,566,437.69
"><code><span class="hljs-number">120</span>,<span class="hljs-number">525</span>,<span class="hljs-number">886.37</span> <span class="hljs-operator">*</span> (<span class="hljs-number">1</span> <span class="hljs-operator">-</span> <span class="hljs-number">0</span><span class="hljs-number">.99</span><span class="hljs-operator">%</span>)<span class="hljs-operator">^</span><span class="hljs-number">2</span> <span class="hljs-operator">=</span> <span class="hljs-number">118</span>,<span class="hljs-number">151</span>,<span class="hljs-number">286.56</span>
<span class="hljs-number">120</span>,<span class="hljs-number">525</span>,<span class="hljs-number">886.37</span> <span class="hljs-operator">*</span> (<span class="hljs-number">1</span> <span class="hljs-operator">-</span> <span class="hljs-number">0</span><span class="hljs-number">.99</span><span class="hljs-operator">%</span>)<span class="hljs-operator">^</span><span class="hljs-number">3</span> <span class="hljs-operator">=</span> <span class="hljs-number">116</span>,<span class="hljs-number">981</span>,<span class="hljs-number">588.83</span>
（<span class="hljs-number">118</span>,<span class="hljs-number">151</span>,<span class="hljs-number">286.56</span> <span class="hljs-operator">+</span> <span class="hljs-number">116</span>,<span class="hljs-number">981</span>,<span class="hljs-number">588.83</span>）<span class="hljs-operator">/</span> <span class="hljs-number">2</span> <span class="hljs-operator">=</span> <span class="hljs-number">117</span>,<span class="hljs-number">566</span>,<span class="hljs-number">437.69</span>
</code></pre><hr><blockquote><h2 id="h-anticipated-price-of-ether" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">预期以太坊价格（Anticipated Price of Ether）</h2></blockquote><p>如果说 01-Jan-2025 时以太坊供应量会因为通缩率变化大而不好判断，那么 01-Jan-2025 时以太坊的价格就更加无法预测，所以引入<strong>假设2：01-Jan-2025 时以太坊的价格为 4000 USD</strong></p><hr><blockquote><h2 id="h-anticipated-stake-rate-and-yield-rate-of-stake" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">预期质押率及质押收益率（Anticipated Stake Rate and Yield Rate of Stake ）</h2></blockquote><p>接着就需要估计 01-Jan-2025 时以太坊的质押率，质押率若太低，以太坊会提高年化收益率，来吸引更多的质押，而质押率太高，收益率又会太低，风险收益不对称，且会影响流动性，所以个人认为，质押率会稳定在某一水平之上，较平稳运行</p><p>从<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://launchpad.ethereum.org/en/">Staking lunchpad</a>的数据可知，目前（02-Mar-2023）：</p><ul><li><p>活跃的验证者数：534,332</p></li><li><p>排队待进入的验证者数：8,769</p></li><li><p>已质押的以太坊数量：17,098,467</p></li><li><p>验证者平均账户余额（包括奖励）：33.99</p></li><li><p>质押的年化收益率：3.6%</p></li><li><p>以太坊供应量：120,479,579.67</p></li></ul><p>可以计算出，当前的质押率为：14.19%</p><p>考虑到对数字货币的投资其实与股票很类似，不仅可以通过自身的价格涨跌盈利，也可以获得类似股票分红的质押收益，美股科技股的股息率平均约为2%，再加上0.5%风险溢价，所以<strong>假设3：以太坊的质押率达到稳定时，其质押收益约为2.5%</strong></p><p>验证者越多，全网收益总额越多，但单个验证者受益越少，可以从<code>base_reward</code>的计算公式看出：</p><pre data-type="codeBlock" text="base_reward = effective_balance * (base_reward_factor / (base_rewards_per_epoch * sqrt(sum(active_balance))))
"><code>base_reward <span class="hljs-operator">=</span> effective_balance <span class="hljs-operator">*</span> (base_reward_factor <span class="hljs-operator">/</span> (base_rewards_per_epoch <span class="hljs-operator">*</span> sqrt(sum(active_balance))))
</code></pre><p>不考虑<code>effective_balance</code>和<code>active_balance</code>的区别时，验证者变为原来的N倍后，单个验证者的<code>base_reward</code>变为原来的 1/sqrt(N)，暂不考虑其他收益来源，当质押收益为2.5时，质押以太坊数量：</p><pre data-type="codeBlock" text="14.19% * ( 3.6% / 2.5% ) ^ 2 = 29.42%
"><code><span class="hljs-number">14.19</span><span class="hljs-operator">%</span> <span class="hljs-operator">*</span> ( <span class="hljs-number">3.6</span><span class="hljs-operator">%</span> <span class="hljs-operator">/</span> <span class="hljs-number">2.5</span><span class="hljs-operator">%</span> ) <span class="hljs-operator">^</span> <span class="hljs-number">2</span> <span class="hljs-operator">=</span> <span class="hljs-number">29.42</span><span class="hljs-operator">%</span>
</code></pre><p>引入<strong>假设4：01-Jan-2025 时以太坊的质押率为 29.42%</strong></p><hr><blockquote><h2 id="h-ssv" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">预期SSV费率及市场份额</h2></blockquote><p>目前的质押赛道来看，以Lido为例，Lido会抽走10%的质押收益作为服务费用，个人认为SSV可能会向质押服务提供商收取的费率为10%，所以引入<strong>假设5：SSV会收取整个以太坊质押收益的1%作为收入</strong></p><p>目前以太坊DVT赛道有两个项目，分别是SSV和Obol，SSV有先发优势，所以引入<strong>假设6：SSV未来在以太坊中的市场份额为70%</strong></p><hr><blockquote><h2 id="h-ssv" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">SSV估值</h2></blockquote><p>Annual revenue of SSV（2025）:</p><pre data-type="codeBlock" text="117,566,437.69 * 29.42% * 2.5% * 1% * 4000 = 34,588,045.97
"><code><span class="hljs-number">117</span>,<span class="hljs-number">566</span>,<span class="hljs-number">437.69</span> <span class="hljs-operator">*</span> <span class="hljs-number">29.42</span><span class="hljs-operator">%</span> <span class="hljs-operator">*</span> <span class="hljs-number">2.5</span><span class="hljs-operator">%</span> <span class="hljs-operator">*</span> <span class="hljs-number">1</span><span class="hljs-operator">%</span> <span class="hljs-operator">*</span> <span class="hljs-number">4000</span> <span class="hljs-operator">=</span> <span class="hljs-number">34</span>,<span class="hljs-number">588</span>,045<span class="hljs-number">.97</span>
</code></pre><p>利用DCF Valuation Model（real interest rate = 4%）列式，并对等比数列求和求极限：</p><pre data-type="codeBlock" text="lim 34,588,045.97 * (1/1.04 + 1/(1.04^2) + ...) = 34,588,045.97 / (1 - 0.9615) = 899,289,195.21
"><code>lim <span class="hljs-number">34</span>,<span class="hljs-number">588</span>,045<span class="hljs-number">.97</span> <span class="hljs-operator">*</span> (<span class="hljs-number">1</span><span class="hljs-operator">/</span><span class="hljs-number">1.04</span> <span class="hljs-operator">+</span> <span class="hljs-number">1</span><span class="hljs-operator">/</span>(<span class="hljs-number">1.04</span><span class="hljs-operator">^</span><span class="hljs-number">2</span>) <span class="hljs-operator">+</span> ...) <span class="hljs-operator">=</span> <span class="hljs-number">34</span>,<span class="hljs-number">588</span>,045<span class="hljs-number">.97</span> <span class="hljs-operator">/</span> (<span class="hljs-number">1</span> <span class="hljs-operator">-</span> <span class="hljs-number">0</span><span class="hljs-number">.9615</span>) <span class="hljs-operator">=</span> <span class="hljs-number">899</span>,<span class="hljs-number">289</span>,<span class="hljs-number">195.21</span>
</code></pre><p>在SSV保持10,000,000不增发的情况下，SSV token在 01-Jan-2025 时的价格为 :</p><pre data-type="codeBlock" text="899,289,195.21 * 70% / 10,000,000 = 62.95
"><code><span class="hljs-number">899</span>,<span class="hljs-number">289</span>,<span class="hljs-number">195.21</span> <span class="hljs-operator">*</span> <span class="hljs-number">70</span><span class="hljs-operator">%</span> <span class="hljs-operator">/</span> <span class="hljs-number">10</span>,000,000 <span class="hljs-operator">=</span> <span class="hljs-number">62.95</span>
</code></pre><hr><blockquote><h2 id="h-scenario-analysis" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">情景分析（Scenario Analysis）</h2></blockquote><p>这里对不同假设有稍微修改，做一个简单的不同情景下的分析：</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fda819eba8a007b681fb23a5b7ffb715447e74d143d7e84ba283de640a418052.png" alt="Fig3. Scenario Analysis" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Fig3. Scenario Analysis</figcaption></figure><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div>]]></content:encoded>
            <author>damian-dyor@newsletter.paragraph.com (damian-dyor.eth)</author>
        </item>
        <item>
            <title><![CDATA[3. 以太坊2.0-Gas and Fees]]></title>
            <link>https://paragraph.com/@damian-dyor/3-2-0-gas-and-fees</link>
            <guid>kDf2hnPe3qvKibgXQ4ne</guid>
            <pubDate>Tue, 28 Feb 2023 14:26:13 GMT</pubDate>
            <description><![CDATA[什么是Gas费相较于比特币的语言（非常简单、高效），以太坊由于要支持智能合约，其Solidity语言是图灵完备的，可实现复杂功能，存在陷入了死循环的风险，且会有人随意在区块链网络中发布无效交易占用算力资源，同时为了给予矿工公平的回报，所以以太坊网络设计了Gas费机制，即每笔交易都需要收取一定的费用，这笔费用视乎操作所需要的计算资源，缴纳不同数量的ETH，一般来说，越是对算力资源占用多的交易（比如取哈希），就越需要提高该笔交易的Gas费，否则矿工执行该笔交易的积极性不够高，该笔交易的执行就有可能会被推迟，同时也有效防范了死循环和无效交易的问题。需要注意的是，无论交易成功与否，该笔Gas费都不会被退回，这时因为即使交易失败了，但是这笔交易却切切实实的占用了计算资源 Gas费用用以太坊的原生代币以太币(ETH)支付，Gas费以gwei表示，gwei本身就是ETH的一种单位，即每个gwei等于0.000000001 ETH 。例如，与其说你的Gas消耗了0.000000001 ETH，不如说消耗了1 gwei，“gwei”这个词本身就是“giga-wei”的意思，它等于1,000,000...]]></description>
            <content:encoded><![CDATA[<blockquote><h2 id="h-gas" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">什么是Gas费</h2></blockquote><p>相较于比特币的语言（非常简单、高效），以太坊由于要支持智能合约，其Solidity语言是图灵完备的，可实现复杂功能，存在陷入了死循环的风险，且会有人随意在区块链网络中发布无效交易占用算力资源，同时为了给予矿工公平的回报，所以以太坊网络设计了Gas费机制，即每笔交易都需要收取一定的费用，这笔费用视乎操作所需要的计算资源，缴纳不同数量的ETH，一般来说，越是对算力资源占用多的交易（比如取哈希），就越需要提高该笔交易的Gas费，否则矿工执行该笔交易的积极性不够高，该笔交易的执行就有可能会被推迟，同时也有效防范了死循环和无效交易的问题。需要注意的是，无论交易成功与否，该笔Gas费都不会被退回，这时因为即使交易失败了，但是这笔交易却切切实实的占用了计算资源</p><p>Gas费用用以太坊的原生代币以太币(ETH)支付，Gas费以gwei表示，gwei本身就是ETH的一种单位，即每个gwei等于0.000000001 ETH 。例如，与其说你的Gas消耗了0.000000001 ETH，不如说消耗了1 gwei，“gwei”这个词本身就是“giga-wei”的意思，它等于1,000,000,000 Wei。Wei本身(以b-money的创造者Wei Dai命名)是ETH的最小单位</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f1acda1c3f74046e7189af47873c555c49556fe01dc248d80ea9fbc6c0277847.png" alt="Diagram adapted from Ethereum EVM illustrated" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Diagram adapted from Ethereum EVM illustrated</figcaption></figure><p>上图说明了一笔交易在EVM中是如何被执行的，为了更好地理解，这里先简单解释一下什么是EVM (Ethereum Virtual Machine，以太坊虚拟机): 以太坊虚拟机是以太坊网络重要的的基础设施，所有的以太坊账户以及智能合约都存在其中，而以太坊协议本身的存在就是为了保持这个状态机操作的连续、不间断和不可变。以太坊对链中的任何给定区块都有且只有一个“规范”的状态（这里的状态对外部账户来讲，包括账户的余额和交易次数，而对智能合约账户，还有stack，memory等），而EVM定义了在区块之间计算新的有效状态的规则（可见其重要性），所以以太坊也被称为交易驱动的状态机</p><p>可以看出，图中共有3处需要gas费，分别是在执行交易（operation）、改变了合约中参数取值（Storage）、返回结果（message call），每个位置收取多少Gas费取决于操作占用的计算资源</p><p>在实际操作中，如果交易执行到一半，发现Gas费不够用了，则交易会被回滚，就好像没有发生过这笔交易一样，但是A的账户还是要被扣掉Gas费，所以，可以发现，在以太坊中，一笔交易要么被完全执行，要么就直接回滚完全不执行，并不存在中间状态</p><blockquote><h2 id="h-london" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">以太坊London升级之前</h2></blockquote><p>2021年8月以太坊进行了伦敦升级（The London Upgrade），在此之前，若A给B转账1个ETH，<code>Gas_limit</code>是21,000个，每个Gas为200 gwei，则所需要支付的Gas费为：</p><pre data-type="codeBlock" text="Gas units (limit) * Gas price per unit = 21000 * 200 = 4200000 gwei = 0.0042 ETH
"><code>Gas units (limit) <span class="hljs-operator">*</span> Gas price per unit <span class="hljs-operator">=</span> <span class="hljs-number">21000</span> <span class="hljs-operator">*</span> <span class="hljs-number">200</span> <span class="hljs-operator">=</span> <span class="hljs-number">4200000</span> <span class="hljs-literal">gwei</span> <span class="hljs-operator">=</span> <span class="hljs-number">0</span><span class="hljs-number">.0042</span> ETH
</code></pre><blockquote><h2 id="h-london" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">以太坊London升级之后</h2></blockquote><p>在升级之后，若A给B转账1个ETH，Gas Limit还是是21,000个，<code>base_fee</code>为10 gwei，同时A还给矿工2 gwei的<code>priority_fee</code>（小费），则此时所需要支付的Gas费为：</p><pre data-type="codeBlock" text="21,000 * (10 + 2) = 252,000 gwei = 0.000252 ETH
"><code><span class="hljs-number">21</span>,000 <span class="hljs-operator">*</span> (<span class="hljs-number">10</span> <span class="hljs-operator">+</span> <span class="hljs-number">2</span>) <span class="hljs-operator">=</span> <span class="hljs-number">252</span>,000 <span class="hljs-literal">gwei</span> <span class="hljs-operator">=</span> <span class="hljs-number">0</span><span class="hljs-number">.000252</span> ETH
</code></pre><p>当A发送这笔后，将从A的账户中扣除1.000252 ETH。B将获得1 ETH，验证者（矿工）接收0.000042 ETH的小费，而<code>base_fee</code>共0.00021 ETH会被销毁</p><p>此外，A还可以为交易设置最大费用（<code>maxFeePerGas</code>），<code>maxFeePerGas</code>需大于<code>base_fee</code>和<code>priority_fee</code>之和，执行交易时会直接按照最大费用扣除，交易执行结束后，最高费用与实际费用的差额会退还给A，即：</p><p>退款 = 最高费用 - (基本费用 + 优先费用)</p><p>A可以通过设置交易执行的最高费用来避免Gas费不足导致的交易回滚</p><blockquote><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">区块大小</h2></blockquote><p>在伦敦升级之前，以太坊的区块大小是固定的，也即每一个区块所能包含的交易数量是被严格限制的，在交易量需求量大的时候，会来不及处理如此大量的交易，导致很多交易滞留在mempool中，导致用户体验不佳的问题</p><p>伦敦升级引入了可变大小的区块，每个区块的目标大小以1500万Gas为标准来约束，区块的大小将根据网络需求增加或减少（最大区块限制为3000万gas，即目标区块大小的2倍）。如果区块大小大于目标（1500万Gas），协议将增加下一个块的<code>base_fee</code>，类似地，如果区块大小小于目标（1500万Gas），协议将减小下一个块的<code>base_fee</code>，<code>base_fee</code>调整幅度与区块实际大小和目标大小之间的差距成正比，以此来将平均区块大小维持在1500万Gas水平上</p><blockquote><h2 id="h-base-fee" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Base Fee</h2></blockquote><p>每个区块都有其<code>base_fee</code>，要想获得进入区块的资格，每笔交易的Gas费至少要等于<code>base_fee</code>，<code>base_fee</code>的计算如前所述，是由前一个的区块决定的，这使得Gas费对用户来说更加可预测。当包含交易的区块进入区块链后，该区块包含的所有交易的<code>base_fee</code>将被销毁，从流通中剔除</p><p>计算<code>base_fee</code>时，会将前一个区块的大小（前一个区块包含的所有交易使用的Gas）与目标大小进行比较，如果超过目标大小，该区块的<code>base_fee</code>用最大可以增加12.5%，如此以来<code>base_fee</code>是呈指数级增长，这使得区块大小维持在高位非常不经济，见下图的例子：</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/896c69d106dfebd1ff1dcd9074eeee32856c2d907e2d0921bf41dc744fd3b443.png" alt="Diagram adapted from Ethereum Gas and Fees" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="">Diagram adapted from Ethereum Gas and Fees</figcaption></figure><p>上例中，第二个区块开始区块大小达到饱和，所以从第三个区块开始提高<code>base_fee</code>，同时我们可以轻松通过12.5%的增长率计算出第9个区块的<code>base_fee</code>，而这样的计算其实钱包软件就可以很容易帮我们计算出来，供我们来决定是否要支付高昂的Gas费来完成这笔交易</p><blockquote><h2 id="h-priority-fee" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">Priority Fee (小费)</h2></blockquote><p>在伦敦升级之前，用有记账权的矿工可以获得新产生区块中所包含的交易的所有Gas费</p><p>但随着伦敦升级，<code>base_fee</code>销毁机制的引入，矿工少了一部分的收入，如果升级后损害了矿工的利益，那么矿工很可能并不会升级节点，导致升级流产（ETC就是因为部分矿工与以太坊核心团队产生了分歧而产生的），在没有<code>priority_fee</code> 机制时，拥有记账权的矿工极有可能会产生空区块，即不包含任何交易的区块，因为此时<code>base_fee</code>被销毁，矿工能获得的奖励就只有及时投票给的奖励还有出块奖励，这些奖励与区块中是否包含交易并没有任何关系，所以伦敦升级引入了<code>priority_fee</code> (小费)，以激励矿工将mempool中的交易打包进区块</p><blockquote><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">结语</h2></blockquote><p>伦敦升级中对EIP-1559的落实使得交易费用机制比之前的Gas价格拍卖机制更加复杂，但它的优势是使Gas费用更加具有可预测性，从而可以形成更高效的交易费用市场，但同时也带来了MEV（maximal extractable value）问题，即矿工会通过将交易排序，来达到获利最大化，MEV Bot就是利用这一点来获利，该问题有望通过EIP-4844 中的抗审查清单升级得到解决</p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div>]]></content:encoded>
            <author>damian-dyor@newsletter.paragraph.com (damian-dyor.eth)</author>
        </item>
        <item>
            <title><![CDATA[2. 以太坊2.0-奖励与惩罚机制]]></title>
            <link>https://paragraph.com/@damian-dyor/2-2-0</link>
            <guid>G5OT2PDIrm89qMApz3s9</guid>
            <pubDate>Mon, 27 Feb 2023 12:33:04 GMT</pubDate>
            <description><![CDATA[奖励机制在质押32ETH成为验证者后，验证者通过参加验证交易、提出新区块等活动会获得ETH奖励，同时也会因为不良行为而受到处罚，所有的奖励与惩罚在每个epoch中只出现一次，下面将介绍ETH 2.0下的奖励惩罚机制Base Reward某一验证者在一个单独的epoch中的奖励是基于base_reward计算而来，base_reward表示在最优化条件下，该验证者在每个时期收到的平均奖励。这是根据验证者的effective_balance和该epoch中活跃验证者总数计算得出的：base_reward = effective_balance * (base_reward_factor / (base_rewards_per_epoch * sqrt(sum(active_balance)))) effective_balance：该验证者质押的ETH总数base_reward_factor：64base_rewards_per_epoch：4sum(active balance) 是该epoch中所有活跃验证者质押的ETH总数不难发现base_reward与effective_ba...]]></description>
            <content:encoded><![CDATA[<h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">奖励机制</h2><p>在质押32ETH成为验证者后，验证者通过参加验证交易、提出新区块等活动会获得ETH奖励，同时也会因为不良行为而受到处罚，所有的奖励与惩罚在每个epoch中只出现一次，下面将介绍ETH 2.0下的奖励惩罚机制</p><h3 id="h-base-reward" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Base Reward</h3><p>某一验证者在一个单独的epoch中的奖励是基于<code>base_reward</code>计算而来，<code>base_reward</code>表示在最优化条件下，该验证者在每个时期收到的平均奖励。这是根据验证者的<code>effective_balance</code>和该epoch中活跃验证者总数计算得出的：</p><pre data-type="codeBlock" text="base_reward = effective_balance * (base_reward_factor / (base_rewards_per_epoch * sqrt(sum(active_balance))))
"><code>base_reward <span class="hljs-operator">=</span> effective_balance <span class="hljs-operator">*</span> (base_reward_factor <span class="hljs-operator">/</span> (base_rewards_per_epoch <span class="hljs-operator">*</span> sqrt(sum(active_balance))))
</code></pre><ul><li><p><code>effective_balance</code>：该验证者质押的ETH总数</p></li><li><p><code>base_reward_factor</code>：64</p></li><li><p><code>base_rewards_per_epoch</code>：4</p></li><li><p><code>sum(active balance)</code> 是该epoch中所有活跃验证者质押的ETH总数</p></li></ul><p>不难发现<code>base_reward</code>与<code>effective_balance</code>成正比关系，与验证者总数成反比（由<code>sum(active balance)</code>体现）。验证者越多，则全网每一个验证者<code>base_reward</code>加总后越多，为了证明这一点，我们不妨假设所有验证者都是活跃验证者，证明如下：</p><p><code>Sum(base_reward)</code> = <code>base_reward</code> × N（全网验证者总数）</p><p>= <code>Constant</code> × sqrt(N)</p><p>对<code>Sum(base_reward)</code>求导得：<code>Constant</code> / (2 × sqrt(N)) &gt; 0，说明为单调递增函数，即随着N的增加，<code>Sum(base_reward)</code>增加</p><p>同时随着N的增加，每一位验证者的<code>base_reward</code>却是逐渐减小的，大家可以自行证明</p><p><code>base_reward</code>可以被分为5个部分，分别计算，每个组成部分都有不同权重，权重之和为64，5个组成部分为（摘自Ethereum官网，我就不翻译了）：</p><ol><li><p><strong>source vote</strong>: the validator has made a timely vote for the correct source checkpoint</p></li><li><p><strong>target vote</strong>: the validator has made a timely vote for the correct target checkpoint</p></li><li><p><strong>head vote</strong>: the validator has made a timely vote for the correct head block</p></li><li><p><strong>sync committee reward</strong>: the validator has participated in a sync committee</p></li><li><p><strong>proposer reward</strong>: the validator has proposed a block in the correct slot</p></li></ol><p>每个部分对应的权重分别为：</p><ol><li><p>TIMELY_SOURCE_WEIGHT------<strong>uint64(14)</strong></p></li><li><p>TIMELY_TARGET_WEIGHT-------<strong>uint64(26)</strong></p></li><li><p>TIMELY_HEAD_WEIGHT---------<strong>uint64(14)</strong></p></li><li><p>SYNC_REWARD_WEIGHT--------<strong>uint64(2)</strong></p></li><li><p>PROPOSER_WEIGHT-------------<strong>uint64(8)</strong></p></li></ol><p>举例：如果一个验证者，他既不在规定slot产生新区块，也不对检查点及时投票（不满足1，5），但其他都做得很好（满足2，3，4），那么他可以获得的奖励就是：</p><p>该验证者可获得的奖励 = ((64 - 14 - 8) / 64) × <code>base_reward</code></p><h3 id="h-inclusion-delay-reward" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Inclusion Delay Reward</h3><p>除了这5部分的奖励之外，以太坊还设计了<code>inclusion_delay_reward</code>来激励验证者快速验证并投票，计算公式为：</p><p><code>inclusion_delay_reward</code> = <code>base_reward</code> / <code>delay</code></p><ul><li><p><code>delay</code>为所验证的区块与发出投票之间间隔的slots数，如果在所验证区块所属的那个slot中就投票，那么取1，如果是在下一个slot再投票，则取2</p></li></ul><h3 id="h-block-proposer-reward" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Block Proposer Reward</h3><p>对于新区块的提出者来说，每一个对新提出区块投支持票的验证者，都会使得该提出者获得<code>base_reward</code> / 8 的奖励，所以获得奖励的数量与参与验证投票的验证者数量有关，同时，新区块的提出者也可以将其他验证者不良行为的证据打包在新区块中，来获得更多奖励，当新区块中包含其他验证者的可罚没行为（slashing，后面会讲到）的证据时，该区块提出者将获得：<code>slashed_validators_effective_balance</code> / 512 的奖励</p><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">惩罚机制</h2><p>对于良好的行为，系统会给予奖励，而对于不良行为，系统也会相应的进行处罚</p><h3 id="h-general-misbehavior" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">General Misbehavior</h3><p>对于错过 source vote 和 target vote 的行为，该验证者的账户会被扣除与其完成 source vote 和 target vote 所获得奖励相同数额的 ETH，即不光不会给奖励，还会扣除与奖励金额相同的ETH</p><p>而对于错过 head vote 以及没有在规定slot产生新区块来说，是没有任何惩罚的（光是错过这些奖励，就已经很肉疼了）</p><h3 id="h-slashing" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Slashing</h3><p>可罚没行为是一种更加严重的不良行为，可导致验证者被强制踢出网络，并没收其所质押的ETH，包括：</p><ol><li><p>在一个slot中，产生并签名了两个不同的区块</p></li><li><p>恶意给其他区块投票，形成分叉，来改变交易历史</p></li><li><p>对于同意slot不同区块都投支持票（也被称为Nothing at stake问题，这样做是希望避免自己成为投票中的少数方，防止自己拿不到奖励）</p></li></ol><p>如果以上行为被发现，则验证者所质押的ETH的 1/32 会立即被销毁（最大为1个ETH），之后开始长达36天的退出阶段，在这个过程中质押的ETH会逐渐流失，在第18天时，会有一个额外的惩罚，叫做 correlation penalty（相关惩罚），该惩罚的力度与该罚没案件发生前 36 天内所有被处以罚没惩罚的验证者所质押的ETH总量成比例，也就意味着，如果这段时间有越多的验证者被处以罚没，则针对该验证者的惩罚力度越大，罚没的最大值为该验证者所质押的所有ETH</p><h3 id="h-inactivity-leak" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">Inactivity Leak</h3><p>如果信标链连续4个epochs都无法达成 finalized，这时，名为 Inactivity Leak 的紧急智能合约会被激活，这个智能合约的目的就是为了创造条件使信标链达成 finalized</p><p>如果全网的验证者中，有超过 1/3 离线或者投票失败，那么就会导致无法达成超过 2/3 的投票率，也就无法达成 finalized，这个紧急智能合约会使得这些不管是离线还是投票失败的验证者所质押的ETH逐渐流失，直到这群没能投票的验证者的总质押数占全部验证者总质押数的比例小于 1/3，从而让那些活跃的验证者可以达成 finalized</p><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0"></h3>]]></content:encoded>
            <author>damian-dyor@newsletter.paragraph.com (damian-dyor.eth)</author>
        </item>
        <item>
            <title><![CDATA[1. 以太坊2.0-POS共识机制]]></title>
            <link>https://paragraph.com/@damian-dyor/1-2-0-pos</link>
            <guid>1pp9MWqqiTyGqnD3RtmK</guid>
            <pubDate>Mon, 27 Feb 2023 12:27:41 GMT</pubDate>
            <description><![CDATA[自从2022年以太坊1.0完成与信标链的合并后，以太坊正式放弃了POW（proof-of-work）共识机制，转而拥抱POS（proof-of-stake）共识机制，升级后的Ethereum也被称为ETH 2.0。姑且不论POS与POW哪种方案更加去中心化（尚有争议），但转向POS后的以太坊大大减少了对能源的消耗，在当今碳中和大背景下，不失为明智之举，且引入POS后的以太坊对于网络容量的扩展也更加友好，为了更好的理解，下面先为大家简单介绍一下POW共识机制是如何运作的以太坊POW共识机制简介简单来说，在POW机制下，区块链中的各个全节点（矿工）是通过解一道非常难的数学题来争取记账权，谁先计算出答案，谁就可以将答案连同新区块率先通过P2P（peer-to-peer）网络广播，让其他矿工知道，已经有人找到了答案并发布了新区块，这时，其他矿工就会将新区块中的每笔交易、数学题答案、签名都完整验证一遍，如果没问题，大家就会达成一个共识：承认这个新区块的有效性，同时也就承认了解对这道题的矿工拥有这个区块记账权，该矿工获得出块奖励，之后，大家就会进入下一轮的解题大赛。由于解对题的时间并不固定，...]]></description>
            <content:encoded><![CDATA[<p>自从2022年以太坊1.0完成与信标链的合并后，以太坊正式放弃了POW（proof-of-work）共识机制，转而拥抱POS（proof-of-stake）共识机制，升级后的Ethereum也被称为ETH 2.0。姑且不论POS与POW哪种方案更加去中心化（尚有争议），但转向POS后的以太坊大大减少了对能源的消耗，在当今碳中和大背景下，不失为明智之举，且引入POS后的以太坊对于网络容量的扩展也更加友好，为了更好的理解，下面先为大家简单介绍一下POW共识机制是如何运作的</p><h2 id="h-pow" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">以太坊POW共识机制简介</h2><p>简单来说，在POW机制下，区块链中的各个全节点（矿工）是通过解一道非常难的数学题来争取记账权，谁先计算出答案，谁就可以将答案连同新区块率先通过P2P（peer-to-peer）网络广播，让其他矿工知道，已经有人找到了答案并发布了新区块，这时，其他矿工就会将新区块中的每笔交易、数学题答案、签名都完整验证一遍，如果没问题，大家就会达成一个共识：承认这个新区块的有效性，同时也就承认了解对这道题的矿工拥有这个区块记账权，该矿工获得出块奖励，之后，大家就会进入下一轮的解题大赛。由于解对题的时间并不固定，所以区块的出块间隔并不固定，但会有一个数学题的难度调整机制，帮助出块间隔大概稳定在15秒的水平上</p><h2 id="h-pos" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">以太坊POS共识机制介绍</h2><p>POS机制下，矿工需要在以太坊的智能合约中质押32个ETH申请成为验证者，并且需要在本地运行三个独立的软件：execution client（执行客户端）, consensus client（共识客户端）, and validator（验证者客户端），在排队结束后，即可进入P2P网络，接收新产生的区块，并将新区块中的交易记录在本地全数执行一遍，检查签名是否正确，如果没有问题，验证者就会发出投票（attestation）支持这个新的区块</p><p>那么POS机制下如何决定谁拥有记账权呢？</p><p>POS下矿工不再需要通过解数学难题来获得记账权（即发布新区块并获得奖励的权利），此时记账权由系统随机挑选产生（需要注意：区块链中的随机数基本都是伪随机数，因为要保证每个节点计算出的这个“随机数”都一致），且出块间隔也被固定在了1个slot（12秒），每32个slots为一个epoch，同时，在每个slot中，系统会随机选择一个验证者委员会（committee of validators，由最少128个验证者组成），委员会的投票结果会决定新产生区块是否有效。每个epoch的第一个区块为这个epoch的检查点，在每个epoch结束后，也需要同步委员会（sync committees）来为这个epoch的“有效性投票，若是投票通过（至少2/3）则这个检查点状态变为“Justified”，此时，上一个epoch的检查点升级为“finalized（最终完成）”，所以，一笔在ETH 2.0中的交易会在2个epochs以内被最终确认，即：</p><p>(12 × 32 × 2) / 60 = 12.8min</p><p>以上就是验证者在ETH 2.0中所扮演的角色，下面我们详细来讲一讲一笔交易在ETH 2.0中是如何被处理的：</p><ol><li><p>用户通过钱包软件（大多数情况下）发起一笔交易，用私钥对交易签名，但从底层来看，实际上是通过<a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://ethereum.org/en/developers/docs/apis/json-rpc/">JSON-RPC API</a>来向节点发起一个请求</p></li><li><p>交易被提交至节点的以太坊的执行客户端，来验证其有效性，其一验证是否有足够的ETH来完成这笔交易，其二验证该笔交易的签名是否正确</p></li><li><p>如果交易没问题，执行客户端会将该笔交易放入本地的内存池（mempool: list of pending transactions），并通过执行层的网络，将该笔交易广播给其他节点</p></li><li><p>被伪随机选出的验证者作为新区块的产生者，其执行客户端会在本地处理交易，并将数据打包好，准备作为信标链的一部分，之后同共识客户端通信，来确保整个网络对新区块的产生达成共识</p></li><li><p>其他节点通过共识层网络收到这个新的信标链区块后，会讲该区块传递给本地的执行客户端，并将里面的交易全数执行一遍来确保交易的有效性，同时也同步了本地的数据，如果没问题，该节点的验证客户端会进行投票来支持该区块</p></li><li><p>在2个epochs以内，该交易会被升级为“finalized”，表示该交易已被确认，无法被回退了</p></li></ol><h3 id="h-pos" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">以太坊POS共识机制的优缺点</h3><ul><li><p><strong>优点</strong>：相较于POW机制，大大降低了成为全节点的硬件门槛，极大的节约了能源，从安全性上来看，确实有进步，POW下，网络攻击者发动51%攻击后，完全可以带着自己的矿机去挖别的公链，而在POS机制下，想要发动攻击就必须要质押，二者利益绑定程度更高</p></li><li><p><strong>缺点</strong>：虽然降低了硬件的成本，但是对于资金成本的要求依然很高，这就促使出现了Lido这类质押服务提供商，在DVT（Distributed Validator Technology）技术没有落地之前，这反而促进了中心化，其次，POS的机制上线时间还不够长，还需要经历更多的考验来验证其安全性</p></li></ul><div data-type="subscribeButton" class="center-contents"><a class="email-subscribe-button" href="null">Subscribe</a></div>]]></content:encoded>
            <author>damian-dyor@newsletter.paragraph.com (damian-dyor.eth)</author>
        </item>
    </channel>
</rss>