<?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[Carbon Copy]]></title><description><![CDATA[Thoughts from the rabbit hole 🕳🐇]]></description><link>https://seha.cc/</link><image><url>https://seha.cc/favicon.png</url><title>Carbon Copy</title><link>https://seha.cc/</link></image><generator>Ghost 5.80</generator><lastBuildDate>Fri, 17 Apr 2026 04:56:51 GMT</lastBuildDate><atom:link href="https://seha.cc/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[The Myth of Getting on Zero Fiat]]></title><description><![CDATA[Getting on zero fiat is a myth in a world where we all have fiat-denominated liabilities. Stay humble, stack sats, and match your assets to your liabilities.]]></description><link>https://seha.cc/the-myth-of-getting-on-zero-fiat/</link><guid isPermaLink="false">64278a5d31f83905f409339b</guid><category><![CDATA[Bitcoin]]></category><dc:creator><![CDATA[Seha Islam]]></dc:creator><pubDate>Sat, 01 Apr 2023 15:21:40 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1502085026219-54ac00e06fd9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHplcm98ZW58MHx8fHwxNjgwMzU4MDQ0&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1502085026219-54ac00e06fd9?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDN8fHplcm98ZW58MHx8fHwxNjgwMzU4MDQ0&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="The Myth of Getting on Zero Fiat"><p>&quot;Get on zero&quot; has emerged as a powerful mantra among bitcoiners, urging people to convert their entire wealth into bitcoin. However, this approach overlooks a fundamental challenge: fiat-denominated liabilities still exist on our balance sheets.</p><p>This article explores the asset mismatch problem that arises from striving for &quot;zero fiat.&quot; It explains why such a strategy is irresponsible and counter to Bitcoin&apos;s founding ethos, as it ultimately replicates 0% reserve banking at the individual level.</p><h1 id="the-asset-mismatch-challenge">The Asset Mismatch Challenge</h1><p>To get on zero fiat, individuals convert all of their wealth into bitcoin and either pay their bills directly in bitcoin or convert their bitcoin to fiat currencies when their liabilities are due. The idea is that it is financially more profitable and accelerates adoption since we expect bitcoin will ultimately appreciate against fiat currencies as it has done in the past.</p><p>The challenge with this approach is that it ignores that most people have liabilities denominated in their local fiat currency, such as taxes, housing costs, and other living expenses. In other words, getting on zero fiat is impossible because we all have liabilities denominated in fiat. For a bitcoiner &quot;on zero,&quot; this creates a balance sheet with mismatched assets and liabilities whose units of account are wildly volatile vs. each other.</p><h2 id="the-risks-of-asset-mismatch">The Risks of Asset Mismatch</h2><p>This asset mismatch poses a significant risk due to the short-term volatility of bitcoin&apos;s price compared to fiat currencies. In times of unfavorable exchange rates or sudden price drops, bitcoiners on zero fiat may face difficulty meeting their fiat-denominated liabilities. These situations can lead to the forced liquidation of their bitcoin holdings, potentially at a loss, and even result in insolvency.</p><h2 id="determining-the-appropriate-amount-of-fiat-holdings">Determining the Appropriate Amount of Fiat Holdings</h2><p>To mitigate the risks associated with asset mismatch, individuals should determine how much fiat currency they need to cover their near-term liabilities. A general rule of thumb is to hold enough fiat assets to cover at least six months to two years of anticipated expenses, depending on individual circumstances and risk tolerance. </p><p>Factors to consider when deciding on the appropriate amount of fiat holdings include:</p><ul><li>Stability of income: Those with stable and predictable income sources may feel comfortable holding a smaller fiat reserve, while those with irregular income may benefit from a larger safety net.</li><li>Access to credit: Individuals with access to credit or other financial resources may require a smaller fiat reserve, as they can tap into these sources if needed.</li><li>Personal risk tolerance: Some individuals may have bigger stacks and be more comfortable with the risks of near-term asset mismatches. In contrast, others may prefer a more conservative approach to protect their nest egg.</li></ul><h2 id="example-scenarios">Example Scenarios</h2><p>Consider an individual who has decided to hold 12 months&apos; living expenses in fiat currency based on their circumstances and risk tolerance.</p><p>Their balance sheet might look like this:</p><p>Assets:</p><ul><li>Bitcoin: 6.15 BTC</li><li>USD Savings: $50,000</li></ul><p>Liabilities (annual):</p><ul><li>Rent/mortgage (USD): $30,000</li><li>Groceries (USD): $6,000</li><li>Utilities (USD): $3,000</li><li>Taxes (USD): $12,000</li><li>Total liabilities (USD): $51,000</li></ul><p>In this scenario, the individual has allocated a portion of their wealth to fiat currency, allowing them to cover their anticipated liabilities for the next 12 months. If they have income in the meantime, they can first use it to pay for the expenses while retaining their 12-month buffer and stack sats with any income above their expenses. This approach provides a buffer against short-term market volatility and ensures they can meet their financial obligations without liquidating their bitcoin holdings.</p><p>Now consider another individual with higher risk tolerance and access to credit might decide to hold only six months&apos; worth of living expenses in fiat currency.</p><p>Their balance sheet might look like this:</p><p>Assets:</p><ul><li>Bitcoin: 8.15 BTC</li><li>USD Savings: $25,000</li></ul><p>Liabilities (annual):</p><ul><li>Rent/mortgage (USD): $30,000</li><li>Groceries (USD): $6,000</li><li>Utilities (USD): $3,000</li><li>Taxes (USD): $12,000</li><li>Total liabilities (USD): $51,000</li></ul><p>In this case, the individual has chosen to allocate a smaller portion of their wealth to fiat currency based on their personal risk tolerance and access to credit. While this approach may expose them to greater short-term risk, they may have determined that they are comfortable with this level of exposure.</p><p>If bitcoin&apos;s price appreciates during that year, the individual holding more fiat will lose out on additional bitcoin they could have stacked. Conversely, if the individual lost their income, didn&apos;t have access to cheap credit, and bitcoin&apos;s price cratered to new lows, they would risk losing most if not all of their stack over a short time.</p><p>Recall the shock to bitcoin&apos;s price during March 2020, corresponding to when many people lost their jobs. With bitcoin&apos;s price at $3,000, the second individual would have needed their $25,000 and all 8.15 BTC to cover their annual expenses. In contrast, the first individual would have retained their 6.15 BTC as the market played out throughout that year and later in the bull market.</p><h1 id="the-fractional-reserve-problem">The Fractional Reserve Problem</h1><p>Ironically, &quot;getting on zero&quot; replicates a mistake by fractionally-reserved banks: holding insufficient reserves to cover their liabilities. Fractional reserve banks maintain only a fraction of their depositors&apos; funds in reserve, lending the rest out. This system works as long as depositors do not simultaneously withdraw their funds.</p><p>However, in times of crisis, such as a bank run, these banks can face insolvency due to insufficient reserves. For more on full reserve banking for fiat and bitcoin banks, please see <a href="https://seha.cc/we-need-sound-banking/">We Need Sound Banking</a> and <a href="https://seha.cc/i-like-bitcoin-buy-my-fractionally-reserved-bitcoin/">I Like Bitcoin, Buy My Fractionally-Reserved Bitcoin</a>.</p><p>Similarly, individuals who &quot;get on zero&quot; by holding all their wealth in bitcoin may find themselves in a precarious situation when they need to meet their fiat-denominated liabilities, especially during periods of market volatility. By holding an insufficient fiat currency reserve, they expose themselves to the risk of forced liquidation of their bitcoin holdings.</p><h1 id="conclusion">Conclusion</h1><p>In conclusion, while &quot;getting on zero&quot; may seem appealing, it is ultimately a myth that can lead to financial instability due to the unavoidable presence of fiat-denominated liabilities. By acknowledging this reality and thoughtfully managing near-term liabilities with fiat assets, bitcoiners can mitigate the risks associated with asset mismatch while utilizing bitcoin as their long-term savings vehicle.</p><p>The privilege of living through the monetization of bitcoin and the transition of the global monetary system requires bitcoiners to make prudent decisions regarding their assets and effectively manage their finances as we inevitably encounter road bumps in bitcoin&apos;s adoption path.</p><p>Stay humble, stack sats, and match your assets to your liabilities.</p>]]></content:encoded></item><item><title><![CDATA[I Like Bitcoin, Buy My Fractionally-Reserved Bitcoin]]></title><description><![CDATA[In contrast to the failed history of free fractional reserve banking, as recently as the BlockFi, Celsius, and FTX failures, there is a growing ecosystem of 100% reserve banking and accompanying tools using bitcoin, including cashu, Fedimint, the Lightning Network, and The Liquid Network.]]></description><link>https://seha.cc/i-like-bitcoin-buy-my-fractionally-reserved-bitcoin/</link><guid isPermaLink="false">642470cb31f83905f4093005</guid><category><![CDATA[Bitcoin]]></category><dc:creator><![CDATA[Seha Islam]]></dc:creator><pubDate>Wed, 29 Mar 2023 23:53:08 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1639710342143-f87416f1a913?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDY4fHxmcmFjdGlvbmFsJTIwYml0Y29pbnxlbnwwfHx8fDE2ODAxMTAwMTg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1639710342143-f87416f1a913?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDY4fHxmcmFjdGlvbmFsJTIwYml0Y29pbnxlbnwwfHx8fDE2ODAxMTAwMTg&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="I Like Bitcoin, Buy My Fractionally-Reserved Bitcoin"><p>We&apos;re used to altcoin salesmen approaching bitcoiners with some version of &quot;I like bitcoin, buy my shitcoin.&quot; Perhaps the most dangerous class of altcoins and the one that is likely to wreck the greatest number of bitcoiners in upcoming years is fractionally-reserved bitcoin (FRB).</p><p>Some factors that make FRB more dangerous than other altcoin schemes are listed below and further elaborated throughout the rest of this article. Bitcoiners should be aware of these tactics to be able to identify them and ignore or dispel them as needed.</p><ol><li>Bitcoin affinity</li><li>False equivalence with free markets</li><li>Brandolini&apos;s Law</li><li>Argumentum ad ignorantiam</li><li>Deceptive language</li></ol><h1 id="bitcoin-affinity">Bitcoin affinity</h1><p>FRBs have bitcoin in their name, and the unit of account for these altcoins is bitcoin, though they are merely IOUs denominated in bitcoin where the actual bitcoin needed to meet all outstanding IOUs are not readily available to the issuer. Similar to how USD &quot;depositors&quot; may think the cash corresponding to their IOU balance is available and sitting at the bank, FRB holders may be deceived into thinking the loans they&apos;ve made to fractionally-reserved bitcoin banks are &quot;deposits&quot; that are fully available on demand, which is, by definition, not the case. Unlike USD, however, no lender of last resort can print the difference, which is ultimately good for bitcoin holders but disastrous for FRB holders, as we experienced with the collapses of BlockFi, Celsius, and FTX.</p><p>Opposition to fractional reserve banking is native to bitcoin&apos;s history. In one of his early bitcointalk posts, Satoshi notes, <em>Banks must be trusted to hold our money and transfer it electronically, but they lend it out in waves of credit bubbles with barely a fraction in reserve.</em> This isn&apos;t to suggest Satoshi was infallible or to appeal to authority in any way. Instead, it is to disprove some FRB proponents that would otherwise have you believe opposing fractional reserve banking is a recent phenomenon attributable to a Rothbardian cult that has taken over bitcoin twitter. Quite the contrary, opposing FRBs is embedded in bitcoin&apos;s DNA, and it is the so-called &quot;free banker&quot; cult that aims to hijack the direction of bitcoin with failed ideas of the past.</p><h1 id="false-equivalence-with-free-markets">False equivalence with free markets</h1><p>Similar to other altcoin proponents, proponents of FRBs may espouse free market ideals. Some of their free-market-driven arguments are intended to guilt and gaslight bitcoiners into believing that opposing their failed idea is equivalent to opposing the ideals of free markets. This is obviously disingenuous as most bitcoiners that oppose altcoins are doing so as part of the free market and simply rejecting products they don&apos;t like.</p><p>While we don&apos;t necessarily need to specify any particular reason to object to a given idea or product &#x2013; it is a free market, after all &#x2013; we actually have good reasons to oppose FRB. It is both self-serving and the right thing to do for bitcoiners to vocally and voluntarily disassociate themselves from deceptive and unsustainable products. For one, the existence of FRB would temporarily inflate the money supply. Additionally, we don&apos;t need bitcoin&apos;s reputation to be tainted in the public eye when FTX clones collapse in the future.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">Bitcoiners do a grave disservice to the Cypherpunk movement in dismissing free banking. You do not understand that you are working at cross-purposes, supporting the narrative of the state. OGs like <a href="https://twitter.com/GeorgeSelgin?ref_src=twsrc%5Etfw&amp;ref=seha.cc">@GeorgeSelgin</a> understand that freedom is the objective.</p>&#x2014; Eric Voskuil (@evoskuil) <a href="https://twitter.com/evoskuil/status/1640842616853110786?ref_src=twsrc%5Etfw&amp;ref=seha.cc">March 28, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>It is indeed the FRB proponents that are at odds with the free market when they accuse bitcoiners of being anti-free-market. Instead of accepting what the market is telling them about the inferiority of their product, they are attempting to blame the market for not being open-minded about their historically failed and mathematically-destined-to-fail idea.</p><h1 id="brandolinis-law">Brandolini&apos;s Law</h1><p>Unlike most altcoin proponents, FRB proponents may be highly sophisticated and well-versed in the history of money and banking. Some may even claim to be students of the Austrian School of Economics or at least Austrian-adjacent in their views. Others may be &quot;OGs&quot; in the bitcoin space. In reading or listening to their arguments, you&apos;ll likely run into many literary and historical references that can become tiresome to research and refute due to the bullshit asymmetry principle or Brandolini&apos;s Law.</p><p>None of their sophistry, however, can change the basic fact that a &quot;bank&quot; with X&lt;100% reserves would fail and lead to losses for its customers when customers representing &gt;X% of the claims show up to withdraw their funds. As time approaches infinity, the probability that &gt;X% of the claims request redemption approaches certainty.</p><h1 id="argumentum-ad-ignorantiam">Argumentum ad ignorantiam</h1><p>FRB proponents sometimes counter the mathematical proposition above with historical examples of free fractional reserve banking. In doing so, they ignore the math and handwave it as an issue the market can solve, as if the markets can alter math.</p><p>They also handwave over the fact that their examples are historical, as in failed and non-existent today. They treat the &#xA0;historical evidence of spectacular failures as if the evidence supports their &#xA0;case. One example, as Murray Rothbard notes is how <em>&quot;free&quot; Scottish banks suspended specie payment when England did, in 1797, and, like England, maintained that suspension until 1821. Free banks are not supposed to be able to, or want to, suspend specie payment, thereby violating the property rights of their depositors and noteholders, while they themselves are permitted to continue in business and force payment upon their debtors.</em></p><p>FRB proponents argue that we simply have not had the right environment for fractional-reserve banks to flourish. This is an appeal to ignorance akin to how communists argue we have never witnessed true communism when presented with the evidence of historical failures.</p><p>In contrast to the failed history of free fractional reserve banking, as recently as the BlockFi, Celsius, and FTX failures, there is a growing ecosystem of 100% reserve banking and accompanying tools using bitcoin, including <a href="https://cashu.space/?ref=seha.cc">cashu</a>, <a href="https://fedimint.org/?ref=seha.cc">Fedimint</a>, <a href="https://github.com/lightning/bolts?ref=seha.cc">The Lightning Network</a>, and <a href="https://blockstream.com/liquid/?ref=seha.cc">The Liquid Network</a>.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">That&apos;s why you have only fractional reserve banks in the corrupt fiat cartel banking system. And that&apos;s why you have fractional reserve banks constantly get destroyed in an honest free monetary market like bitcoin, where only full reserve banks survive.</p>&#x2014; Saifedean Ammous (@saifedean) <a href="https://twitter.com/saifedean/status/1640818468185317376?ref_src=twsrc%5Etfw&amp;ref=seha.cc">March 28, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>The historical record, particularly with bitcoin, favors 100% reserve banking. The projects mentioned above have a path to scaling, while no FRB solution has demonstrated the ability to survive, let alone scale beyond flawed thought exercises.</p><h1 id="deceptive-language">Deceptive language</h1><p>Of note with FRB proponents is the language used to describe their product. The words we use in bitcoin matter, as <a href="https://twitter.com/dergigi?ref=seha.cc">@dergigi</a> covers <a href="https://dergigi.com/2022/06/27/the-words-we-use-in-bitcoin/?ref=seha.cc">here</a>.</p><h2 id="free-banking">Free banking</h2><p>FRB proponents have laid claim to the practice of &quot;free banking,&quot; whereas 100% reservists are typically referred to as &quot;Rothbardians&quot; &#x2013; not exactly a household name and much less bald eagle, apple pie, and fourth of July-sounding than &quot;free banking.&quot;</p><p>Bitcoiners need to reclaim the title for free banking based on free banks that are viable and exist today (e.g., cashu, liquid) and relegate FRB proponents to adopt an obscure non-household name for themselves. One option is &quot;Selginite&quot; if the good doctor wouldn&apos;t mind.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">No: free banking is just what it says; fractional reserves are the norm whenever free trade in money has prevailed, as it has at times Scotland, Sweden, Switzerland, Canada, South Africa, China, Chile, Australia, Ireland, Italy, France&#x2026; . To deny it is to be willfully blind.</p>&#x2014; George Selgin (@GeorgeSelgin) <a href="https://twitter.com/GeorgeSelgin/status/1640946786872221696?ref_src=twsrc%5Etfw&amp;ref=seha.cc">March 29, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><h2 id="deposits">Deposits</h2><p>Another trick the FRB proponents play with words is how they name customer loans to the bank &quot;deposits.&quot;</p><p>This, of course, has the potential to cut to the heart of how &quot;free&quot; fractional-reserve banking actually is since the contract between the depositors and the bank cannot be considered voluntary if an overwhelming majority of the customers in that contract do not understand the nature of the relationship. This may be obvious for economists, professionals in the financial sector, or bitcoiners that have taken up the study of these matters. But, one needs only to visit a local coffee shop or another establishment to understand the general public&apos;s understanding is far from it.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">Absolutely correct.<br><br>&quot;74% think they own their money, when of course they do not, the bank does.&quot;<br><br>Doesn&apos;t look anything like acceptance if the pro FRB &#x1F921;&apos;s were right. <a href="https://t.co/a2dNAFLK5p?ref=seha.cc">pic.twitter.com/a2dNAFLK5p</a></p>&#x2014; Conza (@Conza) <a href="https://twitter.com/Conza/status/1640095527529492480?ref_src=twsrc%5Etfw&amp;ref=seha.cc">March 26, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><h1 id="conclusion">Conclusion</h1><p>In the words of <a href="https://twitter.com/caitlinlong_?ref=seha.cc">Caitlin Long</a> as she warned SBF prior to the collapse of FTX, a fool and their leveraged bitcoin are soon parted.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">&quot;A fool and his leveraged <a href="https://twitter.com/hashtag/bitcoin?src=hash&amp;ref_src=twsrc%5Etfw&amp;ref=seha.cc">#bitcoin</a> are soon parted&quot;<br><br>&#x2014; <a href="https://twitter.com/CaitlinLong_?ref_src=twsrc%5Etfw&amp;ref=seha.cc">@CaitlinLong_</a> explained to <a href="https://twitter.com/SBF_FTX?ref_src=twsrc%5Etfw&amp;ref=seha.cc">@SBF_FTX</a> a year ago <a href="https://t.co/8EYsrvvsW1?ref=seha.cc">pic.twitter.com/8EYsrvvsW1</a></p>&#x2014; Documenting &#x20BF;itcoin &#x1F4C4; (@DocumentingBTC) <a href="https://twitter.com/DocumentingBTC/status/1593233109855924225?ref_src=twsrc%5Etfw&amp;ref=seha.cc">November 17, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>FRB are simply leveraged bitcoin wrapped in jargon and, to date, deceptive language. Fractional reserve bitcoin banks are mathematically destined to fail. While their existence in the market at any point prior to their failure wouldn&apos;t annul this mathematical certainty, they have also failed in the market each time they have been attempted. On the other hand, full reserve bitcoin banks are alive and well.</p><p>In principle, people have a right to experiment with FRB, just as they have a right to experiment with altcoins. Similarly, the voluntary and vocal opposition of bitcoiners towards FRB is equally, if not more, justified as part of the same free market. Nevertheless, bitcoiners would do well to avoid and prevent FRB as much as possible to protect themselves and others against financial loss and protect bitcoin&apos;s reputation in the eyes of the public that may incorrectly associate FRB with bitcoin.</p><hr><h1 id="additional-reading-and-viewing">Additional reading and viewing:</h1><ol><li><a href="https://mises.org/library/myth-free-banking-scotland?ref=seha.cc">The Myth of Free Banking in Scotland</a>, Murray Rothbard</li><li><a href="https://www.stephankinsella.com/2016/01/the-great-fractional-reservefreebanking-debate/?ref=seha.cc">The Great Fractional Reserve/Freebanking Debate</a>, Stephan Kinsella</li><li><a href="https://youtu.be/N0VOodu-f98?ref=seha.cc">Rothbardians vs. &quot;Free Bankers&quot;</a>, Robert Murphy</li><li><a href="https://youtu.be/UDLCa7maGZA?ref=seha.cc">Does Fractional Reserve Banking Endanger the Economy</a>, A Debate</li></ol>]]></content:encoded></item><item><title><![CDATA[nostr 101]]></title><description><![CDATA[An overview of the nostr protocol and the future of scalable decentralized web applications.]]></description><link>https://seha.cc/nostr-101/</link><guid isPermaLink="false">6407ed06e192da05c3f781b7</guid><category><![CDATA[Internet]]></category><dc:creator><![CDATA[Seha Islam]]></dc:creator><pubDate>Sat, 18 Mar 2023 04:00:00 GMT</pubDate><media:content url="https://seha.cc/content/images/2023/03/8364320C-C72D-45E7-9BF0-FEAA7AB16CCE.png" medium="image"/><content:encoded><![CDATA[<img src="https://seha.cc/content/images/2023/03/8364320C-C72D-45E7-9BF0-FEAA7AB16CCE.png" alt="nostr 101"><p>An overview of the nostr protocol for discussion on March 20, 2023.</p><h1 id="why-did-we-need-it">Why did we need it?</h1><ul><li><strong>Decentralize the web:</strong> resist censorship, regain privacy, avoid the algos</li><li><strong>Blockchains can&apos;t do this: </strong>the web is 175 zettabytes = 350 bitcoin nodes x 8 billion people with no redundancy</li><li><strong>Free speech: </strong>rights of the consumer vs. rights of the platform</li></ul><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.reuters.com/article/us-china-health-twitter/financial-market-website-zero-hedge-knocked-off-twitter-over-coronavirus-story-idUSKBN1ZW0PZ?ref=seha.cc"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Financial market website Zero Hedge knocked off Twitter over coronavirus story</div><div class="kg-bookmark-description">Twitter Inc has banned financial market website Zero Hedge from the social media platform after it published an article linking a Chinese scientist to the outbreak of the fast-spreading coronavirus last week.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://www.reuters.com/article/_next/static/images/favicon-196x196-052cc719f1ac872e3544e51801338b46.png" alt="nostr 101"><span class="kg-bookmark-author">Reuters</span><span class="kg-bookmark-publisher">Reuters Staff</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static.reuters.com/resources/r/?m=02&amp;d=20200203&amp;t=2&amp;i=1485103398&amp;r=LYNXMPEG110M6&amp;w=800" alt="nostr 101"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.twitter.com/en_us/topics/company/2020/suspension?ref=seha.cc"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Permanent suspension of @realDonaldTrump</div><div class="kg-bookmark-description">Suspension of @realDonaldTrump</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.twitter.com/etc/designs/blog-twitter/public/img/apple-touch-icon-153x153.png" alt="nostr 101"></div></div><div class="kg-bookmark-thumbnail"><img src="https://cdn.cms-twdigitalassets.com/content/dam/blog-twitter/official/universal-assets/Generic_BlogShare.jpg.twimg.768.jpg" alt="nostr 101"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://judiciary.house.gov/committee-activity/hearings/hearing-weaponization-federal-government-twitter-files?ref=seha.cc"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Hearing on the Weaponization of the Federal Government on the Twitter Files</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://judiciary.house.gov/sites/evo-subsites/judiciary.house.gov/files/favicon.png" alt="nostr 101"><span class="kg-bookmark-author">House Judiciary Committee Republicans</span></div></div><div class="kg-bookmark-thumbnail"><img src="http://judiciary.house.gov/sites/evo-subsites/republicans-judiciary.house.gov/files/evo-media-image/libery_logo.png" alt="nostr 101"></div></a></figure><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">.<a href="https://twitter.com/YouTube?ref_src=twsrc%5Etfw&amp;ref=seha.cc">@YouTube</a> have taken down the speech I gave in Parliament today. I am an elected member of the UK Parliament. The speech was given in the Chamber of the House of Commons and responded to by a Government Minister, what chance has anyone else got of putting their views on YouTube? <a href="https://t.co/mJWFuVaOhy?ref=seha.cc">pic.twitter.com/mJWFuVaOhy</a></p>&#x2014; Andrew Bridgen (@ABridgen) <a href="https://twitter.com/ABridgen/status/1636824545330905117?ref_src=twsrc%5Etfw&amp;ref=seha.cc">March 17, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><h1 id="what-is-it">What is it?</h1><ul><li>Notes and Other Stuff Transmitted by Relay</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://seha.cc/content/images/2023/03/AA7EBA8F-CBD8-4FCF-BDFF-081C283268AA.jpeg" class="kg-image" alt="nostr 101" loading="lazy" width="960" height="540" srcset="https://seha.cc/content/images/size/w600/2023/03/AA7EBA8F-CBD8-4FCF-BDFF-081C283268AA.jpeg 600w, https://seha.cc/content/images/2023/03/AA7EBA8F-CBD8-4FCF-BDFF-081C283268AA.jpeg 960w" sizes="(min-width: 720px) 720px"><figcaption>nostr events are simple (h/t @anilsaidso)</figcaption></figure><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">14 BTC deployed to <a href="https://twitter.com/fiatjaf?ref_src=twsrc%5Etfw&amp;ref=seha.cc">@fiatjaf</a> for <a href="https://twitter.com/hashtag/nostr?src=hash&amp;ref_src=twsrc%5Etfw&amp;ref=seha.cc">#nostr</a></p>&#x2014; jack (@jack) <a href="https://twitter.com/jack/status/1603535971114487816?ref_src=twsrc%5Etfw&amp;ref=seha.cc">December 15, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">Nostr promotion is now forbidden on Twitter. <a href="https://t.co/aOmcQfxzpo?ref=seha.cc">pic.twitter.com/aOmcQfxzpo</a></p>&#x2014; fiatjaf (@fiatjaf) <a href="https://twitter.com/fiatjaf/status/1604537405205356544?ref_src=twsrc%5Etfw&amp;ref=seha.cc">December 18, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">One of the cool things about Nostr (&quot;Notes and other stuff transmitted by relays&quot;, a new decentralized protocol that replaces things like Twitter and Instagram)&#x2014;beyond censorship resistance&#x2014;is that you aren&apos;t limited to 280 characters.<br><br>Find me there. <a href="https://t.co/B7JUHeeSdP?ref=seha.cc">pic.twitter.com/B7JUHeeSdP</a></p>&#x2014; Edward Snowden (@Snowden) <a href="https://twitter.com/Snowden/status/1617623779626352640?ref_src=twsrc%5Etfw&amp;ref=seha.cc">January 23, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><h1 id="how-does-it-work">How does it work?</h1><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://seha.cc/content/images/2023/03/38005DCD-3D2B-44D8-BD64-46EAF9519BA8.jpeg" class="kg-image" alt="nostr 101" loading="lazy" width="2000" height="1122" srcset="https://seha.cc/content/images/size/w600/2023/03/38005DCD-3D2B-44D8-BD64-46EAF9519BA8.jpeg 600w, https://seha.cc/content/images/size/w1000/2023/03/38005DCD-3D2B-44D8-BD64-46EAF9519BA8.jpeg 1000w, https://seha.cc/content/images/size/w1600/2023/03/38005DCD-3D2B-44D8-BD64-46EAF9519BA8.jpeg 1600w, https://seha.cc/content/images/2023/03/38005DCD-3D2B-44D8-BD64-46EAF9519BA8.jpeg 2022w" sizes="(min-width: 720px) 720px"><figcaption>nostr overview h/t vmilty@nostrplebs.com (npub1n5fz9vzvzvezfeuju3hvyg3mtfalgsgw3eka0xxda20uewy2nn0srspk5e)</figcaption></figure><h1 id="what-can-it-do">What can it do?</h1><ul><li>&quot;Twitter&quot; and other social media</li><li>Scalable decentralized apps without a blockchain or token</li><li><a href="https://seha.cc/unchaining-the-web">Check the math</a></li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://seha.cc/content/images/2023/03/E59C0BA0-FA31-48F3-9A86-F959DCE7F52C.jpeg" class="kg-image" alt="nostr 101" loading="lazy" width="960" height="540" srcset="https://seha.cc/content/images/size/w600/2023/03/E59C0BA0-FA31-48F3-9A86-F959DCE7F52C.jpeg 600w, https://seha.cc/content/images/2023/03/E59C0BA0-FA31-48F3-9A86-F959DCE7F52C.jpeg 960w" sizes="(min-width: 720px) 720px"><figcaption>early nostr applications (h/t @anilsaidso)</figcaption></figure><h1 id="what-cant-it-do">What can&apos;t it do?</h1><ul><li>Trustless prevention of double spends</li><li><a href="https://blog.coracle.social/what-nostr-is-bad-at.html?ref=seha.cc">Consistency</a>: no single global state</li><li>Identity:</li></ul><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">12) For example, when <a href="https://twitter.com/jack?ref_src=twsrc%5Etfw&amp;ref=seha.cc">@jack</a> first joined Nostr, he put his public key on <a href="https://t.co/339l359AUh?ref=seha.cc">https://t.co/339l359AUh</a>, which allowed anyone to see it was him. However, this approach is permissioned. If a user doesn&apos;t own the domain hosting their identifier, it can be easily deplatformed. <a href="https://t.co/XJriB9xkaR?ref=seha.cc">pic.twitter.com/XJriB9xkaR</a></p>&#x2014; Level39 (@level39) <a href="https://twitter.com/level39/status/1632240525133635584?ref_src=twsrc%5Etfw&amp;ref=seha.cc">March 5, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p><a href="https://cash.app/.well-known/nostr.json?name=jack&amp;ref=seha.cc">https://cash.app/.well-known/nostr.json?name=jack</a></p><h1 id="how-is-it-going">How is it going?</h1><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://stats.nostr.band/?ref=seha.cc"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Nostr Stats</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://stats.nostr.band/apple-touch-icon.png" alt="nostr 101"></div></div><div class="kg-bookmark-thumbnail"><img src="https://nostr.band/android-chrome-192x192.png" alt="nostr 101"></div></a></figure><h1 id="how-do-i-join">How do I join?</h1><ul><li><a href="https://nostr.com/?ref=seha.cc">nostr.com</a></li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://seha.cc/content/images/2023/03/6DFC75F0-D45D-41C6-8D6E-F2578EEE958E.jpeg" class="kg-image" alt="nostr 101" loading="lazy" width="960" height="540" srcset="https://seha.cc/content/images/size/w600/2023/03/6DFC75F0-D45D-41C6-8D6E-F2578EEE958E.jpeg 600w, https://seha.cc/content/images/2023/03/6DFC75F0-D45D-41C6-8D6E-F2578EEE958E.jpeg 960w" sizes="(min-width: 720px) 720px"><figcaption>steps to join nostr (h/t @anilsaidso)</figcaption></figure><h1 id="what-comes-next">What comes next?</h1><ul><li>Zaps (<a href="https://github.com/nostr-protocol/nips/blob/master/57.md?ref=seha.cc">NIP-57</a>): Micropayments and content monetization</li></ul><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://snort.social/e/note1fcnwfec82lrh7dulrhqtx2plg3v5vzclvva4hflcnvx305m5wqsqm0wke0?ref=seha.cc"><div class="kg-bookmark-content"><div class="kg-bookmark-title">snort.social - Nostr interface</div><div class="kg-bookmark-description">Fast nostr web ui</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://snort.social/nostrich_512.png" alt="nostr 101"><span class="kg-bookmark-author">Nostr interface</span></div></div></a><figcaption>American HODL trust experiment with zaps surpasses 39 million sats</figcaption></figure><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://snort.social/e/note1auvy0xk69qahdwhc66r7unmjgj3khmmujjx29fhvutkqz2ahsrpqjnnum6?ref=seha.cc"><div class="kg-bookmark-content"><div class="kg-bookmark-title">snort.social - Nostr interface</div><div class="kg-bookmark-description">Fast nostr web ui</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://snort.social/nostrich_512.png" alt="nostr 101"><span class="kg-bookmark-author">Nostr interface</span></div></div></a><figcaption>CARLA earns 167,000 sats in zaps for her ABBA cover song</figcaption></figure><ul><li>Badges (<a href="https://github.com/nostr-protocol/nips/blob/master/58.md?ref=seha.cc">NIP-58</a>): &quot;NFT&quot; use cases like &quot;access&quot;, &quot;community&quot;, &quot;accomplishment&quot; without a speculative token</li></ul><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://badges.page/p/npub1arrnzuwvkqu7vmajtteqvym35raasydp6wxnfckwaugn9kfmjl8sf3fe5c?ref=seha.cc"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Badge</div><div class="kg-bookmark-description">Long form notes over nostr</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://badges.page/logo192.png" alt="nostr 101"></div></div></a><figcaption>My badges for partaking in 2008.jpeg and being an early patron of the Pura Vida relay</figcaption></figure><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://badges.page/p/npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6?ref=seha.cc"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Badge</div><div class="kg-bookmark-description">Long form notes over nostr</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://badges.page/logo192.png" alt="nostr 101"></div></div></a><figcaption>fiatjaf&apos;s numerous badges</figcaption></figure><ul><li><a href="https://medium.com/@colbyserpa/nostr-2-0-layer-2-off-chain-data-storage-b7d299078c60?ref=seha.cc">Nostr 2.0?</a></li><li>purple pill -&gt; orange pill</li></ul><h1 id="where-can-i-learn-more">Where can I learn more?</h1><ul><li><a href="https://github.com/nostr-protocol/nips?ref=seha.cc">GitHub</a></li><li><a href="https://nostr.directory/?ref=seha.cc">Nostr Directory</a> </li><li><a href="https://nostr.net/?ref=seha.cc">Nostr clients, relays, and other tools</a></li><li><a href="https://nostr-resources.com/?ref=seha.cc">Nostr Resources by @dergigi</a></li><li><a href="https://t.me/nostr_protocol?ref=seha.cc">Telegram group</a></li></ul>]]></content:encoded></item><item><title><![CDATA[We Need Sound Banking]]></title><description><![CDATA[If the USD-based banking system is to compete in a world with bitcoin, Twitter, and FedNow, we need the option to fully reserve demand deposits.]]></description><link>https://seha.cc/we-need-sound-banking/</link><guid isPermaLink="false">640d40abe192da05c3f781fe</guid><category><![CDATA[Bitcoin]]></category><dc:creator><![CDATA[Seha Islam]]></dc:creator><pubDate>Sun, 12 Mar 2023 05:00:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1595714004311-8a4ca448c20e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGplZmZlcnNvbiUyMGRvbGxhcnxlbnwwfHx8fDE2Nzg2MDA0MTU&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1595714004311-8a4ca448c20e?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGplZmZlcnNvbiUyMGRvbGxhcnxlbnwwfHx8fDE2Nzg2MDA0MTU&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=2000" alt="We Need Sound Banking"><p>On March 9th, 2023, Michael Barr, the Federal Reserve Board&apos;s Vice Chair for Supervision, cautioned banks to approach crypto, including so-called stablecoins carefully. He warned about the potential liquidity shocks that the issuers of these tokens may incur due to depositors demanding immediate redemptions. And, he added, &quot;<a href="https://www.federalreserve.gov/newsevents/speech/barr20230309a.htm">the banks we regulate, in contrast, are well protected from bank runs</a>.&quot;</p><p>One day after Mr. Barr&apos;s speech, on March 10th, Silicon Valley Bank (SVB), a top 20 bank in the US by asset size that has very little to do with crypto and is subject to the regulations Vice Chair Barr cited in his speech, suffered a bank run that led to its shutdown. It is unclear whether customers will fully recover their deposits at SVB, and leading venture capitalists known for their otherwise laissez-faire approach to markets are calling for a bailout (edit: as of 6:15 PM ET, the Treasury, Fed, and FDIC have <a href="https://www.federalreserve.gov/newsevents/pressreleases/monetary20230312b.htm">announced approval of actions that will fully protect depositors</a>).</p><p>The events of last week (and potentially, the following weeks) highlight a fundamental need currently unmet by our banking system: individuals and businesses want a mechanism by which they can warehouse their cash without their bank lending it to anyone else.</p><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">The idea that depositors are creditors to a bank is an absurd and outdated notion. Everyone just wants a checking account, not to loan the bank money.</p>&#x2014; David Sacks (@DavidSacks) <a href="https://twitter.com/DavidSacks/status/1634363393498038273?ref_src=twsrc%5Etfw&amp;ref=seha.cc">March 11, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><figure class="kg-card kg-embed-card"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">I agree with Sacks <br><br>Nobody thinks of their bank account as a loan to the bank. And then suddenly a bank fails and all the &#x201C;experts&#x201D; come out and talk a depositors as creditors.<br><br>It&#x2019;s problematic the way the economic nature of the bank/depositor relationship is abstracted away.</p>&#x2014; Joe Weisenthal (@TheStalwart) <a href="https://twitter.com/TheStalwart/status/1634584447927418885?ref_src=twsrc%5Etfw&amp;ref=seha.cc">March 11, 2023</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</figure><p>Following the collapse of FTX in late 2022, many of us in the bitcoin and crypto space attempted to point out that FTX wasn&apos;t a failure of bitcoin, or crypto for that matter, but a somewhat vanilla run on a bank with fractional reserves that took place at Twitter speed.</p><p>With the collapse of SVB, we witnessed the same flavor of failure at an identical speed. The difference between the two scenarios is that SVB was a top 20 bank in the US, under the supervision of federal agencies, which became insolvent due to losses incurred in its US Treasury portfolio. In contrast, FTX was an off-shore crypto exchange that incurred losses on its token (FTT), where regulators cited the lack of oversight as one reason for its failure. One day after Mr. Barr&apos;s comments about regulated banks being &quot;well protected&quot; from bank runs, we witnessed our <a href="https://www.cnbc.com/2023/03/10/silicon-valley-bank-collapse-how-it-happened.html?ref=seha.cc">second largest bank failure</a>.</p><p>While bank runs have always been a risk to fractional reserve banks, we haven&apos;t always lived in a world with bitcoin, Twitter, and soon, FedNow. Unlike our world fifteen years ago during the Great Financial Crisis, we now have an alternative monetary system designed to avoid some of the risks inherent to our current monetary and banking systems. Additionally, we have a technically-savvy generation of consumers that are increasingly aware of the shortcomings of fractionally reserving demand deposits. We have smartphones and social media platforms that allow us to communicate news at the speed of light. With FedNow, we are moving towards near real-time settlement mechanisms that accelerate withdrawals of deposits. Unless something fundamental changes, bank runs will continue and only happen faster.</p><p>In the bitcoin economy, survivors of the bitcoin winter continue to build financial infrastructure with protocols and entities that aim to remain fully reserved. The permissionless peer-to-peer <a href="https://github.com/lightning/bolts?ref=seha.cc">Lightning Network</a> is fully reserved at all times. Federated sidechains like <a href="https://blockstream.com/liquid/?ref=seha.cc">Liquid</a> are verifiably fully reserved. <a href="https://github.com/fedimint/fedimint?ref=seha.cc">Federated Chaumian mints</a> will need full reserves to avoid the consequences of today&apos;s fractional reserve banks. And lastly, bitcoin and crypto exchanges and custodians are looking for more ways to demonstrate their reserves to their customers in near real-time.</p><p>If the USD-based banking system is to compete in a world with bitcoin, Twitter, and <a href="https://www.frbservices.org/financial-services/fednow?ref=seha.cc">FedNow</a>, we need the option to fully reserve demand deposits. We need banks that can hold cash deposits at the Fed and either collect a spread on the interest or charge fees to warehouse their customers&apos; money. The Narrow Bank attempted to establish such a model in the past, which <a href="https://www.bloomberg.com/opinion/articles/2019-03-08/the-fed-versus-the-narrow-bank?ref=seha.cc">the Fed denied in 2019</a>. Recently, Custodia Bank proposed a similar model to serve bitcoin and crypto companies, which <a href="https://www.federalreserve.gov/newsevents/pressreleases/orders20230127a.htm">the Fed denied earlier this year</a>.</p><p>Without full reserve deposit accounts, we may experience further consolidation of the banking sector due to additional bank runs on smaller banks and the socialization of depositors&apos; losses to taxpayers every time a fractional reserve bank fails. Neither of these outcomes would help us achieve a more resilient banking system for people simply looking for a place to safekeep their money without lending it out.</p><p>In short, times have changed, and our banking system needs to change with the times. We need to allow for banks that offer fully reserved demand deposits. We need to do so without stifling competition or innovation where banks and customers that prefer the risks and returns associated with fractional reserves can continue to exist. We can leave it to the market to design their products and assign a risk premium based on the various models. But we must acknowledge that we need a fully reserved alternative for demand deposits to give depositors this choice. Otherwise, as more and more people realize it&apos;s not their money in their accounts, the USD-based banking system will have a hard time competing with the bitcoin-based banking system that is slowly but surely coming to life.</p>]]></content:encoded></item><item><title><![CDATA[Ubuntu ZFS Cheat Sheet]]></title><description><![CDATA[General guidelines to setup and tune ZFS with Ubuntu]]></description><link>https://seha.cc/ubuntu-zfs-cheat-sheet/</link><guid isPermaLink="false">6314f100525da106047a46b7</guid><category><![CDATA[Internet]]></category><dc:creator><![CDATA[Seha Islam]]></dc:creator><pubDate>Sun, 18 Sep 2022 20:15:51 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1629654297299-c8506221ca97?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHVidW50dXxlbnwwfHx8fDE2NjIzNTM5ODM&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1629654297299-c8506221ca97?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fHVidW50dXxlbnwwfHx8fDE2NjIzNTM5ODM&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Ubuntu ZFS Cheat Sheet"><p>I graduated from a Raspberry Pi for my home server and have been exploring how to configure ZFS on Ubuntu for some time. This article is a summary of the information I wish was compiled when I first learned about ZFS and got it running on Ubuntu for the first time.</p><p>I&apos;ve created the cheat sheet below as general guidelines when creating your ZFS layout for Ubuntu.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://seha.cc/content/images/2022/09/Ubuntu-ZFS-7.png" class="kg-image" alt="Ubuntu ZFS Cheat Sheet" loading="lazy" width="960" height="540" srcset="https://seha.cc/content/images/size/w600/2022/09/Ubuntu-ZFS-7.png 600w, https://seha.cc/content/images/2022/09/Ubuntu-ZFS-7.png 960w" sizes="(min-width: 720px) 720px"><figcaption>Ubuntu ZFS Cheat Sheet: General guidelines for hardware, redundancy, minimum, and maximum sizes of different disks and disk partitions</figcaption></figure><p>These work well for me, but your mileage may vary, and your hardware and usage patterns may merit a different setup. I&apos;m not a professional system administrator, so if you find errors, tweaks, or more nuanced guidelines that work better in different situations, please <a href="https://www.twitter.com/sehaislam?ref=seha.cc">share them with me</a> so I can reference and update this article and cheat sheet accordingly.</p><p>If you are unfamiliar with ZFS, you can read more about it <a href="https://arstechnica.com/information-technology/2020/05/zfs-101-understanding-zfs-storage-and-performance/?ref=seha.cc">here</a> and <a href="https://www.reddit.com/r/zfs/comments/fn5ugg/zfs_topology_faq_whats_a_zpool_whats_a_vdev/?ref=seha.cc">here</a>.</p><p>See this guide for a complete set of instructions to install Ubuntu with root on ZFS.</p><h1 id="disks-and-partitions">Disks and Partitions</h1><p>Below, I provide layman&apos;s heuristics and considerations to determine a ZFS layout for Ubuntu based on your hardware and use cases.</p><ul><li><strong>Bootloader:</strong> This is where your bootloader will reside to select our OS upon boot or enter recovery mode. 512 MiB is sufficient.</li><li><strong>Swap partition:</strong> The swap partition is where your server parks data when fully utilizing your RAM. The swap partition should not be less than the greater of 2GiB or the square root of your RAM. Your swap partition doesn&apos;t provide any performance benefits after reaching double your RAM size. If for whatever reason, your server will hibernate, the minimum size of your swap partition should be your RAM plus the square root of your RAM. The only downside to a larger swap partition is that you would be unable to use that data for something else, whereas too small a swap partition may lead to performance loss or crashes. If disk space is not an issue given the other considerations, you can shortcut this decision and allocate double the size of your RAM. Some advocate that <a href="https://www.reddit.com/r/zfs/comments/4ac0yq/comment/d0z7u8n/?ref=seha.cc">you don&apos;t need a swap partition</a> with ZFS, and <a href="https://www.reddit.com/r/zfs/comments/4ac0yq/comment/d0zufse/?ref=seha.cc">others still prefer it</a>, primarily for debugging after crashes, but also if you use &apos;tmpfs&apos; for /tmp, which we will, to prevent out-of-memory situations.</li><li><strong>Boot pool partition:</strong> This is &apos;bpool&apos; in Ubuntu, which requires a minimum of 500MiB and a maximum of 2GiB. If disk space is not an issue, you can allocate 4GiB to be safe, as there are varying reports <a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Ubuntu/Ubuntu%2022.04%20Root%20on%20ZFS.html?ref=seha.cc#step-2-disk-formatting">here</a> and <a href="https://medium.com/@andaag/how-i-moved-a-ext4-ubuntu-install-to-encrypted-zfs-62af1170d46c?ref=seha.cc">here</a> regarding the minimum requirements.</li><li><strong>Root pool partition(s):</strong> If you glanced at the Ars Technica primer, you would have noticed that zpools are the highest level of the ZFS storage hierarchy, comprised of one or more vdevs. These vdevs must include at least one storage vdev and up to three support vdevs.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://seha.cc/content/images/2022/09/fullpooldiagram-updated-vdevnames.png" class="kg-image" alt="Ubuntu ZFS Cheat Sheet" loading="lazy" width="845" height="775" srcset="https://seha.cc/content/images/size/w600/2022/09/fullpooldiagram-updated-vdevnames.png 600w, https://seha.cc/content/images/2022/09/fullpooldiagram-updated-vdevnames.png 845w" sizes="(min-width: 720px) 720px"><figcaption>ZFS Pool Diagram by Jim Salter</figcaption></figure><p>Below are two videos covering the support vdevs and how and when to use them. The first video by Lawrence Systems is an excellent overview of cache and log vdevs.</p><figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/M4DLChRXJog?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="Explaining ZFS LOG and L2ARC Cache: Do You Need One and How Do They Work?"></iframe><figcaption>An overview of the cache and log vdevs in ZFS by Lawrence Systems</figcaption></figure><p>The second video is by Level1Linux and provides an overview of the special device vdev. </p><figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="200" height="113" src="https://www.youtube.com/embed/QI4SnKAP6cQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen title="ZFS Metadata: Special Device And You!"></iframe><figcaption>An overview of the special vdev in ZFS by Level1Linux</figcaption></figure><p>Below are some rules of thumb to determine your need for these support vdevs and how much space to allocate to each partition.</p><ul><li><strong>Cache (i.e., L2ARC):</strong> ZFS uses a portion of your RAM as an ARC (Adaptive Read Cache). An L2ARC is a read cache that resides on an SSD (solid state drive). Somewhat counterintuitively, however, an L2ARC requires additional space in RAM and may reduce overall performance for most builds instead of helping it. In general, if a system has less than 64GB of RAM, L2ARC is likely detrimental to performance. For systems with more RAM, <a href="https://www.ixsystems.com/documentation/freenas/9.10/zfsprimer.html?ref=seha.cc">the size of the L2ARC should not exceed five times the amount of RAM</a>. Your cache vdev need not be mirrored or redundant in any other way. Since the L2ARC contains exact copies of data in your storage vdevs, you can fully recover a zpool even if the cache vdev fails.</li><li><strong>Log (i.e., ZIL):</strong> The ZIL (ZFS Intent Log) is a storage area that temporarily holds a synchronous write cache until ZFS writes this data to the storage vdevs in the zpool. Whether or not you allocate a separate disk or partition to it, ZFS always uses a ZIL. Including the ZIL as a SLOG (separate log) on an SSD should improve performance if you are operating synchronous writes, such as busy Network File Systems (NFS) or databases. If you don&apos;t allocate a SLOG, your ZIL resides on your spinning hard disks, and the performance of those disks binds its performance. If you use a dedicated SLOG, the maximum amount of space you will need is <a href="https://www.ixsystems.com/documentation/freenas/9.10/zfsprimer.html?ref=seha.cc">16 GB</a> (<a href="https://www.ixsystems.com/blog/why-zil-size-matters-or-doesnt/?ref=seha.cc">though likely a lot less</a>). Of further note, IXSystems claims that adding other caching functions on the same SSD as the SLOG may hurt performance, though this may not be as detrimental as claimed given its widespread use in online communities, as seen <a href="https://www.reddit.com/r/zfs/comments/6o96fs/pair_of_800gb_nvme_ssd_want_to_create_zil/?ref=seha.cc">here</a>, <a href="https://www.reddit.com/r/zfs/comments/qebrky/partition_sizes/?ref=seha.cc">here</a>, and <a href="https://www.reddit.com/r/zfs/comments/lge2xo/how_to_size_the_slog_and_l2arc_where_would_you/?ref=seha.cc">here</a>. You can read more about ZIL/SLOG from Jim Salter <a href="https://jrs-s.net/2019/05/02/zfs-sync-async-zil-slog/?ref=seha.cc">here</a>. You should mirror your log vdev to avoid catastrophic situations as described <a href="https://www.reddit.com/r/zfs/comments/6p6jiy/worth_mirroring_slog/?ref=seha.cc">here</a> and <a href="https://www.reddit.com/r/zfs/comments/5yykix/is_it_important_to_mirror_the_slog/?ref=seha.cc">here</a>.</li><li><strong>Special (aka., special allocation):</strong> The special allocation class was introduced with ZFS version 0.8 and primarily serves to index metadata that resides in storage vdevs. This indexing can significantly improve random I/O operations on slower disks when allocated to an SSD. In addition, the special vdev can directly store file blocks below a specific size as a secondary function. However, there are potential issues, such as ensuring that the number of small files does not become so significant to push the metadata out of the special vdev to the slower storage vdev. You can avoid these issues by setting a small enough file size and adding a quota to the file storage above and beyond metadata. You can read more about this vdev <a href="https://www.reddit.com/r/zfs/comments/cm594b/why_is_nobody_talking_about_the_newly_introduced/?ref=seha.cc">here</a> and <a href="https://forum.level1techs.com/t/zfs-metadata-special-device-z/159954?ref=seha.cc">here</a>. You should target your special vdev to be 5-10% of the size of your storage vdev(s). If you have extra space, you can use the special vdev to store small files. If you have less than the ideal amount of space, you can consider eliminating your L2ARC or accepting the metadata flowing back into the slower disks. Lastly, you should always mirror the special vdev as the entire zpool will be irrecoverable if the special vdev becomes unavailable.</li><li><strong>Storage:</strong> A sole storage vdev is the only mandatory vdev required to create a zpool. As noted in the diagram above, there is no redundancy at the zpool level, and you need to implement redundancies at the vdev level. The generally applicable best practice is a <a href="https://arstechnica.com/gadgets/2020/05/zfs-versus-raid-eight-ironwolf-disks-two-filesystems-one-winner/?ref=seha.cc">well-tuned pool of mirrors</a>, where tuning includes appropriately sized cache, log, and special vdevs and creating different datasets within the zpool with appropriate record sizes for the data type in a specific dataset. Mirroring refers to having at least one complete copy of every disk (stand-alone drive or partition). While more than two mirrored devices within a vdev are possible, it&apos;s likely overkill. But your storage vdevs must be in pairs to have a better chance of avoiding data loss as the entire zpool will become inaccessible if any vdev within it fails. For example, if you have two spinning hard disks, you will create one storage vdev. With four, you would create two mirrored vdevs, and so on.</li></ul><h1 id="datasets-and-record-sizes">Datasets and Record Sizes</h1><p>You can have multiple datasets within a zpool, and more importantly, you can assign each dataset a specific record size. ZFS stores data in records, and the default record size at zpool creation is 128 KiB. This record size is the maximum size for a given record, and records may still be smaller. In general, you can improve your server&apos;s performance by setting a dataset&apos;s record size in line with that dataset&apos;s typical workload.</p><p>If you want to keep it simple, an untuned default of 128 KiB for all datasets may work fine. Still, you can gain additional performance by adjusting the record size of media folders to 1 MiB and datasets containing SQL databases to 16 KiB. You can read more about the trade-offs associated with ZFS record sizes <a href="https://jrs-s.net/2019/04/03/on-zfs-recordsize/?ref=seha.cc">here</a>. Some <a href="https://blog.programster.org/zfs-record-size?ref=seha.cc">real-world tests</a> indicate that 16 KiB record sizes for SQL databases noticeably improve performance. </p><p>Additionally, you can consider setting &apos;special_small_blocks&apos; for certain datasets to store small blocks in the special vdev. For example, if your record size is 1 MiB, ZFS will split any file larger than 1 MiB into pieces, with the last bit likely smaller than 1 MiB. You want to use this setting to allow low-latency access to files smaller than some size, but you will inevitably end up storing some of the smaller tail blocks of larger files in your special vdev as well. </p><h1 id="snapshots-and-replication">Snapshots and Replication</h1><p>Snapshots and their easy replication to onsite or offsite &quot;backups&quot; is one of the most powerful features of ZFS. To automate your snapshots and replications, you will want to get cron jobs set up for sanoid and syncoid, where sanoid automates the snapshots your system takes, and the syncoid automates the replication of your datasets to other drives. See more about the installation and configuration of these tools <a href="https://github.com/jimsalterjrs/sanoid/?ref=seha.cc">here</a>.</p><h1 id="final-words">Final Words</h1><p>You will inevitably run into issues you need to troubleshoot as you toy around with Ubuntu and ZFS. I recommend searching the archives of <a href="https://www.reddit.com/r/zfs/?ref=seha.cc">r/zfs</a> or posting detailed descriptions of your problems on the subreddit if you get stuck. The community may not seem that active, but I&apos;ve been able to find solutions to nearly all of my problems in their archives. Good luck!</p>]]></content:encoded></item><item><title><![CDATA[Prioritizing for a Cold Start]]></title><description><![CDATA[Networked products should prioritize features that help overcome the cold start problem and interoperable networked products should seek features that create symbiotic or parasitic relationships with other thriving networks.]]></description><link>https://seha.cc/the-cold-start-problem/</link><guid isPermaLink="false">6302c6dc525da106047a3bfb</guid><category><![CDATA[Internet]]></category><dc:creator><![CDATA[Seha Islam]]></dc:creator><pubDate>Wed, 24 Aug 2022 04:02:06 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1655720855348-a5eeeddd1bc4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDV8fG5ldHdvcmslMjBlZmZlY3R8ZW58MHx8fHwxNjYxMTI2NDk1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1655720855348-a5eeeddd1bc4?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDV8fG5ldHdvcmslMjBlZmZlY3R8ZW58MHx8fHwxNjYxMTI2NDk1&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Prioritizing for a Cold Start"><p>When designing a product that requires a network to be successful, there is the additional complexity of the cold start problem. As discussed in <a href="https://seha.cc/the-elements-of-user-experience/">The Elements of User Experience</a>, product designers should aim to design every aspect of the user&apos;s experience with conscious intent. As part of scoping the features of a product, or a minimum viable product (MVP), it&apos;s vital to prioritize features that can help overcome the cold start problem. With the proper framework, we should be able to translate the complexities of a cold start problem into clear guidelines that help guide the scope of our product&apos;s features and user experience.</p><p>This article aims to provide such a framework by focusing on the aspects of <a href="https://twitter.com/andrewchen?ref=seha.cc">Andrew Chen</a>&apos;s five-stage network growth model that prioritize the initial set of user needs and features. Andrew Chen&apos;s book, <strong>The Cold Start Problem: How to Start and Scale Network Effects</strong>, is available <a href="https://a16z.com/book/the-cold-start-problem/?ref=seha.cc">here</a>. <a href="https://twitter.com/camin_mccluskey?ref=seha.cc">Camin McCluskey</a> has summarized Chen&apos;s book <a href="https://caminmccluskey.medium.com/book-summary-the-cold-start-problem-andrew-chen-25f61f4d66b?ref=seha.cc">here</a>.</p><h1 id="network-effects">Network Effects</h1><p>Network effects are where a product or service&apos;s value increases as more users engage with it. Similarly, network effects kill products that cannot simultaneously acquire the right users and content as there is no value for a new user upon encountering the product, also called <strong>anti-network effects</strong>. Hence we have the <strong>cold start problem</strong> where the network needs to be cold-started until it reaches the <strong>tipping point</strong> where network effects become a positive rather than negative force for growth. Andrew Chen calls this tipping point the <strong>Allee threshold</strong>, borrowed from the biological phenomenon where meerkats obtain increasing benefits from adding new members to their community.</p><p>In Andrew Chen&apos;s framework, there is also the concept of a <strong>carrying capacity</strong>, a limit in the growth from network effects, which may or may not be possible to overcome. Examples of signs that a network has reached carrying capacity include problems like spam and trolls that have become commonplace on popular social networks.</p><h1 id="cold-start-theory">Cold Start Theory</h1><p>The Cold Start Theory is a five-stage model of network growth.</p><ol><li>Cold Start</li><li>Tipping Point</li><li>Escape Velocity</li><li>The Ceiling</li><li>The Moat</li></ol><p>Each stage has unique considerations and problems that product designers need to overcome. This article focuses on the concerns related to the prioritization of a product&apos;s features and user experience design to harness positive feedback loops from network effects while overcoming and avoiding anti-network effects.</p><h2 id="1-cold-start">1. Cold Start</h2><p>Every network must bootstrap from a cold start &#x2013; the lack of a network.</p><h3 id="the-atomic-network">The Atomic Network</h3><p>The Atomic Network is the smallest network that can stand independently and sustain engagement with your product. This network is small but dense and stable in terms of interconnectedness among the initial users. Further, this network is likely smaller (in the 100s) and more specific than the <a href="https://seha.cc/the-elements-of-user-experience/">user segments identified in your strategy document.</a></p><p>To appropriately test the hypothesis for an initial atomic network, product designers should prioritize features that:</p><ol><li>meet the needs of users in the initial atomic network, and</li><li>encourage connection density and stability in the initial atomic network while</li></ol><p>deprioritizing features that:</p><ol><li>only meet needs unique to users of subsequent atomic networks,</li><li>solve problems of larger networks that do not currently exist, and</li><li>seek aggressive monetization before establishing an atomic network.</li></ol><h3 id="the-hard-side">The Hard Side</h3><p>Networks often have a hard side and an easy side. The <strong>hard side</strong> is usually a small minority of users who create disproportionate value in the network.</p><p>Product designers should prioritize features that:</p><ol><li>meet the needs of the hard side, and</li><li>encourage engagement by the hard side to grow the network and interact/transact with the easy side while</li></ol><p>deprioritizing features that:</p><ol><li>do not engage the hard side, or</li><li>create friction for the hard side.</li></ol><h3 id="the-killer-product">The Killer Product</h3><p>The killer product is usually a simple, one-click experience. Therefore, product designers should deprioritize bulky features. Also, see <a href="https://medium.com/bloated-mvp/how-to-un-bloat-your-mvp-e6e9bf797c06?ref=seha.cc">How to Un-Bloat Your MVP</a> by <a href="https://twitter.com/liron?ref=seha.cc">Liron Shapira</a>.</p><h3 id="magic-moments">Magic Moments</h3><p><strong>Magic moments</strong> are the instances where a product feels like magic. An example of a magic moment is a car arriving at your doorstep at the touch of a screen. The opposite of a magic moment is a <strong>zero</strong>. </p><p>Assuming a product can deliver magic moments with a mature network, product designers should focus on avoiding the opposite of these magic moments by prioritizing features that:</p><ol><li>guide the user to prevent a zero upon onboarding or initiating the product, and</li><li>detect and correct zeros (e.g., by nudging other users to create a more magical experience for the user who experienced a zero)</li></ol><p>while deprioritizing features that create the potential for more zeros, similar to reducing bloat above.</p><h2 id="2-tipping-point">2. Tipping Point</h2><p>The Tipping Point is where the network is ready to transition from nascency to hypergrowth. Chen lays out several strategies that can help prioritize features for a product:</p><ol><li><strong>Invite-Only:</strong> Consider invite-only features to provide a better experience for new users, who are more likely to be more connected to the existing network and potentially hard side users. There is the added benefit of containing growth while creating FOMO for parties without the invitation.</li><li><strong>Come for the Tool, Stay for the Network:</strong> Provide utility to users beyond the network and work to pivot them from using the tool to participating in a network.</li><li><strong>Pay up for Launch:</strong> Pay for, or provide monetary benefits to the hard side, if needed. For example, Tinder paid for parties where they required attendees to download their application.</li><li><strong>Flintstoning:</strong> Simulate a functional network until it&apos;s on auto-pilot if needed. For example, the founders of Reddit programmed bots to post links until they had sufficient user-generated content on their website.</li></ol><h2 id="3-escape-velocity">3. Escape Velocity</h2><p><strong>Escape Velocity</strong> is the hypergrowth stage, achieved through the convergence of three distinct forces.</p><h3 id="the-engagement-effect">The Engagement Effect</h3><p>This is the effect that engagement increases as the network reaches escape velocity.</p><p>This effect can be acquired using features that reactivate dormant users, which may be by notifying them that someone they know has joined the network or pointing them to content that may be of interest.</p><h3 id="the-acquisition-effect">The Acquisition Effect</h3><p>This is the effect of organically acquiring new atomic networks. Features should enable quickly onboarding new users via invites and integrating them into an atomic network in which they may be interested.</p><h3 id="the-economic-effect">The Economic Effect</h3><p>These are features that increase the economic performance of the network, such as those that encourage increased conversion to paying users.</p><h2 id="4-the-ceiling">4. The Ceiling</h2><p>The Ceiling is the point at which the network growth begins to stall.</p><h3 id="saturation-new-atomic-networks">Saturation: New Atomic Networks</h3><p>Saturation may signify that a new smaller network is required to stack onto the existing network. Therefore, new features should focus on attracting new atomic networks, which may differ from the features that attracted the initial atomic networks. </p><h3 id="shitty-clickthroughs-new-acquisition-effects">Shitty Clickthroughs: New Acquisition Effects</h3><p>Every acquisition channel eventually deteriorates. Therefore, features at this stage should reinforce acquisition effects instead of increasing spending on channels with diminishing returns.</p><h3 id="network-revolts-hard-side-professionalization">Network Revolts: Hard Side Professionalization</h3><p>Features favorable to the majority of the network, the easy side, may face adverse reactions from the hard side. Features should nudge the hard side towards professionalization to a point where they can earn a livelihood participating in the network.</p><h3 id="eternal-september-fragmentation-and-spam-prevention">Eternal September: Fragmentation and Spam Prevention</h3><p>Sudden network growth spurts can lead to alienating users due to <strong>context collapse</strong>. To prevent context collapse, features should:</p><ol><li>enable users to retain smaller networks, e.g., bilateral DMs, group chats, and communities, to avoid context collapse as the network grows, and</li><li>prevent spam using downvotes, moderation, proof-of-work, and paywalls.</li></ol><h3 id="overcrowding-curation-and-discoverability">Overcrowding: Curation and Discoverability</h3><p>As the network grows, it may be difficult for users to find content that is interesting to them. There may be &quot;old money&quot; effects where earlier users have large audiences that promote their content. Features should:</p><ol><li>curate content relevant to the users&apos; needs, whether manually or algorithmically, and</li><li>provide discoverability to new hard side users to avoid churn.</li></ol><h2 id="5-the-moat">5. The Moat</h2><p>The Moat is the stage at which the network needs to protect itself from competitors.</p><p>One aspect of networked products that Chen does not directly address is the case where a networked product is intentionally interoperable with its competitors.</p><p>Such effects exist when building interoperable networked products with <a href="https://github.com/bitcoin?ref=seha.cc">Bitcoin</a> and the <a href="https://github.com/lightning?ref=seha.cc">Lightning Network</a>. Until recently, it would not have been possible to conceive of incentives beyond the ideological and activist realm into the economic realm on such protocols. However, with Bitcoin, products using its currency, its blockchain, or the Lightning Network can benefit economically from its adoption. </p><p>Instead of building moats, as in the case of closed networked products, interoperable networked products must differentiate themselves based on improved user experience. As a result, there is likely to be increased competition since switching wallets or on- and off-ramps will be trivial for users. At the same time, cold starts may become easier to execute since a network already exists, and new products may better serve different niches within that network by <strong>cherry picking</strong>.</p><h1 id="the-future-of-network-effects">The Future of Network Effects</h1><p>While Chen is more excited about &quot;crypto becoming infused into every aspect of software&quot; than he is about Bitcoin, this contradicts a core insight from the book: networked products lean toward a winner-take-all outcome. One would then posit that one winner will take all, or at least most, of the currency use case. That winner, to date, appears to be Bitcoin.</p><h2 id="symbiosis-and-parasitism">Symbiosis and Parasitism</h2><p>Beyond the fact that their special purpose currencies need to compete with bitcoin and other currencies for liquidity, <a href="https://seha.cc/unchaining-the-web/">products built on blockchain-based protocols are not technically viable to reach the scale to replace the currently prevalent closed networked products</a>. In contrast, interoperable networked products built on protocols such as nostr have a &#xA0;chance of working. Unlike Bitcoin, however, interoperable networked products without a currency would not have the embedded economic incentives to drive their adoption. Instead, their growth beyond a user base of ideologues and activists requires economically viable products in symbiotic or parasitic relationships with other thriving networks whenever possible. </p><p><strong>External symbiosis</strong> for an interoperable networked product may involve providing desired functionality to users of Bitcoin or the Lightning Network to benefit from the existing user base and simultaneously grow both networks. <strong>External parasitism</strong> may include features that allow seamless migration from a closed networked product (e.g., nostr-based competitors to <a href="https://branle.netlify.app/?ref=seha.cc">Twitter</a>, <a href="https://arcade.city/?ref=seha.cc">Uber</a>, and potentially GitHub, discussed <a href="https://twitter.com/fiatjaf/status/1517078689585922049?ref=seha.cc">here</a>, <a href="https://twitter.com/MusashiTheFrog/status/1556746167152680962?ref=seha.cc">here</a>, and <a href="https://twitter.com/giacomozucco/status/1556962423680245762?ref=seha.cc">here</a>).</p><p><strong>Internal symbiosis</strong> may exist until the network reaches a ceiling that the collection of interoperable networked products can&apos;t overcome. <strong>Internal parasitism</strong> would be the natural end state for interoperable networked products once the network reaches its global ceiling. After that, there may only be a need for a few decentralized alternatives to a particular application.</p><p>While Chen may have been overly optimistic about &quot;crypto&quot; providing the foundation for future networked products, it is more plausible for interoperable networked products based on open protocols without separate currencies to provide this foundation. Product designers who choose not to compete with Bitcoin by issuing distinct cryptocurrencies should consider externally symbiotic and parasitic features to other networks when prioritizing their scope to overcome the cold start problem.</p><hr><p><strong><em>Don&apos;t trust, verify:</em></strong><em> This article is based solely on my personal views and does not represent the views of my employers. This article is for informational purposes only and does not constitute an endorsement of any products and services discussed or investment, financial, or trading advice. I do not guarantee the reliability of the content in this article and shall not be held liable for any errors, omissions, or inaccuracies.</em></p>]]></content:encoded></item><item><title><![CDATA[The Elements of User Experience]]></title><description><![CDATA[A summary of instructive notes based on Jesse James Garrett's "The Elements of User Experience"]]></description><link>https://seha.cc/the-elements-of-user-experience/</link><guid isPermaLink="false">62f7aa45525da106047a37d8</guid><category><![CDATA[Internet]]></category><dc:creator><![CDATA[Seha Islam]]></dc:creator><pubDate>Sat, 13 Aug 2022 19:32:28 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1634403665443-81dc4d75843a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMwfHx1c2VyJTIwZXhwZXJpZW5jZXxlbnwwfHx8fDE2NjA0MTg5MzA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1634403665443-81dc4d75843a?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMwfHx1c2VyJTIwZXhwZXJpZW5jZXxlbnwwfHx8fDE2NjA0MTg5MzA&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="The Elements of User Experience"><p>This article is a summary of instructive notes based on <a href="https://twitter.com/jjg?ref=seha.cc">Jesse James Garrett</a>&apos;s book by the same title, available <a href="https://www.amazon.com/Elements-User-Experience-User-Centered-Design/dp/0735712026?ref=seha.cc">here</a>. </p><p>User experience (UX) is an often neglected facet of most applications. </p><p>User-centered design takes the user into account every step of the way along the product development lifecycle.</p><p>In user-centered design,</p><ul><li>no aspect of the user&apos;s experience happens without your conscious intent, and</li><li>the designer considers every possibility of every action the user is likely to take.</li></ul><p>The most common pitfalls during UX design are:</p><ul><li><strong>Design by default: </strong>The new product is complementary to an existing product, and it &quot;defaults to&quot; the design choices of that product.</li><li><strong>Design by mimicry: </strong>UX is designed by mimicking familiar conventions from other products regardless of their appropriateness.</li><li><strong>Design by fiat: </strong>Instead of user needs or product objectives, personal preferences drive the UX.</li></ul><h1 id="the-five-planes">The Five Planes</h1><p>It is best to begin work on a plane when ~80% through the prior plane. Decisions made in lower planes will impact possible options in higher planes.</p><ol><li><strong>The Strategy</strong>, in the form of a Strategy Document </li><li><strong>The Scope</strong>, in the form of Functional Specifications and Content Requirements</li><li><strong>The Structure</strong>, in the form of Architecture Diagrams</li><li><strong>The Skeleton</strong>, in the form of Wireframes</li><li><strong>The Surface</strong>, in the form of Design Mockups</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://seha.cc/content/images/2022/08/Screen-Shot-2022-08-13-at-9.55.29-PM.png" class="kg-image" alt="The Elements of User Experience" loading="lazy" width="1321" height="1018" srcset="https://seha.cc/content/images/size/w600/2022/08/Screen-Shot-2022-08-13-at-9.55.29-PM.png 600w, https://seha.cc/content/images/size/w1000/2022/08/Screen-Shot-2022-08-13-at-9.55.29-PM.png 1000w, https://seha.cc/content/images/2022/08/Screen-Shot-2022-08-13-at-9.55.29-PM.png 1321w" sizes="(min-width: 720px) 720px"><figcaption>The Five Planes of the Elements of User Experience by Jesse James Garrett</figcaption></figure><p>Each plane has considerations regarding functionality and information:</p><ol><li><strong>Functionality:</strong> Consider the product as a tool the user employs to accomplish one or more tasks.</li><li><strong>Information:</strong> Enables users to find and consume the product information quickly.</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://seha.cc/content/images/2022/08/Screen-Shot-2022-08-13-at-9.55.55-PM.png" class="kg-image" alt="The Elements of User Experience" loading="lazy" width="1319" height="1018" srcset="https://seha.cc/content/images/size/w600/2022/08/Screen-Shot-2022-08-13-at-9.55.55-PM.png 600w, https://seha.cc/content/images/size/w1000/2022/08/Screen-Shot-2022-08-13-at-9.55.55-PM.png 1000w, https://seha.cc/content/images/2022/08/Screen-Shot-2022-08-13-at-9.55.55-PM.png 1319w" sizes="(min-width: 720px) 720px"><figcaption>The Elements of User Experience by Jesse James Garrett</figcaption></figure><p>These planes and their functionality and information elements are summarized below.</p><h1 id="1-the-strategy">1. The Strategy</h1><p>Why are we making this product?</p><p>What will the users get out of the site/app, e.g., buy/sell products, the role of advertising, or user-created content in the business model?</p><p>The strategy elements should be documented and maintained in a strategy document.</p><h2 id="11-product-objectives">1.1. Product Objectives</h2><p>Our objectives as the product developer.</p><h3 id="111-business-goals">1.1.1. Business Goals</h3><p>Define the conditions for success, but not the path to get there.</p><h3 id="112-brand-identity">1.1.2. Brand Identity</h3><p>Define a set of conceptual associations or emotional reactions that interactions with the product should create.</p><h3 id="113-success-metrics">1.1.3. Success Metrics</h3><p>Define the measurable indicators to influence decisions and evidence whether the product meets its objectives and user needs.</p><h2 id="12-user-needs">1.2. User Needs</h2><p>Goals of users outside the product organization.</p><ul><li>Functionality: What functionality is needed to accommodate the user&apos;s needs?</li><li>Information: What information is needed to accommodate the user&apos;s needs?</li></ul><h3 id="121-user-segmentation">1.2.1. User Segmentation</h3><p>Define segments of users with common characteristics. These characteristics may be:</p><ul><li>Demographic: gender, age, education level, marital status, income, etc.</li><li>Psychographic: &#xA0;attitudes and perceptions users have about the world, the functionality, and the information in the product</li></ul><h3 id="122-usability-and-user-research">1.2.2. Usability and User Research</h3><p>Define how to identify and test user needs. Methods include market research, contextual inquiry, task analysis, and user testing.</p><h3 id="123-creating-personas">1.2.3. Creating Personas</h3><p>Define fictional characters that represent different segments and segment cross-sections of target users.</p><h1 id="2-the-scope">2. The Scope</h1><p>What are we going to make?</p><p>The functions and features that will be permitted by the site/app and how functions of the site fit together.</p><p>Features should be prioritized based on the priorities laid out in the strategy.</p><h2 id="21-functional-specifications-functionality">2.1. Functional Specifications (Functionality)</h2><p>Functional Specifications are detailed descriptions of the feature set of the product.</p><ul><li>Be positive, e.g., direct user vs. disallow user.</li><li>Be specific, e.g., videos with most views in the last week vs. popular videos.</li><li>Avoid subjective language, e.g., hip and flashy, meet hipness expectations of X. Better to define branding guidelines and conform.</li></ul><h2 id="22-content-requirements-information">2.2. Content Requirements (Information)</h2><p>Content Requirements are descriptions of the content elements of a product.</p><ul><li>Separate format and purpose, e.g., need FAQ vs. the need to provide users with access to commonly needed information.</li></ul><h1 id="3-the-structure">3. The Structure</h1><p>How do the features fit together as a cohesive whole?</p><p>The structure of the site/application and how different pages/screens are organized.</p><p>Interaction Design and Information Architectures can be expressed as diagrams based on the <a href="http://jjg.net/ia/visvocab/?ref=seha.cc">Visual Vocabulary</a>.</p><h2 id="31-interaction-design-functionality">3.1. Interaction Design (Functionality)</h2><p>Which functions end up on which screens?</p><p>Interaction Design describes possible user behavior and defines how the product responds to the user.</p><h3 id="311-conceptual-models">3.1.1. Conceptual Models</h3><p>Users&apos; impressions of how the interactive components will behave, e.g., shopping cart.</p><h3 id="312-error-handling">3.1.2. Error Handling</h3><ul><li>Make errors impossible, if possible.</li><li>Make errors difficult otherwise.</li><li>Fix errors if appropriate or handle them to give the user the choice to recover.</li><li>Provide warnings to prevent errors if they may be irrecoverable.</li></ul><h2 id="32-information-architecture-information">3.2. Information Architecture (Information)</h2><p>Information Architecture is the arrangement of content elements to facilitate user consumption based on specific aspects of what users need (strategy) and what information meets those needs (scope).</p><h3 id="321-structuring-content">3.2.1. Structuring Content</h3><p>Organizational and navigational schemes allow users to move through the site content efficiently and effectively.</p><h3 id="322-architectural-approaches">3.2.2. Architectural Approaches</h3><p>Architectural Approaches define the approach by which information will be organized.</p><ul><li>The basic unit of information is a node.</li><li>Hierarchical structures (hub-and-spoke) have parent/child relationships.</li><li>Matrix structures allow the user to move along two or more dimensions from node to node.</li><li>Organic structures allow free-form exploration from node to node.</li><li>Sequential structures are common in books, articles, audio, and video.</li></ul><h3 id="323-organizing-principles">3.2.3. Organizing Principles</h3><p>Define the criteria by which nodes will be grouped or separated.</p><ul><li>Organizing principles at the highest level, tied to the product objectives and user needs</li><li>Lower levels of the architecture are influenced more by decisions specific to the content and functional requirements</li></ul><h3 id="324-language-and-metadata">3.2.4. Language and Metadata</h3><p>Define a controlled vocabulary: a set of standard terms for the site, a thesaurus that maps commonly used words to the controlled vocabulary, and metadata.</p><h1 id="4-the-skeleton">4. The Skeleton</h1><p>Placement of UI elements (e.g., text, buttons, controls), arranged for maximum effect and efficiency. Wireframes capture all skeleton decisions in a single document that is a reference for visual design work and site implementation.</p><h2 id="41-interface-design-functionality">4.1. Interface Design (Functionality)</h2><p>How are functions realized on the screen?</p><p>Interface Design provides users with the ability to do things. This arrangement of interface elements enables users to interact with the feature set.</p><ul><li>Users immediately notice the important stuff.</li><li>Unimportant stuff is often not there at all.</li></ul><h2 id="42-navigation-design-information">4.2. Navigation Design (Information)</h2><p>Navigation design provides users with the ability to go places. This set of elements allows the user to move through the information architecture.</p><ul><li>Provide users with a means to get from one point to another.</li><li>Communicate the relationship between the elements it contains.</li><li>Communicate the relationship between its contents and the page the user is viewing.</li></ul><h3 id="421-navigation-systems">4.2.1. Navigation Systems</h3><ul><li><strong>Global navigation:</strong> Across a broad sweep of the entire product</li><li><strong>Local navigation:</strong> Access to nearby architecture</li><li><strong>Supplementary navigation:</strong> Shortcuts to related content that are not readily accessible in global or local navigation</li><li><strong>Contextual navigation:</strong> Inline navigation for easy access</li><li><strong>Courtesy navigation:</strong> Access to items that users don&apos;t need regularly, provided as a convenience</li><li><strong>Remote navigation:</strong> Navigational devices outside the product, typically used if users are frustrated with the navigational systems provided within the product</li></ul><h2 id="43-information-design-functionality-information">4.3. Information Design (Functionality &amp; Information)</h2><p>Information Design communicates ideas to the user. It is the presentation of information for consumption by the user.</p><ul><li>Group and arrange information elements to reflect how users think. </li><li>Wayfinding is a set of design elements that enable users to orient themselves using colors or icons, similar to parking lots.</li></ul><h1 id="5-the-surface">5. The Surface</h1><p>The Surface is the user interface, including text, images, and any interactive components. The considerations at the surface can be subjective. See the work of <a href="https://www.marcandrew.me/?ref=seha.cc">Marc Andrew</a> for helpful guides and design systems.</p><h2 id="51-making-sense-of-the-senses">5.1. Making Sense of the Senses</h2><ul><li><strong>Smell and taste:</strong> Choice of materials for physical products, e.g., &quot;new car smell.&quot;</li><li><strong>Touch:</strong> Industrial design, materials, shape, vibrations</li><li><strong>Hearing:</strong> Sounds to inform the user and give personality to the product, encourage recall</li><li><strong>Vision: </strong>How effectively does the design support objectives of each plane? Communicate brand identity.</li></ul><h2 id="52-follow-the-eye">5.2. Follow the Eye</h2><p>Where does the eye go first?</p><ul><li>Successful designs will have smooth eye flow. User feedback that suggests the design is &quot;busy&quot; or &quot;cluttered&quot; indicates that the flow isn&apos;t smooth.</li><li>The surface plane should provide a guided tour of possibilities without distracting from information or functions to fulfill those possibilities.</li></ul><h2 id="53-contrast-and-uniformity">5.3. Contrast and Uniformity</h2><ul><li>Contrast to draw attention, e.g., brighter components for navigation</li><li>Uniformity, e.g., same height buttons</li></ul><h2 id="54-internal-and-external-consistency">5.4. Internal and External Consistency</h2><ul><li>Consistent &quot;look-and-feel&quot; within and across other similar products</li></ul><h2 id="55-color-palettes-and-typography">5.5. Color Palettes and Typography</h2><ul><li>Use colors and typography effectively</li><li>Associate colors with similar elements</li><li>Differentiate text components with different typography</li></ul><h2 id="56-design-comps-and-style-guides">5.6. Design Comps and Style Guides</h2><ul><li>Design composition should mirror wireframes</li><li>Style guides enforce design consistency</li></ul>]]></content:encoded></item><item><title><![CDATA[Unchaining the Web]]></title><description><![CDATA[Blockchains cannot give us the Web we want and we should explore alternative protocols.]]></description><link>https://seha.cc/unchaining-the-web/</link><guid isPermaLink="false">62e1a37ead0a021662d07aed</guid><category><![CDATA[Internet]]></category><dc:creator><![CDATA[Seha Islam]]></dc:creator><pubDate>Sun, 31 Jul 2022 11:00:45 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1425326452142-67c31f601d2f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxjaGFpbnN8ZW58MHx8fHwxNjU5MjA0NTQ4&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<blockquote>Ain&apos;t no mountain high enough, ain&apos;t no valley low enough, ain&apos;t no river wide enough.</blockquote><img src="https://images.unsplash.com/photo-1425326452142-67c31f601d2f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxjaGFpbnN8ZW58MHx8fHwxNjU5MjA0NTQ4&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Unchaining the Web"><p>&#x2014; Marvin Gaye on the storage, latency, and throughput limitations of blockchains</p><hr><p>The indexed Web currently contains 3.83 billion pages <a href="https://www.worldwidewebsize.com/?ref=seha.cc">[1]</a> that serve five billion people <a href="https://www.statista.com/statistics/617136/digital-population-worldwide/?ref=seha.cc">[2]</a>, with an expected data footprint of 175 zettabytes by 2025 <a href="https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf?ref=seha.cc">[3]</a>. Every second, we transmit over 150 TB of data, including over 3,000,000 emails, 100,000 Google searches, 10,000 tweets, and 1,000 Instagram posts <a href="https://www.internetlivestats.com/?ref=seha.cc">[4]</a>.</p><p>Meanwhile, the entire Bitcoin blockchain is 420 GB <a href="https://blockchair.com/bitcoin/charts/blockchain-size?ref=seha.cc">[5]</a>, and an archival node of Ethereum is &quot;units of terabytes&quot; <a href="https://ethereum.org/en/developers/docs/nodes-and-clients/?ref=seha.cc">[6]</a> in size.</p><p>To some, it is intuitive that blockchains cannot meet the data storage needs of the Web and that the protocols and applications based on blockchains cannot serve the processing needs of everything we want to do online at the volume and speed we want to do those things.</p><p>To others, the indefinite optimists, as Peter Thiel would call them <a href="http://www.zerotoonebook.com/?ref=seha.cc">[7]</a>, a web built on blockchains is still a possibility. Yet, blockchain-based protocols cannot give us the Web we want, even in the most optimistic scenario. So, instead, we should explore alternative protocols to serve as the foundation of the Web.</p><p>The remainder of this article covers:</p><ul><li>the Web we want,</li><li>the blockchain,</li><li>the alternative, and</li><li>unchaining the Web.</li></ul><hr><blockquote>We must defend our own privacy if we expect to have any. We must come together and create systems which allow anonymous transactions to take place. People have been defending their own privacy for centuries with whispers, darkness, envelopes, closed doors, secret handshakes, and couriers. The technologies of the past did not allow for strong privacy, but electronic technologies do.</blockquote><p>&#x2014; Eric Hughes on the Web he wants in A Cypherpunk&apos;s Manifesto <a href="https://nakamotoinstitute.org/cypherpunk-manifesto/?ref=seha.cc">[8]</a></p><hr><h1 id="the-web-we-want">The Web we want</h1><p>The Web we want is:</p><ul><li><strong>Private:</strong> Privacy is the ability to selectively reveal information about oneself to others, whether it&apos;s another person, a vendor, or an application. Many online applications we use today collect excessive information about us. They monetize our data to bring their products to market and frequently leak our information, compromising our identities, contact information, and even physical location. The Web we want minimizes the personal data required to function and empowers individuals to disclose only the information they wish to reveal to others online. Minimizing private data collection can protect individuals, businesses, and governments from threats they may face due to cybersecurity breaches. The recent leak of one billion individuals&apos; data in China <a href="https://www.wsj.com/articles/china-has-a-problem-with-data-leaks-one-reason-is-its-surveillance-state-11658410752?ref=seha.cc">[9]</a> illustrates how dangerous the world can become without privacy.</li><li><strong>Verifiable:</strong> Verifiability is the ability to ascertain the validity of some information and ensure that it has not been tampered with by unauthorized parties. Today&apos;s popular applications are full of fake accounts, which can disseminate information from sources that we cannot verify. Because most of these applications are closed source, we cannot verify the algorithms that serve us the information either. Instead, centralized parties judgmentally &quot;verify&quot; accounts using &quot;checkmarks,&quot; which they can revoke at will. The web we want empowers individuals to verify the protocols, applications, and information shared in those applications while encouraging them to communicate with others in a verifiable manner.</li><li><strong>Censorship resistant:</strong> Censorship resistance is the ability to avoid restrictions on participation in a protocol. Centralized services, whether because of the authoritarian regimes in which they reside or their policies, unapologetically censor their users at increasing rates. Some open protocols, including blockchain-based ones, have faced numerous denial of service attacks that prevent all users from participating in the protocol. The web we want does not allow any one party to prevent other parties from participating in a protocol and empowers its users to identify and defend against denial of service attacks.</li></ul><p>In terms of its performance, the Web we want has:</p><ul><li><strong>High availability</strong></li><li><strong>High throughput</strong></li><li><strong>Low latency</strong></li><li><strong>Low cost</strong></li></ul><p>Today&apos;s web applications are highly performant but lack privacy, verifiability, and censorship resistance. As long as they&apos;re in the hands of a few centralized authorities, the Web today is not the web we want.</p><hr><blockquote>The solution we propose begins with a timestamp server. A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it.</blockquote><p>&#x2014; Satoshi Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System <a href="https://bitcoin.org/bitcoin.pdf?ref=seha.cc">[10]</a></p><hr><h1 id="the-blockchain">The blockchain</h1><p>A blockchain is an append-only data structure (a chain of sequenced blocks) containing transaction data, ranging from the movement of funds to more complex transactions embedded in &quot;smart contracts.&quot;</p><p>A blockchain-based protocol (e.g., Bitcoin, Ethereum) is a set of communication instructions and verification rules based on these append-only data structures, which allow the protocol users to establish a common global state.</p><p>A node on a network that uses a blockchain-based protocol needs to have:</p><ol><li><strong>Enough data storage</strong> to store everyone&apos;s data, all the time, sequentially, since inception and</li><li><strong>Enough computing power</strong> to process everyone&apos;s data, all the time, sequentially, since inception.</li></ol><p>Further, each node needs to store and process the necessary data with:</p><ol><li><strong>High enough throughput</strong> to accommodate the volume and</li><li><strong>Low enough latency</strong> to accommodate the speed at which we interact online.</li></ol><p>Storing only cryptographic hashes of data on blockchains instead of the underlying raw data and processing proofs of each computation on blockchains instead of the underlying computations does not alter the need for everyone to store and process that data all the time, sequentially, since inception.</p><p>As long as there are non-zero storage and processing costs required for the things we want to do online, it is infeasible to use a data structure that requires everyone to agree on a common global state of everything we do online. Then, we should consider the limited set of applications where it would make sense for society to bear the costs of a blockchain&apos;s inefficiencies. One such application is global, digital, sound money, i.e., Bitcoin. It makes sense to incur this cost for Bitcoin because we have not stumbled on a more efficient way to ensure global, digital, sound money exists. All nodes on the Bitcoin network must store and process everyone&apos;s transactions, all the time, sequentially, since inception, to establish account balances and validate the total money supply. The storage, computation, throughput, and latency requirements are tolerable enough to subject ourselves to the limitations of a blockchain for this one application as it has the chance to serve the role of money with a total addressable market of $420 trillion or more <a href="https://www.credit-suisse.com/about-us/en/reports-research/global-wealth-report.html?ref=seha.cc">[11,</a><a href="https://www.bcg.com/publications/2022/standing-still-not-an-option?ref=seha.cc"> 12]</a>.</p><p>Satoshi started with a particular problem and settled on a blockchain as a means to solve that problem. Thanks to his work, we now have global, digital, sound money. But, what application besides money needs a blockchain to be private, verifiable, and censorship-resistant? The use cases to date are typically new forms of limited purpose monies or securities issued without being subject to the necessary disclosures. Putting questions of ethics and economic viability aside, these applications cannot give us the Web we want.</p><hr><blockquote>Governments are good at cutting off the heads of centrally controlled networks like Napster, but pure P2P networks like Gnutella and Tor seem to be holding their own. </blockquote><p>&#x2014; Satoshi Nakamoto on centralized vs. p2p protocols <a href="https://satoshi.nakamotoinstitute.org/emails/cryptography/4/?ref=seha.cc">[13]</a></p><hr><h1 id="the-alternative">The alternative</h1><p>With a blockchain-based protocol, the following limitations apply to nodes so that they may determine the common global state, i.e., consensus:</p><ol><li><strong>Everyone must store and process the data:</strong> Every node using a blockchain-based protocol must store and process data. If an application doesn&apos;t need every user to store and process data, it shouldn&apos;t be on a blockchain. If not every user needs to store and process data (or hashes, pointers, proofs of the underlying data), it also does not need to be built using peer-to-peer (p2p) protocols, a superset of blockchain-based protocols.</li><li><strong>Everyone&apos;s data must be stored and processed:</strong> Nodes using a blockchain-based protocol must store and process data for every user. &quot;General purpose&quot; blockchains like Ethereum are further limited in their scalability as users of one application must also incur the burden of storing and processing data for users of all other applications on the protocol. It is unlikely that any application needs this level of storage and processing.</li><li><strong>Data must be stored and processed all the time:</strong> Nodes using a blockchain-based protocol must store and process data all the time to verify the most current global state. Since everyone must store and process everyone else&apos;s data, a node cannot stay in sync with the consensus reached every block and serve other users unless it is storing and processing data all the time. In applications that don&apos;t have an inherent double-spend problem, there&apos;s no need to introduce a double-spend problem, and users can verify information without the need for an always-on node.</li><li><strong>Data must be stored and processed sequentially:</strong> Nodes using a blockchain-based protocol must store and process all data sequentially. The reason for doing so is again to prevent the double-spend problem per the protocols&apos; rules. Non-monetary applications don&apos;t need to be constrained tools specific to solving monetary issues if they are setting out to provide solutions to other problems.</li><li><strong>Data must be stored and processed since inception:</strong> Nodes using a blockchain-based protocol must store and process all data since inception. In most non-monetary applications, this is too high of a burden to bear. Furthermore, as time goes on, the ability to scale applications on blockchain-based protocols worsens.</li></ol><p>It would be prudent for every user of a global, digital, sound money to store and process all data (i.e., run a full node) such that they don&apos;t need to trust another node to verify their balance or the total money supply. Money is an application that everyone in the world needs to use multiple times every single day.</p><p>If an application does not require any of the above, it doesn&apos;t need to be burdened by a blockchain, and alternative protocols should be developed and used.</p><p>An example of a protocol that embodies an alternative to build the Web we want is nostr (Notes and Other Stuff Transmitted by Relays) <a href="https://github.com/nostr-protocol/nostr?ref=seha.cc">[14]</a>, initially developed by <a href="https://www.twitter.com/fiatjaf?ref=seha.cc">fiatjaf</a>.</p><p>With nostr:</p><ol><li><strong>Only some users (i.e., relays) must store and process data:</strong> Instead of everyone storing the data, only relays offer to store data. If a relay attempts to censor a user, the user can choose a different relay or use multiple relays at any time.</li><li><strong>Only some users&apos; data can be stored and processed by any given relay:</strong> Instead of storing everyone&apos;s data, every relay is free to store only the data it wishes to store. Additionally, a user can run a relay that only serves their data.</li><li><strong>No relay needs to store and process data all the time:</strong> Multiple relays can store data such that no single relay has to store and process data all the time. It is sufficient for there to be at least one operational relay for each user to serve the queries from the network.</li><li><strong>No relay needs to store and process data sequentially:</strong> The sequential nature of blockchains and the rules embedded in the protocols using those blockchains prevent double-spending. There isn&apos;t a double-spend problem we need to solve with &quot;tweets&quot; or any application other than money (i.e., value storage and transfer), so the precise sequence of all &quot;tweets&quot; worldwide is not a concern to any given user or relay.</li><li><strong>No relay needs to store and process data since inception:</strong> Since we don&apos;t have the problem of calculating account balances or total money in circulation, relays are free to choose how far back to store and transmit data. </li></ol><p>Unlike a blockchain-based protocol, more flexible protocols like nostr have a chance of working and satisfying the attributes of the Web we want:</p><ul><li><strong>Private:</strong> No user needs to disclose any information about themselves that they don&apos;t wish to reveal. Anyone can anonymously run a relay. Users may anonymously compensate the relays that serve them using global, digital, sound money, and both users and relays can build reputations based on their public keys.</li><li><strong>Verifiable:</strong> Every user can hold their private keys and communicate in a verifiable manner using cryptographic signatures. Further, separating the protocol from the user interface allows a user to select an interface where they can verify the algorithms used by the application in presenting the queried information.</li><li><strong>Censorship-resistant:</strong> Every user is free to run a relay or provide their data to any relay willing to host it. While any relay can censor as it pleases, users only need one third-party willing to relay their data or self-host for their followers to continue receiving their broadcasts.</li><li><strong>High availability:</strong> Bitcoin is highly available because it has extreme redundancy. Bitcoin&apos;s excessive redundancy is necessary as any one of the eight billion people across the globe may need to communicate with others on the Bitcoin network at any given time. On the other hand, a redundancy of a handful of relays should be more than sufficient for most applications using nostr, even for the most influential of influencers to reach their followers. More importantly, anyone can run a relay and self-host if needed or desired. Thus, nostr applications can achieve sufficient availability with ten relays as opposed to ~50,000 Bitcoin nodes <a href="https://luke.dashjr.org/programs/bitcoin/files/charts/historical.html?ref=seha.cc">[15]</a> and ~5,000 Ethereum nodes <a href="https://www.ethernodes.org/?ref=seha.cc">[16]</a>.</li><li><strong>High throughput:</strong> Bitcoin&apos;s throughput is at most 4 MB every 10 minutes <a href="https://bitcoinmagazine.com/guides/what-is-the-bitcoin-block-size-limit?ref=seha.cc">[17]</a> or 0.053 Mbps, and Ethereum&apos;s throughput is at most 1.875 MB every 15 seconds <a href="https://ethereum.org/en/developers/docs/blocks/?ref=seha.cc">[18,</a><a href="https://blog.bitmex.com/ethereums-new-1mb-blocksize-limit/?ref=seha.cc"> 19]</a> or 1 Mbps. In comparison, the throughput for a user of nostr is constrained only by the user&apos;s download speed and the upload speed of his relays. With a median fixed broadband speed of 64.70 Mbps <a href="https://www.speedtest.net/global-index?ref=seha.cc">[20]</a>, nostr provides three orders (1,213x) more throughput than Bitcoin and one order (65x) more throughput than Ethereum. </li><li><strong>Low latency:</strong> The median latency of fixed broadband users is 10 ms <a href="https://www.speedtest.net/global-index?ref=seha.cc">[20]</a>, while two confirmations (~20 minutes = 1,200,000 ms) are standard practice to confirm settlement on Bitcoin, and equivalent settlement (finality) assurances currently require 3x as much time (3,600,000 ms) on Ethereum <a href="https://howmanyconfs.com/?ref=seha.cc">[21]</a>. Nostr, limited only by the latency of the users&apos; and relays&apos; Internet connections, is five orders faster than Bitcoin (120,000x) and Ethereum (360,000x).</li><li><strong>Low cost:</strong> The cost of storing and processing data on Bitcoin and Ethereum depends on the supply and demand for bitcoin and ether, whereas the cost of storing and processing data with nostr is more likely to rely on the cost-plus pricing of the underlying commodities (data storage and bandwidth) similar to cloud service providers. At the current fees of 3 sat/vB on Bitcoin <a href="https://mempool.space/?ref=seha.cc">[22]</a> and average gas price of 35 Gwei on Ethereum <a href="https://ycharts.com/indicators/ethereum_average_gas_price?ref=seha.cc">[23]</a>, it would cost ~0.03 BTC ($635) and ~0.56 ETH ($753) to store 1 MB of data on Bitcoin and Ethereum, respectively. With the price of a 10 GB DigitalOcean droplet at $4/month and assuming a 100-year data storage duration, the marginal cost of 1 MB of data for a single nostr relay is $0.48. With ten relays, the fees are $4.80: two orders cheaper than both Bitcoin (136x) and Ethereum (157x). Of course, this assumes one needs to store data that long to begin with, which is not a choice when it comes to blockchain-based protocols but is a choice for alternative protocols such as nostr.</li></ul><h2 id="performance-comparison">Performance comparison</h2><p>In discrete terms, the average nostr user can achieve 65 times the throughput, 360,000 times faster, and 157 times cheaper per unit than the average Ethereum user. All in, nostr is ten orders (1.98e10 = 1,213 * 120,000 * 136) more performant than Bitcoin and nine orders (3.68e9 = 65 * 360,000 * 157) more performant than Ethereum when considering throughput, latency, and cost.</p><h2 id="scalability-comparison">Scalability comparison</h2><p>Now consider that a nostr user needs only fetch data directly relevant to him, while the blockchain user needs to fetch everyone&apos;s data, all the time, sequentially, since inception. Split equally among the five billion Internet users, and assuming the average Internet user fetches the data of 5,000 other users, the average nostr user would require six orders of magnitude less data than the average blockchain user. By design, the raw performance demand on a nine-order less performant system like Ethereum would be six orders more than the alternative, making Ethereum fifteen orders less scalable than nostr to achieve the same objectives.</p><h2 id="best-case-scenario-for-blockchains">Best case scenario for blockchains</h2><p>Vitalik Buterin suggests that Ethereum can scale 10,000-fold (four orders) using rollups and sharding <a href="https://www.youtube.com/watch?v=UuMOQAVpI2c&amp;ref=seha.cc">[24]</a>. Assuming he can deliver on this promise, Ethereum would still be eleven orders less scalable than nostr.</p><p>Suppose we further eliminate the need for settlement assurances and assume that Ethereum is a single node with a latency of 10 ms. Ethereum would gain an additional five orders of performance while destroying any remaining hope for privacy, verifiability, and censorship resistance. In such a scenario, Ethereum would still be six orders less scalable than nostr without the privacy, verifiability, and censorship resistance benefits of nostr.</p><p>Further, we can expect the cost of storing and processing one unit of data on blockchain-based protocols to increase as the number of users increases, resulting in increases in their token prices and on-chain fees. In contrast, we can expect the cost of storing and processing the same data using protocols like nostr to decrease due to improvements in the underlying hardware and infrastructure (Moore&apos;s law). </p><p>The above estimates are point-in-time with embedded assumptions. As such, they should be considered illustrative rather than precise comparisons of performance and scalability. Nevertheless, whether the exact difference in scalability ends up being six or fifteen orders of magnitude, it is clear that blockchains are not the tool for the job.</p><p>Since blockchains cannot give us the Web we want, we need alternative protocols. More specifically, we need protocols that don&apos;t require everyone to store and process everyone else&apos;s data, all the time, sequentially, since inception.</p><hr><blockquote>Let us proceed together apace. Onward.</blockquote><p>&#x2014; Eric Hughes, A Cypherpunk&apos;s Manifesto</p><hr><h1 id="unchaining-the-web">Unchaining the Web</h1><p>Today&apos;s Web relies on centralized services that lack privacy, verifiability, and censorship resistance. An alternative web built on blockchain-based protocols would be limited in scale and performance. Without a quantum leap, blockchain-based protocols cannot reach the scale and performance of today&apos;s centralized services without falling back to the same trappings of centralization.</p><p>The Web we want is private, verifiable, and censorship-resistant. It has high availability and throughput and low latency and cost. A peer-to-peer protocol with a blockchain is an excellent tool to establish global, digital, sound money. We haven&apos;t been able to develop a better alternative, and it has a good chance of working. The characteristics that make a blockchain necessary for this one application also make it inefficient and unsuitable for building the Web we want. While another limited application for a blockchain-based protocol may emerge, these protocols cannot provide us with every application we want to use online at the volume and speed we want to use those applications.</p><p>The Web we want requires scalable protocols. Luckily, the development of these protocols is in-flight today, and they have a good chance of working to give us the Web we want. In addition to nostr, protocols and applications are being developed by bluesky <a href="https://blueskyweb.org/?ref=seha.cc">[25]</a>, Holepunch <a href="https://holepunch.to/?ref=seha.cc">[26]</a>, Impervious <a href="https://www.impervious.ai/?ref=seha.cc">[27]</a>, Synonym <a href="https://synonym.to/?ref=seha.cc">[28]</a>, and TBD <a href="https://developer.tbd.website/projects/web5/?ref=seha.cc">[29]</a>, to name a few. We should support, use, and improve those protocols so that one day, we may have the Web we want.</p><hr><p><em><strong>Acknowledgments:</strong> I thank </em><a href="https://github.com/nostr-protocol/nostr/graphs/contributors?ref=seha.cc"><em>all contributors to the nostr protocol</em></a><em> for their work, which inspired me to write this article. I also thank <a href="https://twitter.com/bsarer?ref=seha.cc">Baris Sarer</a>, <a href="https://twitter.com/cemkozinoglu?ref=seha.cc">Cem Kozinoglu</a>, <a href="https://twitter.com/fiatjaf?ref=seha.cc">fiatjaf</a>, <a href="https://twitter.com/JackRonaldi?ref=seha.cc">Jack Ronaldi</a>, <a href="https://twitter.com/rhinovesting?ref=seha.cc">rhinovesting</a>, and other anonymous individuals for their time reviewing and commenting on earlier drafts.</em></p><hr><p><strong>References:</strong></p><ol><li><a href="https://www.worldwidewebsize.com/?ref=seha.cc">https://www.worldwidewebsize.com/</a></li><li><a href="https://www.statista.com/statistics/617136/digital-population-worldwide/?ref=seha.cc">https://www.statista.com/statistics/617136/digital-population-worldwide/</a></li><li><a href="https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf?ref=seha.cc">https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf</a></li><li><a href="https://www.internetlivestats.com/?ref=seha.cc">https://www.internetlivestats.com/</a></li><li><a href="https://blockchair.com/bitcoin/charts/blockchain-size?ref=seha.cc">https://blockchair.com/bitcoin/charts/blockchain-size</a></li><li><a href="https://ethereum.org/en/developers/docs/nodes-and-clients/?ref=seha.cc">https://ethereum.org/en/developers/docs/nodes-and-clients/</a></li><li><a href="http://www.zerotoonebook.com/?ref=seha.cc">http://www.zerotoonebook.com/</a></li><li><a href="https://nakamotoinstitute.org/cypherpunk-manifesto/?ref=seha.cc">https://nakamotoinstitute.org/cypherpunk-manifesto/</a></li><li><a href="https://www.wsj.com/articles/china-has-a-problem-with-data-leaks-one-reason-is-its-surveillance-state-11658410752?ref=seha.cc">https://www.wsj.com/articles/china-has-a-problem-with-data-leaks-one-reason-is-its-surveillance-state-11658410752</a></li><li><a href="https://bitcoin.org/bitcoin.pdf?ref=seha.cc">https://bitcoin.org/bitcoin.pdf</a></li><li><a href="https://www.credit-suisse.com/about-us/en/reports-research/global-wealth-report.html?ref=seha.cc">https://www.credit-suisse.com/about-us/en/reports-research/global-wealth-report.html</a></li><li><a href="https://www.bcg.com/publications/2022/standing-still-not-an-option?ref=seha.cc">https://www.bcg.com/publications/2022/standing-still-not-an-option</a></li><li><a href="https://satoshi.nakamotoinstitute.org/emails/cryptography/4/?ref=seha.cc">https://satoshi.nakamotoinstitute.org/emails/cryptography/4/</a></li><li><a href="https://github.com/nostr-protocol/nostr?ref=seha.cc">https://github.com/nostr-protocol/nostr</a></li><li><a href="https://luke.dashjr.org/programs/bitcoin/files/charts/historical.html?ref=seha.cc">https://luke.dashjr.org/programs/bitcoin/files/charts/historical.html</a></li><li><a href="https://www.ethernodes.org/?ref=seha.cc">https://www.ethernodes.org/</a></li><li><a href="https://bitcoinmagazine.com/guides/what-is-the-bitcoin-block-size-limit?ref=seha.cc">https://bitcoinmagazine.com/guides/what-is-the-bitcoin-block-size-limit</a></li><li><a href="https://ethereum.org/en/developers/docs/blocks/?ref=seha.cc">https://ethereum.org/en/developers/docs/blocks/</a></li><li><a href="https://blog.bitmex.com/ethereums-new-1mb-blocksize-limit/?ref=seha.cc">https://blog.bitmex.com/ethereums-new-1mb-blocksize-limit/</a></li><li><a href="https://www.speedtest.net/global-index?ref=seha.cc">https://www.speedtest.net/global-index</a></li><li><a href="https://howmanyconfs.com/?ref=seha.cc">https://howmanyconfs.com/</a></li><li><a href="https://mempool.space/?ref=seha.cc">https://mempool.space</a></li><li><a href="https://ycharts.com/indicators/ethereum_average_gas_price?ref=seha.cc">https://ycharts.com/indicators/ethereum_average_gas_price</a></li><li><a href="https://www.youtube.com/watch?v=UuMOQAVpI2c&amp;ref=seha.cc">https://www.youtube.com/watch?v=UuMOQAVpI2c</a></li><li><a href="https://blueskyweb.org/?ref=seha.cc">https://blueskyweb.org/</a></li><li><a href="https://holepunch.to/?ref=seha.cc">https://holepunch.to/</a></li><li><a href="https://www.impervious.ai/?ref=seha.cc">https://www.impervious.ai/</a></li><li><a href="https://synonym.to/?ref=seha.cc">https://synonym.to/</a></li><li><a href="https://developer.tbd.website/projects/web5/?ref=seha.cc">https://developer.tbd.website/projects/web5/</a></li></ol><hr><p><strong>Additional reading:</strong></p><ol><li><a href="https://saifedean.com/thebitcoinstandard/?ref=seha.cc">The Bitcoin Standard</a> by <a href="https://twitter.com/saifedean?ref=seha.cc">Saifedean Ammous</a></li><li><a href="https://unchained.com/blog/bitcoin-not-blockchain/?ref=seha.cc">Bitcoin, Not Blockchain</a> by <a href="https://twitter.com/parkeralewis?ref=seha.cc">Parker Lewis</a></li><li><a href="https://www.lynalden.com/ethereum-analysis/?ref=seha.cc">An Economic Analysis of Ethereum</a> by <a href="https://twitter.com/LynAldenContact?ref=seha.cc">Lyn Alden</a></li></ol><hr><p><em><strong>Don&apos;t trust, verify:</strong> This article is based solely on my personal views and does not represent my employer&apos;s views nor the views of reviewers of earlier drafts of this article. This article is for informational purposes only and does not constitute an endorsement of any products and services discussed or investment, financial, or trading advice. I do not guarantee the reliability of the content in this article and shall not be held liable for any errors, omissions, or inaccuracies. </em></p>]]></content:encoded></item></channel></rss>