<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Second Blog]]></title><description><![CDATA[The latest news on Second, the Ark protocol, and thoughts on bitcoin payments]]></description><link>https://blog.second.tech/</link><image><url>https://blog.second.tech/favicon.png</url><title>Second Blog</title><link>https://blog.second.tech/</link></image><generator>Ghost 5.88</generator><lastBuildDate>Sun, 05 Apr 2026 23:51:31 GMT</lastBuildDate><atom:link href="https://blog.second.tech/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Fuzzing Bark for server reliability]]></title><description><![CDATA[<p>Ark users are always in control of their bitcoin. They can perform an emergency exit to get back on-chain whenever they need to. But Bark is a client-server system, and users depend on the server to make payments and refresh their VTXOs before expiry. Careful engineering, rigorous code review, and</p>]]></description><link>https://blog.second.tech/fuzzing-bark-for-server-reliability/</link><guid isPermaLink="false">69a059c816076c122cb80cb9</guid><category><![CDATA[Engineering]]></category><dc:creator><![CDATA[luca0x46]]></dc:creator><pubDate>Thu, 26 Feb 2026 14:38:09 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2026/02/bark-fuzzing-2-4.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2026/02/bark-fuzzing-2-4.jpg" alt="Fuzzing Bark for server reliability"><p>Ark users are always in control of their bitcoin. They can perform an emergency exit to get back on-chain whenever they need to. But Bark is a client-server system, and users depend on the server to make payments and refresh their VTXOs before expiry. Careful engineering, rigorous code review, and thorough testing go a long way, but we wanted to go further, so we&apos;ve started fuzzing Bark.</p>
<h2 id="sniper-vs-shotgun">Sniper vs. shotgun</h2>
<p>Traditional testing is targeted: you write tests for bugs you can anticipate. Fuzzing casts a wider net, using different strategies to generate semi-random inputs that surface bugs you&apos;d never think to look for.</p>
<h2 id="vtxo-roundtrip-deserialize-serialize-repeat">VTXO roundtrip: deserialize, serialize, repeat</h2>
<p>We use <a href="https://github.com/google/honggfuzz">Honggfuzz</a>, a coverage-guided fuzzer that instruments the binary and systematically explores code paths. We built two helper scripts around it: <a href="https://gitlab.com/ark-bitcoin/bark/-/blob/master/fuzz/fuzz.sh"><code>fuzz.sh</code></a> to run targets, and <a href="https://gitlab.com/ark-bitcoin/bark/-/blob/master/fuzz/debug.sh"><code>debug.sh</code></a> to analyze crashes when they&apos;re found.</p>
<p>Our first fuzz target is a VTXO roundtrip test. Feed generated inputs into the VTXO deserializer, and if it parses successfully, re-serialize and deserialize again, then check the results match. Any crash, memory issue, assertion failure, or resource exhaustion at any step is a bug.</p>
<pre><code class="language-rust">fn do_test(data: &amp;[u8]) {
    let result: Result&lt;Vtxo&lt;ServerVtxoPolicy&gt;, ProtocolDecodingError&gt; =
        Vtxo::deserialize(&amp;mut data.as_ref());

    if let Ok(vtxo) = result {
        let serialized = vtxo.serialize();

        let vtxo2: Vtxo&lt;ServerVtxoPolicy&gt; =
            Vtxo::deserialize(&amp;mut serialized.as_slice())
                .expect(&quot;re-serialization should succeed&quot;);

        let serialized2 = vtxo2.serialize();
        assert_eq!(
            serialized, serialized2,
            &quot;serialization should be deterministic&quot;
        );
    }
}
</code></pre>
<h2 id="unchecked-allocation-crashes-the-decoder">Unchecked allocation crashes the decoder</h2>
<p>It paid off quickly. Fuzzing found a bug where a malformed VTXO could claim an arbitrary vector length during deserialization. The decoder would call <code>Vec::with_capacity</code> with whatever size the input specified, causing a capacity overflow panic. A single crafted request could have brought down the server.</p>
<p>Stable Rust doesn&apos;t yet offer <code>try_with_capacity</code> to handle this natively, so we added an explicit check. We introduced a <code>MAX_VEC_SIZE</code> of 4 MB (borrowing rust-bitcoin&apos;s approach) and a guard that runs before every vector allocation during decoding:</p>
<pre><code class="language-rust">pub const MAX_VEC_SIZE: usize = 4_000_000;

impl OversizedVectorError {
    pub fn check&lt;T&gt;(requested: usize) -&gt; Result&lt;(), Self&gt; {
        let max = MAX_VEC_SIZE / mem::size_of::&lt;T&gt;();
        if requested &gt; max {
            Err(Self { requested, max })
        } else {
            Ok(())
        }
    }
}
</code></pre>
<p>The decoder now returns a clean error instead of panicking. Without fuzzing, this would have gone unnoticed until someone exploited it.</p>
<h2 id="continuous-fuzzing-and-public-test-vectors">Continuous fuzzing and public test vectors</h2>
<p>We have a fuzzer running around the clock and we&apos;re setting up a workflow to routinely push minimized corpora to our <a href="https://gitlab.com/ark-bitcoin/bark-qa">bark-qa</a> repo, which also holds test vectors used throughout Bark&apos;s development.</p>
<p>More targets are on the way: dedicated serialization/deserialization targets for every protocol message type, then &quot;getter&quot; targets that fuzz method calls on deserialized types to catch errors beyond encoding.</p>
<p>Your bitcoins are safe by protocol design. We&apos;re making sure the infrastructure is just as solid.</p>
<p><em><a href="https://x.com/2ndbtc">Follow us on X</a> or <a href="https://second.tech/#subscribe">sign up to our newsletter</a> to keep up with Bark development.</em></p>
]]></content:encoded></item><item><title><![CDATA[hArk explained: async forfeits and mobile-friendly refreshes]]></title><description><![CDATA[<p>hArk (hash-lock Ark), first described in <a href="https://delvingbitcoin.org/t/evolving-the-ark-protocol-using-ctv-and-csfs/1602">a Delving Bitcoin post</a>, and <a href="https://docs.second.tech/changelog/changelog/#010-beta6">shipped in v0.1.0-beta.6</a> is an update to our implementation of the Ark protocol that fundamentally changes how rounds are constructed. Forfeits are now dependent on hash-locks instead of connectors, and are signed <em>after</em> the round&apos;</p>]]></description><link>https://blog.second.tech/hark-explained/</link><guid isPermaLink="false">698a227016076c122cb80c40</guid><dc:creator><![CDATA[Erik De Smedt]]></dc:creator><pubDate>Thu, 12 Feb 2026 07:28:49 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2026/02/hark-explained-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2026/02/hark-explained-1.jpg" alt="hArk explained: async forfeits and mobile-friendly refreshes"><p>hArk (hash-lock Ark), first described in <a href="https://delvingbitcoin.org/t/evolving-the-ark-protocol-using-ctv-and-csfs/1602">a Delving Bitcoin post</a>, and <a href="https://docs.second.tech/changelog/changelog/#010-beta6">shipped in v0.1.0-beta.6</a> is an update to our implementation of the Ark protocol that fundamentally changes how rounds are constructed. Forfeits are now dependent on hash-locks instead of connectors, and are signed <em>after</em> the round&apos;s funding transaction is broadcast, not before.</p>
<p>hArk makes it much easier to develop mobile apps on Bark by enabling delegated refreshes, required because mobile devices can&apos;t be reliably woken up to participate in the round signing process. Delegated refreshes come with some security trade-offs compared to standard self-signed refreshes, but don&apos;t worry, self-signed refreshes remain the default trust model, it&apos;s still the same protocol.</p>
<p>In all honesty, we hesitated implementing hArk because we knew this would delay our mainnet launch. But it was always going to be necessary, and retrofitting a new round model after users and integrators had already built on the old one would have been far more painful than launching with it. Now that it&apos;s in, we&apos;re glad we did&#x2014;we want Bark to be mobile-friendly from day one.</p>
<h2 id="how-rounds-worked-forfeit-then-broadcast">How rounds worked: forfeit, then broadcast</h2>
<p>In the Ark protocol, users must periodically refresh their Ark balances, forfeiting old VTXOs and receiving new ones in a single atomic operation.</p>
<p>In classic Ark, the round followed this sequence:</p>
<ol>
<li><strong>Submit request</strong>: Users tell the server which VTXOs they want to refresh.</li>
<li><strong>Tree construction and cosigning</strong>: The server builds a funding transaction and a transaction tree containing all new VTXOs. Users cosign the tree.</li>
<li><strong>Forfeit signing</strong>: Users sign forfeits for their old VTXOs.</li>
<li><strong>Broadcast</strong>: The server broadcasts the funding transaction.</li>
</ol>
<p>Forfeits were made conditional through connectors, dust-valued outputs from the funding transaction that the forfeit consumed as an input. If the funding transaction wasn&apos;t on-chain, the connector didn&apos;t exist, and the forfeit couldn&apos;t be spent. But this conditionality only worked in one direction: the forfeit depended on the funding transaction, but nothing made the new VTXOs depend on the forfeit. So the server had to collect every forfeit signature before broadcasting.</p>
<p><img src="https://blog.second.tech/content/images/2026/02/forfeit-connector-old-3.svg" alt="hArk explained: async forfeits and mobile-friendly refreshes" loading="lazy"></p>
<p>This model worked fine for always-on desktop clients, but mobile operating systems, particularly iOS, can struggle to reliably wake devices to participate in the interactive round process. To make mobile apps viable, we needed a way for mobile apps to refresh without users having to participate in the interactive round process. The only way to solve this without covenants was for a set of distributed cosigners to sign refreshes on users&apos; behalf, for them to claim later (a &quot;delegated refresh&quot;, more on this later). But with forfeits baked into the interactive round, this wasn&apos;t possible&#x2014;forfeit signatures require the user&apos;s private key, and sharing that with third-party cosigners is a non-starter. We needed to get the forfeit step out of the round entirely and make it asynchronous.</p>
<h2 id="how-rounds-work-now-broadcast-then-forfeit">How rounds work now: broadcast, then forfeit</h2>
<p>Connectors weren&apos;t going to cut it, so we went back to the drawing board and landed on hash-lock preimages&#x2014;the same cryptographic mechanism already proven in the Lightning Network. Hash-locks gave us the two-way conditionality we were missing: new VTXOs depend on forfeits and forfeits depend on new VTXOs, allowing us to move the forfeit step out of the interactive round entirely.</p>
<p>In hArk (hash-lock Ark), steps 3 and 4 are swapped, and step 4 can be performed outside the round window:</p>
<ol>
<li><strong>Submit request</strong>: Users tell the server which VTXOs they want to refresh.</li>
<li><strong>Tree construction and cosigning</strong>: The server builds a funding transaction and a transaction tree containing all new VTXOs. Users cosign the tree.</li>
<li><strong>Broadcast</strong>: The server broadcasts the funding transaction.</li>
<li><strong>Forfeit signing</strong>: Users sign forfeits for their old VTXOs at their convenience. The server reveals a preimage after receiving each user&apos;s forfeit signature.</li>
</ol>
<p>With the forfeit step decoupled from the round, delegated refreshes became possible. Cosigners can now pre-sign a mobile user&apos;s branch of the tree during the round, and the user&apos;s wallet collects the signed transactions later when it&apos;s next active&#x2014;no need to wake the device during the round itself. We&apos;ll cover the mechanics of delegated refreshes in detail below.</p>
<p>Another valuable byproduct was a reduction in the DoS surface of rounds&#x2014;one user&apos;s failure to sign their forfeit no longer stalls everyone else, making rounds that bit more reliable for wallet developers and users.</p>
<h2 id="how-hash-lock-forfeits-work">How hash-lock forfeits work</h2>
<p>The two-way dependency works through a single secret: the exit transaction of each VTXO in the transaction tree is locked behind a preimage <code>p</code> that only the server knows, and the server only reveals <code>p</code> after receiving a signed forfeit. The server can safely broadcast first because users can&apos;t access their new VTXOs without <code>p</code>. When a user signs their forfeit, the server reveals <code>p</code>, which simultaneously activates the user&apos;s new VTXO and gives the server the ability to claim the old one.</p>
<p><img src="https://blog.second.tech/content/images/2026/02/forfeit-hashlock-3.svg" alt="hArk explained: async forfeits and mobile-friendly refreshes" loading="lazy"></p>
<p>The forfeit is a two-step process:</p>
<ol>
<li>The user signs a forfeit transaction that moves their old VTXO into a forfeit output, locked by the preimage on one spend path and timeout on the other.</li>
<li>The server now holds a signed forfeit transaction. If the user ever tries to unilaterally exit the old VTXO on-chain, the server can broadcast the forfeit and claim the funds by revealing the preimage.</li>
</ol>
<p>If the server refuses to reveal <code>p</code>, the user&apos;s bitcoin is still safe. They can initiate an exit of their old VTXO on-chain, and one of two things happens:</p>
<ul>
<li>The server does nothing, and the user reclaims their bitcoin after the timeout delta.</li>
<li>The server broadcasts the forfeit claim, which reveals <code>p</code> on-chain. The user then uses that <code>p</code> to activate their new VTXO from the tree leaf.</li>
</ul>
<p>Either way, the user cannot lose bitcoin.</p>
<h2 id="delegated-refreshes-a-new-mode-for-mobile">Delegated refreshes: a new mode for mobile</h2>
<p>By default, refreshes in hArk are still self-signed: you cosign every transaction in your branch of the tree yourself. These pre-signed branch transactions form your unilateral exit path&#x2014;if you ever need to bring your VTXO on-chain without the server&apos;s cooperation, you broadcast this chain of transactions from the tree root down to your leaf. This is the strongest security model&#x2014;you trust no one&#x2014;but it requires being online during the round to cosign. For mobile operating systems that can&apos;t reliably wake to participate, hArk introduces delegated refreshes.</p>
<p>In delegated mode, a set of cosigners pre-sign the user&apos;s branch transactions during the round instead. When the user&apos;s wallet is next active, it collects the fully-signed branch transactions from the server&#x2014;giving the user the same unilateral exit path as in self-signed mode&#x2014;and completes the forfeit of their old VTXO. The server then reveals the preimage, activating the new VTXO in the tree.</p>
<p><img src="https://blog.second.tech/content/images/2026/02/delegated-refresh-2.svg" alt="hArk explained: async forfeits and mobile-friendly refreshes" loading="lazy"></p>
<p>All cosigners would need to collude to compromise a user&apos;s VTXO, and the larger the cosigner set, the harder this becomes. As an additional safeguard, cosigners automatically delete signing keys after each round, providing forward security: if a cosigner is operating correctly during the round but compromised later, the key deletion ensures that VTXOs from that round remain secure. As long as at least one cosigner&apos;s software is operating correctly during the round, collusion is impossible.</p>
<p>The two refresh modes aren&apos;t mutually exclusive. Any wallet app could offer both, using whichever is appropriate based on connectivity. Or a wallet installed on multiple devices could have a desktop handle all refreshes, with the mobile app&apos;s delegated refreshes reserved only as a failsafe. And users who delegate a refresh can always self-sign a refresh later, returning to the fully trustless model.</p>
<p>However, be aware that currently, the only cosigner is the server itself. Releasing cosigning software that enables other entities to participate is a top priority for us after mainnet launch.</p>
<h2 id="a-stepping-stone-to-covenants">A stepping stone to covenants</h2>
<p>Most of the existing bitcoin covenant proposals would enable us to enforce Ark&apos;s tree structure without the need for pre-signed transactions. Users would get the best of both worlds: the trustlessness of self-signed refreshes with the asynchronous convenience of delegated ones. They&apos;d still need to come online regularly to complete forfeits, but they wouldn&apos;t need to be responsive at the moment of the round.</p>
<p>The beauty of hArk&apos;s design is that it maps almost directly onto a covenant-based Ark. The hash-lock forfeit mechanism, the tree structure, and the round flow would all remain the same. So if we ever get covenants on bitcoin (a man can dream) the transition from hArk should be smooth, with minimal disruption to existing integrators and users.</p>
<h2 id="available-now-in-bark">Available now in Bark</h2>
<p>hArk is implemented today in Bark&#x2014;<a href="https://docs.second.tech">try it on signet</a>. And <a href="https://second.tech/#subscribe">get signed up to our newsletter</a> to be the first to hear about more Second updates.</p>
]]></content:encoded></item><item><title><![CDATA[Bark's unified mailbox]]></title><description><![CDATA[<p>We&apos;ve redesigned how Bark wallets receive updates from the Ark server. The new unified mailbox gives developers a single, efficient feed for all wallet notifications&#x2014;Lightning payments, Ark payments, and refreshes&#x2014;instead of requiring separate queries for each address. This simplifies app integrations and scales to</p>]]></description><link>https://blog.second.tech/unified-mailbox/</link><guid isPermaLink="false">69835e0f16076c122cb80c16</guid><dc:creator><![CDATA[Erik De Smedt]]></dc:creator><pubDate>Mon, 09 Feb 2026 10:08:00 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2026/02/unified-mailbox-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2026/02/unified-mailbox-1.jpg" alt="Bark&apos;s unified mailbox"><p>We&apos;ve redesigned how Bark wallets receive updates from the Ark server. The new unified mailbox gives developers a single, efficient feed for all wallet notifications&#x2014;Lightning payments, Ark payments, and refreshes&#x2014;instead of requiring separate queries for each address. This simplifies app integrations and scales to high transaction volumes without adding latency.</p>
<h2 id="the-sync-problem">The sync problem</h2>
<p>Most bitcoin wallets rely on Electrum or Esplora to monitor on-chain activity. These backends work by querying each address individually to check for new transactions, balance changes, and payment confirmations. For on-chain bitcoin, this approach works well enough because most users don&apos;t generate that many addresses or transactions.</p>
<p>Ark changes this equation. The protocol is designed for frequent, low-cost payments across Ark, Lightning, and on-chain, which means wallets need to track a higher volume of activity. On top of payments, wallets also need to monitor refreshes (both standard and delegated) and other state changes. Each of these creates notifications that the wallet needs to receive.</p>
<p>If a wallet queried each address individually&#x2014;the traditional approach&#x2014;sync times would grow with every new address. A wallet with thousands of addresses would need thousands of requests just to check for updates. For developers building on Ark, this creates two problems: latency that degrades the user experience, and complexity from having to aggregate multiple notification streams into a coherent wallet state.</p>
<h2 id="one-endpoint-for-everything">One endpoint for everything</h2>
<p>The unified mailbox consolidates all notifications into a single feed. Instead of querying each address, the wallet makes one request to its mailbox and receives everything: incoming Ark payments, Lightning preimages, BOLT-12 offers, and refresh completions. This scales from one address to thousands with no additional overhead.</p>
<p>The wallet stores a checkpoint locally, so subsequent syncs only fetch what&apos;s new since the last check:</p>
<pre><code class="language-rust">let mailbox_req = MailboxRequest {
    unblinded_id: mailbox_id.to_vec(),
    authorization: None,
    checkpoint,
};
let messages = mailbox_client.read_mailbox(mailbox_req).await?;
</code></pre>
<p><em>(Auth coming soon!)</em></p>
<p>If you&apos;ve already processed messages up to checkpoint 42, your next request starts at 43. This makes incremental sync efficient regardless of how much activity the wallet has seen historically.</p>
<h2 id="privacy-and-blinding">Privacy and blinding</h2>
<p>Each Ark address a wallet generates includes delivery information that tells senders where to post payments. This delivery information contains a &quot;blinded&quot; mailbox ID&#x2014;a cryptographic transformation of the wallet&apos;s actual mailbox identifier.</p>
<p>The blinding uses the VTXO keypair specific to each address, which means every address produces a different blinded ID even though they all route to the same underlying mailbox. When a sender pays to an address, their wallet extracts this blinded ID and posts the VTXO to the server. The server then unblinds it to route the notification to the correct mailbox.</p>
<pre><code class="language-rust">let blinded_id = mailbox_id.to_blinded(server_pubkey, &amp;vtxo_keypair);
</code></pre>
<p>This design creates a privacy trade-off that wallet implementations can choose:</p>
<ul>
<li><strong>Fast sync (Bark&apos;s default):</strong> One mailbox per wallet. Senders only see different blinded IDs for each address, so they cannot tell that two addresses belong to the same person. The server, however, can unblind and link all your addresses internally.</li>
<li><strong>Maximum privacy:</strong> The protocol supports using a different mailbox keypair for every address. This prevents even the server from linking your activity, at the cost of slower sync since each mailbox must be queried separately.</li>
</ul>
<h2 id="real-time-notifications">Real-time notifications</h2>
<p>Beyond checkpoint-based polling, the mailbox supports subscriptions that push notifications to the wallet the moment they arrive:</p>
<pre><code class="language-rust">let stream = mailbox_client.subscribe_mailbox(mailbox_req).await?;
</code></pre>
<p>This is particularly important for mobile wallets, where a responsive payment experience depends on immediate feedback. When a payment arrives or a refresh completes, the wallet knows instantly rather than waiting for the next poll interval.</p>
<p>For Lightning receive, real-time notifications become critical. When an incoming Lightning payment targets your wallet, the mailbox notifies you so your wallet can wake up, request the HTLCs, and reveal the preimage to claim the funds. Unlike Ark payments, Lightning has timeouts&#x2014;if your wallet doesn&apos;t respond before the HTLC expires, the payment fails. Polling intervals aren&apos;t reliable enough for this; you need the push.</p>
<p>Mobile devices can&apos;t maintain persistent WebSocket connections because the OS kills background processes to save battery. To solve this, you can authorize a third party&#x2014;such as your wallet provider&apos;s notification service&#x2014;to watch your mailbox on your behalf:</p>
<pre><code class="language-rust">let expiry = chrono::Local::now() + Duration::from_secs(3600);
let authorization = MailboxAuthorization::new(&amp;mailbox_keypair, expiry);
</code></pre>
<p>The authorization has an expiry you control. The third party can monitor for incoming payments and send push notifications to wake your app, but only for the duration you&apos;ve permitted.</p>
<hr>
<p><strong>The unified mailbox is available now in Bark. See <a href="https://gitlab.com/ark-bitcoin/bark/-/merge_requests/1412">merge request !1412</a> for implementation details.</strong></p>
]]></content:encoded></item><item><title><![CDATA[Second partners with Vora to fund nested MuSig]]></title><description><![CDATA[<p>We&apos;re funding a year-long grant for <a href="https://x.com/BeulahEvanjalin"><u>Beulah Evanjalin</u></a> to implement nested MuSig in <a href="https://github.com/bitcoin-core/secp256k1" rel="noreferrer">libsecp256k1-zkp</a>. This is a joint effort between Beulah, <a href="https://second.tech/"><u>Second</u></a>, and <a href="https://vora.io/"><u>Vora</u></a>, with <a href="https://x.com/jesseposner"><u>Jesse Posner</u></a> providing weekly mentorship throughout the project.</p><p>Nested MuSig is a key dependency for us improving the security of Ark server funds,</p>]]></description><link>https://blog.second.tech/nested-musig-grant/</link><guid isPermaLink="false">693a9c8616076c122cb80be8</guid><category><![CDATA[News]]></category><dc:creator><![CDATA[Steven Roose]]></dc:creator><pubDate>Thu, 11 Dec 2025 12:20:35 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2025/12/nested-musig.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2025/12/nested-musig.jpg" alt="Second partners with Vora to fund nested MuSig"><p>We&apos;re funding a year-long grant for <a href="https://x.com/BeulahEvanjalin"><u>Beulah Evanjalin</u></a> to implement nested MuSig in <a href="https://github.com/bitcoin-core/secp256k1" rel="noreferrer">libsecp256k1-zkp</a>. This is a joint effort between Beulah, <a href="https://second.tech/"><u>Second</u></a>, and <a href="https://vora.io/"><u>Vora</u></a>, with <a href="https://x.com/jesseposner"><u>Jesse Posner</u></a> providing weekly mentorship throughout the project.</p><p>Nested MuSig is a key dependency for us improving the security of Ark server funds, but the implementation will be open source and it&#x2019;ll support many other great use-cases for the wider ecosystem. For instance, Vora needs it to support their cold storage-to-Lightning payments.</p><h1 id="improving-bark-security-with-nested-musig"><strong>Improving Bark security with nested MuSig</strong></h1><p>In <a href="https://gitlab.com/ark-bitcoin/bark"><u>Bark</u></a>, our implementation of the Ark protocol, an Ark server holds a single master key to cosign transactions in the protocol. To improve security, we&#x2019;d prefer to distribute the key with multisig, but <a href="https://docs.second.tech/ark-protocol/vtxo/#transaction-trees"><u>Bark&#x2019;s use of pre-signed transaction trees</u></a> makes that impossible with current MuSig implementations.&#xA0;</p><p>What we need is <em>nested MuSig</em>&#x2014;a way to nest multiple sub-keys under one MuSig key.</p><p>That capability doesn&apos;t exist in the libsecp library yet&#x2014;bitcoin&#x2019;s most secure, well-reviewed, and trusted cryptographic library&#x2014;and requires some serious expertise to get done.&#xA0;</p><h1 id="deep-cryptography-requires-deep-expertise"><strong>Deep cryptography requires deep expertise</strong></h1><p>With impeccable timing, Jesse Posner, founder of Vora, approached us with a proposal. He&apos;d been working on nested MuSig security proofs with <a href="https://x.com/nadav_kohen"><u>Nadav Kohen</u></a>, who recently joined <a href="https://chaincode.com/"><u>Chaincode Labs</u></a>, and he had a candidate who could do the implementation: Beulah Evanjalin, an open-source developer he&apos;d been mentoring for several months.</p><p>Vora needs nested MuSig for their Lightning implementation too, so this work would serve both projects. Jesse offered to provide weekly mentorship throughout the grant. We&apos;d provide the majority of funding. Beulah would build the implementation. It sounded like a great team up and we agreed!</p><h1 id="beulahs-work-in-secp256k1-zkp"><strong>Beulah&apos;s work in secp256k1-zkp</strong></h1><p>Beulah is already contributing to <a href="https://github.com/bitcoin-core/secp256k1"><u>secp256k1-zkp</u></a>, which is exactly where this implementation needs to live. She recently completed Chaincode Labs&apos; secp256k1 workshop in Portugal, where she met the libsecp contributors and maintainers. She&apos;s active in the <a href="https://www.irccloud.com/irc/libera.chat/channel/secp256k1"><u>#secp256k1 IRC channel</u></a> and has relevant PRs merged into the codebase.</p><p>Jesse has built a <a href="https://github.com/jesseposner/frosty-musig"><u>Python proof-of-concept implementation</u></a> that demonstrates the approach, and he&apos;s working on the security proofs with Nadav. Beulah will take that foundation and turn it into production-ready code that any bitcoin project can use.</p><figure class="kg-card kg-video-card kg-width-regular" data-kg-thumbnail="https://blog.second.tech/content/media/2025/12/beulah-intro_thumb.jpg" data-kg-custom-thumbnail>
            <div class="kg-video-container">
                <video src="https://blog.second.tech/content/media/2025/12/beulah-intro.mp4" poster="https://img.spacergif.org/v1/1440x1080/0a/spacer.png" width="1440" height="1080" playsinline preload="metadata" style="background: transparent url(&apos;https://blog.second.tech/content/media/2025/12/beulah-intro_thumb.jpg&apos;) 50% 50% / cover no-repeat;"></video>
                <div class="kg-video-overlay">
                    <button class="kg-video-large-play-icon" aria-label="Play video">
                        <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                            <path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"/>
                        </svg>
                    </button>
                </div>
                <div class="kg-video-player-container">
                    <div class="kg-video-player">
                        <button class="kg-video-play-icon" aria-label="Play video">
                            <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                                <path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"/>
                            </svg>
                        </button>
                        <button class="kg-video-pause-icon kg-video-hide" aria-label="Pause video">
                            <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                                <rect x="3" y="1" width="7" height="22" rx="1.5" ry="1.5"/>
                                <rect x="14" y="1" width="7" height="22" rx="1.5" ry="1.5"/>
                            </svg>
                        </button>
                        <span class="kg-video-current-time">0:00</span>
                        <div class="kg-video-time">
                            /<span class="kg-video-duration">1:51</span>
                        </div>
                        <input type="range" class="kg-video-seek-slider" max="100" value="0">
                        <button class="kg-video-playback-rate" aria-label="Adjust playback speed">1&#xD7;</button>
                        <button class="kg-video-unmute-icon" aria-label="Unmute">
                            <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                                <path d="M15.189 2.021a9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h1.794a.249.249 0 0 1 .221.133 9.73 9.73 0 0 0 7.924 4.85h.06a1 1 0 0 0 1-1V3.02a1 1 0 0 0-1.06-.998Z"/>
                            </svg>
                        </button>
                        <button class="kg-video-mute-icon kg-video-hide" aria-label="Mute">
                            <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24">
                                <path d="M16.177 4.3a.248.248 0 0 0 .073-.176v-1.1a1 1 0 0 0-1.061-1 9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h.114a.251.251 0 0 0 .177-.073ZM23.707 1.706A1 1 0 0 0 22.293.292l-22 22a1 1 0 0 0 0 1.414l.009.009a1 1 0 0 0 1.405-.009l6.63-6.631A.251.251 0 0 1 8.515 17a.245.245 0 0 1 .177.075 10.081 10.081 0 0 0 6.5 2.92 1 1 0 0 0 1.061-1V9.266a.247.247 0 0 1 .073-.176Z"/>
                            </svg>
                        </button>
                        <input type="range" class="kg-video-volume-slider" max="100" value="100">
                    </div>
                </div>
            </div>
            
        </figure><h1 id="a-new-tool-for-l2s"><strong>A new tool for L2s</strong></h1><p>Once this implementation is complete and integrated into Bark, the server&apos;s signing key will be distributed across multiple cosigning servers in different physical locations, providing a significant improvement in security. Although, from a user&apos;s perspective, nothing really changes&#x2014;they&#x2019;ll still interact with the Ark protocol the same way.</p><p>Some of the other ways we anticipate nested MuSig is going to make things better for bitcoin developers and users include:&#xA0;</p><ul><li><strong>Stronger and more resilient L2 coordinators: </strong>Operators can spread their signing authority across multiple machines or organizations, reducing single-point-of-failure risk without changing how users interact with the system.</li><li><strong>Better uptime and censorship resistance: </strong>If one cosigning server goes offline or faces local pressure, the remaining cosigners can still produce signatures. Threshold signing gives L2s a more robust operational backbone.</li><li><strong>Standardized on-chain footprint for operators: </strong>Traditional multisig reveals its structure on-chain (observers can see how many signers are required and identify patterns that expose coordinator infrastructure), but with nested MuSig, keys look like ordinary singlesig Taproot outputs on-chain. That means Ark servers, Lightning operators, and other layer two entities can enforce distributed security policies internally while keeping the details of those policies off the blockchain.</li></ul><p>This work also lays the groundwork for future Ark optimizations. Nested MuSig with multiple levels could reduce VTXO sizes and cut down the number of public keys and nonces needed when cosigning large transaction trees&#x2014;but that&apos;s a project for later.</p><h1 id="track-the-work"><strong>Track the work</strong></h1><p>You can <a href="https://twitter.com/BeulahEvanjalin"><u>follow Beulah&apos;s updates on X</u></a> and <a href="https://github.com/BlockstreamResearch/secp256k1-zkp"><u>track her contributions to secp256k1-zkp on GitHub</u></a>. Of course, we&apos;ll also be sharing the occasional update from <a href="http://x.com/2ndbtc"><u>our official account</u></a>!</p>]]></content:encoded></item><item><title><![CDATA[Diving deeper into Lightning liquidity: Amboss Magma]]></title><description><![CDATA[<p>As we continue developing the Ark protocol, understanding liquidity costs has become essential. Our <a href="https://blog.second.tech/survey-of-bitcoin-yield/">previous research into bitcoin yield products</a> revealed that Lightning liquidity leasing offers some of the most attractive self-custodial yields in bitcoin&#x2014;typically 1-4% APR while maintaining custody of your funds.</p>
<p>To inform our fee structure</p>]]></description><link>https://blog.second.tech/diving-deeper-into-lightning-liquidity-amboss-magma-2/</link><guid isPermaLink="false">68a4639e16076c122cb80af7</guid><dc:creator><![CDATA[Matthew Vuk]]></dc:creator><pubDate>Thu, 11 Sep 2025 10:48:54 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2025/09/feature-image.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2025/09/feature-image.png" alt="Diving deeper into Lightning liquidity: Amboss Magma"><p>As we continue developing the Ark protocol, understanding liquidity costs has become essential. Our <a href="https://blog.second.tech/survey-of-bitcoin-yield/">previous research into bitcoin yield products</a> revealed that Lightning liquidity leasing offers some of the most attractive self-custodial yields in bitcoin&#x2014;typically 1-4% APR while maintaining custody of your funds.</p>
<p>To inform our fee structure for the Ark protocol, we want to dig deeper into the mechanics of bitcoin liquidity pricing. Since Ark servers must deploy their own bitcoin treasury to enable Lightning payments, refreshes, and offboards, understanding the true cost of liquidity deployment directly impacts what we&apos;ll need to charge users.</p>
<p>Amboss Magma emerged as the obvious place to look: it&apos;s the most mature and liquid market for Lightning liquidity. It handles a large share of all completed public bitcoin liquidity lease orders. The rates being paid there may be the best representation we have of the real opportunity cost and risk premium for locking up bitcoin to facilitate payments.</p>
<h2 id="what-is-amboss-magma">What is Amboss Magma?</h2>
<p>Amboss Magma operates as a peer-to-peer marketplace where Lightning users can buy and sell channel liquidity. Lightning nodes that need inbound liquidity to receive Lightning payments can purchase it from liquidity providers who earn yield by temporarily locking up their bitcoin in channels.</p>
<p>A few key terms for understanding the marketplace:</p>
<ul>
<li><strong>PPM (parts per million):</strong> The fee rate per satoshi, where 10,000 PPM equals 1%. Since there are 100 million satoshis in one bitcoin, this provides a precise way to price small amounts. Imagine them like basis points, but even smaller!</li>
<li><strong>Channel capacity:</strong> The total value of a Lightning channel, denominated in satoshis.</li>
<li><strong>APR (Annual percentage rate):</strong> Annualized returns calculated from lease terms, often extrapolated from shorter durations since most leases aren&apos;t exactly 365 days.</li>
<li><strong>LINER:</strong> Amboss&apos;s benchmark rate tracking system that monitors yield curves over time.</li>
</ul>
<h2 id="our-analysis">Our analysis</h2>
<p>We built our dataset directly from the Amboss Magma API, using both active listings of unfilled offers and historical records of completed Lightning channel purchases. To ensure the data reflected realistic market activity, we removed outliers with high rates. This excluded two categories:</p>
<ol>
<li>Filled orders above 20% APR, which were rate and not representative of typical usage, and,</li>
<li>Unfilled listings where lessors asking for unrealistically high APRs but never secured completed orders.</li>
</ol>
<p>The data reveals several fascinating patterns about how bitcoin liquidity gets priced.</p>
<h3 id="size-matters-channel-fee-premiums">Size matters: Channel fee premiums</h3>
<p>There are economies of scale when it comes to leasing liquidity. Small channels reflect higher PPM rates.</p>
<p>For example, it is more expensive on a per-satoshi basis to open a 0.5 million sat channel than a 1.0 million sat channel, even though the total up front cost can be lower.</p>
<p>The following chart shows fixed-size Lightning channels listed for sale on Amboss Magma in July 2025. The sample includes channels of 0.5, 1.0, 2.5, and 5.0 million sats each. At a Bitcoin price of $120,000 USD, a 0.5M sat channel corresponds to $600, while a 1.0M sat channel corresponds to $1,200.</p>
<p><img src="https://blog.second.tech/content/images/2025/08/fees_piecewise.png" alt="Diving deeper into Lightning liquidity: Amboss Magma" loading="lazy"></p>
<p>The highlighted yellow area shows how smaller channels command a premium in fee rates. In particular, channels below 1.0M sats ($1,200 USD) are priced disproportionately higher relative to their size. By contrast, channels above this threshold exhibit a more consistent and predictable relationship, closely following the linear trend line without significant deviations.</p>
<p>This happens for three reasons:</p>
<ul>
<li>
<p><strong>Fixed costs</strong>: Amboss charges a flat 500 PPM fee on every order, which represents a larger percentage of smaller transactions.</p>
</li>
<li>
<p><strong>Setup overhead</strong>: Opening any Lightning channel requires on-chain transaction fees and operational overhead, regardless of size.</p>
</li>
<li>
<p><strong>Supply and demand</strong>: Small channels are popular with newcomers testing Lightning or users seeking cheap inbound liquidity rebalancing. High demand combined with thin supply (node operators prefer opening larger channels for the same on-chain cost) creates pricing power for sellers.</p>
</li>
</ul>
<p>In summary, the data makes it clear that smaller Lightning channels come at a disproportional premium price, driven by structural costs and market dynamics. For participants, this means the most &#x201C;affordable&#x201D; entry point is not necessarily the cheapest channel size, but rather the one that balances cost efficiency with intended use. Above 1.0M sats, pricing normalizes and reflects a more rational, linear relationship, suggesting that economies of scale dominate once fixed costs are absorbed.</p>
<h3 id="liquidity-offers-a-tale-of-two-markets">Liquidity offers: A tale of two markets</h3>
<p>In this section, we analyze a selection of open liquidity offers on Amboss Magma. These represent the active listings currently available in the marketplace, rather than completed orders.</p>
<p><img src="https://blog.second.tech/content/images/2025/08/median_apr_caps.png" alt="Diving deeper into Lightning liquidity: Amboss Magma" loading="lazy"></p>
<p>Two clear market segments emerge:</p>
<ul>
<li>
<p><strong>High-premium small channels</strong>: Channels under 1 BTC capacity show the highest APRs, often exceeding 4%. These higher APRs don&#x2019;t actually translate into greater yields for providers, however, since much of what customers pay goes toward covering miner fees to post the on-chain transaction. Structurally, Lightning has many participants operating at small sizes, so demand is concentrated in this sub-$10,000 USD range. With high demand and thin supply (most node operators prefer to lease larger channels for the same on-chain cost), sellers can command premium pricing.</p>
</li>
<li>
<p><strong>Efficient large channels</strong>: Channels above 1 BTC capacity cluster around 2.6% APR, which reflects the mature market rate for deploying substantial liquidity. This segment shows a diminishing premium pattern, with rates stabilizing and closely following the market average.</p>
</li>
</ul>
<p>The median APR across all listings aligns with the mean, around 2.6%, confirming that this is the market consensus for Lightning liquidity. Amboss has reported historical returns between 1&#x2013;4%, and the midpoint of that range (&#x2248;2.5%) is nearly identical to what our analysis of open offers reveals. While users can technically earn up to ~4.24% by selling liquidity in smaller chunks, the more stable long-tail result converges on the 2.5&#x2013;2.6% range.</p>
<p>In short, the premium zone exists below 1 BTC, where APRs regularly exceed 4%. Beyond that threshold, liquidity pricing flattens, with offers in the greater than 1 BTC converging around 2.6%&#x2014;a rate that matches both Amboss&#x2019;s reported rates and our broader research into bitcoin yield markets.</p>
<h3 id="network-effects-on-pricing">Network effects on pricing</h3>
<p><img src="https://blog.second.tech/content/images/2025/08/amboss_apr_vs_fee_p90.png" alt="Diving deeper into Lightning liquidity: Amboss Magma" loading="lazy"></p>
<p>The correlation between on-chain feerates and Amboss APRs reveals another important dynamic. When bitcoin network fees spike, APRs for smaller channels increase much more dramatically than for larger ones.</p>
<p>This makes economic sense: fixed on-chain fees represent a much larger share of the total cost for small channels. The underlying yield earned by liquidity providers doesn&#x2019;t actually rise&#x2014;what changes is the cost burden on buyers, with higher transaction fees being passed on.</p>
<h2 id="comparing-alternatives">Comparing alternatives</h2>
<p>To validate Amboss&#x2019;s position as the dominant liquidity marketplace, we examined Core Lightning&#x2019;s liquidity ads feature. At first glance, the economics appear attractive&#x2014;rates that could theoretically annualize to 40% APR. In practice, though, the story is quite different.</p>
<p>Liquidity ads typically offer 4-day lease periods at about 0.44% per lease. But the market suffers from extremely low activity, with fulfillment sporadic at best. These advertised rates are supply-side intentions, not actual executed trades, which makes realized returns highly uncertain.</p>
<p>This contrast reinforces Amboss Magma&#x2019;s role as the most reliable source of market data&#x2014;because it&#x2019;s where liquidity trades actually happen at scale.</p>
<h2 id="what-this-means-for-the-ark-protocol">What this means for the Ark protocol</h2>
<p>Amboss Magma is emerging as the benchmark rate for Lightning liquidity leasing. The marketplace is steadily maturing into a stable, efficient and transparent mechanism for pricing the cost of locking up bitcoin to support payments.</p>
<p>Our research highlights two crucial dynamics:</p>
<ol>
<li><strong>Economies of scale dominate:</strong> channel sizes above ~$1,200 (1.0M sats at $120k BTC) converge around predictable rates near 2.6% APR.</li>
<li><strong>Smaller channels show persistent inefficiencies.</strong> In this range, buyers routinely face disproportionately high premiums, paying much more per satoshi for liquidity. Addressing this imbalance presents a key opportunity: enabling users with smaller balances to maintain self-custody without being penalized by excessive fee structures.</li>
</ol>
<p>For Ark, these insights are foundational. This research provides crucial background for us defining Ark fee structures. Understanding the true cost of liquidity deployment is going to help us ensure that Ark offers competitive rates while maintaining sustainable economic incentives for a bitcoin payment technology.</p>
<p>Most importantly, the data validates that Lightning is consistently generating sufficient utility for users to support market-competitive yield rates across a range of market conditions and payment sizes. The utility of bitcoin payments is real, and great news for Ark!</p>
]]></content:encoded></item><item><title><![CDATA[A survey of bitcoin yield: What's the opportunity cost of Ark liquidity?]]></title><description><![CDATA[We analyzed bitcoin yield rates across exchanges, DeFi, funds, and Lightning to help inform our pricing schedule for the Ark protocol.]]></description><link>https://blog.second.tech/survey-of-bitcoin-yield/</link><guid isPermaLink="false">688f2edd99e7686bf8eb0f70</guid><category><![CDATA[Research]]></category><dc:creator><![CDATA[Matthew Vuk]]></dc:creator><pubDate>Mon, 11 Aug 2025 12:34:46 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2025/08/yield-pricing-title-image.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2025/08/yield-pricing-title-image.jpg" alt="A survey of bitcoin yield: What&apos;s the opportunity cost of Ark liquidity?"><p>As we continue the study of <a href="https://docs.second.tech/ark-protocol/liquidity/">Ark&#x2019;s liquidity requirements</a>, we must come to an understanding on how to price liquidity. Many user operations on Ark require an Ark server to lock up bitcoin (e.g., refreshes, Lightning payments, and offboards), which has an inevitable cost of capital associated with it.</p>
<p>To inform our liquidity pricing plans, we decided to embark on an examination of a wide spectrum of bitcoin yield products, to see what we could learn about the prevailing market rates for bitcoin yield&#x2014;what the range is, what drives higher/lower rates, and where Ark might fit.</p>
<p>Below are our findings!</p>
<h2 id="categories-of-bitcoin-yield">Categories of bitcoin yield</h2>
<p>In our research, we identified four broad categories of services offering bitcoin yield. These are:</p>
<ol>
<li><strong>Exchange savings:</strong> Users give up custody of their bitcoins to a retail crypto exchange. They usually &#x201C;one-click&#x201D; earn a low rate on their bitcoin.</li>
<li><strong>DeFi:</strong> Users drop wrapped BTC into on-chain vaults and apps for a yield. Less human custodial risk, but more smart contract risk.</li>
<li><strong>Funds:</strong> Bitcoin-denominated, structured financial instruments for accredited investors and institutions.</li>
<li><strong>Lightning liquidity:</strong> The market for Lightning channel liquidity leasing, where users earn a yield for leasing out inbound liquidity to other users.</li>
</ol>
<p>We decided to exclude the most degenerate of DeFi products, of which there are many, so if you think something is missing here, that&apos;s probably why!</p>
<p><strong>Note that inclusion in our research below does not indicate endorsement!</strong></p>
<h2 id="summary-of-results">Summary of results</h2>
<p><img src="https://blog.second.tech/content/images/2025/08/bitcoin_yield_violin.png" alt="A survey of bitcoin yield: What&apos;s the opportunity cost of Ark liquidity?" loading="lazy"></p>
<p>This chart is a violin plot of APR paid in bitcoin across all the services included in our survey. The results are broken down by category.</p>
<p>Each coloured &#x201C;violin&#x201D; shows the distribution of observed APRs for a category: where the shape is wider, more products cluster around that rate of return.</p>
<p>Note how at the top the &#x201C;exchange savings&#x201D; category offers many products in a sub-1% range, and only a single outlier sits at the 3-4% range. Similarly we can spot Zest Protocol as an outlier in the DeFi category, as we know it is a &#x201C;boosted&#x201D; product that was recently launched and is able to subsidize its yield offerings.</p>
<table>
<thead>
<tr>
<th>Category</th>
<th>APR*</th>
<th>Keep custody?</th>
<th>Technically accessible?</th>
</tr>
</thead>
<tbody>
<tr>
<td>Exchange</td>
<td>&lt; 1%**</td>
<td>&#x274C;</td>
<td>&#x2705;</td>
</tr>
<tr>
<td>Funds</td>
<td>2.5% - 6%</td>
<td>&#x274C;</td>
<td>&#x2705;</td>
</tr>
<tr>
<td>DeFi</td>
<td>0.008% - 3%</td>
<td>&#x274C;</td>
<td>Some geekiness required &#x1F913;</td>
</tr>
<tr>
<td>Lightning</td>
<td>1% - 4%</td>
<td>&#x2705;</td>
<td>Some geekiness required &#x1F913;</td>
</tr>
</tbody>
</table>
<p><small>* To help make comparisons more straightforward, we&apos;ve normalized any rates advertized in APY to the slightly lower APR rate.</small><br>
<small>** Some outliers claiming yields up to 4%</small></p>
<p>An important distinction to highlight is that the yield services in the exchange and funds categories require investors to give up custody of their bitcoin, but those in the DeFi and Lightning categories do not (okay, so perhaps debatable with some DeFi services!).</p>
<p>This is offset by the convenience for retail and institutional investors when using the centralized exchange and fund services respectively. These products are accessible&#x2014;no technical knowledge required.</p>
<p>On the other hand, using DeFi and Lightning requires time, effort, and technical capability beyond what is expected of the average investor. The products of these two categories fill a similar band in both market segment and APR bitcoin yield.</p>
<p>Let&apos;s take a closer look at the bitcoin yield in each category.</p>
<h2 id="exchange-savings">Exchange savings</h2>
<p><img src="https://blog.second.tech/content/images/2025/08/exchange_savings_violin.png" alt="A survey of bitcoin yield: What&apos;s the opportunity cost of Ark liquidity?" loading="lazy"></p>
<p>The exchange savings category encompasses products offered by retail crypto exchanges to the mass market. Users typically purchase bitcoin and hold it custodially on the exchange, where users can simply click &quot;earn&quot; and lock up their holdings in exchange for yield. Beyond retail crypto exchanges with &quot;earn&quot; tabs offering one-click bitcoin yield generation, some platforms extend into yield products and other neobank services.</p>
<p>There&apos;s a pretty wide range of mechanisms that exchanges use to finance their retail bitcoin-yield offers. Some, such as <a href="https://www.binance.com/en/support/faq/detail/3bd1a6eba20a445da1e94bf6cfa52e80">Binance, lend customer BTC to on-platform margin or loan desks</a>; the borrowers&apos; interest funds the advertised APRs.</p>
<p>Platforms also route BTC (or stable-coins raised against it) into on-chain staking or liquidity programs and collect protocol rewards before passing a fraction to depositors; <a href="https://www.binance.com/en/support/faq/detail/8bd52090da0146d398d10ed389f9dc67">Binance&apos;s &quot;On-chain Yields&quot; documents this flow</a>.</p>
<p>Newer services, such as <a href="https://www.cryptotimes.io/2025/06/19/breaking-kraken-launches-bitcoin-staking-via-babylon/">Kraken&apos;s Babylon integration, lock bitcoin in native-chain smart contracts</a> that help secure proof-of-stake networks and pay rewards in a separate token rather than by lending the coins out. Some exchanges, notably <a href="https://protos.com/explained-crypto-coms-ongoing-insolvency-battle/">Crypto.com, emphasise that they conduct any such activity on their own balance sheet</a> and &quot;do not lend to third parties&quot;.</p>
<p>The majority of these products offer yields below 1% APR. Rates remain low because the supply of retail users is large, who often leave their bitcoin idle on exchanges. The yield offered by these services functions more as a &quot;retention hook&quot; than an investment product, raising retail users&apos; switching costs and nudging casual holders to keep their bitcoin parked on the exchange rather than self-custodying.</p>
<p>However, some platforms claim higher yield rates, such as Crypto.com, Bybit, and Nexo. For example, Bybit&apos;s 2.30% yield might look enticing, but it&apos;s important to be aware that after a February 2025 hack drained approximately $1.4 billion in ETH, <a href="https://cointelegraph.com/news/bybit-exchange-hacked">the platform raised rates to prevent customer withdrawals and attract new users to compensate for lost liquidity</a>. The rate could be subsidized to regain trust rather than reflect a genuinely stronger offering. Crypto.com&apos;s rates may also look high on first glance, but on closer inspection (see chart below), you&apos;ll see that most users fall into the &quot;flexible term&quot; category, which provides only a 0.25% APR bitcoin yield. The higher rates are only achieved through limited-time offers and fixed-term lending contracts at 1-month and 3-month intervals.</p>
<p><img src="https://blog.second.tech/content/images/2025/08/crypto_earn.png" alt="A survey of bitcoin yield: What&apos;s the opportunity cost of Ark liquidity?" loading="lazy"></p>
<p>In short, this category offers the lowest yield of any category in our survey, while exposing users to a variety of counterparty risks.</p>
<h2 id="defis-bitcoin-yield">DeFi&apos;s bitcoin yield</h2>
<p><img src="https://blog.second.tech/content/images/2025/08/defi_violin.png" alt="A survey of bitcoin yield: What&apos;s the opportunity cost of Ark liquidity?" loading="lazy"></p>
<p>The bitcoin DeFi yield products we surveyed use custodial &quot;wrapped bitcoin&quot; (like WBTC, cbBTC, or sBTC) instead of native bitcoin. Users log into crypto DeFi apps, connect their wallets, then lock up wrapped bitcoin tokens into liquidity pools or lending/borrowing platforms. Many protocols will insist on users to deposit bitcoin together with a stablecoin.</p>
<p>In this category, custody is distributed across multiple entities through multisig and smart contracts, so you reduce the risk of a single counterparty with unilateral control (like exchange savings and funds). But instead, you&apos;re exposed to a new &quot;smart contract risk&quot;, where a bug, oracle glitch, or bridge exploit can drain the vault and the wrapped bitcoin is gone for good. DeFi protocols can be very complex and face unknown vulnerabilities. Over just the last five years, exploits have erased over 2,200 bitcoin in total (over $250 million in value)&#x2014;including incidents like <a href="https://www.coindesk.com/business/2021/12/10/badgerdao-reveals-details-of-how-it-was-hacked-for-120m">BadgerDAO&apos;s $120M hack</a> and <a href="https://www.coindesk.com/business/2024/05/03/exploiter-steals-68m-worth-of-crypto-through-address-poisoning">address poisoning attacks worth $68M</a>.</p>
<p>Another risk in DeFi&#x2014;you can become the yield, through impermanent loss (where price movements between paired assets leave you worse off than simply holding bitcoin) or liquidation. These products aren&apos;t minting value out of thin air, but rather siphoning it from traders on the other side of the pool or other liquidity providers caught off-guard. The game is typically zero-sum, and one person&apos;s APR yield is another&apos;s slippage or liquidation penalty.</p>
<p>As total value locked (TVL) rises in a particular DeFi product or pool, more capital is competing for the same demand so the yield per unit falls. <a href="https://de.fi/opportunity/protocol/aave-v3/ethereum/wbtc+wbtc">This is the case for applications such as Aave</a> that grow to billions in TVL, and the yield percentage APR trends lower. Zest Protocol, a Stacks-based lending market, stands out as the outlier in the DeFi category with rates up to 3%. We&apos;d assume this is because its pool is still small and subsidized&#x2014;headline rates are padded by a questionable &quot;STX token boost&quot;.</p>
<h2 id="bitcoin-yield-funds">Bitcoin yield funds</h2>
<p><img src="https://blog.second.tech/content/images/2025/08/funds_violin.png" alt="A survey of bitcoin yield: What&apos;s the opportunity cost of Ark liquidity?" loading="lazy"></p>
<p>The funds category is defined by institutional products sold to accredited investors often through licensed securities venues. These products are tightly regulated, open only to accredited investors.</p>
<p>This is arguably the most diverse category, with yields generated from a wide variety of activities such as electricity arbitrage, lending, and market making activities. For example, mining backed notes (such as the Blockstream Mining Note) allow customers to swap their bitcoin for a slice of bitcoin hashrate, with users earning yield from block rewards and transaction fees. The Coinbase Bitcoin Yield Fund (CBYF) generates yield from basis trading and arbitrage.</p>
<p>The premium 5-6% yields offered by products in this category are arguably a product of sophisticated strategies and asymmetric opportunities. Most of these products concentrate their risk in a single specialist strategy. While the broad investment strategy and targeted returns are disclosed publicly, the details of subscription terms and risk disclosures are provided <a href="https://www.coinbase.com/en-ca/blog/coinbase-asset-management-launches-the-coinbase-bitcoin-yield-fund">confidentially to accredited investors only</a> (typically under NDA). The purchasers of these financial instruments are typically exposed to a variety of ideosyncratic risks, for example with mining: <a href="https://bmn2.mining.blockstream.com/">variable blockspace demand and infrastructure risks</a>.</p>
<p>If these strategies don&apos;t work out and the fund does not make the yields, then there is no payout to the investors. There is no guarantee that you will maintain your initial investment, just like any security.</p>
<h2 id="leasing-lightning-liquidity">Leasing Lightning liquidity</h2>
<p><img src="https://blog.second.tech/content/images/2025/08/lightning_violin.png" alt="A survey of bitcoin yield: What&apos;s the opportunity cost of Ark liquidity?" loading="lazy"></p>
<p>While individual users can earn yield from routing fees on Lightning, we&apos;ve focused on liquidity leasing only. Currently, there are no services that offer yield from routing fees, but there are a handful that support the earning of yield for liquidity leasing.</p>
<p>Leasing Lightning liquidity is also the closest analogue to liquidity on the Ark protocol, making it the most relevant bitcoin yield category to us!</p>
<p>In this category, users lock up bitcoin in channels to supply inbound liquidity for others who need to receive bitcoin payments over Lightning. These services operate as marketplaces that match liquidity suppliers with those who need it, rather than taking custody and deploying the bitcoin themselves. Liquidity suppliers retain custody of their bitcoin throughout&#x2014;they simply can&apos;t use it for other purposes while it&apos;s locked up. The liquidity is typically provided on a fixed-term basis, with the expectation that channels will be closed and remaining bitcoin returned to the liquidity supplier when the term ends (though this doesn&apos;t always happen).</p>
<p>This is still a fledgling category, with only a few operators. <a href="https://amboss.tech/blog/introducing-rails">The last four years of data</a> indicate <a href="https://amboss.space/magma">Amboss Magma</a> yields between 1-4% APR, and we went with 2.6% as the average rate for our charts. Higher yields tend to be for smaller amounts and shorter periods, and the lower yields were for larger amounts on longer periods. Given that Amboss Magma stands out as the only well-established Lightning liquidity market with market makers, a full order book, and web interface, we&apos;ll be diving deeper into the dynamics of the Amboss marketplace in a dedicated article soon!</p>
<p><img src="https://blog.second.tech/content/images/2025/08/amboss_magma_marketplace_apr_open_offers-1.png" alt="A survey of bitcoin yield: What&apos;s the opportunity cost of Ark liquidity?" loading="lazy"></p>
<p>The above chart shows the current open offers on Amboss Marketplaces to sell Lightning liquidity, having removed three outliers in the 25% and up range. This is how we observe the 2.6% median value of an open offer, which is right in the midpoint of the advertised 1-4% APR range. The offers with the greatest variability show the highest rates, and represent offers of a smaller relative bitcoin size.</p>
<p>Lightning Pool is another non-custodial marketplace for leasing Lightning channel capacity through auctions, <a href="https://docs.lightning.engineering/lightning-network-tools/pool/batch_execution">designed for advanced users</a>. At the time of writing, we queried an lnd node to return a list of confirmed orders within the last two weeks. There were only two orders in this time&#x2014;both sold for a 2.53% fee to borrow sats for a 14-day period. Annualizing that rate over a year would be equivalent to a yield of about 66.2% APR - with no compounding of yield. However, the volume of completed orders appear to be very low.</p>
<p><a href="https://blog.blockstream.com/lightnings-missing-piece-a-decentralized-liquidity-market/">Core Lightning&apos;s liquidity ads</a> are a decentralized marketplace feature built into the Lightning protocol itself. At the time of writing, we found 35 open offers on the supply side, with fees ranging from 0.10-1.20% for lease periods of approximately four days. The period-adjusted median rate is 0.44%, which would correspond to 40.2% APR if orders were continuously filled. However, the market has low volume&#x2014;those advertised terms lack enough demand to convert to continuous leases, significantly reducing actual yield. These figures represent supply-side intent to sell, without guaranteed matches. While the headline economics look attractive on paper, sporadic fills mean actual returns are uncertain.</p>
<p>While it&apos;s clearly still a maturing category, it&apos;s exciting to see such high yields being achieved in Lightning liquidity leasing. Bitcoin-denominated yield is not easy to achieve, and these yields demonstrate the users are getting sufficient utility from Lightning payments to cover the prevailing opportunity costs for liquidity suppliers. Lightning yield is especially attractive because you don&apos;t have to give up custody&#x2014;you&apos;re just putting your bitcoin into a simple, battle-tested script!</p>
<h2 id="what-drives-bitcoin-yield-rates">What drives bitcoin yield rates</h2>
<p>Embarking on this research, we didn&apos;t realize the level of complexity in bitcoin yield products. Multiple competing factors affect the rates being achieved. Convenience is critical&#x2014;easier solutions attract more participants, driving yields down, while solutions requiring technical expertise attract fewer participants, creating higher yields (when demand exists!).</p>
<p>Risk and reward follow the expected pattern&#x2014;higher-risk strategies must offer higher yields, while perceived lower-risk options offer less. Custody is a key component of risk. Self-custodial solutions should theoretically offer lower yields since they&apos;re arguably less risky than handing bitcoin to third parties. In reality, exchange savings products offer very low rates despite massive custody risk&#x2014;they overcome this through convenience and targeting users who wouldn&apos;t self-custody anyway.</p>
<p>Michael Saylor has, at least once, <a href="https://www.youtube.com/watch?v=k7XhzXMSAPo">claimed there should be a 5% risk-free rate in bitcoin</a>, but our research shows there&apos;s no such thing as truly risk-free&#x2014;even self-custodial solutions face risks like node hacks, key compromises, or protocol vulnerabilities. Nothing that looks sustainable is offering anything close to 5%.</p>
<h2 id="implications-for-the-ark-protocol">Implications for the Ark protocol</h2>
<p>This survey demonstrates consensus forming on the opportunity cost of deploying bitcoin capital&#x2014;roughly 1-4% annually. We&apos;ll use these findings to inform how we price liquidity in the Ark protocol, which will affect the cost of Lightning payments, refreshes, and offboards.</p>
<p>Another consideration is that while Ark servers will likely start by deploying their own bitcoin treasury for liquidity, as adoption grows, they may need to source bitcoin from third parties. This could lead to additional yield demands to cover the increased custodial risk.</p>
<p>As with anything in bitcoin, things will continue to change fast and we&apos;ll continue to review.</p>
]]></content:encoded></item><item><title><![CDATA[Lightning liquidity: Ark servers and LSPs compared]]></title><description><![CDATA[How much liquidity do Ark servers really need? We ran real-world simulations to compare Ark and Lightning payment efficiency across user profiles.]]></description><link>https://blog.second.tech/ark-liquidity-research-01/</link><guid isPermaLink="false">680f38df99e7686bf8eb0ef1</guid><category><![CDATA[Research]]></category><dc:creator><![CDATA[Matthew Vuk]]></dc:creator><pubDate>Thu, 01 May 2025 13:16:00 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2025/04/title-image-02.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2025/04/title-image-02.jpg" alt="Lightning liquidity: Ark servers and LSPs compared"><p>We finally have some research into Ark liquidity requirements that we&apos;re ready to share!</p>
<p>To explore this topic, we simulated real-world usage for bitcoin users sending Lightning payments. While Ark users can also send payments directly over the Ark protocol, we expect that initially, users will be mostly using Ark as a Lightning gateway, at least until Ark builds up some momentum. So that&apos;s where we started!</p>
<p>To put things into perspective, we&apos;ll compare these requirements to those of a Lightning Service Provider (LSP).</p>
<p>Let&apos;s dive in.</p>
<h2 id="what-drives-liquidity-requirements">What drives liquidity requirements?</h2>
<p>Before we &quot;run the numbers&quot;, let&apos;s cover a quick primer on the mechanics of liquidity on both Lightning and Ark.</p>
<h3 id="lsp-liquidity">LSP liquidity</h3>
<p>These days, a typical user uses Lightning through an LSP and the user has a single channel with their LSP.</p>
<p>A payment channel between a user and the LSP is shown below. The channel has a capacity of 1 BTC, the user has a balance of 0.4 BTC and the service provider has a balance of 0.6 BTC.</p>
<p><img src="https://blog.second.tech/content/images/2025/04/image.png" alt="Lightning liquidity: Ark servers and LSPs compared" loading="lazy"></p>
<p>The 0.6 BTC in the channel is owned and provided by the LSP. The LSP can only use this money to serve that specific user and might expect a return for locking in the money. <strong>Note that the amount of bitcoin an LSP needs to provide doesn&apos;t depend on transaction volume, but solely on the channel balance.</strong></p>
<p>An LSP can optimize liquidity efficiency by regularly adjusting the channel capacity for each user. However, each time the channel capacity is adjusted/spliced, the LSP pays fees for an on-chain transaction. Another option is to close channels to inactive users who don&apos;t generate sufficient revenue.</p>
<h2 id="ark-server-liquidity">Ark server liquidity</h2>
<p>A typical bitcoin wallet manages UTXOs (&quot;unspent transaction outputs&quot;). An Ark wallet manages VTXOs (&quot;virtual transaction outputs&quot;), which are the outputs of normal bitcoin transactions that haven&apos;t been broadcast yet.</p>
<p>An Ark server must use its own bitcoin to enable the following actions:</p>
<ul>
<li><strong>VTXO refresh:</strong> Ark servers must provide liquidity when creating new VTXOs during refreshes in rounds, as they will only claim forfeited bitcoin from expired VTXOs after the <code>vtxo_expiry_delta</code> period (typically 28 days after the inception of the VTXO).</li>
<li><strong>Paying over Lightning:</strong> When users make Lightning payments by giving up their VTXOs, the server covers the payment amount until VTXO expiry.</li>
<li><strong>Off-boarding (on-chain sends):</strong> Servers provide immediate on-chain bitcoin when users off-board their VTXOs, but only access the forfeited VTXOs after expiry.</li>
</ul>
<p>The following actions don&apos;t impose any liquidity requirements on the server:</p>
<ul>
<li><strong>Internal Ark payments:</strong> Ark payments between users of the same server occur out-of-round and don&apos;t require liquidity.</li>
<li><strong>Boarding:</strong> Users board the Ark with their own funds.</li>
<li><strong>Unilateral exit:</strong> Users broadcast their VTXOs independently without server involvement.</li>
</ul>
<p>The main lever for an Ark server that wants to optimize liquidity efficiency is fees. The server will ask a lower fee when a user performs refreshes, off-boards, or Lightning spends from a VTXO that is soon to expire and a higher fee for a VTXO that expires later. This incentivises users to always use their oldest VTXOs.</p>
<h2 id="do-ark-servers-or-lsps-require-more-liquidity-for-lightning">Do Ark servers or LSPs require more liquidity for Lightning?</h2>
<p>If you hoped for a straight answer, you are out of luck. The truth is, it depends... The liquidity mechanics of an Ark server and an LSP are wildly different.</p>
<p>To compare the two, we have simulated two common modes of bitcoin user behaviour:</p>
<ul>
<li><strong>Infrequent top-up, gradual spending:</strong> User funds their wallet infrequently from cold storage and gradually spends their balance using Lightning.</li>
<li><strong>Regular DCA stacker:</strong> User buys bitcoin for a fixed amount of dollars every month. Moves funds to cold-storage at the end of the year.</li>
</ul>
<h2 id="simulations-assumptions-on-parameters-and-user-behavior">Simulations assumptions on parameters and user behavior</h2>
<p>For all simulations, we&apos;ve assumed:</p>
<ul>
<li><strong>All outgoing payments sent over Lightning.</strong> For Ark, this provides a worst-case estimation for liquidity burden (overestimating required capital), as Lightning payments require immediate liquidity while internal Ark payments don&apos;t. In practice, users will likely make some or most payments directly through Ark. Also, once Ark supports virtual Lightning channels, this model will change entirely.</li>
</ul>
<p>For LSP simulations, we&apos;ve assumed:</p>
<ul>
<li><strong>No channel capacity adjustments:</strong> The LSP does not adjust the user&apos;s channel capacity throughout the year.</li>
</ul>
<p>For Ark simulations, we&apos;ve assumed:</p>
<ul>
<li><strong>VTXO expiry time of 28 days:</strong> A server-configured parameter balancing cost and convenience.</li>
<li><strong>Each received VTXO expires 14 days after receipt:</strong> This represents the average VTXO age, as the user will accumulate both newer and older VTXOs over time, resulting in an average lifespan halfway through the 28-day period.</li>
<li><strong>User refreshes all VTXOs two days before expiry:</strong> This would be configured by the user and automated by their wallet app. Two days gives them ample time to re-attempt refreshes in case something goes wrong with the first attempt.</li>
</ul>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>vtxo_expiry_delta</td>
<td>28 days</td>
</tr>
<tr>
<td>refresh_window</td>
<td>2 days</td>
</tr>
<tr>
<td>new_vtxo_age</td>
<td>14 days</td>
</tr>
</tbody>
</table>
<h2 id="user-profile-infrequent-top-up-gradual-spending">User profile: Infrequent top-up, gradual spending</h2>
<p>This scenario considers a user that periodically funds their wallet and spends gradually using Lightning over a period of one year.</p>
<p>We&apos;ll compare LSP and Ark server liquidity requirements for a user that:</p>
<ul>
<li>Tops up once a week</li>
<li>Tops up once a month</li>
<li>Tops up once a quarter</li>
</ul>
<p>The total liquidity burden is shown as a blue area in the LSP simulations, and a yellow area in the Ark server simulations. We call this <em>satoshi days (sat-days)</em>. One sat tied up for 10 days, or 10 sats tied up for one day, both equal 10 sat-days&#x2014;the same cost to the server.</p>
<p>If we divide sat-days by the total payment volume we can get the <em>liquidity duration</em> in days. This is the average duration an LSP or Ark server needs to lock up an equivalent amount of sats for each sat spent.</p>
<h3 id="top-up-every-week">Top up every week</h3>
<h4 id="lsp">LSP</h4>
<p><img src="https://blog.second.tech/content/images/2025/04/7day_lsp.svg" alt="Lightning liquidity: Ark servers and LSPs compared" loading="lazy"></p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Liquidity burden</td>
<td>62,730,000 sat-days</td>
</tr>
<tr>
<td>Payment volume</td>
<td>15,330,000 sat</td>
</tr>
<tr>
<td>Liquidity duration</td>
<td>4.09 days</td>
</tr>
</tbody>
</table>
<h4 id="ark-server">Ark server</h4>
<p><img src="https://blog.second.tech/content/images/2025/04/7day_ark-1.svg" alt="Lightning liquidity: Ark servers and LSPs compared" loading="lazy"></p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Liquidity burden</td>
<td>155,340,000 sat-days</td>
</tr>
<tr>
<td>Payment volume</td>
<td>30,930,000 sat</td>
</tr>
<tr>
<td>Liquidity duration</td>
<td>10.13 days</td>
</tr>
</tbody>
</table>
<h4 id="result">Result</h4>
<p>LSP 2.485x times more efficient.</p>
<h3 id="top-up-every-month">Top up every month</h3>
<p><em>This scenario most closely resembles the typical once-a-month salary and daily spending on life expenses.</em></p>
<h4 id="lsp">LSP</h4>
<p><img src="https://blog.second.tech/content/images/2025/04/30day_lsp.svg" alt="Lightning liquidity: Ark servers and LSPs compared" loading="lazy"></p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Liquidity burden</td>
<td>58,460,000 sat-days</td>
</tr>
<tr>
<td>Payment volume</td>
<td>3,600,000 sat</td>
</tr>
<tr>
<td>Liquidity duration</td>
<td>16.24 days</td>
</tr>
</tbody>
</table>
<h4 id="ark-server">Ark server</h4>
<p><img src="https://blog.second.tech/content/images/2025/04/30day_ark.svg" alt="Lightning liquidity: Ark servers and LSPs compared" loading="lazy"></p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Liquidity burden</td>
<td>61,252,500 sat-days</td>
</tr>
<tr>
<td>Payment volume</td>
<td>3,600,000 sat</td>
</tr>
<tr>
<td>Liquidity duration</td>
<td>17.014 days</td>
</tr>
</tbody>
</table>
<h4 id="result">Result</h4>
<p>Roughly similar (LSP is 1.046x more efficient).</p>
<h3 id="top-up-every-quarter">Top up every quarter</h3>
<h4 id="lsp">LSP</h4>
<p><img src="https://blog.second.tech/content/images/2025/04/90day_lsp.svg" alt="Lightning liquidity: Ark servers and LSPs compared" loading="lazy"></p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Liquidity burden</td>
<td>76,902,000 sat-days</td>
</tr>
<tr>
<td>Payment volume</td>
<td>1,200,000 sat</td>
</tr>
<tr>
<td>Liquidity duration</td>
<td>64.085 days</td>
</tr>
</tbody>
</table>
<h4 id="ark-server">Ark server</h4>
<p><img src="https://blog.second.tech/content/images/2025/04/90day_ark.svg" alt="Lightning liquidity: Ark servers and LSPs compared" loading="lazy"></p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Liquidity burden</td>
<td>20,600,000 sat-days</td>
</tr>
<tr>
<td>Payment volume</td>
<td>1,200,000 sat</td>
</tr>
<tr>
<td>Liquidity duration</td>
<td>17.17 days</td>
</tr>
</tbody>
</table>
<h4 id="result">Result</h4>
<p>Ark server is 3.73x times more efficient.</p>
<h2 id="user-profile-regular-dca-stacker">User profile: Regular DCA stacker</h2>
<p>This user aims to accumulate bitcoin and hodl long-term. They buy 100 USD of bitcoin on a biweekly basis. At the end of the year the user drains their wallet and sends all funds to cold-storage.</p>
<h3 id="lsp">LSP</h3>
<p><img src="https://blog.second.tech/content/images/2025/04/dca_lsp.svg" alt="Lightning liquidity: Ark servers and LSPs compared" loading="lazy"></p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Liquidity burden</td>
<td>870,449,331.06 sat-days</td>
</tr>
<tr>
<td>Payment volume</td>
<td>4,139,500 sat</td>
</tr>
<tr>
<td>Liquidity duration</td>
<td>210.27 days</td>
</tr>
</tbody>
</table>
<h3 id="ark-server">Ark server</h3>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>vtxo_expiry_delta</td>
<td>28 days</td>
</tr>
<tr>
<td>refresh_window</td>
<td>2 days</td>
</tr>
<tr>
<td>new_vtxo_age</td>
<td>14 days</td>
</tr>
</tbody>
</table>
<p><img src="https://blog.second.tech/content/images/2025/04/dca_ark.svg" alt="Lightning liquidity: Ark servers and LSPs compared" loading="lazy"></p>
<table>
<thead>
<tr>
<th>Metric</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>Liquidity burden</td>
<td>130,887,780.61 sat-days</td>
</tr>
<tr>
<td>Payment volume</td>
<td>4,139,500 sat</td>
</tr>
<tr>
<td>Liquidity duration</td>
<td>31.6 days</td>
</tr>
</tbody>
</table>
<p>Ark is 6.65x more efficient in the above scenario.</p>
<h2 id="summary">Summary</h2>
<table>
<thead>
<tr>
<th>Scenario</th>
<th>LSP duration</th>
<th>Ark duration</th>
<th>Winner</th>
</tr>
</thead>
<tbody>
<tr>
<td>Weekly top-up</td>
<td>4.09 days</td>
<td>10.13 days</td>
<td>LSP</td>
</tr>
<tr>
<td>Monthly top-up</td>
<td>16.24 days</td>
<td>17.01 days</td>
<td>Similar</td>
</tr>
<tr>
<td>Quarterly top-up</td>
<td>64.09 days</td>
<td>17.17 days</td>
<td>Ark</td>
</tr>
<tr>
<td>DCA stacker</td>
<td>210.27 days</td>
<td>31.60 days</td>
<td>Ark</td>
</tr>
</tbody>
</table>
<h2 id="key-observations">Key observations</h2>
<h3 id="balances-vs-payment-volume">Balances vs. payment volume</h3>
<p>An LSP&apos;s liquidity requirements are driven primarily by changes in users&apos; balances, whereas Ark server liquidity requirements are driven by payment volume.</p>
<h3 id="lsps-face-greater-variability-of-liquidity-duration-than-ark-servers">LSPs face greater variability of liquidity duration than Ark servers</h3>
<p>The <em>liquidity duration</em> is 4 to 64 days for the LSP and 10 to 17 days for the Ark server. Individual users can exert significantly different liquidity pressures on an LSP.</p>
<h3 id="lsps-need-to-be-much-better-than-ark-servers-at-predicting-user-behavior">LSPs need to be much better than Ark servers at predicting user behavior</h3>
<p>An LSP must assign an inbound channel capacity to each user, but it can&apos;t know in advance how much a user will (net) receive via the channel. It can adjust the channel capacity throughout the year but every adjustment will require a costly on-chain transaction.</p>
<p>In some cases the LSP might be very efficient but in some cases the LSP might allocate a lot of liquidity that will never be used. Poor predictions can result in poor efficiency. Any costs associated with inefficiency will ultimately need to be borne by the LSP&apos;s users.</p>
<p>An Ark server doesn&apos;t need to play a guessing game. It simply allocates the exact amount of liquidity required at the time of a Lightning spend.</p>
<h3 id="funding-frequency-is-a-key-factor-in-ark-liquidity-efficiency">Funding frequency is a key factor in Ark liquidity efficiency</h3>
<p>We learned that liquidity efficiency is heavily determined by how frequently the user funds their wallet. An Ark server is most efficient when users top up less frequently than the <code>vtxo_expiry_delta</code> period.</p>
<p>For example, in the monthly top-up simulation, the spike on day 12 to 14 of every month is caused by a refresh of all the VTXOs that have been received in the beginning of the month which are close to expiry.</p>
<p>However, even with a user freqently depositing to their wallet, note that the Ark server&apos;s liquidity burden is still consistently reasonable.</p>
<h2 id="conclusion-ark-can-enhance-liquidity-efficiency-for-users-making-infrequent-lightning-payments">Conclusion: Ark can enhance liquidity efficiency for users making infrequent Lightning payments</h2>
<p>Based on our simulations, if you&apos;re the kind of user that&apos;s spending bitcoin over Lightning daily, and receiving payments every week or more, then you&apos;re likely to be spending less on liquidity than if you used Ark.</p>
<p>But if you&apos;re making less-frequent payments, and only receiving bitcoin each month (e.g., a monthly salary or bitcoin purchase), then using Ark with a Lightning gateway should offer significant savings.</p>
<p>If you&apos;re a DCA bitcoin stacker, you absolutely-definitely should be using Ark, with liquidity costs being a small fraction of what it would cost to use an LSP.</p>
<p>And remember, the simulations for Ark assumed the user made only payments over Lightning. It is a conservative, &quot;worst-case&quot; scenario&#x2014;payments from Ark to Lightning require immediate liquidity, but payments over Ark do not.</p>
<p>At the very least, we hope the simulations demonstrate that the liquidity requirements for Ark are not excessive. That&apos;s one common misconception that we&apos;re keen to head off!</p>
<h2 id="follow-for-more-research">Follow for more research</h2>
<p>We&apos;ve got more liquidity research to come&#x2014;it&apos;s essential for both our users to understand what to expect from the Ark protocol, and for us as we optimize liquidity. Ark has a lot of parameters we can tweak and any efficiency gains will translate into lower costs for our users!</p>
<p>Make sure you <a href="https://x.com/2ndbtc">follow us on X</a> or <a href="https://second.tech/#subscribe">sign up to our newsletter</a> to keep up with the research!</p>
]]></content:encoded></item><item><title><![CDATA[Introducing Erk: Ark without liveness requirements]]></title><description><![CDATA[Meet Erk and hArk—new variations of the Ark protocol that use bitcoin covenants to enable offline refreshes, reduce interactivity, and improve reliability.]]></description><link>https://blog.second.tech/erk-update/</link><guid isPermaLink="false">6800f27999e7686bf8eb0ea4</guid><category><![CDATA[News]]></category><dc:creator><![CDATA[Steven Roose]]></dc:creator><pubDate>Thu, 17 Apr 2025 12:49:40 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2025/04/ark-round.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2025/04/ark-round.jpg" alt="Introducing Erk: Ark without liveness requirements"><p>Last weekend at OP_NEXT, we unveiled Erk&#x2014;a novel variation of the Ark protocol that completely removes the need for user interactivity in rounds. This addresses one of Ark&apos;s key limitations: the requirement for users to come online before their VTXOs expire.</p><figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/h-plcJ6hmlg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Ark, Bitcoin L2s and Scaling Bitcoin | Steven Roose | OPNEXT 2025"></iframe><figcaption><p><span style="white-space: pre-wrap;">Our first reveal of Erk at the OP_NEXT 2025 conference</span></p></figcaption></figure><h2 id="the-innovation-behind-erk">The innovation behind Erk</h2><p>Erk (named after our CTO Erik who conceived the protocol!) introduces &quot;refund transactions&quot; with rebindable signatures, allowing users to provide signatures in advance that can be applied to future outputs. The server can then safely refresh VTXOs without requiring users to be online for each round.</p><figure class="kg-card kg-code-card"><pre><code>refund tx:
| inputs             |        outputs | 
+====================+================+
| old exit tx for A  | exit policy A&apos; | 
+--------------------+----------------+
| new exit tx for A&apos; |              S | 
+--------------------+----------------+</code></pre><figcaption><p><span style="white-space: pre-wrap;">Users sign up for a round by sending a new pubkey (A&#x2032;) and a signed refund tx to the server.</span></p></figcaption></figure><p>Another powerful feature of Erk is &quot;perpetual offline refresh&quot;&#x2014;users can bulk pre-sign future refreshes in sequence. With watchtowers monitoring the protocol, a user could remain offline indefinitely while their funds stay secure.</p><h2 id="beyond-erk-hark">Beyond Erk: hArk</h2><p>We&apos;ve also developed &quot;hArk&quot;&#x2014;which works alongside Erk. While Erk excels at single-input refreshes, hArk is optimized for consolidating multiple inputs into a single output through a clever secret-revealing mechanism.</p><p>Like Erk, hArk also requires CTV (but doesn&apos;t rely on CSFS). </p><h2 id="what-this-means-for-ark">What this means for Ark</h2><p>These innovations build on recent improvements to our Ark implementation, including making arkoor the standard for payments and benefiting from Bitcoin Core&apos;s package relay update.</p><p>While these improvements require CTV, we continue to work toward launching Ark on bitcoin as it is now&#x2014;there&apos;s still a lot of great scaling benefits users can enjoy without these enhancements!</p><p><strong>For the full technical breakdown of how Erk and hArk leverage CTV and CSFS, check out </strong><a href="https://delvingbitcoin.org/t/evolving-the-ark-protocol-using-ctv-and-csfs/1602" rel="noreferrer"><strong>our detailed post on the Delving Bitcoin forum</strong></a><strong>.</strong></p>]]></content:encoded></item><item><title><![CDATA[Stephan Livera Podcast—Steven Roose on Ark]]></title><description><![CDATA[Steven Roose joins Stephan Livera to discuss Second's vision for Ark, how it scales Bitcoin, improves UX, and complements the Lightning Network.]]></description><link>https://blog.second.tech/stephan-livera-podcast-steven-roose-on-ark/</link><guid isPermaLink="false">67e1547399e7686bf8eb0e56</guid><dc:creator><![CDATA[Neil Woodfine]]></dc:creator><pubDate>Mon, 24 Mar 2025 13:41:42 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2025/03/title-image.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2025/03/title-image.jpg" alt="Stephan Livera Podcast&#x2014;Steven Roose on Ark"><p><em>CEO Steven Roose gave a comprehensive update on the state of the Ark protocol on the </em><a href="https://stephanlivera.com" rel="noreferrer"><em>Stephan Livera Podcast</em></a><em>, so we&apos;re sharing the transcript here for those that prefer those!</em></p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/1VSNArCC9yw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Ark: Scaling Bitcoin Payments with Steven Roose | SLP645"></iframe></figure><p><strong>Stephan:</strong>&#xA0;Hi everyone, you&apos;re watching Stephan Livera Podcast brought to you by Bold. For American listeners, go to getbold.to to buy bitcoin now. Rejoining me on the show is Steven Roose. He is the CEO and co-founder of Second BTC, and they&apos;re one of the teams working on Ark, which is another L2 for bitcoin other than Lightning. We&apos;re going to get into this&#x2014;obviously there&apos;s a bunch of different things you guys have with this signet launch and other things going on. First of all, welcome back to the show.</p><p><strong>Steven:</strong>&#xA0;Thank you, very excited to be here. Thank you for having us.</p><p><strong>Stephan:</strong>&#xA0;I know there&apos;s a lot of different things happening, so let&apos;s try to set the stage for people. This is another L2 for bitcoin. What is the promise here? As I understand, you&apos;re trying to use Ark to also make Lightning better. Is that one way to understand it, or are you trying to use Ark as a way for more people to use self-custody bitcoin? Can you elaborate a bit on the high-level vision here?</p><h2 id="what-is-ark">What is Ark?</h2><p><strong>Steven:</strong>&#xA0;Yeah, sure. We think Lightning is great for people that do really high volumes, but we noticed that end users&#x2014;like individuals who just want to make occasional payments&#x2014;are really struggling with a self-custodial Lightning setup. So Ark is a different second layer protocol that works entirely differently than Lightning, but it&apos;s compatible with Lightning as well.</p><p>End users who don&apos;t want to have a whole Lightning setup can use Ark. They can still pay Lightning invoices and pay anyone who&apos;s on the Lightning network, but they don&apos;t have to manage their own channels. They don&apos;t have to manage the infrastructure that is needed to run Lightning because Ark is a client-server protocol. The server only is there to help the user make payments, but it&apos;s never taking custody of the funds. The Ark protocol is totally self-custodial, but it&apos;s basically making it easier for users to make Lightning payments and onchain payments, or just holding your money.</p><p><strong>Stephan:</strong>&#xA0;Just to summarize for some listeners&#x2014;obviously some listeners are quite techy and developers and they get all this&#x2014;but just for the non-developer listeners: The idea is with a lot of bitcoin payment apps, what&apos;s happened is some of the complexities of Lightning have driven and pushed a lot of people to use custodial Lightning apps, things like Wallet of Satoshi or others out there, or KYC Lightning things like Strike or whatever else.</p><p>Again, I&apos;m not criticizing&#x2014;I obviously want more people to use bitcoin in general&#x2014;but of course it would be good for more people to have these self-custodial options. What drove them to the custodial options? It&apos;s things like having to manage channels or managing the liquidity&#x2014;how much is on that side of the channel, and what are the fees if I need to go to chain. These are some of the things that if you were to try and do fully self-custodial Lightning, these are the requirements. Can you explain a little bit about why you see Ark alleviating some of those concerns?</p><h2 id="what-is-the-ark-approach-to-self-custody">What is the Ark approach to self-custody?</h2><p><strong>Steven:</strong>&#xA0;From our perspective, there are two main big hurdles for having self-custodial Lightning. One is that you need to manage your channels, right? So you need to create them and occasionally close them or refund them or rebalance them, and any of these interactions require onchain transactions.</p><p>Currently, we are at a historic low when it comes to onchain transaction fees, but in the past they have been a lot higher, and we anticipate that in the future they might also rise again. Then these interactions with your channels can become very costly.</p><p>Second of all, on Lightning, because your payments flow over channels, to receive payments you need to have a channel with someone who has some money in this channel with you, which is called your inbound liquidity. If you don&apos;t have inbound liquidity, you cannot receive any payments. It&apos;s usually not easy to convince someone to put money locked in a channel only with you. That&apos;s why most of the Lightning wallets right now allow you to basically purchase or rent some inbound liquidity where they charge you a fee, and then you can have inbound liquidity.</p><p>These are the two main hurdles that you don&apos;t have with Ark because you don&apos;t need channels. You can always receive without needing specific inbound liquidity because this is all handled by the server. You don&apos;t need to create channels or rebalance because all your balance is kept in the Ark totally offchain, and you don&apos;t need to manage this liquidity yourself because there are no channels.</p><p><strong>Stephan:</strong>&#xA0;Understood. In another way, or in a similar way, it&apos;s about onboarding, right? Because what we&apos;re talking about here is: for a new person when they come in and they start up a bitcoin Lightning wallet, they&apos;re kind of stuck with one of a few hard choices. It&apos;s either do everything manually yourself, have enough bitcoin to manually do the channels, or pay to rent a channel, or push that cost and complexity onto the LSP and the Lightning wallet person. Who&apos;s maintaining that? Any of those three options, you know, has tradeoffs around it. That&apos;s the nature of how things are.</p><p>What I&apos;m understanding here is Ark can help you in terms of onboarding a new user with a different set of tradeoffs. It&apos;s important to understand it&apos;s not free&#x2014;there&apos;s no free lunch here&#x2014;but it&apos;s a different set of tradeoffs. Can you explain a little bit about that and why it&apos;s better from an onboarding perspective?</p><h2 id="reducing-the-onboarding-hurdle-for-users-with-ark">Reducing the onboarding hurdle for users with Ark</h2><p><strong>Steven:</strong>&#xA0;The onboarding problem is particularly difficult because if you don&apos;t have anything, you don&apos;t have channels, and someone (a friend or someone) wants to send you their first payment or your first payment, and you want to receive maybe 10 bucks, 20 bucks, it&apos;s really not possible in Lightning to do this because a channel will often cost you a few bucks, and then you need to wait for it and all this.</p><p>In Ark, you don&apos;t have any of this. You can immediately receive an offchain VTXO&#x2014;VTXO is basically a unit of money in Ark. So you can immediately receive some offchain money, and there&apos;s no need for a setup. You can just open an app that would support Ark, and immediately you can make your first receive.</p><p>I think that is mainly why the onboarding experience&#x2014;we will talk about our signet launch later&#x2014;but we wanted to specifically show that you can just set up your wallet, go to our faucet, and receive some onchain funds instantly, which is something that with Lightning is not possible today. That&apos;s why most people are going to recommend custodial or semi-custodial Lightning solutions where you can tell someone, &quot;Hey, install this app and I can immediately send you 10 bucks,&quot; and it will immediately show up in their wallet. But that&apos;s not really possible with fully self-custodial Lightning.</p><p><strong>Stephan:</strong>&#xA0;Okay, and now let&apos;s just compare this with, you know, people might have heard of or they might be using other approaches&#x2014;things like Liquid, right? As an example, and I know you used to be working on Liquid stuff over at Blockstream previously to this, so obviously you&apos;re very familiar with that. And then there are others who might talk about, let&apos;s say, Cashu or Fedimint using an ecash style approach. So how would you contrast an Ark onboarding with, let&apos;s say, an LBTC Liquid style onboarding or an ecash, let&apos;s say a Cashu or a Fedimint onboarding? How does Ark compare with those?</p><h2 id="how-does-ark-compare-with-liquid-ecash">How does Ark compare with Liquid &amp; eCash?</h2><p><strong>Steven:</strong>&#xA0;They&apos;re all similar in the sense that there&apos;s some third party helping you do your bitcoin stuff, right? So it&apos;s not like your onchain wallet where there&apos;s just a peer-to-peer network. But in both Liquid, Cashu, and Ark, there&apos;s some kind of server that is helping you do this.</p><p>What differentiates Ark is mostly that the server at no point is in control of any money. So it&apos;s totally self-custodial, while in the Cashu case, for example, it&apos;s kind of fully custodial. It&apos;s fully custodial&#x2014;the Cashu mint has all the money and it gives you tokens that you can then anonymously and privately use to send Lightning payments and send this Cashu, this e-cash around. But the money in the end is all handled by the Cashu mint.</p><p>It&apos;s possible to make a Federated cash mint, I imagine, where it&apos;s multiple people, but still, the money is controlled by other people. In Liquid, it&apos;s also the case&#x2014;they have a big Federation of 15 different companies that hold the money jointly, like collaboratively, but still it&apos;s those people that have the money in their hands. If something goes wrong, it&apos;s always possible that the money doesn&apos;t end up back into your hands if you would need it.</p><p>With Ark, the user is always fully in control of their money, and the server is only there to help coordinate what we call rounds or to help you make offchain payments and Lightning payments.</p><p><strong>Stephan:</strong>&#xA0;So in other words, am I understanding it correctly then? The Ark wallet that you are creating&#x2014;the idea is the user has their own private keys basically, and they hold the private keys to a VTXO that&apos;s being helped&#x2014;like the server helps them manage that. But the point is unilateral exit, right? The idea is if they wanted to go to chain and take those funds onchain, they can do that. That&apos;s the difference you&apos;re pointing at, right?</p><p><strong>Steven:</strong>&#xA0;Exactly, exactly. And the server doesn&apos;t really help you manage it as much as it helps you set it up in the first place. So your wallet manages all the transactions that it would need to broadcast in case of a unilateral exit, and it manages your VTXOs.</p><p>But every time they are about to expire&#x2014;we can maybe go into the expiration thing later on&#x2014;but whenever they&apos;re about to expire, the coordinator in the server will help you refresh them and create new ones. As soon as they are created, you don&apos;t need the server anymore because they are there and they&apos;re always yours. You only need the server if you want to pay or if you want to transfer them to someone else.</p><p>The server is also a Lightning gateway because the VTXOs are not channels, so we use trustless swaps so you can get your VTXO onto the Lightning network in a payment in one go. Currently, the Ark server will also be the Lightning gateway. In theory, there can be third-party Lightning gateways as well, but currently, it&apos;s the same party. Then the coordinator will help you make Lightning payments, help you refresh your VTXOs, and help you pass on your VTXO to other people.</p><p><strong>Stephan:</strong>&#xA0;Gotcha. There are a few terms that we should help explain, and maybe some of this terminology has shifted a little. In past discussions on Ark, people might have heard the term ASP&#x2014;Ark service provider&#x2014;and I guess that was meant to be kind of parallel to Lightning service provider, which people understand from the Lightning world. There are a few other terms you mentioned there: ASP, I guess, is like an Ark server, and then the coordinator and the Lightning gateway. I guess the Lightning gateway and the coordinator are the same, right?</p><p>If you could explain a little bit about the user and the server and how that interaction works from an Ark perspective?</p><h2 id="how-does-a-user-interact-with-an-ark-server">How does a user interact with an Ark server?</h2><p><strong>Steven:</strong>&#xA0;In Ark, each Ark is like a small bubble. All your interactions will happen within your Ark with your single Ark server. There&apos;s not really any crossover to different Arks.</p><p>If I&apos;m in a different Ark than you are, we can pay each other through Lightning, and Lightning will be the bridge. Or we can do direct swaps from my Ark to your Ark, but you cannot move the money directly from one Ark to the other. You either have to swap or use Lightning.</p><p>So all your interactions as a user will be with a single server. You know the address of the server, your wallet will be configured to talk with that server, and every time you want to do something, you just talk with the server. The server helps you do all your interactions, and the protocol guarantees that if the server disappears or starts to act out in a bad way, you can always use your unilateral exit and broadcast your transactions to the chain and have your money back.</p><p><strong>Stephan:</strong>&#xA0;And could you also explain for us at least the current understanding of what&apos;s happening in terms of the rounds? As I understand, there are rounds, and I think historically you had this&#x2014;was it arkoor payment? It was like out of round or maybe you could explain a bit about this because it might have changed from how I&apos;m understanding it.</p><h2 id="how-do-ark-rounds-work">How do Ark rounds work?</h2><p><strong>Steven:</strong>&#xA0;The protocol definitely changed a lot since it was invented, but we&apos;re kind of settling on the way forward and the current way.</p><p>The rounds are kind of the core of the protocol because the rounds are when the new VTXOs&#x2014;we call them virtual UTXOs, the offchain UTXOs&#x2014;when they&apos;re issued. So they are created during rounds. Initially, we envisioned that you would use the rounds also to pass on VTXOs to other people, but currently, we only use the rounds for your own VTXOs to be refreshed when they are about to expire.</p><p>A VTXO in Ark has an expiry time. We imagine they would be something in the order of one or two months. So every one or two months, you would have to refresh your VTXOs, and you use the round to do that. In the round, you will tell the server, &quot;Hey, I have these VTXOs that are about to expire, I want new ones in return,&quot; and then they have a fresh expiry time.</p><p>Rounds would happen something about every hour, but your wallet will probably be participating in these rounds in the background without you really noticing that this is happening because the money just goes back into your wallet, it gets a new expiry time, and you don&apos;t really notice this much.</p><p>Then when you want to make payments to other people, we use what we call out-of-round payments, or arkoor for short. What you do then is that you have an existing VTXO, and you just make a transaction on top of this to basically pass it on. It&apos;s kind of like an onchain transaction where you have a new transaction that spends this transaction as an input and creates new outputs. It works exactly in the same way, but the difference is that this transaction stays entirely offchain.</p><p>So you can make multiple ones of these&#x2014;kind of like a mini transaction chain offchain&#x2014;and you don&apos;t have to do any rounds for these transactions to confirm. They&apos;re instant. This is also how you make Lightning payments. If you make a Lightning payment, you basically make a small arkoor payment that creates an HTLC and creates some change. Then the HTLC goes on the Lightning network, the change becomes your new VTXO, and then at some point the VTXO will expire, and then you use the rounds to refresh it, and you get a fresh VTXO again.</p><p><strong>Stephan:</strong>&#xA0;I see. So my caveman/layman understanding: let&apos;s say I&apos;ve got an Ark wallet as an end user, and I want to make a Lightning payment. For me, the way it looks would be like I scan and make a Lightning payment like I normally would, but actually what&apos;s happening is I&apos;m doing a payment that kind of goes to my Ark server, and my Ark server has the Lightning gateway that actually makes the payment on my behalf, and then I&apos;m getting back a VTXO with the change later? Or how does that work?</p><p><strong>Steven:</strong>&#xA0;It&apos;s not really on your behalf because what happens between you and the server is also an HTLC. It&apos;s kind of like the same thing as if we would have a channel&#x2014;a bit more trustless in that way. It&apos;s totally trustless. It&apos;s like as if we would have a channel, because in Lightning, HTLCs are built on top of channels, right? But they don&apos;t necessarily need to be built on top of channels. It&apos;s just a contract, an HTLC contract.</p><p>So we just build an HTLC in the Ark, not on a channel, which basically tells the ASP, &quot;Hey, if you can give the preimage, then I can give you the money.&quot; Then the ASP can use the Lightning network to get the preimage from the eventual receiver of the payment, and then the money gets unlocked atomically in the Ark and in the Lightning network.</p><p><strong>Stephan:</strong>&#xA0;I see. So it&apos;s actually a stronger level of trust minimization compared to some of the other approaches because of that?</p><p><strong>Steven:</strong>&#xA0;It&apos;s fully trustless&#x2014;the HTLC is there. If there&apos;s no preimage, the money does not go to the ASP at all.</p><p><strong>Stephan:</strong>&#xA0;I see. That&apos;s another thing about Lightning&#x2014;the idea is there&apos;s this preimage, and you need to make sure it gets to the other side before they release...</p><p><strong>Steven:</strong>&#xA0;Exactly. The timings are a little bit more tricky than in Lightning because in Lightning, every channel is kind of the same, so you just have different timeouts that you stagger. But then the timings inside the Ark are a little bit more complicated, so we have to be careful that the timings are right. But that&apos;s getting very technically into the weeds.</p><p><strong>Stephan:</strong>&#xA0;Yeah, we don&apos;t have to go to that level of it. So who do you see as the main users of Ark?</p><h2 id="who-benefits-from-ark">Who benefits from Ark?</h2><p><strong>Steven:</strong>&#xA0;We think that just individuals who want to make payments have the most benefit from Ark. We think if you&apos;re like a really big shop that receives thousands of payments per month, you&apos;re probably better off setting up a Lightning infrastructure or paying someone to do it because Lightning is really good for this high volume.</p><p>But we think any user who just wants to make several payments a day, who just wants to have a mobile app and wants to go to a shop and pay, will have more benefit from using Ark than from trying to set up custodial Lightning.</p><p>And the same wallet, the same Ark wallet, can also just make any offchain payments. So even if you would receive your salary in your Ark wallet, you can easily send back to your cold storage. It&apos;s kind of a fully working bitcoin wallet that does both onchain and Lightning without much management and headaches.</p><p><strong>Stephan:</strong>&#xA0;I see. So I guess the way you&apos;re explaining it there is it could be like a unified balance you don&apos;t have to think about as much. Am I onchain? Am I offchain? It&apos;s just kind of &quot;here&apos;s my balance, I can just make payments with it&quot; and not really worry too much in the background.</p><p>In terms of capacity and things like that, you don&apos;t really have to think about that. It&apos;s not that &quot;Oh, I need this much inbound capacity&quot; or none of that. Just if I want to make an onchain payment... here&apos;s the example: Let&apos;s say I want to make an onchain payment out of my VTXO balance, how does that part work? Let&apos;s say I&apos;ve got 1 million sats and I want to make an onchain payment for 0.1 million sats (100,000 sats). How does that work in Ark?</p><p><strong>Steven:</strong>&#xA0;To make onchain payments, you have to wait for a round. They&apos;re not out-of-round&#x2014;there&apos;s no out-of-round onchain payments. What you would do is you would tell the server, &quot;Next round I want to make this onchain payment,&quot; and then when the round happens, the server will create an output on the round transaction.</p><p>Every round, a new onchain transaction is broadcast that issues all the VTXOs offchain, but it can also create outputs onchain. Then you would pay a little bit of a fee because you pay the onchain fee just for your output, just for your script. Then at the end of the round, the onchain output would be created, and you would either have some of your change in VTXOs, or the change can stay offchain.</p><p><strong>Stephan:</strong>&#xA0;I see. And so is there any concept here of &quot;you need to add enough fee to get it confirmed,&quot; or is that handled by what the server does for you?</p><p><strong>Steven:</strong>&#xA0;Exactly. As the server, because the round transactions are usually very small&#x2014;they&apos;re usually a few inputs and then two or three outputs&#x2014;we really overpay fees to make them confirm because this is the essence of our protocol.</p><p>For the user, you don&apos;t have to worry about replace-by-fee or something like that. The server will make sure the transaction confirms, and they will charge you just the fee for your output. So you don&apos;t pay onchain fees for your inputs or for your change; you only pay the onchain fee for the output that you really need.</p><p><strong>Stephan:</strong>&#xA0;I see. And then I guess the trade-off in one sense is you make your payment onchain and it goes once an hour&#x2014;you can&apos;t make an instant onchain payment. So that&apos;s one downside maybe for some listeners or some users that would be annoying for them. But hopefully, over time, as Lightning grows, more and more people would just do Lightning payments anyway, so then this will be less and less of an issue.</p><p>While we&apos;re on the topic of who is the typical user&#x2014;are we talking here like a retail user? This is not for high-value, large amounts, right? Or how do you see it?</p><p><strong>Steven:</strong>&#xA0;The thing that I mostly think Lightning still benefits is high volume&#x2014;thousands of payments, like stores, online merchants, stuff like that. But the amounts don&apos;t really make much of a difference.</p><p>Just like you know that onchain, your fee is based on the amount of bytes in your transaction and not based on the amount of money, the same is true in Ark. The fees are a little bit more tricky because they are in some ways a bit based on the amounts, but it doesn&apos;t make it less feasible to have larger amounts in Ark, just like in Lightning.</p><p>Lightning in the beginning had this &quot;reckless&quot; mode, the wumbo channels, where they tried to discourage users from putting a lot of money in the channels. But I think at this point, Lightning is secure enough that it also works for larger amounts.</p><p><strong>Stephan:</strong>&#xA0;I see. So it&apos;s not actually limited just to coffee payments and small retail&#x2014;you actually could do multi-thousand, $10,000, $100,000 payments theoretically?</p><p><strong>Steven:</strong>&#xA0;I think so. I don&apos;t see a reason why we wouldn&apos;t. Obviously, the more money is in it, the more careful you have to be that you refresh them on time because otherwise, you can get into trouble. But I think either your app provider or your wallet provider will make sure that that happens.</p><p>[Ad break: Coin Kite and Cold Card security devices]</p><p><strong>Stephan:</strong>&#xA0;While we&apos;re on the topic of apps and refreshing and so on, one thing people talk about with mobile is that Android and Apple are getting aggressive about battery management, so they don&apos;t let you do things in the background. How do you get around that? Because as I understand, the app has to wake up every now and again and sort of do a refresh. How do you manage that?</p><h2 id="ark-mobile-experience-and-app-management-challenges">Ark mobile experience and app management challenges</h2><p><strong>Steven:</strong>&#xA0;That&apos;s a very good question, and that&apos;s why we&apos;re also launching this product now on signet, because we want to start experimenting with this and learning the pains. We are not planning ourselves to release a mobile app, but we are partnering with different app developers who want to integrate Ark and who have the mobile experience but who don&apos;t really know how the Ark interactions will work.</p><p>So we&apos;re trying to tailor our SDK, our wallet, and our platform to be as mobile-friendly as possible. We have a lot of changes that we have in mind to reduce the different latencies that are there when people have to wake up. But as you say, the mobile platforms are not easy to develop on, especially not if you need to do background work, and it&apos;s important that you just occasionally wake up and have a chance to refresh your VTXOs.</p><p>I think it&apos;s going to be an interesting ride and a collaboration between us and different app providers. If there&apos;s people building iOS-only or Android-only or cross-platform in different ways, we will have to talk with them, look at the ways they have to wake up the phones of their users so that they can participate in rounds.</p><p>What we can do on our side is try to make the SDK as low-footprint, low-cost as possible when it comes to CPU usage, time needs, bandwidth, and stuff like that. But eventually, it will be the app developers who need to understand the processes and what the limitations are. It&apos;s still to be seen how far we can go to make it fully user-friendly depending on the platform.</p><p>That&apos;s why we launched this test version, because we want to start learning this as soon as possible. Our company&apos;s goal is to get payments into the hands of end users, and we know that obviously that will be mobile&#x2014;people are not making payments from their desktop computers. So we want to get that mobile experience as soon as we can.</p><p><strong>Stephan:</strong>&#xA0;As I understand, right now, if I think of, let&apos;s say, Phoenix wallet, they are using some Google Play thing where they can send a notification and make your phone wake up to take a payment. So I presume it will be something similar to that.</p><p>Let&apos;s talk a little bit about signet. You&apos;ve done this signet launch&#x2014;what&apos;s the overview of the signet launch?</p><h2 id="arks-signet-launch">Ark&apos;s signet launch</h2><p><strong>Steven:</strong>&#xA0;We basically wanted to get our product in the hands of some early adopter users, some first movers who just want to play with it and want to see how it feels like. We especially hope that we will get some app developers excited to start trying to integrate this SDK into their apps.</p><p>What we did was we launched our Ark server and our client called bark, and we created a server that is active on signet right now. We created a little faucet and a tutorial so that users could install bark (the client), create a wallet, receive some offchain money from our faucet (the faucet is providing offchain and also onchain money if you need it on signet), and then we provided a small store where you could buy some treats for our mascot called Bite.</p><p>Basically, we&apos;re showcasing that you can also make small payments. It shows you a Lightning invoice, you copy-paste it into your CLI because it&apos;s only in the terminal for now, and then you can make some payments from your bark wallet.</p><p>We&apos;re trying to get users, and mostly developers, to see that this is something that&apos;s actually working and that is improving rapidly, and to get them excited to try and integrate this into some of their apps or platforms or wallets in different kinds of ways.</p><p><strong>Stephan:</strong>&#xA0;In current form, how many people can use Ark before you start to hit some kind of usability limits? As I understand, this is early days so I guess you&apos;re still figuring this out, but as I understand, one of the tradeoffs of not having like a CTV or things like that, or TXHASH or whatever, is that there&apos;s more interactivity. What does that mean in practice for users today?</p><h2 id="what-are-the-user-limits-for-ark">What are the user limits for Ark?</h2><p><strong>Steven:</strong>&#xA0;That&apos;s another reason why we want to get people to test this, because we don&apos;t have much real-world usage examples. We have some tests&#x2014;I can tell you that we have tests where we run up until like 100 participants in each round, but not much further beyond that. Because if you do it all on the same computer, it&apos;s also not really a good use case.</p><p>So we don&apos;t really know&#x2014;in theory, the limits should be pretty high. The real limitation at this point is: does the user have enough time and bandwidth to participate? Because the interactivity means that there&apos;s a lot of data flying around.</p><p>Without CTV, for example, all the participants need to create a bunch of transactions, a bunch of signatures on a bunch of different offchain transactions in preparation for the rounds. On mobile, that means you need to send a lot of cryptographic nonces, then signatures, and all of this needs to be done each round.</p><p>Just to make it clear, because some people make this mistake: you don&apos;t have to participate in each round. As a user, you only participate in a round if you need something from the round&#x2014;if you need to refresh some VTXOs or if you need to make an onchain payment.</p><p>But still, if you&apos;re on a mobile phone and you need to refresh, we want to make sure that you have the highest chances possible of succeeding in participating in these rounds.</p><p>The limitation depends on how many users can participate in each round. You only need to participate once every one or two months with your VTXOs. So you can do the math: multiply the number of outputs we could have in a round&#x2014;I&apos;m imagining something in the limit with the current model would maybe be somewhere around a few thousand per hour&#x2014;and then multiply that by a whole month or two.</p><p><strong>Stephan:</strong>&#xA0;So we&apos;re talking like 50,000-100,000 users, probably?</p><p><strong>Steven:</strong>&#xA0;Yeah, and then with CTV we would cut a lot of this interaction. There are also other ways that we&apos;re still thinking about that can cut down on a lot of bandwidth and interactions needed when it comes to signing for transactions, which is an essential part of the round that we will always need to do, even with CTV.</p><p>But we definitely have to have more real-world usage examples and tests because if we run tests on different servers and such, it&apos;s very different than people running on mobile network connections in different continents.</p><p><strong>Stephan:</strong>&#xA0;I see. Because as you were just saying, it could be a few thousand in each round, and that could mean maybe 50,000 people have an Ark wallet on their phone, but only a few at each time are in a round.</p><p>But I guess the other downside to deal with is if these are users who have not done a transaction in a while, then the way phones do their battery management is they&apos;ll say something like, &quot;Oh, this app has not been used in a month or two months, therefore, deprioritize it and don&apos;t allow it to wake up in the background.&quot; So those are things you&apos;re dealing with.</p><p><strong>Steven:</strong>&#xA0;Those are things that we don&apos;t have any control over that will depend on the app developers and the platforms that they use.</p><p>One thing that&apos;s very interesting, I think, is that all these problems in scaling the rounds has to do with the number of users, not the number of payments. So even if users make a really lot of payments, this makes no difference for the limitations on the rounds. I think this is good because we can just scale up our user base and then have them make as many payments as they want. We don&apos;t need to limit the amount of payments that you can make.</p><p><strong>Stephan:</strong>&#xA0;Let&apos;s talk about some uses though, because I think it&apos;s important to put some practical uses here. As an example, maybe someone who wants to do a non-custodial exchange&#x2014;maybe they could set up an Ark thing, and their customers who are stacking could get a new VTXO every week. Or let&apos;s say they&apos;re doing a DCA and they want to buy some every week, they could get new VTXOs until the point that they actually have enough to go onchain, for example.</p><h2 id="practical-use-cases-for-ark-in-bitcoin-transactions-importance-of-self-custody-in-bitcoin">Practical use cases for Ark in bitcoin transactions; Importance of self-custody in bitcoin</h2><p><strong>Steven:</strong>&#xA0;This is one of the use cases that I mentioned when I was making the case for CTV for Ark. A third party, like an exchange, can actually issue independently using CTV a bunch of VTXOs, and there is no round needed, there is no interaction needed. They can deliver tens of thousands of VTXOs in one single onchain output, and they can do this every hour when they have a lot of usage. Or a small DCA provider can do this every day.</p><p>Again, it&apos;s not the amount of payments that matter, it&apos;s the amount of users that matter. This one can actually deliver a whole bunch of payments in a single output. They can do it every hour, they can do it every day, but this doesn&apos;t put a limit on the amount of users that we can have because it&apos;s only when we do actual rounds that we need to look for that.</p><p>If we start to grow and we have too many users and the rounds are too slow or too full, we can always do more rounds. We can say every half hour, every 10 minutes&#x2014;maybe we&apos;ll have one round per block, and then your confirmation time for your onchain payment is going to be the same as a normal onchain payment because there&apos;s a round every block.</p><p>Doing more frequent rounds increases the onchain cost for the server, but if there are so many users that actually need this space, we can probably pay for that onchain cost. So I think as we grow and we hit limits when it comes to rounds, we can just have more frequent rounds, and then we will have the usage to pay for that usage of the chain.</p><p><strong>Stephan:</strong>&#xA0;Interesting. That could be interesting for people who really want to focus on the &quot;not your keys, not your coins&quot; self-custodial adoption. It could be made a lot easier as opposed to pushing a lot of people into custodial, which is where a lot of people are now, whether we like it or not.</p><p>I think it&apos;s also fair to say it&apos;s probably also that a lot of, let&apos;s say, Westerners don&apos;t have a payments problem today&#x2014;they have a savings problem. So they&apos;re more interested in the hodling and stacking use cases than they are in the actual day-to-day paying for coffee with Lightning and Ark and whatever.</p><p>But this might be an example where Ark could be used to have people stacking in a self-custodial way as opposed to putting all that risk into the exchange and the custodian.</p><p><strong>Steven:</strong>&#xA0;There&apos;s definitely a space for custodial bitcoin as well. I think projects like Fedimint, projects like Cashu, and even just fully custodial things like Wallet of Satoshi, or even banks going into the custodial bitcoin space like Revolut and such&#x2014;I think they have their place.</p><p>But I think it&apos;s very important for us as a community that it&apos;s possible and has a proper user experience when you want to be fully self-custodial. There will always be people who either need this for political reasons, or people who are targeted by the places they live in, or they just don&apos;t want to trust the bank.</p><p>There are always going to be risks involved with third parties, and at some point, as the amount of money that you&apos;re managing gets too high for you to take that risk&#x2014;and people have different risk thresholds&#x2014;we feel it&apos;s really important that self-custodial bitcoin stays possible and not just for saving but also for payments.</p><p>Because right now, like you say, saving non-custodially is very good in bitcoin, but once you want to make payments, most people move into something that is either semi-custodial or fully custodial because it just works better.</p><p>And I think, as you say, the West has not much of a payments problem but more of a savings problem, and that&apos;s why bitcoin works for them quite well. But I think we&apos;re struggling to onboard those people who need the payments more than the savings because the payments user experience hasn&apos;t been great. I think if we can improve that, we can get them using bitcoin more as a payment system, and eventually, they will use it for savings as well. Because if they receive their payments there, it&apos;s where they&apos;re going to save.</p><p><strong>Stephan:</strong>&#xA0;Interesting. I think some of that comes into just getting more people using even Lightning. I&apos;ve seen a lot of news recently about Breez SDK getting a lot of progress, kind of getting companies on board&#x2014;and not even crypto companies, but fiat companies that had nothing to do with bitcoin or crypto are starting to take on Lightning payments. So the more of them there are, the easier it is hypothetically to make or take Lightning payments. Then hopefully there&apos;s actually more use for that.</p><p>But I think we also have to just be honest and look at the fact that recently there&apos;s not a lot of use onchain, and there&apos;s a lot of people onboarding through ETFs and MSTR and things like this. So that&apos;s just kind of where we&apos;re at. Of course, I want more people to self-custody, but we have to sort of see that&apos;s where it&apos;s at for now.</p><p>But anyway, enough about that. Maybe you can help explain for people&#x2014;I think listeners will have this question&#x2014;can you contrast between what you&apos;re doing and Ark Labs? What&apos;s the difference in the approach there?</p><h2 id="what-is-the-difference-between-second-and-ark-labs">What is the difference between Second and Ark Labs?</h2><p><strong>Steven:</strong>&#xA0;Well, that&apos;s a difficult question because I don&apos;t like to speak on behalf of others, but I think I can say that the team at Ark Labs and myself personally&#x2014;we used to work together in the beginning when we were still very much in the contemplating phase, and then at some point, we just decided to part ways, and we&apos;re focusing on different things right now.</p><p>I think the biggest difference was that they initially launched on Liquid using the Liquid covenants. They have&#x2014;they&apos;re currently also trying to focus on their main efforts, so on that point, we kind of streamlined again.</p><p>I don&apos;t really know&#x2014;I cannot really speak for their focus. We are very much focusing on retail payments. From the communication I hear from Ark Labs, I feel that they&apos;re more focusing on Ark as a platform for people to build apps on top and stuff like that, which I think is also valuable. But I think it&apos;s hard to balance those things because if you&apos;re focusing on payments, you really want to focus on a very specific thing like low latency, small footprints for mobile, and all that stuff. While if you&apos;re focusing on platforms, you want flexibility, you want different scripting methods, different contracts that can be built, and stuff like that.</p><p>I don&apos;t know if that is the way that it will go, but that&apos;s one of the main differences that I&apos;m seeing today, other than programming language we use, tech that we use&#x2014;but those are all minor differences.</p><p>I think the good thing about Ark is that, unlike Lightning, which is a protocol network where all the implementations need to be completely compatible with each other because they&apos;re just exchanging messages and doing stuff cooperatively between different implementations, in Ark, your server is kind of a bubble. So their implementation, our implementation&#x2014;even though they&apos;re both Ark and it&apos;s kind of the same protocol&#x2014;we can make totally different design decisions. We can have totally different implementations. The API protocol between the users and the server can be totally different.</p><p>So we don&apos;t need to align on too many things. We can experiment in different directions, and we can definitely learn from each other. We have, on both sides, seen the other side make a certain technical decision that we then realized was actually better and also took. So we&apos;re definitely learning from each other, and we&apos;ll see how it pans out.</p><p><strong>Stephan:</strong>&#xA0;On the liquidity constraints question, because this was another thing&#x2014;in the early days of Ark, a lot of people were saying, &quot;Oh no, you won&apos;t be able to do it because the liquidity requirements at the ASP or Ark server would be so high.&quot; What&apos;s the current thinking there?</p><h2 id="what-are-the-liquidity-constraints-in-ark">What are the liquidity constraints in Ark?</h2><p><strong>Steven:</strong>&#xA0;It kind of ties into what I said in the beginning of the podcast, where we&apos;re currently only using rounds for refreshes&#x2014;to refresh your current, your own VTXO&#x2014;and not for payments. The liquidity constraints come when users interact with rounds. Actually, the fact that now we&apos;re trying to have all the users make their payments offchain, out of round so to speak, in the arkoor payments, there&apos;s no liquidity requirement there whatsoever.</p><p>So when users do just arkoor payments, it&apos;s all fine. And when they enter the rounds, the liquidity constraint has to do with how close the VTXO is to expiring, because we kind of need to bridge the gap until the expiry. It&apos;s hard to explain in a few minutes on a podcast, but the fact that users are submitting their expiring VTXOs in a round almost right before they expire really minimizes our liquidity constraints.</p><p>So we&apos;re kind of optimistic in this current model where most users will feel comfortable enough to hold on to their arkoor VTXOs until they expire and then only refresh a few days before the expiry of the VTXOs, because it really reduces the liquidity constraints from the server point of view.</p><p>I think this will be the primary model for most users. The other users that don&apos;t like this model and try to refresh their VTXOs more frequently will have to pay their liquidity fee. We still did some number crunching&#x2014;it isn&apos;t that bad. It&apos;s probably around what current Lightning apps are charging you, so it&apos;s still quite competitive.</p><p>So regarding liquidity, we&apos;re kind of positive on this note. It was really a big problem when, in this model where it was five rounds, every payment goes through a round, because in that model, the requirement for the server would be incredibly high, and it was really not possible. But the decisions that we made in the design since then have helped us a lot.</p><p><strong>Stephan:</strong>&#xA0;I see. So basically, that liquidity constraint has come down a lot, or at least the requirement has come down a lot.</p><p><strong>Steven:</strong>&#xA0;We think it&apos;s a lot more efficient when it comes to liquidity needed by the server compared to liquidity or money that the users have than, for example, Lightning. Because in Lightning, your liquidity is locked up, tied to a specific user, and they need this liquidity to be able to receive. But if they&apos;re not sending or receiving or doing anything, the money is just there stuck.</p><p>In Ark, the liquidity is just one single liquidity pool for all users. So it&apos;s way easier to more efficiently allocate this liquidity&#x2014;it&apos;s always there, so it&apos;s always usable by all users at the same time. So you don&apos;t have to decide, &quot;Oh, is this user going to make enough payments? Is it going to be worth it for me to put this amount of money in there, in this channel with him?&quot; We don&apos;t have to make those decisions.</p><p>[Ad break: Bold bitcoin platform]</p><p><strong>Stephan:</strong>&#xA0;When it comes to fees, you&apos;re talking a little bit about this. Given that you&apos;re focusing on the server side and protocol aspects, and the apps are going to be handling the end user apps, does that mean the app guys are going to be the ones charging the fees? Or are you charging a fee at the server level, and the apps are going to charge their own app-level fee? How would that look?</p><h2 id="understanding-the-cost-structures-in-ark">Understanding the cost structures in Ark</h2><p><strong>Steven:</strong>&#xA0;That&apos;s a good question. Currently, what we know for sure is the cost basis that we have as a server. Whenever users do rounds, we need to provide liquidity, and this has a cost. We need to make chain transactions, and this has a cost. So there&apos;s definitely a cost for us when users do rounds, and this is a function of how much money is in the Ark because the rounds only happen due to expiry. They&apos;re basically users continuing to be part of the Ark.</p><p>When they make offchain payments, there&apos;s not really a big cost for us. We just need to co-sign some transactions. So we can either just make the users pay for our costs, but we feel that users like to pay fees when they transact and not just to have a balance. There&apos;s definitely a psychological aspect to that.</p><p>But when it comes to how it will work in the apps, those are really still questions that we have to figure out. We will have to charge a certain fee for our server, and the app provider will have to have their users pay those. I don&apos;t know how it will work with them also making something on top of that. Those are things that we will figure out once real apps are going to launch on mainnet, and we&apos;re going to have a bit of an open question as to what the business models will be.</p><p><strong>Stephan:</strong>&#xA0;But theoretically, you would charge some kind of liquidity fee and kind of service and protocol fee at your level, and then the app guys are going to have to add something on their level too, and the end user will pay the combined fees.</p><p>I&apos;m curious from your perspective&#x2014;again, it&apos;s an open question, we don&apos;t know&#x2014;but do you think those two combined fees that we were just talking about will be less than Lightning, like a Phoenix user or a Zeus user, this kind of thing? Or it&apos;ll be in the same ballpark, or less? What do you think?</p><p><strong>Steven:</strong>&#xA0;I don&apos;t know the latest on fee schedules, but when we started the company, we were crunching some numbers, trying to do some math, and what we came up with was that just to hold money in the Ark continuously with the parameters that we chose at the time&#x2014;like 1-hour round, 30-day expiry&#x2014;it would be around half a percent of your money that you would have to pay every year to keep the money in the Ark securely.</p><p>We set some pretty conservative trust barriers there, like with the number of days before the expiry you actually go and refresh. I think at the time, half a percent was basically what Phoenix charged on receiving your money anyway. When you receive from onchain into your Phoenix wallet, they would charge you half a percent anyway. So just having a single receive is the same as having your money for a whole year in the Ark.</p><p>When it comes to individual payments, our cost base is so low, we can go really competitive, I think. But again, there is a cost base just to have your money in the Ark. So it&apos;s definitely not something where people will be holding their entire savings, because it might be cheaper to make a single offchain payment and then hold your money there for 20 years instead of in the Ark.</p><p>But I feel we can be really competitive on that front just because our liquidity management is very efficient. We just have to do the math.</p><p><strong>Stephan:</strong>&#xA0;Interesting. I could probably look it up, but off the top of my head, I think the Phoenix fee, the async fee, I think it&apos;s on payments&#x2014;it&apos;s 0.4% of the amount you&apos;re sending. So on $1,000 of a payment, it&apos;s like $4 worth of transaction fee. But also there&apos;s a swap-in fee, so if you take an onchain payment and you want that available in Lightning, I think that&apos;s 1% plus the mining fee, something like that. It&apos;s in that ballpark.</p><p>So I guess it&apos;ll depend, but also I think we have to remember what was the purpose of all this&#x2014;the point was to make it easy to onboard. And if this is easy to get people onboarded, then maybe people are okay to pay a different fee, whether that&apos;s a bit more or a bit less. I don&apos;t know, maybe it&apos;s a different user experience.</p><p>I think one thing that was kind of topical was&#x2014;I don&apos;t know if you have an opinion on this&#x2014;but Orange Pill app, they&apos;re an app for kind of meeting, and they recently launched a custodial Lightning wallet. Then there were a few people saying, &quot;Oh, why&apos;d you do custodial? Could you have done some other thing?&quot; In this case, would Ark&#x2014;now again, you just launched on signet, not on mainnet&#x2014;but hypothetically, if this was available on mainnet, could that have been an option?</p><h2 id="the-role-of-custodial-solutions-for-onboarding-users-plans-for-mainnet-launch">The role of custodial solutions for onboarding users; Plans for mainnet launch</h2><p><strong>Steven:</strong>&#xA0;Definitely. That&apos;s definitely the kind of target integrator that we have. If you visit our website, it&apos;s one of the main talking points that we have&#x2014;that we want to make it as easy as possible for an app developer to integrate Lightning.</p><p>So we want to have a very intuitive and simple SDK where you basically have some API calls from your wallet that holds you a balance that you can both make Lightning payments with and onchain payments with. That&apos;s basically the experience that we want to give to the developers.</p><p>So any DCA company that wants to have a built-in wallet, any wallet that wants to have a bitcoin wallet with a Lightning wallet combined, can definitely use our SDK or should try to start using our SDK because that&apos;s definitely what we&apos;re targeting for our product. So something like Orange Pill app is definitely yeah...</p><p><strong>Stephan:</strong>&#xA0;Gotcha. But I guess for now it&apos;s early days because you&apos;re in signet. But once you&#x2014;maybe it&apos;s again, you don&apos;t know yet&#x2014;but do you know when you would look to go to mainnet? Are you going to try to go to mainnet in a year, or six months? Do you have an idea, or not yet?</p><p><strong>Steven:</strong>&#xA0;Personally, I would really like to have mainnet by end of summer or something. But you know how engineering goes&#x2014;hopefully this year would be really good. But I guess it also depends how things go in signet with people playing around.</p><p><strong>Stephan:</strong>&#xA0;Definitely want some testing...</p><p><strong>Steven:</strong>&#xA0;Yeah, exactly. And we definitely want to look for some integrators who are willing to take the first step, be the first mover, and already integrate even though we don&apos;t have mainnet yet. Just to see where the pain points are because it makes little sense to launch a mainnet and then realize that our product is not really easy to integrate with on mobile, just because of the mobile challenges.</p><p>So we want to learn first and, at the same time, make our server more robust, because the server still also has a lot of work to do. And then have our client be flexible enough to actually be an easy-to-integrate product.</p><p><strong>Stephan:</strong>&#xA0;I think we touched on this a little bit in terms of business models. Like you&apos;re going to charge your fee, and the app creators are going to charge their fee. Are you going to be the only type of Ark server for what you&apos;re doing, or is the idea that there would be competing other Ark servers doing the same protocol? Can you explain a bit on that?</p><h2 id="is-there-a-possibility-of-competing-ark-servers-in-the-future">Is there a possibility of competing Ark servers in the future?</h2><p><strong>Steven:</strong>&#xA0;All our code is fully open source. We don&apos;t have heard of much interest from other parties for now who want to set up Ark servers. It&apos;s definitely not as easy as setting up a Cashu mint or something like that&#x2014;it&apos;s a bit more involved.</p><p>Also, the amount of liquidity you kind of need to service your users in a proper way is going to be a bit high. We don&apos;t really imagine that it&apos;s a &quot;run the node from your home&quot; kind of product. It&apos;s definitely possible for other parties to set up Ark servers, but we don&apos;t really have a lot of interest in that for now.</p><p>I think we will probably be one of the first or the first, right? Because it&apos;s our own software, it&apos;s our own product. So we&apos;ll probably be the first, and maybe for a long time, we&apos;ll be the only Ark server providing this service. But who knows&#x2014;if it picks up and people really realize that this is a really good product to integrate for your wallets, maybe some larger parties will also run a server.</p><p><strong>Stephan:</strong>&#xA0;I see. It&apos;s possible that some big exchange, let&apos;s say they want to do it, they might be like, &quot;Hey, we&apos;ll just run our own Ark server.&quot; That could happen.</p><p><strong>Steven:</strong>&#xA0;And I think from the user experience point of view, I think most app providers, just to make the user experience easier, will pick one server and just have this one as the default. But it&apos;s definitely possible that there are apps that let you choose a server, maybe even with a QR code where you can say, &quot;Okay, I want to be part of this server.&quot; You scan a QR code, so you get all the details to be part of the server. Those things are possible.</p><p>We currently just focus on building our own server and then have the clients communicate with that. But everything is made&#x2014;everything is ready for other people to run the same server.</p><p><strong>Stephan:</strong>&#xA0;I see. But I mean, presumably, this is sort of very cutting edge, bleeding edge sort of stuff, so you kind of need to be someone who really intimately understands it. So it&apos;s probably not that easy for just another developer to kind of pick it up and run their own thing. They would really have to understand the nuances of it.</p><p><strong>Steven:</strong>&#xA0;Exactly. In our benefit, I always think it&apos;s not easy to trust a server that someone else has built with millions of your own money. So I think we have an edge over other companies trying to run servers because we wrote the code. We understand kind of where you need to be careful.</p><p>So we will always have some kind of benefit in that sense. But who knows&#x2014;if this product matures a lot, maybe there will be others. Maybe they will talk to us to have a support contract or something like that. That remains to be seen. Currently, we&apos;re focusing on having a service that runs and then users that can talk with it.</p><p><strong>Stephan:</strong>&#xA0;Gotcha. One other question around the liquidity&#x2014;just because I&apos;m curious as well&#x2014;as you were mentioning, the cost at least from a liquidity requirement at the Ark server level is if the end user wants to do a refresh of his VTXO well before it expires. Is my understanding correct?</p><h2 id="liquidity-management-user-fees">Liquidity management &amp; user fees</h2><p>If my balance is 1 million sats and I want to refresh it one day before my expiry, that&apos;s not a very high liquidity requirement on you, the Ark server. But if I&apos;m a baller and I&apos;ve got 50 bitcoin or something&#x2014;some ridiculous amount&#x2014;and I want to refresh three weeks before my expiry, that places a much higher liquidity requirement. Am I understanding that correctly?</p><p><strong>Steven:</strong>&#xA0;Liquidity is a simple multiplication. It&apos;s like the amount times the number of days or times the time. So if someone has one bitcoin and they&apos;re going to refresh one day before expiry, it&apos;s like one bitcoin-day that we have as a liquidity cost. If they want to do it one week before, we will have seven bitcoin-days liquidity cost. So it&apos;s literally a linear function.</p><p>What we will have to do is just charge them a certain fee on the bitcoin-days that they take&#x2014;that they want us to provide this liquidity. So if you want to refresh earlier, you&apos;re going to pay a slightly higher fee. If you&apos;re going to refresh later, you&apos;re going to pay a slightly smaller fee. I think it can be pretty transparent.</p><p>One of the other numbers that we crunched in the beginning was the worst case. Let&apos;s say you want to refresh immediately. So you receive an offchain payment, it has still 30 days to go, you want to refresh it immediately over 30 days. I think the cost with some reasonable market rates that we found online was that it would be like 0.1% for the worst case. So it&apos;s still doable to pay 0.1% on a payment if you want full self-custodial security.</p><p>I think like you just mentioned the numbers from Phoenix&#x2014;it&apos;s kind of still better than Phoenix, even though...</p><p><strong>Stephan:</strong>&#xA0;I guess some listeners might also be curious: is there any way to be a liquidity provider here, or is that more like it&apos;s centrally managed by your company?</p><p><strong>Steven:</strong>&#xA0;It&apos;s not like other people can provide liquidity here, definitely not in a trustless way. We, as our company, will not have all this bitcoin to provide this liquidity, so we will also borrow it from liquidity providers. But this is more in a trustful way. There&apos;s no way to use the bitcoin blockchain as a contract so you can trustlessly...</p><p>We&apos;ve been doing some thinking. There are certain few tradeoffs that we can make to give liquidity providers a few more guarantees than just fully blindly trusting us, but it&apos;s a bit hard to do. It&apos;s never fully waterproof. So I think it&apos;s better to have just contracts and agreements that make sure that those things happen.</p><p><strong>Stephan:</strong>&#xA0;Right, it&apos;s the course. I mean, between large businesses and banks and custodians and exchanges and all this&#x2014;that&apos;s a different kettle of fish than the typical &quot;not your keys, not your coins.&quot; And which is another reason why I don&apos;t imagine that groups of friends will run their own servers, because they would just need a lot of liquidity. The liquidity requirements would just be so high that it just wouldn&apos;t be practical.</p><p><strong>Steven:</strong>&#xA0;Yeah, gotcha.</p><p><strong>Stephan:</strong>&#xA0;Okay, so just to be clear, we&apos;ve spoken about, I guess, effectively what we&apos;ve spoken about today is known as clArk, right? Like Covenant-less Ark. So just to make it clear for listeners, this is today without protocol change, without a soft fork of bitcoin.</p><p>I&apos;m just curious as well to understand a little bit of your view on Ark with CTV or TXHASH or something like this. What would be concretely enabled by this, and what kind of efficiency gains do you see being possible there?</p><h2 id="arks-future-with-ctv">Ark&apos;s future with CTV</h2><p><strong>Steven:</strong>&#xA0;That&apos;s a good question. The current implementation that we&apos;re building is built on what we call co-signing. So the whole transaction tree, instead of being non-interactive, it&apos;s co-signed. All the users who are part of the tree need to put some signatures there, and all the transactions have signatures on them, and then they cannot change anymore if just one of the parties who are participating holds up the contract of the co-signature.</p><p>With CTV, you can just remove all of the signatures, all of the messages that need to be passed beforehand to make the signatures, and just immediately, the server can create the whole tree of transactions with all the different VTXOs in its leaves and just send them to the users and say, &quot;Here, this is the tree that we&apos;re going to do for this round,&quot; and then immediately move on.</p><p>So there&apos;s definitely, primarily, a lot of efficiency gains. It reduces the protocol from being a three-step to a two-step process. It reduces the amount of data that needs to be passed. Especially on mobile, I think this can be a big benefit.</p><p>But then there are also a few things that are just not possible. The main way to think about it is that with clArk, the person who will eventually be the owner of a VTXO needs to be present when the VTXO is created, because otherwise, it&apos;s not trustless. Because they need to sign all the transactions that lead up to their VTXO. So if they&apos;re not present, it&apos;s not possible to create a VTXO for someone else in a trustless way.</p><p>There are a few things that would be enabled if it would be possible to create a VTXO for someone else.</p><p>One of the things is, as I already said before, some big payout provider like an exchange or a DCA provider, or even a miner&#x2014;because this is also very interesting, I think, for miners&#x2014;they cannot just create VTXOs for their users. With CTV, they could do that. They could basically create their own tree of VTXOs because a VTXO is just an onchain contract with a certain template. So anyone can create a VTXO for a certain Ark.</p><p>So then, for example, an exchange could just create a whole tree with 10,000 different payouts of different VTXOs, deterministically created using CTV and unfund the output, and suddenly tell the users, &quot;Hey, here you have bunches of VTXOs&quot; without needing the users to be there. I think that&apos;s something very powerful.</p><p>Another thing is, for example, for Lightning receives&#x2014;as users might have noticed, it&apos;s not something we support right now in our signet. We had some ideas, we were refining the ideas still, and we didn&apos;t want to hold up doing this signet launch until we had everything figured out. But we have a version now that we&apos;re testing in our tests.</p><p>Lightning receive is a little bit more involved to do because, somehow, if your user doesn&apos;t have anything in the Ark and you want to receive some Lightning, there needs to be something created for the user in the Ark. With CTV, it would be a little bit easier because then the ASP could just create a VTXO with an HTLC again, but then an incoming HTLC, not an outgoing one. The user just gives the preimage, and from that point on, the user owns the VTXO.</p><p>Without CTV, the user would have to somehow be woken up like, &quot;Hey, hey, you&apos;re going to receive a Lightning payment,&quot; and he needs to enter the next round, be online for maybe half an hour to wait for the round to start, and then do the whole shenanigans of participating in the round to then have their Lightning payment, instead of having just one message signature and done. So for Lightning receives, CTV also is very useful.</p><p>And then the last big thing is something that we want to provide as a service: when users forget to refresh their VTXOs before they expire. Your phone goes down, or you don&apos;t have internet for a week because you forgot, or like you say on iOS, your app got killed and it didn&apos;t manage to just wake up to refresh.</p><p>There are going to be cases when users forget to refresh their VTXOs in time, and they&apos;re going to expire. Obviously, we as the server don&apos;t intend to just take the money and be very happy with it. No, we want the user to have the money back.</p><p>What we want to do, and what we can do with CTV, is immediately when it expires, immediately reissue the VTXOs again, so that the users, when they come back online one day too late, will see, &quot;Ah, okay, my money is still here, and it&apos;s still in a trustless VTXO.&quot; So then there&apos;s only this split second where the ASP could have done something bad but didn&apos;t.</p><p>It&apos;s actually also possible for the ASP to continuously cryptographically prove like, &quot;Hey, we didn&apos;t take any money, we didn&apos;t take any money, we didn&apos;t take any money.&quot; So someone who&apos;s monitoring the server can basically guarantee, &quot;Okay, this server has behaved well since its inception, and it has never taken anyone&apos;s money.&quot; This should give a little bit of a guarantee to users to put a little bit more trust into this server.</p><p>But without CTV, this is also not possible to do because you cannot recreate these VTXOs for the user. The user would have to be present for them to be created. So with CTV, we can just always see, &quot;Oh, this VTXO expired; immediately we create them again in the next block.&quot; But that&apos;s not possible without CTV.</p><p><strong>Stephan:</strong>&#xA0;I see. So just to clear up, to summarize, you&apos;ve got this mass payout use, like the exchange/custodian, the trustless Lightning receive, and then also the refreshing case.</p><p><strong>Steven:</strong>&#xA0;Oh, and one that I forgot&#x2014;another one is just sending payments in rounds. Currently, we send out of rounds, and we use the rounds for refreshes. This is because the receiver needs to be online, and the sender always needs to be online, and it&apos;s kind of annoying to have them both need to be online. So when you do a refresh, the receiver and the sender is the same person, and since the sender has to be online anyway, he&apos;s also the receiver, so it doesn&apos;t add any interactivity requirements.</p><p>But with CTV, you could also send the VTXO immediately without having to use arkoor to someone else. Arkoor is usually the better option, but if you really want something&#x2014;I don&apos;t know, if you&apos;re doing like plus $100K or something like that, you&apos;re buying a car or something&#x2014;you might want to send something in rounds, and that&apos;s currently just not possible, while with CTV you could just say, &quot;Hey, I&apos;m sending this VTXO to this person and not myself,&quot; and then it would be possible.</p><p><strong>Stephan:</strong>&#xA0;Interesting. As I&apos;m understanding, the point here is&#x2014;at least the approach that the Ark teams, both yourself and the other Ark Labs team, are taking&#x2014;is more like, &quot;Let&apos;s build with what we have today.&quot; But I guess you&apos;re also separately trying to explain and show, &quot;Well, if we had CTV or TXHASH and so on, these are the efficiency gains we could get.&quot;</p><p>But the point is to show: at least today, can there be users, can there be some kind of efficiency or at least some kind of onboarding use case even with clArk as it exists today, before adding CTV and all these things, right?</p><p><strong>Steven:</strong>&#xA0;Definitely. We&apos;re definitely confident that we can build something that is already a good benefit over lots of the current self-custodial Lightning experiences just with what we have today in bitcoin, in the clArk version, the Covenant-less version.</p><p>We&apos;re also in a very good position when it comes to covenants because, in theory, any covenant possible would make a difference for us, would make it better for us. So we just want something to happen at some point, and then we will be happy. It&apos;s not like we need something very specific.</p><p>So we&apos;re definitely in the covenant camp, and we&apos;re definitely trying to make bitcoin better also on this front, also to enable lots of other things that have nothing to do with Ark. But we&apos;re also not too worried or not too time-sensitive because what we&apos;re building right now, I think, can be very valuable as well without having the covenants yet.</p><p>If this wasn&apos;t possible, we wouldn&apos;t be building it today because it&apos;s a lot of work, as you can see. We&apos;ve been six months in or even more, and we still have some work to do. But of course, we want to deliver user experience&#x2014;we don&apos;t want to be waiting on the bitcoin protocol to upgrade before we can deliver that.</p><p><strong>Stephan:</strong>&#xA0;I see. I don&apos;t consider myself a technical protocol expert or anything, but from your perspective&#x2014;you&apos;re someone who&apos;s really deeply into this&#x2014;can you explain your thoughts on it? It seems like developers are excited about CTV and CheckSigFromStack. Can you explain a little bit of your perspective on this? Why is this a useful path forward from your perspective, and what do you see being enabled by CTV and CheckSigFromStack?</p><h2 id="what-is-the-potential-of-ctv-and-checksigfromstack">What is the potential of CTV and CHECKSIGFROMSTACK?</h2><p><strong>Steven:</strong>&#xA0;The people that are following&#x2014;there&apos;s been some noise or some movement around the CTV plus CheckSigFromStack package as a potential software upgrade. It mostly started from some Twitter things going on, and I posted some kind of roadmap that I thought was a good roadmap. Obviously, it was Twitter, so I hadn&apos;t thought a whole lot about it. And then people started to be a little bit interested in this.</p><p>One of the main points that I found compelling in this is that CTV and CheckSigFromStack are both very simple primitives. They&apos;re very technically well specified, and there&apos;s not much bikeshedding potential. They&apos;re all several years old&#x2014;CTV has been proposed maybe like four or five years ago, quite some time ago, and CheckSigFromStack has been in Liquid since seven years ago. They&apos;re both doing a very specific thing.</p><p>I think since they&apos;re going to be useful into the future anyway, even if we have more complex covenants like CheckContractVerify or TXHASH or stuff like that, or direct introspection, I think having either CTV and CheckSigFromStack are going to be useful anyway. So my point of view was: if we&apos;re going to use them in the future anyway, why not already add those while we work out which other things we think are useful?</p><p>I mean, any software upgrade that enables covenants in a good way is going to involve multiple moving parts that are a little bit independent from each other. I don&apos;t think we need to package everything in one go and say, &quot;Okay, this is everything you need to do the perfect covenants,&quot; and then do it in one go. I think it makes sense to first start with some smaller building blocks and then see which other building blocks we want to build on top of that. I just thought CTV and CheckSigFromStack were really good small first building blocks.</p><p>Independently, they don&apos;t enable everything that we want to enable with full covenants&#x2014;they don&apos;t, they&apos;re not magical tools, they&apos;re quite simple&#x2014;but there are still, I think, quite some compelling things that you can do using CTV and CheckSigFromStack. Things like L2 like the Lightning symmetry that people have been talking about for a long time. The Lightning symmetry has gone up and down a little bit among Lightning developers, but I think it&apos;s still something that many Lightning developers are very excited about.</p><p>All the things I mentioned with Ark you can do, and then there are some smaller optimizations or changes that can be made to things like DLCs, to things like even very primitive vaults or stuff like that.</p><p>There&apos;s a lot of discussion of &quot;Can we really say CTV can do vaults? Can we really say CTV can do X or Y?&quot; And it&apos;s like, yeah, maybe not the way we really want this to be done, but we can already move the needle a little bit forward and then see what else we need to make the full vaults, the full coin pools, the full like BitVM-like offchain proving protocols.</p><p>I think we&apos;re a bit far from having the full covenant package figured out, and I think we have iterated and thought enough about CTV and CheckSigFromStack specifically that we can enable them. We see some value in them, and we can keep them even when we move beyond, even if we move into more elaborate constructions like the full covenants. But it&apos;s definitely a difficult topic to talk about.</p><p><strong>Stephan:</strong>&#xA0;And I get the sense, or at least from what I&apos;m seeing, some developers are saying is that these are small changes that are relatively well understood. Do you think the, let&apos;s say the naysayer might look at that&#x2014;I&apos;m not a naysayer myself&#x2014;but could a naysayer say, &quot;Well, I&apos;m concerned there could be some kind of deep implication. If you create this or you enable this, you&apos;re going to enable some other things that they don&apos;t want&quot;? I&apos;m curious how you see that or how you think about that.</p><p><strong>Steven:</strong>&#xA0;Specifically, these two opcodes are so basic, it&apos;s really hard to do any cool stuff, basically. That&apos;s where the discussion also halts a little bit, because for some people, it&apos;s like, &quot;Oh, we can&apos;t do enough. What this enables is not enough to convince us that we should do a soft fork.&quot; Because a soft fork is not something you just do every day. So some people are like, &quot;Okay, sure, you can improve Ark and do L2, but is this enough to do a soft fork?&quot;</p><p><strong>Stephan:</strong>&#xA0;Too small to bother...</p><p><strong>Steven:</strong>&#xA0;Exactly. On this argument, I don&apos;t think it would upset any naysayers or people who are afraid of fully recursive covenants or whatever they are called&#x2014;these more elaborate constructions that covenants can give, things like market makers, things like coin pools. There&apos;s nothing like that that&apos;s kind of possible in a real way to build with this.</p><p>So that&apos;s for me one of the compelling arguments&#x2014;that we can already innovate, even if it&apos;s a little bit, on Ark, on Lightning, stuff like that, without having fully figured out as a community what kind of covenants we&apos;re scared about when it comes to mempools or something like that. What kind of covenants do we really want to build? Which ones do we not want to build? How do we want to build them? Because we still have several different proposals on how to build good covenants in a good developer-friendly way and in a network-safe way.<br><br>So while we still figure those things out, I think those two are tools that can be used in surprising ways. Like I said, CTV has been around for something like four years (since 2019, I think, so maybe like five years), and only last year someone came up with Ark. I mean, Ark is something that was actually entirely built on CTV. We kind of made tweaks to not need CTV in the end, but it was totally built on CTV, and this was 3 or 4 years after CTV existed.</p><p>So people still have a lot of room to figure out new cool things, and I think if we enable them, people will move the barrier and how far they can think into possible protocols a bit further. So maybe there&apos;s going to be something really cool that CheckSigFromStack and CTV enable that we only find out 2 years after it&apos;s been activated, but you never know.</p><p><strong>Stephan:</strong>&#xA0;And I think it would be&#x2014;it sounds like from what I&apos;ve heard from developers, it sounds like it would really get us more efficiency, whether that&apos;s Lightning and Lightning symmetry or L2 or DLC or whatever the different forms people are talking about with that. Or on the Ark side, the improvements you&apos;ve mentioned there.</p><p>But I guess it&apos;ll take some time, and maybe people have to sort of see some people using, let&apos;s say, clArk, the covenant-less form of Ark, and then maybe after some time of that, then they think, &quot;Okay yeah, let&apos;s&#x2014;we want CTV and CheckSigFromStack.&quot; I mean, who knows, right?</p><p>So let&apos;s close up. If you have any closing thoughts on bringing it back to bitcoin today, what&apos;s possible today with Ark&#x2014;can you spell out for people what are they missing? What is the big takeaway that you think most bitcoiners do not understand about Ark and what it can do for people?</p><h2 id="the-importance-of-ark-in-bitcoins-ecosystem">The importance of Ark in bitcoin&apos;s ecosystem</h2><p><strong>Steven:</strong>&#xA0;The biggest one is that it exists. I mean, we&apos;re actually building it. We&apos;re targeting for mainnet, and currently, you can try it out on signet. So like, go try it out because it&apos;s actually a thing. It&apos;s actually making Lightning payments possible without all the headaches that traditionally came with Lightning.</p><p>We&apos;ve talked with several wallet developers who have tried to integrate Lightning. They have tried different approaches, different stacks like the Breez stack that is now based on Liquid or something like that, or the Greenlight stack that also has a different approach. They&apos;ve tried several of them, and they were not very satisfied because there&apos;s always a little bit of hurdles that they don&apos;t want their users to need to take on.</p><p>With Ark, the user experience is just slightly better than all that, even without covenants or even without whatever. Today on bitcoin, we can have an experience that is better than what we have today. It&apos;s way easier for developers to actually give this experience to their users.</p><p>So yeah, try it. We have the tutorial and the things up if you go to second.tech, and you can just play with it. We have a little store where you can pay some Lightning payments using Ark. We have a faucet where you can get some Ark coins. And the next step will be making this SDK implementable in mobile wallets or mobile platforms.</p><p><strong>Stephan:</strong>&#xA0;Excellent. Let&apos;s see, maybe this will be a good way to onboard people where those people would have otherwise been custodial. So I think that&apos;s something that, let&apos;s say, most of us who are ideological bitcoiners would like&#x2014;we want more people to use &quot;not your keys, not your coins.&quot;</p><p>So yeah, let&apos;s leave it there. Listeners, check it out&#x2014;links will be in the show notes. And the website again is second.tech. Steven, thanks for joining me today.</p><p><strong>Steven:</strong>&#xA0;Awesome, yeah. Thank you for having me.</p>]]></content:encoded></item><item><title><![CDATA[Try Ark on signet]]></title><description><![CDATA[Test Ark on bitcoin signet—set up a wallet, get sats on the faucet, and buy Byte some treats on our signet store. ]]></description><link>https://blog.second.tech/try-ark-on-signet/</link><guid isPermaLink="false">67d7ee6799e7686bf8eb0e15</guid><dc:creator><![CDATA[Erik De Smedt]]></dc:creator><pubDate>Wed, 19 Mar 2025 15:50:32 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2025/03/blog-signet-launch.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2025/03/blog-signet-launch.jpg" alt="Try Ark on signet"><p>Today we&apos;re launching our implementation of the Ark protocol on signet. This is our first major step toward bringing Ark to bitcoin mainnet, and we&apos;re inviting the developer community to help us test, explore, and break things (preferably in that order).</p>
<h2 id="get-your-apps-ready-for-arks-launch">Get your apps ready for Ark&apos;s launch</h2>
<p>The Ark protocol is a new bitcoin layer two that enables fast, low-cost payments without sacrificing self custody.</p>
<p>Ark offers bitcoin users a whole new way to transact, while also making it much easier to deliver self-custodial Lightning in your apps.</p>
<p>But Ark is unlike anything built on bitcoin so far, so there are a few new concepts to get to grips with, like sends and refreshes, rounds and expiry, and off-boarding and exits.</p>
<p>If you&apos;re interested in being a first mover, the time is now to start getting comfortable with the tech. Nothing beats getting hands-on.</p>
<h2 id="why-signet">Why signet?</h2>
<p>Ark is still in alpha, and it can lose you sats. There&apos;s time for recklessness, but now isn&apos;t it. Signet provides the perfect sandbox&#x2014;a bitcoin testnet with predictable block times and network conditions that closely mirror mainnet.</p>
<h2 id="testing-tools-at-your-disposal">Testing tools at your disposal</h2>
<p>To make testing as straightforward as possible, we&apos;ve created two companion tools:</p>
<h3 id="signet-faucet">Signet faucet</h3>
<p>No one likes having to hunt down signet sats. <a href="https://signet.2nd.dev">Our faucet</a> makes it simple to request signet sats over both Ark and &quot;on-chain&quot;.</p>
<p><img src="https://blog.second.tech/content/images/2025/03/signet-faucet-screenshot-1.png" alt="Try Ark on signet" loading="lazy"></p>
<h3 id="test-store">Test store</h3>
<p>Somewhere to spend your signet sats. Buy Byte treats on <a href="https://signet.2nd.dev/store">our simple test store</a> that accepts signet payments over Lightning (bark supports sending Lightning payments!)</p>
<p><img src="https://blog.second.tech/content/images/2025/03/byte-store-screenshot.png" alt="Try Ark on signet" loading="lazy"></p>
<h2 id="collecting-usage-data-and-feedback">Collecting usage data and feedback</h2>
<p>This signet deployment is also going to help our team prepare for mainnet launch beyond basic bug hunting. We&apos;re especially interested in getting some basic usage data so we can begin optimizing our liquidity management (both Ark and Lightning liquidity). Data from testers is not going to match real-world usage, but we have to start somewhere!</p>
<p>It&apos;s important to gather feedback on the developer experience too, so make sure you share both the good and the bad!</p>
<h2 id="work-in-progress">Work in progress</h2>
<p>One feature you&apos;ll notice is conspicuously absent: Lightning receive functionality. We&apos;re aware of this limitation and actively working on it.</p>
<p>We also haven&apos;t yet implemented any transaction fees&#x2014;we&apos;re still researching what makes most sense here. If you want to send free transactions, now is the time &#x1F44C;.</p>
<p><a href="https://second.tech/#subscribe"><strong>Subscribe to be first to hear about updates</strong></a>.</p>
<h2 id="get-started">Get started</h2>
<p>The fastest way to get started is to follow <a href="https://docs.second.tech/getting-started/">our new signet testing guide</a>. That covers everything from getting bark running on your device (Linux, macOS, and Windows supported) to funding the wallet, to making payments over Ark and Lightning.</p>
<p><strong>Let us know how you get on <a href="https://community.second.tech">in our new forum</a> and thanks for helping us pioneer the next frontier of bitcoin payment tech!</strong></p>
]]></content:encoded></item><item><title><![CDATA[The arkoor standard]]></title><description><![CDATA[We're making arkoor the default Ark payment method—improving reliability, reducing interactivity, and reducing costs for users.]]></description><link>https://blog.second.tech/the-arkoor-standard/</link><guid isPermaLink="false">6758648699e7686bf8eb0d52</guid><dc:creator><![CDATA[Erik De Smedt]]></dc:creator><pubDate>Thu, 12 Dec 2024 16:34:26 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2024/12/byte-parkour-2-01.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2024/12/byte-parkour-2-01.jpg" alt="The arkoor standard"><p>We&#x2019;ve made arkoor the standard for payments on our Ark implementation. Instead of offering users the option of making <em>either</em> out-of-round (arkoor)<em> or</em> in-round payments, <strong>all payments will be arkoor by default</strong>, with in-round transactions reserved for refreshing VTXOs only.</p><p>We took this decision after our tinkering indicated that an arkoor-first policy helps on multiple fronts:</p><ul><li>Expands device support by reducing the interactivity between wallets and Ark server.</li><li>Offline receive enabled on wallets by default.</li><li>Makes the Ark server more reliable with less failed rounds.</li></ul><p>Moreover, <strong>there are no security trade-offs </strong>as long as the receiver chooses to &#x201C;refresh&#x201D; into an in-round VTXO in the round immediately after receiving a payment. This takes the same amount of time it does to receive an in-round payment directly.&#xA0;</p><p>Don&#x2019;t worry, you won&#x2019;t even notice&#x2014;Ark payments will be swift and your bitcoin will be self-custodial.</p><p>Let&#x2019;s dive into our motivations and how the new policy works in more detail&#x2026;</p><h2 id="a-brief-recap-in-round-vs-arkoor"><strong>A brief recap: In-round vs. arkoor</strong></h2><p>There are two ways of constructing a transaction (VTXO) on Ark:&#xA0;</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://blog.second.tech/content/images/2024/12/image-2.png" class="kg-image" alt="The arkoor standard" loading="lazy" width="2000" height="409" srcset="https://blog.second.tech/content/images/size/w600/2024/12/image-2.png 600w, https://blog.second.tech/content/images/size/w1000/2024/12/image-2.png 1000w, https://blog.second.tech/content/images/size/w1600/2024/12/image-2.png 1600w, https://blog.second.tech/content/images/2024/12/image-2.png 2124w" sizes="(min-width: 1200px) 1200px"></figure><p>For more details on how each transaction type works, <a href="https://docs.second.tech/ark-protocol/intro/" rel="noreferrer"><u>see our docs</u></a>.</p><h2 id="interactivity-hurts-reliability-and-ux"><strong>Interactivity hurts reliability and UX</strong></h2><p>In a successful Ark round, all users and the Ark server will together construct various transactions and sign them. Users connect to the Ark server to coordinate and aggregate transaction data and signatures.</p><h3 id="reliability-issues-of-in-round-payments"><strong>Reliability issues of in-round payments</strong></h3><p>Each round has three phases of interaction.</p>
<!--kg-card-begin: html-->
<ol>
  <li>
    <strong>Transaction registration (<span style="color:#3d8afb;">senders</span>):</strong> 
    Senders register their transactions. They tell the Ark server which VTXOs they want to spend 
    and what VTXOs they want in return.
  </li>
  <li>
    <strong>Tree signing (<span style="color:#fa1336;">receivers</span>):</strong> 
    All receivers sign their branch of the tree.
  </li>
  <li>
    <strong>Forfeit signing (<span style="color:#3d8afb;">senders</span>):</strong> 
    All senders sign the forfeit transactions. The forfeit is conditional on the round coming through.
  </li>
</ol>
<!--kg-card-end: html-->
<p>At each phase in the process things can go wrong. An honest client might lose their internet connection and fail to provide the required signature. Or a malicious client could Denial of Service (DoS) attack the round by providing a faulty signature. In either case, the round must be aborted and restarted.</p><p>While an Ark server can defend against DoS attacks by banning misbehaving clients, it&#x2019;s still unavoidable that the more users you have using in-round payments to send to one another, the higher the chances of failed rounds occurring.</p><h3 id="ux-issues-of-in-round-payments"><strong>UX issues of in-round payments</strong></h3><p>Then there&#x2019;s the UX issues of in-round payments. Our current line of thought is to perform a round every hour. This means that an Ark user has to wait up to an hour to attempt the payment. And if the receiver isn&#x2019;t online at the time, the payment will fail and the sender has to wait another hour for a second attempt.</p><p>An in-round payment also requires both the sender and receiver to be online throughout the round&#x2014;a burden for the sender to coordinate.&#xA0;&#xA0;</p><h2 id="a-na%C3%AFve-solution-sender-signed-trees"><strong>A na</strong>&#xEF;<strong>ve solution: Sender-signed trees</strong></h2><p>Sender-signed trees were our first attempt to tackle the problem. In this concept, we modified the round-signing ceremony so that senders could perform all the steps without any signatures from the receivers. This eliminated the need for both sides to be online during the round.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://blog.second.tech/content/images/2024/12/Receiver-signed-vs-sender-signed-trees-1.svg" class="kg-image" alt="The arkoor standard" loading="lazy" width="1132" height="1483"><figcaption><span style="white-space: pre-wrap;">Receiver-signed vs. sender-signed transaction trees</span></figcaption></figure><p>Sender-signed trees result in a slight change to the phases of interactions: </p>
<!--kg-card-begin: html-->
<ul>
  <li>
    <strong>Transaction registration (<span style="color:#3d8afb;">senders</span>):</strong> 
    Unchanged.
  </li>
  <li>
    <strong>Tree signing (<span style="color:#3d8afb;">senders</span>):</strong> 
    All senders sign the full tree (not just their branch).
  </li>
  <li>
    <strong>Forfeit signing (<span style="color:#3d8afb;">senders</span>):</strong> 
    Unchanged.
  </li>
</ul>
<!--kg-card-end: html-->
<p>However, this approach resulted in a new problem: the receiver no longer had a signature in the tree, without which, they couldn&#x2019;t be <em>absolutely certain</em> that nobody could change the tree with their permission.</p><p>In practice, we expect trees to become quite large, making it feel relatively safe to assume that at least one out of, say, 100 senders (or the Ark server) is acting honestly. However, this assumption can create a false sense of security, as the Ark server could launch a Sybil attack on the receiver. A receiver might believe their transaction is secured by hundreds of independent senders when, in fact, all the senders are the Ark server in disguise.</p><p>We are not aware of a practical defense against such a Sybil attack and we have abandoned the sender-signed tree concept.</p><h2 id="a-better-solution-pay-out-of-round-and-refresh-in-round"><strong>A better solution: Pay out-of-round and refresh in-round</strong></h2><p>Eventually, we realized the solution was much simpler&#x2014;just make arkoor transactions the default and reserve in-round transactions to &#x201C;refreshing&#x201D; balances only:</p><ol><li>Sender creates an arkoor VTXO.</li><li>The Ark server cosigns the VTXO.</li><li>The sender delivers the cosigned VTXO to the receiver via Ark server or any other channel.&#xA0;</li><li>The receiver chooses to refresh the VTXO in-round in the upcoming round (higher cost), or wait until close to expiry to refresh (lower cost).&#xA0;</li></ol><p>In this model, payments are completed instantly and receivers do not need to be online at the moment of payment. The receiver only needs to come online when they want to perform the refresh.&#xA0;</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://blog.second.tech/content/images/2024/12/Refresher-signed-trees.svg" class="kg-image" alt="The arkoor standard" loading="lazy" width="1132" height="799"><figcaption><span style="white-space: pre-wrap;">Refresher-signed transaction tree</span></figcaption></figure><p>The model also significantly reduces the amount of interactivity required by Ark participants each round. Instead of our original sender-receiver round process:</p>
<!--kg-card-begin: html-->
<ul>
  <li>Transaction registration (<span style="color:#3d8afb;">senders</span>)</li>
  <li>Tree signing (<span style="color:#fa1336;">receivers</span>)</li>
  <li>Forfeit signing (<span style="color:#3d8afb;">senders</span>)</li>
</ul>
<!--kg-card-end: html-->
<p>We now get a receiver-only round process:</p>
<!--kg-card-begin: html-->
<ul>
  <li>Transaction registration (<span style="color:#fa1336;">receivers</span>)</li>
  <li>Tree signing (<span style="color:#fa1336;">receivers</span>)</li>
  <li>Forfeit signing (<span style="color:#fa1336;">receivers</span>)</li>
</ul>
<!--kg-card-end: html-->
<p>In any one transaction, only one user needs to be online. It&#x2019;s kind of like the receiver is sending transactions to themselves to gain additional security. If the receiver is not online, they simply don&#x2019;t participate in the round. This will drastically decrease the occurrence of connectivity issues causing rounds to be aborted and restarted.</p><h2 id="what-if-the-receiver-prefers-in-round-payments"><strong>What if the receiver prefers in-round payments?</strong></h2><p>This all sounds great, but what about user choice? Isn&#x2019;t there a security trade-off with arkoor? What if the Ark server and the sender collude?</p><p>In practice, the receiver doesn&#x2019;t lose any security compared to direct in-round payments.&#xA0;</p><p>If they prefer in-round VTXOs and choose to refresh their arkoor VTXO as soon as possible, they obtain an in-round VTXO <em>in exactly the same amount of time it takes to receive an in-round VTXO direct from the sender</em>. But they enjoy the additional benefit of <em>receiving an earlier assurance of the payment via the arkoor VTXO</em>:</p>
<!--kg-card-begin: html-->
<table style="border: medium; border-collapse: collapse;"><colgroup><col width="333"><col width="333"></colgroup><tbody><tr style="height: 0pt;"><td style="border-width: 1pt; border-style: solid; border-color: rgb(0, 0, 0); vertical-align: middle; padding: 5pt; overflow: hidden; overflow-wrap: break-word;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: &quot;DM Sans&quot;, sans-serif; color: rgb(54, 54, 54); background-color: transparent; font-weight: 700; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-alternates: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Direct in-round payment</span></p></td><td style="border-width: 1pt; border-style: solid; border-color: rgb(0, 0, 0); vertical-align: middle; padding: 5pt; overflow: hidden; overflow-wrap: break-word;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: &quot;DM Sans&quot;, sans-serif; color: rgb(54, 54, 54); background-color: transparent; font-weight: 700; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-alternates: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arkoor to in-round refresh</span></p></td></tr><tr style="height: 0pt;"><td style="border-width: 1pt; border-style: solid; border-color: rgb(0, 0, 0); vertical-align: middle; padding: 5pt; overflow: hidden; overflow-wrap: break-word;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: &quot;DM Sans&quot;, sans-serif; color: rgb(54, 54, 54); background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-alternates: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sender creates in-round VTXO</span></p></td><td style="border-width: 1pt; border-style: solid; border-color: rgb(0, 0, 0); vertical-align: middle; padding: 5pt; overflow: hidden; overflow-wrap: break-word;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: &quot;DM Sans&quot;, sans-serif; color: rgb(54, 54, 54); background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-alternates: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sender creates arkoor VTXO and shares with receiver</span></p></td></tr><tr style="height: 22pt;"><td style="border-width: 1pt; border-style: solid; border-color: rgb(0, 0, 0); vertical-align: middle; padding: 5pt; overflow: hidden; overflow-wrap: break-word;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: &quot;DM Sans&quot;, sans-serif; color: rgb(54, 54, 54); background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-alternates: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sender and receiver wait for round</span></p></td><td style="border-width: 1pt; border-style: solid; border-color: rgb(0, 0, 0); vertical-align: middle; padding: 5pt; overflow: hidden; overflow-wrap: break-word;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: &quot;DM Sans&quot;, sans-serif; color: rgb(54, 54, 54); background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-alternates: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Receiver waits for round</span></p></td></tr><tr style="height: 0pt;"><td style="border-width: 1pt; border-style: solid; border-color: rgb(0, 0, 0); vertical-align: middle; padding: 5pt; overflow: hidden; overflow-wrap: break-word;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: &quot;DM Sans&quot;, sans-serif; color: rgb(54, 54, 54); background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-alternates: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Round occurs: Receiver receives in-round VTXO</span></p></td><td style="border-width: 1pt; border-style: solid; border-color: rgb(0, 0, 0); vertical-align: middle; padding: 5pt; overflow: hidden; overflow-wrap: break-word;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: &quot;DM Sans&quot;, sans-serif; color: rgb(54, 54, 54); background-color: transparent; font-weight: 400; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-alternates: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-variant-position: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Round occurs: Receiver receives in-round VTXO</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>The only trade-off is that the liquidity fees of the in-round transaction must be borne by the receiver instead of the sender.&#xA0;</p><h2 id="how-will-this-change-benefit-you"><strong>How will this change benefit you?</strong></h2><p>As a sender, you&apos;ll be able to &#x201C;fire and forget&#x201D; your payments. As a receiver, you&apos;ll be in full control of the security model you want to use and can adapt it to your use case.</p><p>Some examples:</p><ul><li><strong>Low-value retail: </strong>Alice runs a lemonade stand and sells lemonade for 1,000 sats (~$1). Performing a unilateral exit on a single 1,000 sats VTXO is not economically feasible, so Alice chooses to not refresh her arkoor VTXOs immediately after every sale. Instead, at the end of the week, Alice refreshes all her VTXOs into one aggregate VTXO. This VTXO is sufficiently large to perform a unilateral exit (if she ever needs it) so is worth covering the cost of refreshing in-round.</li><li><strong>High-value retail: </strong>Bob has a shop that sells computers for 1,000,000 sats each (~$800). Bob only wants to ship a computer once he is absolutely sure the payment is secure. Bob sets his wallet to refresh his VTXOs every morning so that he can ship all pending orders.</li></ul><p>Note that in-round transactions come with a real cost because the Ark server needs to pay on-chain fees and allocate capital to make them work. In our new arkoor-first model, the receiver is in total control and can adjust costs based on the security model they need.&#xA0;</p><h2 id="what-does-the-future-look-like"><strong>What does the future look like?</strong></h2><p>In light of these changes, we&#x2019;ll have to update our nomenclature. The distinction of in-round vs. out-of-round payments isn&#x2019;t useful anymore. From now on we will simply talk about:</p><ul><li><strong>&#x201C;Payments&#x201D;: </strong>Assumed to occur out-of-round.</li><li><strong>&#x201C;Refreshes&#x201D;: </strong>Refreshing arkoor and/or in-round VTXOs into new in-round VTXOs.</li></ul><p>We&#x2019;ll also keep looking into ways to reduce interactivity. For example, if we get covenants on bitcoin, we can completely skip the second phase of the round process in which the tree must be co-signed by all users.</p><p><em>The new arkoor-first model makes Ark more reliable, intuitive, and puts users in control of balancing cost and security. We&#x2019;re working hard to get it in your hands soon!</em></p><hr><p><strong>To keep up with Ark protocol progress, </strong><a href="https://second.tech/#subscribe" rel="noreferrer"><strong>sign up to our newsletter</strong></a><strong>. Monthly, no spam, unsubscribe at any time. </strong></p><hr><p></p><h3 id><br></h3>]]></content:encoded></item><item><title><![CDATA[Package relay: One free adult with each child]]></title><description><![CDATA[Package relay enables multiple transactions to be packaged, broadcast, and relayed together, and is a huge improvement for layer twos like Lightning and Ark.]]></description><link>https://blog.second.tech/bitcoin-package-relay-and-ark-protocol/</link><guid isPermaLink="false">672b801c4c97e3152be52a5e</guid><dc:creator><![CDATA[Steven Roose]]></dc:creator><pubDate>Wed, 06 Nov 2024 14:43:35 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2024/11/byte-relay.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2024/11/byte-relay.jpg" alt="Package relay: One free adult with each child"><p>Bitcoin Core released a major update to bitcoin&#x2019;s relay policy in <a href="https://bitcoincore.org/en/releases/28.0/"><u>v28</u></a>, introducing the first iteration of a new feature called <em>package relay</em>. Package relay enables multiple transactions to be packaged, broadcast, and relayed together, and is a huge improvement for layer twos like Lightning and Ark, making the protocols more reliable in emergency situations and less expensive to use.&#xA0;</p><p>It&#x2019;s an underreported update that&#x2019;s great for bitcoin users, so in this article I&#x2019;m hoping to give it the attention it deserves and describe how it&#x2019;s made our work at Second a lot easier.</p><h2 id="transaction-relay-and-relay-policy"><strong>Transaction relay and relay policy?</strong></h2><p><em>Transaction relay</em> is the peer-to-peer mechanism through which bitcoin nodes share bitcoin transaction data with each other, ultimately passing the data to miners to commit to the blockchain.</p><p>This process is governed by a <em>relay policy</em>, a filter which prevents spam transactions from entering a node&#x2019;s mempool and crowding out legitimate transactions. Most nodes rely on the default relay policy settings, though operators can adjust these based on their needs.</p><p>You might think that this system already works great&#x2014;your bitcoin transactions have all made it into a block and been confirmed without an issue. But unfortunately, the relay policy was not designed to support the exotic off-chain payment schemes that are emerging on bitcoin, for example, those used by the Lightning Network and the Ark protocol.&#xA0;</p><h2 id="how-is-the-relay-policy-relevant-to-ark"><strong>How is the relay policy relevant to Ark?</strong></h2><p>Similar to Lightning, Ark users rely on pre-constructed transactions to protect their balance and retain self-custody. These transactions&#x2014;<em>VTXOs</em>&#x2014;are normally held and transacted off-chain, but at any time, a user can broadcast their VTXOs to the network to complete a unilateral exit and retrieve their bitcoin on-chain.&#xA0;</p><p>A transaction fee must be baked into a VTXO when it&#x2019;s created, so under the old relay policy, users (and wallet developers) would struggle to decide on what fee rate to use. They basically had two options:&#xA0;</p><ul><li><strong>Underpay: </strong>Assign an acceptable fee for the fee environment at time of creation and hope the user doesn&#x2019;t need to broadcast them during times of on-chain congestion.</li><li><strong>Overpay: </strong>Assign an excessively high fee to &#x201C;future-proof&#x201D; the transaction for possible on-chain congestion.</li></ul><p>But either way, there was no way to guarantee a transaction would make it past the relay policy filters when the time comes, never mind into a block.</p><p>Unilateral exits are always performed in an emergency scenario, and have strict deadlines, so it&#x2019;d be a big problem if a user couldn&#x2019;t get their transaction relayed because all nodes think it&#x2019;s spam!</p><h2 id="does-cpfp-not-fix-this"><strong>Does CPFP not fix this?</strong></h2><p>Some readers may be thinking that the obvious solution, to overspending at least, would be to always set a low fee rate on VTXOs and rely on child-pays-for-parent (CPFP) to accelerate any unilateral exit transactions that are not getting confirmed.&#xA0;</p><p>CPFP is a widely used method to unstick a low-fee transaction by creating a second <em>child</em> transaction that spends from it but includes a higher fee rate. Miners, incentivized by the higher fee on the child transaction, must first mine the <em>parent</em> transaction to validate the child, effectively unblocking both transactions together.</p><p>But it&#x2019;s not that simple. Using CPFP you can only bump transactions that can make it into the mempool. If the parent (unilateral exit) can&apos;t enter the mempool because it pays insufficient fees, the child transaction will be refused because the parent doesn&apos;t exist. CPFP only works if both the parent and child transactions are in a miner&#x2019;s mempool at the same time.</p><h2 id="arkoor-chains-and-disappearing-sats"><strong>Arkoor chains and disappearing sats</strong></h2><p>Ark&#x2019;s out-of-round (arkoor) payments were particularly problematic.&#xA0;</p><p>Arkoor payments are the primary way to send VTXOs between users on Ark because they can be completed without the time-consuming interactive process of rounds (as required by in-round transactions).&#xA0;</p><p>Although the vast majority of arkoor VTXOs will never see the bitcoin blockchain (this would only happen in a unilateral exit), we still had to hard-code a 1 sat/vbyte base fee rate to ensure they could get through the relay filters and into mempools if required. Of course, this wouldn&#x2019;t guarantee they&#x2019;d get confirmed, but the assumption was that wallets would use CPFP to pay the actual fee required.</p><p>This hard-coded fee meant that even the smallest payments on Ark would always lose a few hundred sats&#x2014;very annoying. And because the transactions would typically not be mined, the fees would seemingly go nowhere (actually picked up by the ASP after VTXO expiry).</p><h2 id="core-have-cracked-it-with-package-relay"><strong>Core have cracked it with package relay</strong></h2><p>The smart trick the Core team have come up with to solve these issues (and more, see below!) is called <em>package relay</em>. Included in the Bitcoin Core v28 release in October 2024 is an early iteration of package relay, which enables nodes to bundle and relay two dependent transactions together as a single package, allowing mempools to evaluate their combined fee rate rather than assessing each transaction separately.</p><p>While the functionality is currently limited to two transactions in a single parent-child relationship (a structure referred to as &#x201C;one-parent one-child&#x201D; or &#x201C;1p1c&#x201D;), it&#x2019;s already a powerful improvement for protocols like Ark that depend on CPFP constructions.</p><p>Ark users can now reliably set their unilateral exit fees at the time they make their exit, without worrying about whether the parent transaction will be relayed. And wallet developers no longer need to hard-code wasteful fees of 1+ sat/vbyte into every transaction. By bundling a unilateral exit transaction with a child transaction that pays an appropriate fee, Ark users can be confident that both transactions will reach miners&#x2019; mempools as a package.</p><h2 id="zero-fee-transactions-are-now-viable"><strong>Zero-fee transactions are now viable</strong></h2><p>Another consequence is that the bitcoin network now reliably supports zero-fee transactions. A child payment can get any parent payment through the relay policy spam filters, no matter how low its fee is, even zero!&#xA0;</p><p>This solves arkoor&#x2019;s &#x201C;disappearing sats&#x201D; problem, we can now simply set the on-chain fee rate for all arkoor VTXOs to zero, and a user can pay the appropriate fees in a bundled child transaction if they ever need to use their VTXOs to make a unilateral exit.</p><h2 id="benefits-beyond-ark"><strong>Benefits beyond Ark</strong></h2><p>We&#x2019;ve focused package relay&#x2019;s impact on Ark, because Ark&#x2019;s what we do, but there are a number of other great benefits from package relay for the broader bitcoin ecosystem that&#x2019;re worth mentioning here:</p><ul><li><strong>Mitigating transaction relay attacks:</strong> DoS attacks enabled by the nature of bitcoin&#x2019;s relay policy, such as <a href="https://bitcoinops.org/en/topics/transaction-pinning/"><u>pinning</u></a> and <a href="https://bitcoinops.org/en/topics/replacement-cycling/"><u>transaction cycling</u></a>, can now be overcome by &#x201C;forcing through&#x201D; targeted transactions with 1p1c packages. This is possible because the 1p1c package relay also enforces some restrictions on the children that prevent many of the attacks (<a href="https://bitcoinops.org/en/topics/version-3-transaction-relay/"><u>TRUC</u></a>).</li><li><strong>Improved transaction conflict handling:</strong> Off-chain protocols rely on UTXOs that can be spent by multiple users. The relay policy can sometimes cause the &#x201C;wrong&#x201D; transaction to be prioritized in the mempool, but now wallet devs can overcome this with higher fee 1p1c packages.</li><li><strong>More reliable Lightning channel closures: </strong>Like Ark, Lightning relies on pre-constructed off-chain transactions (commitment transactions) that are broadcast later. Package relay ensures these can be relayed and confirmed more reliably with optimized fees.</li></ul><h2 id="final-words"><strong>Final words</strong></h2><p>Package relay might seem like a simple improvement, but it is only a small part in a larger project that is still very much in development. We will only get the full benefits of generalized package relay once we improve the internal structure of the mempool. This is being worked on in a project called <a href="https://bitcoinops.org/en/topics/cluster-mempool/"><em><u>cluster mempool</u></em></a>. We&#x2019;re grateful to the Core team for putting in the hard work to make this happen. These are some of those thankless, seemingly obvious features that miss the spotlight but will have a big impact on Ark, Lightning, and more.</p>]]></content:encoded></item><item><title><![CDATA[Demoing the first Ark transactions on bitcoin mainnet]]></title><description><![CDATA[We invited some notable bitcoiners and early contributors to the Ark protocol to join us on this adventure. Among the group were Stephan Livera, Marty Bent, John Carvallo, Vivek4real, Jonas Nick, Robin Linus, and Super Testnet.]]></description><link>https://blog.second.tech/demoing-the-first-ark-transactions-on-bitcoin-mainnet/</link><guid isPermaLink="false">672917c88f5579e7cdf42bf6</guid><dc:creator><![CDATA[Erik De Smedt]]></dc:creator><pubDate>Sat, 21 Sep 2024 14:58:19 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2024/11/Untitled.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2024/11/Untitled.jpg" alt="Demoing the first Ark transactions on bitcoin mainnet"><p>On Friday, September 20st, 2024, we gathered for a video conference with one goal: make some of the first Ark payments on bitcoin mainnet.</p><figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/2mckUBqnwz0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="First Ark Payments on Bitcoin Mainnet | With Second"></iframe><figcaption><p><span style="white-space: pre-wrap;">A brief intro to the Ark demo</span></p></figcaption></figure><p>We invited some notable bitcoiners and early contributors to the Ark protocol to join us on this adventure. Among the group were Stephan Livera, Marty Bent, John Carvallo, Vivek4real, Jonas Nick, Robin Linus, and Super Testnet.</p><p>Steven Roose, our CEO at Second, kicked things off with a short intro:</p><blockquote>Nothing we&#x2019;re doing today is faked. But, just so you know, I&#x2019;m obviously sweating because the software is still experimental and fragile. To the developers: please stick to the script&#x2014;no one needs to break things&#x2026; at least not yet. You&#x2019;ll get your chance after the call!</blockquote><p>Over the past few months, we&#x2019;ve implemented an ASP (Ark Service Provider) and a command-line wallet called <em>bark</em>. It&#x2019;s a terminal-only experience for now, but that didn&#x2019;t stop anyone. Our guests created their first wallets and received some sats to start testing.</p><h2 id="in-round-payments">In-round payments</h2><p>With everyone set up, it was time to run the first round. In the Ark protocol, the ASP automatically triggers rounds at regular intervals (e.g., every hour), but for this test we had to manually trigger the round.</p><p>Each round results in a single on-chain transaction. We had seven guests on the call, each adding their transaction to the round. But, importantly, we only had to pay the on-chain fee for a single small transaction. Efficiency is beautiful.</p><p>To make an in-round payment, our participants used the command:</p><pre><code>$ bark send-round &lt;vtxo-pubkey&gt; &lt;amount_sat&gt;</code></pre><p>When they saw <code>Waiting for round&#x2026;</code> appear in their logs, they knew they were ready. Steven then manually triggered the round.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.second.tech/content/images/2024/11/image-1.png" class="kg-image" alt="Demoing the first Ark transactions on bitcoin mainnet" loading="lazy" width="1600" height="971" srcset="https://blog.second.tech/content/images/size/w600/2024/11/image-1.png 600w, https://blog.second.tech/content/images/size/w1000/2024/11/image-1.png 1000w, https://blog.second.tech/content/images/2024/11/image-1.png 1600w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">The Ark demo&apos;s first round transaction</span></figcaption></figure><p>Success! Our transaction (<a href="https://mempool.space/tx/32cea70b1e71cace5b4797d1c509ceaa92c6ddb91e0f40b2270aeee03baad051#flow=&amp;vout=0" rel="noreferrer">txid 32cea70&#x2026;baad051</a>) was broadcast to the mempool and confirmed in block 862149. The payments were smooth, and everyone verified their balances had been updated.</p><blockquote class="kg-blockquote-alt">This is the most amazing feeling I&#x2019;ve had since the Lightning Network came out.<br>&#x2014;Super Testnet</blockquote><h2 id="out-of-round-payments-arkoor">Out-of-round payments (arkoor)</h2><p>Our ASP also supports <strong>out-of-round payments</strong>, otherwise known as <strong>arkoor</strong>. Unlike traditional Ark payments, these don&#x2019;t require waiting for a round. Everyone made an arkoor transaction with:</p><pre><code>$ bark send &lt;vtxo-pubkey&gt; &lt;amount&gt;</code></pre><p>Arkoor payments are much simpler and faster than a typical Lightning payment and they completed almost instantly. With Ark, you only need a single round-trip between client and server. In contrast, Lightning payments get routed through multiple hops, with handshakes at each step to update channel states.</p><blockquote class="kg-blockquote-alt">Insanely fast!<br>&#x2014;Marty Bent</blockquote><p>That said, there are trade-offs. The security model for arkoor payments is different. The recipient needs to trust that the payer and the ASP aren&#x2019;t colluding to double-spend. If that feels risky, the recipient can cycle their arkoor transaction into an in-round transaction during the next round.</p><h2 id="lightning-payments">Lightning payments</h2><p>We still had one trick up our sleeve. Even though we were demoing Ark, we knew we had to show off how it works with Lightning. After all, Lightning has become the go-to mechanism for bitcoin payments. With Ark, you&#x2019;re not stranded on an isolated island. You can easily send payments to any Lightning wallet, with the ASP acting as the Lightning &quot;gateway&quot;.</p><p>Participants made transfers to their own Lightning wallets. Payments were delivered seamlessly in seconds. The swap from Ark to Lightning is handled atomically, so at no point did any user have to take on any counterparty risk.</p><h2 id="getting-a-bitcoin-balance-off-ark">Getting a bitcoin balance off Ark</h2><p>Ark offers two ways to get your sats back on-chain: <strong>offboarding</strong> and <strong>unilateral exits</strong>.</p><h3 id="offboarding">Offboarding</h3><p>The cheapest option is to offboard, which requires collaboration with the ASP and the user needs to waiting for a round. You can initiate an offboard with the simple command:</p><pre><code>$ bark offboard-all</code></pre><p>You can see <a href="https://mempool.space/tx/ce9423aef4fcecb22f4f58d83029f3291b50b33b13052f5766c02d3f795f1448#flow=&amp;vin=1" rel="noreferrer">this round transaction</a> from the demo has an extra output that represents an offboard. I won&#x2019;t mention who did the offboard to protect their on-chain privacy!</p><h3 id="unilateral-exit">Unilateral exit</h3><p>If the ASP refuses to cooperate or is unavailable for whatever reason, a user can choose to unilateral exit. Unilateral exits are bit more involved than offboarding and are more expensive due to multiple on-chain fees, but it gets the job done.</p><p>We had two adventurous (and patient!) participants initiate unilateral exits during the demo. Here&apos;s an example of <a href="https://mempool.space/tx/f07ebf51e4aed1fef7fc1bb16b72bce56294a512bf0da9fd61db18612b4201c9#flow&amp;vout=0" rel="noreferrer">one of the exit transactions</a>.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.second.tech/content/images/2024/11/image.png" class="kg-image" alt="Demoing the first Ark transactions on bitcoin mainnet" loading="lazy" width="1600" height="1107" srcset="https://blog.second.tech/content/images/size/w600/2024/11/image.png 600w, https://blog.second.tech/content/images/size/w1000/2024/11/image.png 1000w, https://blog.second.tech/content/images/2024/11/image.png 1600w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">A unilateral exit transaction, &quot;peeling off&quot; branches of the transaction tree</span></figcaption></figure><h2 id="can-i-try-it-myself">Can I try it myself?</h2><p>Right now, the software is experimental, and we&apos;ve disabled our mainnet Ark server. But if you want to give Ark a spin, you can do it on signet: <a href="https://docs.second.tech/getting-started/" rel="noreferrer">follow the guide to get started</a>!</p>]]></content:encoded></item><item><title><![CDATA[Ark on bitcoin is here]]></title><description><![CDATA[Second launches to scale Bitcoin with Ark, a new off-chain protocol enabling fast, low-cost, self-custodial payments, built as a complement to Lightning.]]></description><link>https://blog.second.tech/ark-on-bitcoin-is-here/</link><guid isPermaLink="false">672917c88f5579e7cdf42bf5</guid><dc:creator><![CDATA[Steven Roose]]></dc:creator><pubDate>Mon, 02 Sep 2024 06:47:16 GMT</pubDate><media:content url="https://blog.second.tech/content/images/2024/11/paw-power@4x-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.second.tech/content/images/2024/11/paw-power@4x-1.png" alt="Ark on bitcoin is here"><p>Slightly over a year ago, an idea for a new off-chain payment protocol for bitcoin was proposed: Ark. Originally conceived as a solution for onboarding Lightning users, Ark&#x2019;s design has evolved significantly since then, and it&#x2019;s become a full-fledged bitcoin scaling protocol in its own right.</p><p>Now, we believe Ark is ready for primetime. That&#x2019;s why we&#x2019;ve formed <a href="https://second.tech" rel="noreferrer">Second</a>&#x2014;a company dedicated to scaling bitcoin through Ark and other second-layer technologies.&#xA0;</p><p>To demonstrate the progress we made, we ran the first-ever Ark transactions with some friends on bitcoin mainnet yesterday&#x2014;yes, <em>real sats</em>. <a href="https://blog.second.tech/demoing-the-first-ark-transactions-on-bitcoin-mainnet/" rel="noreferrer">Read our dedicated report</a>.</p><h2 id="beyond-lightning">Beyond Lightning</h2><p>Since its reveal in 2016, the Lightning Network has made incredible progress, becoming the undisputed standard for making retail payments with bitcoin.&#xA0;</p><p>However, with this success, we&#x2019;ve also started to see the challenges of Lightning&#x2019;s limitations. While it works incredibly well for tech-savvy users with high payment volumes, retail users often face friction with onboarding and channel management.</p><p>Lightning Service Providers (LSPs) can alleviate some of this, but if users are relying on centralized entities for their payments, it raises the question: do they need the complexities of Lightning, which was originally designed for a fully peer-to-peer network?</p><h2 id="simpler-bitcoin-scaling">Simpler bitcoin scaling</h2><p>This is where Ark comes in. Ark embraces a centralized approach, adopting a client-server model for fast, low-cost payments while leveraging smart cryptography to ensure that users remain in full control of their bitcoin.&#xA0;</p><p>It achieves this while offering an easier experience for developers and users alike: simpler integrations and simpler wallet management.</p><figure class="kg-card kg-image-card"><img src="https://blog.second.tech/content/images/2024/11/how-it-works-01.svg" class="kg-image" alt="Ark on bitcoin is here" loading="lazy" width="545" height="380"></figure><h2 id="an-extension-of-lightning-not-a-replacement">An extension of Lightning, not a replacement</h2><p>Ark was initially designed to improve Lightning onboarding, so it&#x2019;s naturally compatible with Lightning and should be seen more as an extension than a replacement. For instance, Ark users can directly pay Lightning invoices (and soon, receive payments too!), allowing them to participate seamlessly in bitcoin&#x2019;s wider payment ecosystem while enjoying the benefits of Ark when transacting with other Ark users.</p><p>We&#x2019;re still in the early stages of working out how things will shake out, recognizing that some users may benefit more from Ark, others from Lightning, and many from a combination of both.</p><figure class="kg-card kg-image-card"><img src="https://blog.second.tech/content/images/2024/11/ark-lightning-02@4x-1.png" class="kg-image" alt="Ark on bitcoin is here" loading="lazy" width="2000" height="1399" srcset="https://blog.second.tech/content/images/size/w600/2024/11/ark-lightning-02@4x-1.png 600w, https://blog.second.tech/content/images/size/w1000/2024/11/ark-lightning-02@4x-1.png 1000w, https://blog.second.tech/content/images/size/w1600/2024/11/ark-lightning-02@4x-1.png 1600w, https://blog.second.tech/content/images/2024/11/ark-lightning-02@4x-1.png 2161w" sizes="(min-width: 720px) 720px"></figure><h2 id="an-open-ark">An open Ark</h2><p>Bitcoin and Lightning thrive because of their development communities&#x2019; strong dedication to self-custody and open-source. We intend no different with Ark&#x2014;our implementations of both the client wallet <em>and </em>the Ark server will be open-source. This transparency is essential for Ark&#x2019;s success within the bitcoin ecosystem.</p><h2 id="who-are-we">Who are we?</h2><p><a href="https://second.tech/about"><u>Our small team</u></a> consists of a group of former Blockstreamers, all passionate about bitcoin&#x2019;s censorship-resistance and scaling it to a global user base. Personally, I&#x2019;ve also been a lead contributor in developing the Ark protocol to its current state.</p><p>We&#x2019;re <a href="https://bitcoinerjobs.com/company/second" rel="noreferrer">on the hunt for talented developers too</a>. If you have experience with Rust, C++, or devops (especially running Lightning infrastructure!) and share our passion for bitcoin, we&#x2019;d love to hear from you!</p><h2 id="get-involved">Get involved</h2><p>If you&#x2019;re interested in enabling Ark payments in your app with Second, check out <a href="https://docs.second.tech/"><u>our new developer docs</u></a>, and <a href="https://gitlab.com/ark-bitcoin" rel="noreferrer"><u>visit the repository of our Ark implementation</u></a>.</p><p>Ark opens up a new frontier for scaling bitcoin and we hope you&#x2019;ll join us in making it a reality!</p>]]></content:encoded></item></channel></rss>