<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Hero Yang</title>
        <link>https://paragraph.com/@hero-yang</link>
        <description>Coinbase WaaS
Building fun things</description>
        <lastBuildDate>Wed, 09 Sep 2026 14:23:36 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>Hero Yang</title>
            <url>https://storage.googleapis.com/papyrus_images/d43690990d29f80a6534f24575ec0f970c74cdc14a12d75a6542fa35dd075813.jpg</url>
            <link>https://paragraph.com/@hero-yang</link>
        </image>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[比特币 Atomicals ARC20无限难度/无限代币 详解]]></title>
            <link>https://paragraph.com/@hero-yang/atomicals-arc20</link>
            <guid>mkj4YKvcP4iKCrUH9G1d</guid>
            <pubDate>Sun, 28 Jan 2024 01:17:22 GMT</pubDate>
            <description><![CDATA[本文讨论mint arc20代币新增的 无限难度/无限代币的部署/挖矿技术分析 阅读本文必备知识：对比特币投资和ARC20代币的初步了解，懂得1聪1币和每一个arc20代币都有1聪的最低价值了解或希望使用Atomicals-js CLI 来挖矿和部署代币请参考 Daniel大佬的这篇文章学习前备知识： https://mirror.xyz/0x6EaD271a45ACc328Af22b369870509471a46f59D/0_UpzGUJJ4VZghruO_itmFZBAvw94z9xHu_Sto6iFdI正文开始首先 Atomicals的官方账号发布了最新的版本，这个版本内支持了最新的无限难度，英文名字为perpetual，永续合约就是这个词，含义为可以永远存在，没有停止的。但是在arc20这里叫无限难度/无限代币更合适，总量无限，但是每挖出来一定数量，难度提升，产出减少，最终总会到大家谁都挖不出来为止，创造人为的稀缺和无限的参与度。就像比特币一样，每4年难度增加，产出减半，永远挖不完： https://twitter.com/atomicalsxyz/status/1750...]]></description>
            <content:encoded><![CDATA[<p>本文讨论mint arc20代币新增的 无限难度/无限代币的部署/挖矿技术分析</p><p>阅读本文必备知识：</p><ul><li><p>对比特币投资和ARC20代币的初步了解，懂得1聪1币和每一个arc20代币都有1聪的最低价值</p></li><li><p>了解或希望使用Atomicals-js CLI 来挖矿和部署代币</p></li></ul><p>请参考 Daniel大佬的这篇文章学习前备知识：</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://mirror.xyz/0x6EaD271a45ACc328Af22b369870509471a46f59D/0_UpzGUJJ4VZghruO_itmFZBAvw94z9xHu_Sto6iFdI">https://mirror.xyz/0x6EaD271a45ACc328Af22b369870509471a46f59D/0_UpzGUJJ4VZghruO_itmFZBAvw94z9xHu_Sto6iFdI</a></p><hr><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">正文开始</h1><p>首先 Atomicals的官方账号发布了最新的版本，这个版本内支持了最新的无限难度，英文名字为perpetual，永续合约就是这个词，含义为可以永远存在，没有停止的。但是在arc20这里叫无限难度/无限代币更合适，总量无限，但是每挖出来一定数量，难度提升，产出减少，最终总会到大家谁都挖不出来为止，创造人为的稀缺和无限的参与度。就像比特币一样，每4年难度增加，产出减半，永远挖不完：</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/atomicalsxyz/status/1750856685218938928">https://twitter.com/atomicalsxyz/status/1750856685218938928</a></p><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">更新内容和注意事项</h2><ol><li><p>之前的固定难度代币保留，新增了无限代币 （perpetual ），不再拥有总量限制</p></li><li><p>CLI和索引必须要升级</p></li><li><p>发布代币 （init-dft），多了几个可设置的变量</p></li><li><p>对于挖矿来说 （mint-dft），基本不变</p></li></ol><blockquote><p>按照常人的阅读顺序和理解顺序，我会先讲固定难度和无限难度的区分。对于挖币的影响在文章结尾，对于技术需求不大的读者，可以直接跳过到末尾看结论</p></blockquote><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">固定难度</h2><p>固定难度就不过多赘述，和之前一样，需要满足一定的bitwork才可以挖到，有总量的限制，挖完就没了，推特里面有大量的教程。不过CLI 中改为了如下指令</p><pre data-type="codeBlock" text="init-dft-fixed
"><code>init<span class="hljs-operator">-</span>dft<span class="hljs-operator">-</span><span class="hljs-keyword">fixed</span>
</code></pre><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">无限难度</h2><p>CLI内新增了如下指令来发布这样子的无限难度的 无限代币，不再拥有总量限制，max_mint改为每一个难度周期可挖的数量，新增了以下几种重要选项，下面我们逐个分析：</p><pre data-type="codeBlock" text="init-dft-perpetual
...............
  &apos;--max_mints &lt;number&gt;&apos;, &apos;The number of mints allowed per mint phase of max_mints&apos;
  &apos;--mintbitworkvec &lt;string&gt;&apos;, &apos;The base bitwork prefix vector to use&apos;
  &apos;--mintbitworkcinc &lt;number&gt;&apos;, &apos;The amount of bitworkc to increase for each phase of max_mints&apos;
  &apos;--mintbitworkrinc &lt;number&gt;&apos;, &apos;The amount of bitworkr to increase for each phase of max_mints&apos;
  &apos;--mintbitworkcincstart &lt;number&gt;&apos;, &apos;The starting amount of bitworkc to increase for each phase of max_mints&apos;
  &apos;--mintbitworkrincstart &lt;number&gt;&apos;, &apos;The starting amount of bitworkr to increase for each phase of max_mints&apos;&apos;
...............
"><code>init<span class="hljs-operator">-</span>dft<span class="hljs-operator">-</span>perpetual
...............
  <span class="hljs-string">'--max_mints &#x3C;number>'</span>, <span class="hljs-string">'The number of mints allowed per mint phase of max_mints'</span>
  <span class="hljs-string">'--mintbitworkvec &#x3C;string>'</span>, <span class="hljs-string">'The base bitwork prefix vector to use'</span>
  <span class="hljs-string">'--mintbitworkcinc &#x3C;number>'</span>, <span class="hljs-string">'The amount of bitworkc to increase for each phase of max_mints'</span>
  <span class="hljs-string">'--mintbitworkrinc &#x3C;number>'</span>, <span class="hljs-string">'The amount of bitworkr to increase for each phase of max_mints'</span>
  <span class="hljs-string">'--mintbitworkcincstart &#x3C;number>'</span>, <span class="hljs-string">'The starting amount of bitworkc to increase for each phase of max_mints'</span>
  <span class="hljs-string">'--mintbitworkrincstart &#x3C;number>'</span>, <span class="hljs-string">'The starting amount of bitworkr to increase for each phase of max_mints'</span><span class="hljs-string">'
...............
</span></code></pre><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">逐个拆解：</h3><pre data-type="codeBlock" text="max_mints： The number of mints allowed per mint phase of max_mints
"><code>max_mints： The number <span class="hljs-keyword">of</span> mints allowed <span class="hljs-keyword">per</span> mint phase <span class="hljs-keyword">of</span> max_mints
</code></pre><p><strong>max_mint： 每个难度周期最多能挖的数量，最大100000</strong></p><p>新的无限难度机制，取消了代币的总量上限，而改为了每个难度周期的上限，到达上限之后，难度增加，新的一轮代币开挖。部署者需要设定每一轮的总量，代笔对应的聪量，全体社群参与挖矿。当然，在这之中，“科学家”依旧会加速这场比赛，前期大家都挖得很快，但是后期就会逐渐变慢，最终会自然的达到谁都挖不出来或者产出极其有限的平衡</p><p>作用：定义每个难度周期挖多少，挖满了进入下一个难度周期，难度增加</p><pre data-type="codeBlock" text="mintbitworkvec
"><code></code></pre><p><strong>mintbitworkvec: 预设的bitwork的前缀，至少是4位的 hex，比如0000，123456或者ffffffff</strong></p><p>作用：可自定义的bitwork前缀，如果当前难度周期没有这个初始长度长，使用当前难度周期的最大长度，如果当前难度比这个长度大，后面会加0</p><pre data-type="codeBlock" text="mintbitworkcinc
mintbitworkrinc
"><code></code></pre><p><strong>mint_bitwork{c,r}_inc: 难度增长，每一个难度周期，增加的bitwork难度倍数，可用数值： 1-64</strong></p><p>作用：每经历一个周期，难度成倍增长，如果设置为16，每个难度周期正好多一个hex前缀</p><pre data-type="codeBlock" text="mintbitworkcincstart
mintbitworkrincstart
"><code></code></pre><p><strong>mint_bitwork{c,r}_inc_start: 初始难度倍率，难度从多少倍开始增加，可用数值64-256 （CLI前端限制了192）</strong></p><p>作用：定义了最小难度倍数。如果难度从96倍增加（6*16=96），那么最少要满足的bitwork就是6位，之后每个难度周期增加固定倍率</p><p>计算难度的代码是这一段，能看懂的各位可以去研究，或者直接看我的总结：</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://github.com/atomicals/atomicals-electrumx/blob/b6d1136405b3ae03c167fa1a546beb8e134cc399/electrumx/lib/util_atomicals.py#L1643C1-L1666C26">https://github.com/atomicals/atomicals-electrumx/blob/b6d1136405b3ae03c167fa1a546beb8e134cc399/electrumx/lib/util_atomicals.py#L1643C1-L1666C26</a></p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">怎么理解？</h3><p><strong>难度</strong>：此处所有的难度都是相对没有bitwork而言的，难度定为1倍。通常来讲arc20 里的 bitwork至少4位hex，也就是最低是4*16=64的难度。</p><p><strong>难度递增</strong>：由 <strong>mintbitworkcinc 难度倍率</strong> 定义，设定为16时，每个难度周期增加16倍难度，那么每次难度增加，都会正好多一位hex前缀：假设最开始是64倍（4位）难度，下一个周期就会变为5位hex前缀，再下一个周期就是6位hex前缀，以此类推直到无限（理论无限，现实不可能，10位都很难挖）。难度不需要是16的倍数，可以是5倍，10倍，官方索引考虑到了这种情况。</p><p><strong>前缀计算</strong>：通过最开始定义的 <strong>mintbitworkvec 预设前缀</strong> ，假设设定为12345678，那么最小难度是64倍（4位）的时候，只需要满足前缀1234即可。每增加16倍（1倍）难度，多满足一位。80倍的时候需要满足12345，96倍需要满足123456, 直到用完预设的前缀，之后后面会逐渐添0。</p><p><strong>初始难度</strong>：由 <strong>mintbitworkcincstart 初始难度</strong>定义，定义了最低难度倍率。以前面的12345678为例：</p><ul><li><p>如果<strong>初始难度</strong>设定为64，那么第一个周期就是1234，第二个周期12345</p></li><li><p>如果<strong>初始难度</strong>设定为80，那么第一个周期大家挖12345，第二个周期123456</p></li></ul><p>这里引入了几个新东西，看不懂了是不是？来一个例子你们就明白了</p><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">例子</h3><p>测试网里有一个代币叫 perp，主网也有一个相同的代币，很可能是官方布的。它的参数是：</p><pre data-type="codeBlock" text="&apos;$max_mints&apos;: 3, # 每挖3张，进入下一个难度周期
&apos;$mint_bitwork_vec&apos;: &apos;123456&apos;,  # 预设前缀123456
&apos;$mint_bitworkc_inc&apos;: 16,  # 每次难度周期，挖矿难度翻16倍，也就是正好多一位hex
&apos;$mint_bitworkc_start&apos;: 80,  # 从80倍难度开始，正好是5位 （5*16=80）
&apos;$mint_bitworkr_inc&apos;: 16, 
&apos;$mint_bitworkr_start&apos;: 80,
"><code><span class="hljs-string">'$max_mints'</span>: 3, <span class="hljs-comment"># 每挖3张，进入下一个难度周期</span>
<span class="hljs-string">'$mint_bitwork_vec'</span>: <span class="hljs-string">'123456'</span>,  <span class="hljs-comment"># 预设前缀123456</span>
<span class="hljs-string">'$mint_bitworkc_inc'</span>: 16,  <span class="hljs-comment"># 每次难度周期，挖矿难度翻16倍，也就是正好多一位hex</span>
<span class="hljs-string">'$mint_bitworkc_start'</span>: 80,  <span class="hljs-comment"># 从80倍难度开始，正好是5位 （5*16=80）</span>
<span class="hljs-string">'$mint_bitworkr_inc'</span>: 16, 
<span class="hljs-string">'$mint_bitworkr_start'</span>: 80,
</code></pre><p>通过分析参数，我们能知道:</p><ul><li><p>第一个难度周期，难度为80倍，也就是5位hex，需要满足前缀12345</p></li><li><p>第二个难度周期，多16倍，80+16 = 96 也就是6位hex，满足前缀123456</p></li><li><p>第三个周期，96+16 = 112，7位hex，要满足1234560 （前缀满足后会加0）</p></li><li><p>一直到无限</p></li></ul><h3 id="h-" class="text-2xl font-header !mt-6 !mb-4 first:!mt-0 first:!mb-0">总结</h3><p>所以如果你想要发一个币，前缀是ffffffffffffffffff，每10000张之后，难度翻10倍，初始难度为4个f，你就可以如下配置：</p><pre data-type="codeBlock" text="# 前缀ffffffffffffffffff
mintbitworkvec=ffffffffffffffffff 

# 每个周期10000
max_mints=10000 

# 每次翻10倍
mintbitworkcinc=10

# 最开始的难度是4个f （4*16=64）
mintbitworkcincstart=64
"><code><span class="hljs-comment"># 前缀ffffffffffffffffff</span>
<span class="hljs-attr">mintbitworkvec</span>=ffffffffffffffffff 

<span class="hljs-comment"># 每个周期10000</span>
<span class="hljs-attr">max_mints</span>=<span class="hljs-number">10000</span> 

<span class="hljs-comment"># 每次翻10倍</span>
<span class="hljs-attr">mintbitworkcinc</span>=<span class="hljs-number">10</span>

<span class="hljs-comment"># 最开始的难度是4个f （4*16=64）</span>
<span class="hljs-attr">mintbitworkcincstart</span>=<span class="hljs-number">64</span>
</code></pre><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">最多人关心的 -- 挖矿</h2><p>挖矿没有任何改变，还是使用最早的同样的方法和代码。值得注意的是，会多了一个新的--current 参数来指定是否选择挖当前难度：</p><pre data-type="codeBlock" text="&apos;--current&apos;, &apos;Whether to mine with the current actual bitwork. By default the next one is used for more reliability&apos;
"><code><span class="hljs-comment">'--current', 'Whether to mine with the current actual bitwork. By default the next one is used for more reliability'</span>
</code></pre><p>对固定难度的没有任何影响，但是对无限难度来说：</p><p>如果设置了这个 current，只会挖当前难度，假设当前是6难度，只会挖6难度，这个很好理解。而默认是下一难度，因为如果你挖了当前难度6，但是6被挖光了，你挖的这一次就被埋了，如果挖的是下一难度，虽然会难一些，不过保证不会被埋 （这个确实比较反人类，但是暂时想不到更好的解决方案）</p><p>因此大家在挖矿的时候，最优解是：</p><p>为了保证效率只挖当前难度，同时关注当前难度下还有多少代币可挖，一旦接近下一难度就自行调整。</p><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0">最后</h1><p>大家有任何问题可以推特关注 @hero_yang_v ， 会随时给大家带来一手消息和分析</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://twitter.com/hero_yang_v">https://twitter.com/hero_yang_v</a></p><hr><blockquote><p>花了一下午的时间钻研代码，研究不易，各位大佬们赚到钱了可以给小的投喂：</p><p>btc地址：bc1pjwzukjjnzrmspn3pued884668v6dzjkwtf5ga95g3p5nsj3hyngs0adn58</p><p>eth地址：0xd6d037c6f2846ff9b8ef4248a13f8fd89cc111ef</p><p>感谢各位🙏</p></blockquote>]]></content:encoded>
            <author>hero-yang@newsletter.paragraph.com (Hero Yang)</author>
        </item>
    </channel>
</rss>