<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>inamerrata</title>
	<atom:link href="https://www.erisian.com.au/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>https://www.erisian.com.au/wordpress</link>
	<description>Anthony Towns&#039; blog</description>
	<lastBuildDate>Fri, 19 Apr 2024 16:42:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.9</generator>
	<item>
		<title>Team Slow and Steady</title>
		<link>https://www.erisian.com.au/wordpress/2024/04/20/team-slow-and-steady</link>
					<comments>https://www.erisian.com.au/wordpress/2024/04/20/team-slow-and-steady#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Fri, 19 Apr 2024 14:51:08 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">https://www.erisian.com.au/wordpress/?p=1202</guid>

					<description><![CDATA[I&#8217;ve been finding myself dissatisfied with how the various Bitcoin tribes of the moment self-identify: the maximalists, the plebs, the ossifiers, the multicoiners, the laser eyes, the scalers, the inscriptors, the filterers, the covenants crew, etc &#8212; they all feel like they don&#8217;t quite match how I think about Bitcoin. So, per xkcd 927, I [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I&#8217;ve been finding myself dissatisfied with how the various Bitcoin tribes of the moment self-identify: the maximalists, the plebs, the ossifiers, the multicoiners, the laser eyes, the scalers, the inscriptors, the filterers, the covenants crew, etc &#8212; they all feel like they don&#8217;t quite match how I think about Bitcoin. So, per <a href="https://xkcd.com/927/">xkcd 927</a>, I figure that means it&#8217;s time to make up my own tribal identity; hence &#8220;Team <a href="https://fablesofaesop.com/the-hare-and-the-tortoise.html">Slow and Steady</a>&#8220;. Our logo, naturally, is a giant tortoise.</p>



<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-full is-resized"><img decoding="async" src="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/c41d2742-6e12-4246-9e29-6e48d8fe9f15.jpeg" alt="" class="wp-image-1203" width="512" height="512" srcset="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/c41d2742-6e12-4246-9e29-6e48d8fe9f15.jpeg 1024w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/c41d2742-6e12-4246-9e29-6e48d8fe9f15-300x300.jpeg 300w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/c41d2742-6e12-4246-9e29-6e48d8fe9f15-150x150.jpeg 150w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/c41d2742-6e12-4246-9e29-6e48d8fe9f15-768x768.jpeg 768w" sizes="(max-width: 512px) 100vw, 512px" /></figure></div>



<p>There&#8217;s a few obvious ways to think about &#8220;slow and steady&#8221; in the context of Bitcoin:</p>



<ul><li>as an expression of <a href="https://saifedean.com/podcast/84-hard-money-and-time-preference-lecture-at-the-property-freedom-society">low time preference</a> thinking</li><li>as a contrast to <a href="http://web.archive.org/web/20101017031414/https://www.businessinsider.com/mark-zuckerberg-2010-10">&#8220;move fast and break things&#8221;</a></li><li>as an endorsement of <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-July/014726.html">avoiding artificial deadlines</a></li><li>as an exhortation to <a href="http://www.quickmeme.com/img/76/76485ff9ae0300e89786a9fffea137e6e8bbbce853bdf9fd3bb68e60b3a4987d.jpg">keep trying and persevere</a></li></ul>



<p>There are a variety of reasons to like those attitudes in the context of Bitcoin: as something trying to be a superior store of value, predictability and stability are very desirable; as a consensus network, avoiding breakages and incompatibilities becomes extremely important; as a global network, avoiding the cognitive load on users imposed by frequent changes is helpful; as an open source, peer to peer network, taking the time for everyone to understand and accept changes before expecting them to be adopted seems wise.</p>



<p>Likewise, there are drawbacks to this approach: it makes it hard to be &#8220;first to market&#8221; for new features, it means you need to exercise a lot of patience if you want to be involved, and maybe it means you don&#8217;t get the fun of being invited to all the cool parties designed to hype everyone up about the latest fads. That seems like a fine tradeoff to me.</p>



<p>Maybe it&#8217;s worth comparing cases where the &#8220;slow and steady&#8221; philosophy comes to different conclusions than other Bitcoin tribes.</p>



<p>Probably the most direct comparison can be made the the <a href="https://www.forbes.com/sites/digital-assets/article/should-we-be-worried-about-bitcoin-ossification/">&#8220;ossification&#8221;</a> camp. After all, what could be more slow and steady than not moving at all?</p>



<div class="wp-block-image is-style-rounded"><figure class="alignright size-medium"><img decoding="async" loading="lazy" width="300" height="300" src="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/caa700b7-d6f1-4cf1-9632-bcad521d9ff9-300x300.jpeg" alt="" class="wp-image-1204" srcset="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/caa700b7-d6f1-4cf1-9632-bcad521d9ff9-300x300.jpeg 300w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/caa700b7-d6f1-4cf1-9632-bcad521d9ff9-150x150.jpeg 150w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/caa700b7-d6f1-4cf1-9632-bcad521d9ff9-768x768.jpeg 768w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/caa700b7-d6f1-4cf1-9632-bcad521d9ff9.jpeg 1024w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<p>&#8220;Ossify&#8221; means &#8220;to turn to bone&#8221;, or more metaphorically, to become inflexible and unable to be changed. I&#8217;m fairly sure its etymology here is by analogy to <a href="https://en.wikipedia.org/wiki/Protocol_ossification">&#8220;protocol ossification&#8221;</a> in the Internet, where routers and ISPs that violate the end-to-end principle have caused an inability to effectively deploy new protocols, because not only do the endpoints need to change, but all the routers and ISPs in-between do too. Bitcoin does suffer from that class of problem with regard to addresses: since many people use custodians instead of interacting with the blockchain via their own software, address upgrades (such as the upgrade to segwit <a href="https://en.bitcoin.it/wiki/Bech32_adoption">p2wpkh and p2wsh bech32</a> addresses, or taproot <a href="https://whentaproot.org/">p2tr bech32m</a> addresses) become difficult as they require third parties to update their software.</p>



<p>Ethereum and altcoiners seem to have been a big proponent of Bitcoin&#8217;s ossification, often treating it as a given that Bitcoin had already ossified (eg <a href="https://twitter.com/nicksdjohnson/status/1233839941605613568">&#8220;Bitcoin-style ossification&#8221;, March 2020</a>, <a href="https://twitter.com/hudsonjameson/status/1402050764915326978">&#8220;Bitcoin&#8217;s ossification development philosophy&#8221;, June 2021</a>), which might be compared to a lack of contemporaneous uptake amongst Bitcoiners (eg <a href="https://twitter.com/LukeDashjr/status/1382905887237550081">&#8220;Ossification is stupid and suicide&#8221;, April 2021</a>), though perhaps that has changed, with a Bitcoin Magazine article declaring it <a href="https://bitcoinmagazine.com/culture/why-bitcoins-ossification-will-be-necessary">inevitable</a> in May 2022.</p>



<p>Ossification advocacy generally involves a <a href="https://en.wikipedia.org/wiki/Motte-and-bailey_fallacy">motte-and-bailey</a> approach, sometimes arguing that it simply means change is slow but not impossible, but often implying that in reality any change is either infeasible or impossible. For anyone who wants to make the former claim, I think &#8220;slow and steady&#8221; is less misleading. As far as the latter claim goes, claiming that changes to Bitcoin will be impossible or infeasible simply seems wrong to me: we&#8217;ve seen that it&#8217;s possible historically, we know that changes <a href="https://www.coindesk.com/tech/2020/08/07/fixing-this-bitcoin-killing-bug-will-eventually-require-a-hard-fork/">will be needed</a> in the future, and we have no way of committing future Bitcoiners to not making changes if they decide they&#8217;re desirable.</p>



<p>The <a href="https://knowyourmeme.com/memes/laser-eyes-bitcoin-trend-laserrayuntil100k">&#8220;laser ray to $100k&#8221;</a> meme started in <a href="https://twitter.com/CHAIRFORCE_BTC/status/1361634748662231042">Feb 2021</a> when the BTC price was about $50k, with the idea that hitting $100k was next. <a href="https://twitter.com/Excellion/status/1361657812678443011">Samson Mow&#8217;s take</a> on the same day seems representative: &#8220;It took just 52 days for #Bitcoin to go from $25k to $50k. $100k this year is conservative.&#8221; As it turned out, that wasn&#8217;t conservative, and while Bitcoin&#8217;s price rose another 40% or so, that was only after it had crashed to $31k, and it then proceeded to crash again, to an eventual low of around $16k. While it has since rebounded and hit new highs, $100k remains out of reach, at least in USD terms. That hasn&#8217;t stopped people from eagerly predicting imminent new highs: to pick on <a href="https://twitter.com/search?q=from%3Aexcellion 100k">Samson some more</a>:</p>



<div class="wp-block-image is-style-rounded"><figure class="alignright size-full is-resized"><img decoding="async" loading="lazy" src="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/62131dda-690f-4191-98f2-526ee1047e10.jpeg" alt="" class="wp-image-1205" width="300" height="300" srcset="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/62131dda-690f-4191-98f2-526ee1047e10.jpeg 1024w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/62131dda-690f-4191-98f2-526ee1047e10-300x300.jpeg 300w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/62131dda-690f-4191-98f2-526ee1047e10-150x150.jpeg 150w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/62131dda-690f-4191-98f2-526ee1047e10-768x768.jpeg 768w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<ul><li>&#8220;Soon we&#8217;ll never see #Bitcoin below 100k.&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1362335610367696896">2021-02-18</a></li><li>&#8220;Around 6 weeks ago was the last time we saw #Bitcoin in the $30k range. We&#8217;ll likely never see those levels again. It&#8217;s same for the $50k range. There&#8217;ll be a point during the journey to $100k where we leave and never return. Stack here while you can.&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1374224196746711043">2021-03-23</a></li><li>&#8220;Yep, #Bitcoin is going to $100k or higher this year for certain.&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1388049476758032384">2021-04-30</a></li><li>&#8220;#Bitcoin is still going to $100k this year. Keep calm and HODL on.&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1392651581212950528">2021-05-13</a></li><li>&#8220;$100k #Bitcoin is still in play. Easily.&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1399095001582211074">2021-05-31</a></li><li>&#8220;66% of the way to 100k. Just 34% to go. #Bitcoin&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1457808173620883458">2021-11-09</a></li><li>&#8220;#Bitcoin $100k by June.&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1489816018713464834">2022-02-05</a></li><li>&#8220;$100k by end of June.&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1514821970176921600">2022-04-15</a></li><li>&#8220;Updating my prediction to be $100k by end of 2022.&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1537361738940960770">2022-06-16</a></li><li>&#8220;$100k is more likely than $10k. #Bitcoin&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1645889885390217219" data-type="URL" data-id="https://twitter.com/Excellion/status/1645889885390217219">2023-04-12</a></li><li>&#8220;“We might go to $0.03M” is the new “we might go to $0.01M.” #Bitcoin&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1748433427936997773">2024-01-20</a></li><li>&#8220;Now $0.1M before the halving. #Bitcoin&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1765033132103803090" data-type="URL" data-id="https://twitter.com/Excellion/status/1765033132103803090">2024-03-06</a></li><li>&#8220;You know we’re still going to $0.1M before the halving right?&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1770290083465515139">2024-03-20</a></li><li>&#8220;$0.1M before halving.&#8221; &#8211; <a href="https://twitter.com/Excellion/status/1779723075350839773">2024-04-15</a></li></ul>



<p>Now, if you don&#8217;t mind being wrong on the internet, there&#8217;s not necessarily any problem to solve here. But at least to me it seems better to remember that Bitcoin&#8217;s price appreciation is fundamentally pretty slow: the market isn&#8217;t efficient enough to just recognise <a href="https://bitcointalk.org/index.php?topic=5267507.msg54974814#msg54974814">Hal&#8217;s insight from 2009</a> and immediately set a price floor of $10M per coin. Instead, prices are very unpredictable in the short term, and NGU is something only happens slowly and only looks remotely steady when you zoom out to look at the very long term.</p>



<div class="wp-block-image is-style-rounded"><figure class="alignright size-large is-resized"><img decoding="async" loading="lazy" src="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/073ef335-56b1-43cb-bdd0-d1d615bf1790.jpeg" alt="" class="wp-image-1207" width="300" height="300" title="Covenant lass, who opted-in to constraints from which none can now free her. Captain Filter: you shall not pass! And THE SCALER, ready to consume ALL THE TXS, no matter how big his blocks get." srcset="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/073ef335-56b1-43cb-bdd0-d1d615bf1790.jpeg 1024w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/073ef335-56b1-43cb-bdd0-d1d615bf1790-300x300.jpeg 300w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/073ef335-56b1-43cb-bdd0-d1d615bf1790-150x150.jpeg 150w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/073ef335-56b1-43cb-bdd0-d1d615bf1790-768x768.jpeg 768w" sizes="(max-width: 300px) 100vw, 300px" /></figure></div>



<p>Despite many differences, the covenant crew, the filterers and the scalers all seem to have a common attitude to their preferred features: <em><strong>that they should have been implemented yesterday, and since that didn&#8217;t happen, it had better be everyone&#8217;s number one priority to get it done now</strong></em>. For the scalers, that&#8217;s exemplified by being unwilling to wait to see how the <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-December/011865.html">capacity increases</a> from the segregated witness proposal worked, instead insisting that an additional doubling be done (roughly) <a href="https://bitcoinmagazine.com/technical/dcgs-scaling-proposal-and-what-it-needs-succeed">concurrently</a>. For the covenant crew, the easy example of rushing things is Jeremy&#8217;s aborted <a href="https://rubin.io/bitcoin/2022/04/17/next-steps-bip119/">UASF client</a> in April 222 (&#8220;Within a week from today, you’ll find software builds for a CTV Bitcoin Client&#8221;), or its <a href="https://twitter.com/4moonsettler/status/1737113171582980413">Dec 2023/Jan 2024 revival</a>. The filterers, meanwhile, aren&#8217;t proposing consensus changes, but are getting <a href="https://cointelegraph.com/news/bitcoin-developer-luke-dashjr-denies-adding-inscriptions-nvd-vulnerability-score">pretty</a> <a href="https://github.com/bitcoin/bitcoin/pull/29173">impatient</a> <a href="https://twitter.com/leo_haf/status/1781064261436936491">about</a> their <a href="https://github.com/bitcoin/bitcoin/issues/29187">issue</a>. (Meanwhile <a href="https://github.com/bitcoin/bitcoin/pull/29520">the PR</a> that would implement their feature waited around two months to be adjusted to not change defaults, and still doesn&#8217;t have tests ensuring it does what it intends). An impatient attitude just seems a bad fit for Bitcoin to me: this is a project that&#8217;s trying to outlive everyone that&#8217;s currently working on it &#8212; even counting the <a href="https://twitter.com/kanzure/status/1584297121385046016">life-extension</a> tribe; spending extra time and effort now seems a much better approach than trying to rush through a change, then getting upset when that doesn&#8217;t work the way you&#8217;d hoped. (There are plenty of other folks with pet projects who get similarly impatient; sometimes I&#8217;m probably even one of them; I&#8217;m just picking on these three because they came to mind as significant groups at present, and I&#8217;m sympathetic to their projects)</p>



<p>One thing &#8220;slow and steady&#8221; doesn&#8217;t do is tell you at what point &#8220;slow&#8221; becomes &#8220;too slow&#8221;. I think in practice that isn&#8217;t really hard: stopping points seem to tend to be pretty basic, like <a href="https://github.com/bitcoin/bitcoin/pull/29520#issuecomment-2056153503">&#8220;does your code have tests?&#8221;</a>, or <a href="https://twitter.com/ajtowns/status/1737246437703110913">&#8220;can you demo this doing anything interesting at all?&#8221;</a>, rather than hard or esoteric like <a href="https://blog.blockstream.com/half-aggregation-of-bip-340-signatures/">&#8220;can you prove/formally verify this?&#8221;</a>.</p>



<div class="wp-block-image is-style-rounded"><figure class="alignleft size-large is-resized"><img decoding="async" loading="lazy" src="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/e49f53a9-2bc9-42f7-a060-0c5a95c2b4a0.jpeg" alt="" class="wp-image-1208" width="224" height="224" srcset="https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/e49f53a9-2bc9-42f7-a060-0c5a95c2b4a0.jpeg 1024w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/e49f53a9-2bc9-42f7-a060-0c5a95c2b4a0-300x300.jpeg 300w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/e49f53a9-2bc9-42f7-a060-0c5a95c2b4a0-150x150.jpeg 150w, https://www.erisian.com.au/wordpress/wp-content/uploads/2024/04/e49f53a9-2bc9-42f7-a060-0c5a95c2b4a0-768x768.jpeg 768w" sizes="(max-width: 224px) 100vw, 224px" /></figure></div>



<figure class="wp-block-pullquote is-style-default" style="border-color:#ff6900"><blockquote class="has-text-color has-luminous-vivid-orange-color"><p><em>A Hare was making</em></p><p><em>fun of the Tortoise one day</em></p><p><em>for being so slow.</em></p></blockquote></figure>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2024/04/20/team-slow-and-steady/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Putting the B in BTC</title>
		<link>https://www.erisian.com.au/wordpress/2023/06/21/putting-the-b-in-btc</link>
					<comments>https://www.erisian.com.au/wordpress/2023/06/21/putting-the-b-in-btc#comments</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Wed, 21 Jun 2023 07:39:24 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">https://www.erisian.com.au/wordpress/?p=1195</guid>

					<description><![CDATA[That&#8217;s B for billions (of people). Okay, lame title is lame, whatever. I wrote previously about why Bitcoin&#8217;s worth caring about, but if any of that was right, then it naturally leads to the idea that those benefits should be available to many people, not just a few. But what does that actually look like? [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>That&#8217;s B for billions (of people). Okay, lame title is lame, whatever.</p>



<p>I wrote <a href="https://www.erisian.com.au/wordpress/2023/02/26/zeitgeist">previously</a> about why Bitcoin&#8217;s worth caring about, but if any of that was right, then it naturally leads to the idea that those benefits should be available to many people, not just a few. But what does that actually look like?</p>



<p>The fundamental challenge with blockchain technology is that every transaction is validated by every user &#8212; and as you get more users, you get more transactions, which leads to every (validating) user having to do more work just to keep up, which eventually leads to a crowding out problem: you hit a point where the amount of work you have to do just to keep up with existing usage is more work than prospective new users are willing to do, and adoption stagnates. There are three approaches to resolving that conundrum:</p>



<ol><li>Just make the tech super efficient.</li><li>Don&#8217;t have everyone validate.</li><li>Have most people transact off the blockchain.</li></ol>



<p>Let&#8217;s go through those.</p>



<h4>Super efficient tech</h4>



<p>Technology improves a lot, so maybe we can punt the problem and just have all the necessary software/hardware improvements happen fast enough that adoption never needs to hit a bottleneck: who cares how much work needs to be done if it&#8217;s just automatically being dealt with in the background and you never notice it? This is the sort of thing <a href="https://stephanlivera.com/episode/465/">utreexo</a> and <a href="https://zerosync.org/">zerosync</a> might improve.</p>



<p>I think the fundamental limit these ideas run into is that they can ultimately only reduce the costs related to validating the authorisation of state changes, without being able to compress the state changes themselves &#8212; even with zerosync compressing historical state changes, if you want to run protocols like lightning or <a href="https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b8">silent payments</a>, you need to be able to monitor ongoing state changes in a timely fashion, in order to catch attempts to cheat you or just to notice someone making an anonymous donation. Having a billion people transacting directly with each other is already something like 6GB of data a month, even if we assume tech improvements and collapse all the signatures to nothing, and constrain everyone to only participating in a single coinjoin transaction per year. (Maths: 32B input, 32B output, 8B new value; everyone who pays you or who you pay participates in the coinjoin; 1B people * (32+32+8) bytes/tx * 1/12 tx/person/month = 6GB/month).</p>



<p>That&#8217;s not completely infeasible by any means, even on mobile or satellite data (for comparison, Bitcoin can currently require 2MB/block * 144 blocks/day * 30 days/month for a total of 8GB/month), but I think it&#8217;s still costly enough that many people will decide validating the chain is more effort than it&#8217;s worth, particularly if it only gets them one transaction a year on average (so for some, substantially less than that), and choose a different option.</p>



<h4>Don&#8217;t validate</h4>



<p>This is probably the riskiest option: if few people are validating, then thos that do have the potential to collude together to change the rules governing the money. Whether that results in enlightened rule by technocratic elites, or corrupt self-dealing as they optimise the protocol to benefit their own balance sheets, or the whole thing getting shutdown by the SEC as an unregistered security, in practice it&#8217;s lost the decentralisation that many of Bitcoin&#8217;s potential benefits rely on.</p>



<p>On the other hand, it is probably the easiest option: having the node software provide an API, then just letting multiple users access that API is a pretty normal way to build software, after all.</p>



<p>In this context, the advantage of doing things this way is that you can scale up the cost of validation by orders of magnitude: if you only need dozens, hundreds or even thousands of validators, it&#8217;s likely fine if each of those validators have to dedicate a server rack or more to keeping their systems operational.</p>



<p>This can allow increasing the volume or complexity (or both) of the blockchain. For example:</p>



<ul><li>Bitcoin, pre-segwit: 1MB per 10 minutes</li><li>Bitcoin, post-segwit: ~2MB per 10 minutes</li><li>Ethereum: ~6.4MB per 10 minutes (128kB/12s)</li><li>Chia: ~10MB per 10 minutes (917kB/52s)</li><li>Liquid: ~20MB per 10 minutes (~2MB/60s)</li><li>BCH: 32MB per 10 minutes</li><li><a href="http://web.archive.org/web/20230330085035/https://developer.algorand.org/docs/run-a-node/setup/install/#hardware-requirements">Algorand</a>: 830MB per 10 minutes (5MB/3.7s)</li><li><a href="http://web.archive.org/web/20230603234526/https://docs.solana.com/running-validator/validator-reqs">Solana</a>: 192GB per 10 minutes (128MB/400ms)</li></ul>



<p>(For comparison, 32MB per 10 minutes was also the value <a href="https://scalingbitcoin.org/hongkong2015/presentations/DAY2/1_layer2_2_dryja.pdf">Tadge used</a> in 2015 when considering Lightning adoption for up to 280M users)</p>



<p>Doing more than an order of magnitude increase on Bitcoin&#8217;s limits in even a moderately decentralised manner seems to already invite significant technical challenges though (eg consider issues faced by <a href="https://forum.algorand.org/t/next-immediate-major-challenge-blockchain-size/7883/5">Algorand</a> and <a href="https://www.cnbc.com/2022/06/01/solana-suffered-its-second-outage-in-a-month-sending-price-plunging.html">Solana</a>, even though in practice neither are yet close to their protocol enforced limits).</p>



<p>Saturating a 100Mb/s link would result in about 6GB per 10 minutes (with no redundancy); combining that with the assumed technical improvements from the previous point, might allow a billion people to each participate in 12 coinjoin transactions per day.</p>



<p>Which is great! So long as you don&#8217;t mind having created a CBDC where the &#8220;central bankers&#8221; are the ones able to run validators on dedicated links, and everyone else is just talking to them over an API. If the central bankers here don&#8217;t like you spending or receiving money, they can apply KYC rules on API access and lock you out (or can be instructed to by their respective governments); if they decide to change the rules and inflate the supply or steal your coins, then you have to accept that, because you can&#8217;t just keep the old system going as you still can&#8217;t afford the equipment to run a validating node, let alone a mining one.</p>



<h4>Get off the blockchain</h4>



<p>Which leaves the final approach: getting most people&#8217;s transactions off the Bitcoin blockchain. After all, it&#8217;s easy to validate the chain if (almost) nobody is using it. But the question then becomes how do you make Bitcoin usable without using the blockchain?</p>



<p>The founders of Blockstream already came up with the perfect answer to this back in 2014: <a href="https://blockstream.com/sidechains.pdf">sidechains</a>. The promise there was that you could just transfer Bitcoin value to be controlled by another blockchain, with a cryptographic guarantee that so long as you obeyed the rules of that other software, then whoever ended up controlling the value on the other software could unilaterally transfer the value back to the Bitcoin blockchain, without needing anyone else&#8217;s permission, or anyone else being able to stop them. That would be ideal, of course, but unfortunately it still <a href="https://medium.com/@Chris_Stewart_5/first-principles-of-the-trustless-2-way-peg-for-sidechains-590573eb4cbe">hasn&#8217;t panned out</a> as hoped, and until it does, it seems that there&#8217;s likely to remain a need for some form of trusted custodian when moving control of an asset from one blockchain to another.</p>



<p>Lightning on its own provides a different, limited, answer to that question: it can allow you to move your <em>payments</em> off the blockchain, but it still assumes individual users are operating on the blockchain for <em>settlement</em> &#8212; in order to rebalance channels, take profits, or deal with attempted fraud. And while we can keep improving that with things like channel factories and off-chain rebalancing, I&#8217;m doubtful that that alone can even get settlement down to the &#8220;1 tx/person/year&#8221; level mentioned above, where technology improvements would potentially let us get the rest of the way.</p>



<p>Another way to answer is to just say &#8220;Bitcoin is for saving, not spending&#8221;: if people only use Bitcoin for saving, and not for payments, then maybe it&#8217;s feasible for people to only deposit or withdraw once every few years, at a similar rate to buying a home. That likely throws away all the possible benefits of Bitcoin other than &#8220;inflation resistance&#8221;. And while that would still be worthwhile, I&#8217;d rather be a little more ambitious.</p>



<p>Of course, a simple and feasible answer is just &#8220;use a custodian&#8221; &#8212; give someone your bitcoin, get an IOU in return, and use that IOU through some other highly scalable API. After all, in this scenario, you&#8217;re already implicitly trusting the custodian to redeem the IOU at par sometime later, so it&#8217;s not really losing anything to also trust the operator of the scalable API to not screw you over either</p>



<p>That can take a lot of forms, eg:</p>



<ul><li>funds held via a custodial wallet</li><li>funds held on an exchange</li><li>funds held in fedimint or similar</li><li>funds wrapped in an altcoin token (WBTC on Ethereum, RBTC on Rootstock, L-BTC on Liquid, <a href="https://www.coingecko.com/en/coins/wrapped-bitcoin-sollet">SoBTC</a> on Solana, etc)</li><li></li></ul>



<p>All of those have similar risks, in essence: <em>custodial risks</em> in that there is some privileged entity who may be able to deliberately misappropriate Bitcoin funds that are held in trust and aren&#8217;t rightfully theirs, and <em>operational risks</em>, in that you (or your custodian) might lose your funds by pressing the wrong button or by an attacker finding and exploiting a bug in the system (whether that be a web1 backend or a web3 smart contract).</p>



<p>For example RBTC suffered a near-catastrophic operational risk last year, having locked the Bitcoin backing RBTC into a multisig contract that <a href="https://blog.rsk.co/noticia/incident-report-rsk-peg-out-service-outage/">could not be spent from via a standard transaction</a>, resulting in 3 months of downtime for their peg-out service. Or consider the SoBTC bridge, which suffered a &#8220;<a href="https://twitter.com/dmihal/status/1591422784223121408">hack</a>&#8221; a couple of days after its custodian Alameda collapsed, which, if accurate, was a catastrophic operational error, or, if false, was a catastrophic rug pull. Exchange/wallet hacks and rugpulls likewise have a long and tawdry history.</p>



<p>Whether custodial behaviour is sensible depends first on how much those risks can be reduced. For example, Liquid and fedimint both rely on federations in the hope that it&#8217;s less likely a majority of the participants will be willing or able to coordinate a theft. Proof of liabilities and reserves (eg <a href="https://blog.bitmex.com/proof-of-reserves-liabilities-bitmex-demonstration/">BitMex</a>, <a href="https://gist.github.com/callebtc/ed5228d1d8cbaade0104db5d1cf63939">cashu</a>, <a href="https://wbtc.network/dashboard/audit">WBTC</a>) is another approach, which can at least allow you as the holder of an IOU to verify that the custodian isn&#8217;t already running fractional reserve or operating a ponzi scheme (more IOUs outstanding than BTC available to redeem), even if it doesn&#8217;t prevent an eventual rug pull. That probably has some value, since a ponzi scheme is easier to excuse: eg &#8220;I&#8217;m only stealing a little to make ends meet; I&#8217;ll pay it back as soon as things turn around&#8221; or &#8220;we just don&#8217;t have good accounting so may have made a few mistakes, but it was all in good faith&#8221;.</p>



<p>If those risks aren&#8217;t dealt with, then significant amounts of Bitcoin being held via third-party custodians may prevent Bitcoin from succeeding at many of its goals:</p>



<ul><li><em>inflation resistance</em> may be weakened via supply inflation due to unrecognised fractional reserve holdings</li><li><em>theft&nbsp;resistance</em> may be hard to ensure if trusted custodians frequently turn out to be thieves themselves</li><li><em>censorship resistance</em> may be weakened if there are only a few custodians</li><li><em>self-enforcing contracts</em> may be unaffordable if they are only able to be done on the main chain, and not via custodially held coins (eg, due to being held in wallets or exchanges that don&#8217;t support programmability, or on alt chains with incompatible programming models)</li></ul>



<h4>Decentralised custodians?</h4>



<p>But what if, at least for the sake of argument, all those concerns are resolved somehow? For any of this to make sense, there additionally needs to be a way to move funds between custodians without hitting the primary blockchain, at least in the vast majority of cases &#8212; otherwise you lock people into having to have a common system with everyone they want to deal with, and you&#8217;re back to figuring out how to scale that system, with all the same constraints that applied to Bitcoin&#8217;s blockchain originally.</p>



<p>That, at least, seems like a mostly solvable problem: the lightning network already provides a way to chain Bitcoin payments between users without requiring the payer and payee to interact on chain, and extending that to function across multiple chains with a common underlying asset is likely quite feasible. If that approach is sufficient for solving normal payments, then maybe that leaves people who want to participate in self-enforcing contracts more complicated than an HTLC to find a single chain to run their contract but that at least seems likely to be pretty feasible.</p>



<p>What might that world look like? If you assume there are 2000 state updates by custodians per block, and that each custodian has 6 state updates a day on average (a coinjoin or channel factory approach would allow each transaction to involve many custodians, and even with relatively complicated scripts/multisig conditions, 2000 updates per block should be quite feasible), then that would support about 50,000 custodians in total. If a billion Bitcoin users each made use of three custodians, then the average custodian would service about 60,000 customers.</p>



<p>For a user to fully validate both global supply and that their own funds are fully backed, they&#8217;d need to validate both the main Bitcoin chain, at a similar cost to today, and (if their custodians make their custodied assets tradable via an altcoin like L-BTC, RBTC or WBTC) may want to verify those chains as well, or otherwise validate their custodians&#8217; claims of liabilities and reserves. But it&#8217;s likely that a custodian would need to make many times as many transactions as an end user, so the cost to validate a custodian&#8217;s chain that on average might only carry one-third of the transactions of 60,000 users might come to as little as 1% of the effort required to validate the main chain. So the cumulative cost of validating three custodial chains, can probably be arranged to be not too much larger than just validating the Bitcoin main chain. A chain like Liquid, with 10 times the transaction capacity (and validation cost) of Bitcoin, could perhaps support 20,000,000 users who only made one transaction a week on average, for example.</p>



<p>We could convert those numbers to monetary units as well. If you assume that this scenario means that those 50,000 custodians on the main chain are the only entities acting directly the main chain, and divide all 21M bitcoins amongst them, that means that, on average, custodians hold 420 BTC on behalf of their users. If you assume they each spend 1% of total assets in fees per year, then that&#8217;s about 4 BTC/block or 400sat/vb in fees. If you assume they fund those fees by collecting fees from people using their IOUs on other blockchains, then each of those blockchains would only need to collect 8000 sats per block, and charge something like 8 msat/vb if they have similar throughput to Bitcoin (compare to Liquid&#8217;s current fees of <a href="http://web.archive.org/web/20230128065654/https://help.blockstream.com/hc/en-us/articles/900001386846-How-do-transaction-fees-on-Liquid-work-">100msat/vb</a> despite potentially having ten times Bitcoin&#8217;s throughput).</p>



<p>Another way of looking at those figures is that, if we were to evolve to roughly this sort of scenario, then whether you&#8217;re a custodian or not, the cost of transacting on the main chain would to be pretty expensive: even if you&#8217;re willing to spend as much as 1% of your balance in transaction fees a year, and only make one transaction a month, you&#8217;ll need to have a balance of about 1 BTC for that to work out. Meanwhile alt chains should be expected to be four or five orders of magnitude cheaper (so if 1 BTC were worth a million dollars, you could reasonably hold $100 or $1000 worth of BTC on an alt chain, and spend something like 8c or 80c per on-chain transaction).</p>



<h4>Getting there from here</h4>



<p>A world where a billion people are regularly transacting using Bitcoin is quite different from today&#8217;s world, of course. An incremental way to look at the above might be to think of it along these lines:</p>



<ul><li>Each 2MB per 10 minutes worth of transaction data supports perhaps 300,000 users making about 1 tx/day.</li><li>If per-capita usage is lower, then the number of users supported is correspondingly higher (eg, 9,000,000 users making 1 tx/month).</li><li>Increasing utility (individual users wanting to make more transactions) and increasing adoption (more users) both pressure that limit.</li><li>Counting Bitcoin, and RBTC on Rootstock, WBTC on Ethereum and L-BTC on Liquid, the above suggests custodially held Bitcoin can support up to about 5,000,000 users making about 1 tx/day.</li><li>Scaling up to 1 billion users at 1 tx/week would require about 50 clones of Liquid, but that probably creates substantial validation costs. If you limited your Liquid clone to 2MB/10 minutes (matching Bitcoin), you&#8217;d need 500 instead; if you reduced the Liquid clone to 200kB/10 minutes, you&#8217;d need 5000; or if you reduced it to 20kB/10 minutes (1% of Bitcoin&#8217;s size) as suggest above you&#8217;d get to 50,000 Liquid clones. (For comparison, Liquid currently seems to average about 11kB/10 minutes &#8212; taking blocks from May 2023 and subtracting 1.7kB/block of coinbase/block signature overhead)</li></ul>



<p>At present, I don&#8217;t think any of those chains are interoperable over lightning, though at least Liquid potentially could be. I think you could do an atomic swap between any of them, however, allowing you to avoid going on the Bitcoin blockchain, at least, though I&#8217;m not sure how easy that is in practice with today&#8217;s wallets.</p>



<p>Given Ethereum usage isn&#8217;t mostly moving WBTC around, and Rootstock and Liquid have very low usage, that&#8217;s certainly more in the way of potential capacity than actual adoption. Even Bitcoin seems to have plenty of spare capacity for <a href="https://ordinals.net/inscriptions">graffiti</a> so perhaps it&#8217;s within the ballpark to estimate current adoption at perhaps 2,000,000 (on-chain) users making 1 tx/month on average (ie, not counting transactions that are about storing data, moving funds between your own wallets, changing your multisig policy, consolidating utxos, increasing utxo fungibility etc). That compares to about 17,000 public lightning nodes, which would make public lightning operators as making up a bit under 1% of on-chain users. Perhaps there are as many as 10 times that doing lightning over private channels or via a hosted/custodial service, so call it 150,000.</p>



<p>So this is very much &#8220;Whose Line is it Anyway?&#8221; rules &#8212; the numbers are made up, and the ratios don&#8217;t matter &#8212; but if it were close to reality, what would the path to a billion users look like?</p>



<ol><li>Get more adoption of lightning for payments (scale up from perhaps 150,000 users now to 1,500,000 users). Somewhere after a 10x increase, Lightning on the main chain will start causing fee pressure, rather than just responding to it.</li><li>Make Liquid much cheaper (drop fee rates from 100msat/vb to 10msat/vb, so that it&#8217;s 10x cheaper due to being able to cope with 10x the volume, and an additional 10x cheaper because L-BTC is an IOU). Make it easy and cheap to onboard buy selling small amounts of L-BTC over lightning; likewise make it cheap to exit by buying L-BTC over lightning. Perhaps encourage Liquid functionaries to set a soft limit of <code>-blockmaxweight=800000</code> (20% of the current size, for twice Bitcoin&#8217;s throughput instead of ten times),  to prevent lower fees from resulting in too much spam.</li><li>Support Lightning channels that are settled on Liquid for L-BTC (ie, add support to lightning node software for the minor differences in transaction format, and also change the gossip protocol so that you can advertise public channels that aren&#8217;t backed by a utxo on the Bitcoin chain). Add support for submarine swaps and the like to go to or from lightning to L-BTC.</li><li>With reduced fee pressure on Liquid, and higher fee pressure on Bitcoin, and software support, that will presumably result in some people moving their channels to be settled on Liquid; if Liquid has 100x or 200x cheaper fees than Bitcoin, that likely means trying Lightning out on Liquid with a small balance will make sense &#8212; eg a $200 L-BTC Lightning channel on Liquid with a random stranger, versus a channel worth $20,000 or more in BTC on Bitcoin proper, perhaps made with a counterparty you already have a history with and trust not to disappear on you.</li><li>Increased usage of Liquid will likely reveal unacceptable performance issues; perhaps slow validation or slow IBD, perhaps problems with federation members staying in sync and signing off on new blocks, perhaps problems relaying txs at a sufficient rate to fill blocks, etc. Fix those as they arise.</li><li>Build other cool things, both on Bitcoin, Liquid and other chains. OP_VAULT vaults, alternative payment channels, market makers with other assets, etc. Before too long, either fee pressure on Bitcoin or Liquid will increase to uncomfortable levels, or the fact that the Liquid federation is acting as custodian for a lot of Bitcoin will become annoying.</li><li>At that point, clone Liquid, with a new custodial federation, and a specific target market that&#8217;s started to adopt Liquid but isn&#8217;t 100% satisfied with it. Tweak the clone&#8217;s parameters or its scripting language or the federation membership/policies to be super attractive to that market, find some way of being even more trustworthy at keeping the custodied BTC secure and the chain operational, launch, and get a bunch of traffic from that market.</li><li>From there, rinse and repeat. Make it easy for users to follow validate multiple chains, particularly validating the BTC reservers and the on-chain liabilities, and easy to add a new chain to follow or drop an old chain once they no longer have a balance there.</li></ol>



<p>&#8220;Liquid&#8221; here doesn&#8217;t have to mean Liquid; it could be anything that can support cross-chain payments, such as fedimint, or a bank website, or an Ethereum clone, or a spacechain, or anything else that&#8217;s interesting enough to attract a self-sustaining userbase and that you can make trustworthy enough that people will accept giving away custody of their BTC. I picked Liquid as the example, as it&#8217;s theoretically straightforward to get proof of liabilities (eg <a href="https://liquid.network/assets/asset/6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d">L-BTC liabilities</a>) and reserves (in practice, I can&#8217;t find a link or an rpc for this part), it can support self-enforcing contracts, and it shares Bitcoin&#8217;s utxo model and scripting language, perhaps making for easier compatibility with Bitcoin itself.</p>



<p>Also perhaps worth noting, that things I paint with a pretty broad brush when I call things &#8220;custodial&#8221; &#8212; OP_VAULT, APO and CTV would likely be enough to allow the <a href="https://gist.github.com/ajtowns/dc9a59cf0a200bd1f9e6fb569f76f7a0">&#8220;efficient local lightning-factory based banks&#8221;</a> I thought about a few years ago; while I&#8217;d include that in the class of &#8220;custodial&#8221; solutions since it only operates efficiently with a trusted custodian, that there is an expensive way of preventing the custodian from cheating might mean you&#8217;d class it differently.</p>



<p>(Not worth noting because it should be obvious: all these numbers are made up, and it&#8217;s lucky if they&#8217;re even in the right ballpark. Don&#8217;t try relying on any of them, they&#8217;re at most suggestive of the general way in which things might unfold, rather than predictive or reliable)</p>



<h4>Fin</h4>



<p>Anyway, to move back to generalities, I guess the key ideas are really:</p>



<ul><li>There&#8217;s a bunch of room to grow non-custodial Lightning and on-chain activity on Bitcoin now &#8212; for Lightning, something like 10x should be plausible, but likely also 2x growth (or more) for everything else, perhaps more if there are also technology/efficiency improvements deployed. So PTLCs, eltoo, channel factories, OP_VAULT, silent payments, payjoins, etc would all fit in here.</li><li>But the headroom there isn&#8217;t unlimited &#8212; expect it to show up as fee pressure and backlogs and less ability to quickly resolve transaction storms. And that will in turn make it hard and expensive for people with small stacks to continue to do self-custody on the main chain. At that point, acquiring new high value users means pricing out existing low value users.</li><li>Moving those users onto cheaper chains that can only deal in BTC IOUs kind of sucks, but it&#8217;s better than the alternatives: either having them use something worse still, or nobody being able to verify that the big players are still following the rules.</li></ul>



<p>Perhaps one way to think of this is as the gentrification of the Bitcoin blockchain; with the plebs and bohemians forced to move to new neighbourhoods and create new and thriving art scenes there? If so, a key difference between real estate gentrification is that in this analogy, moving out in this sense is a way of <em>defending</em> the existing characteristics of the neighbourhood, rather than abandoning it to the whims of corporatism. And, of course, the Bitcoin itself always remains in Bitcoin&#8217;s utxo set, even if its day to day activity is recorded elsewhere. But in any event, that&#8217;s a tomorrow problem, not a today problem.</p>



<p>Anyway, to conclude, here are some links to a couple of the conversations that provoked me to thinking about this: with <a href="https://twitter.com/ajtowns/status/1662356924397158407">@kcalvinalvinn</a> prompted by <a href="https://twitter.com/gladstein/status/1662160189011922944">@gladstein</a>; and this between <a href="https://twitter.com/brian_trollz/status/1668253585375731714">@fiatjaf and @brian_trollz</a>. Also some potentially amusing related <a href="https://lists.linuxfoundation.org/pipermail/lightning-dev/2015-October/000289.html">thoughtsÂ onÂ scaling</a> that go in a different direction from back when BTC was 100x cheaper.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2023/06/21/putting-the-b-in-btc/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Zeitgeist</title>
		<link>https://www.erisian.com.au/wordpress/2023/02/26/zeitgeist</link>
					<comments>https://www.erisian.com.au/wordpress/2023/02/26/zeitgeist#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Sun, 26 Feb 2023 04:45:06 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">https://www.erisian.com.au/wordpress/?p=1185</guid>

					<description><![CDATA[I don&#8217;t know about anyone else, but I&#8217;ve been finding the zeitgeist in Bitcoin a bit incoherent: every second idea that&#8217;s brought up is treated as either essential or an imminent disaster, and yet a few weeks later everyone who was so excited/enraged has moved onto some different idea to be excited/enraged about. Personally, I [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I don&#8217;t know about anyone else, but I&#8217;ve been finding the zeitgeist in Bitcoin a bit incoherent: every second idea that&#8217;s brought up is treated as either essential or an imminent disaster, and yet a few weeks later everyone who was so excited/enraged has moved onto some different idea to be excited/enraged about. Personally, I like to be able to use popular opinion as something of a safety check that I&#8217;m not getting too caught up in the weeds on things I think are technically cool, but that don&#8217;t actually matter &#8212; problem is, that&#8217;s not very effective when everyone else is getting caught up in the weeds worrying about things that don&#8217;t actually matter.</p>



<p>So I guess that means going to my back up plan, and looking at things from first principles: what&#8217;s Bitcoin actually good for, why are we doing any of this, and what will actually help with that? I&#8217;ve thought about that <a href="https://www.erisian.com.au/wordpress/2020/01/07/bitcoiner-maximalism">previously</a> in terms of monetary theory &#8212; money&#8217;s for saving (store of value), or money&#8217;s for paying for things (medium of exchange), or money&#8217;s for writing out values in contracts (unit of account). But while that&#8217;s a nice framework for many things, it&#8217;s also perhaps a bit abstract if you&#8217;re looking to figure out concrete priorities.</p>



<p>Instead, I&#8217;m going to suggest there&#8217;s seven different reasons people care about Bitcoin:</p>



<ol><li>Inflation resistance</li><li>Theft resistance</li><li>Censorship resistance</li><li>Cost reduction</li><li>Self-enforcing contracts</li><li>Wealth redistribution</li><li>Revolution</li></ol>



<p>Let&#8217;s talk about what I mean by each of these, and why people might want them.</p>



<h4>Inflation resistance</h4>



<p>This really has three different scales:</p>



<ul><li> resistance to hyperinflation, where governments massively devalue their currencies in short periods of time (eg <a href="https://en.wikipedia.org/wiki/Hyperinflation_in_Venezuela">Venezuela</a>, <a href="https://en.wikipedia.org/wiki/Hyperinflation_in_Zimbabwe">Zimbabwe</a>, <a href="https://www.abc.net.au/news/2022-09-13/argentina-runaway-inflation-rate-wage-funeral-protests/101427922">Argentina</a>, <a href="https://www.pwc.ch/en/insights/accounting/turkey-is-expected-to-be-hyper-inflationary.html">Turkey</a> or <a href="https://en.wikipedia.org/wiki/Hyperinflation_in_the_Weimar_Republic">Weimar Germany</a>);</li><li>resistance to inflation spikes, eg where attempts to avoid a recession by <a href="https://www.nytimes.com/interactive/2022/03/11/us/how-covid-stimulus-money-was-spent.html">pumping money into the economy</a> results in an <a href="https://www.pbs.org/newshour/economy/u-s-inflation-at-9-1-percent-a-record-high">overall increase in the price level</a>; and</li><li>resistance to mild, planned inflation, where central banks slowly and deliberately reduce a currency&#8217;s purchasing power for <a href="https://www.rba.gov.au/education/resources/explainers/australias-inflation-target.html">various reasons</a>.</li></ul>



<p>High inflation is widely recognised as bad, both for individuals whose savings are diminished and for society as a whole, as it often results in recessionary shocks. By having a fixed supply cap and a liquid market, investing in Bitcoin is a simple way for people to attempt to avoid the bad side effects those policies might have on them, and, if widely adopted, may prevent the bad side effects of those policies in general.</p>



<h4>Theft resistance</h4>



<p>There are a variety of ways in which money gets stolen &#8212; from basic robbery, to more legal methods such as <a href="https://www.news.com.au/finance/money/costs/bank-fees-the-hidden-costs-you-may-not-even-know-youre-paying/news-story/42095c7fde56dead687a977bdc81a28f">hidden bank fees</a>, <a href="https://www.reddit.com/r/paypal/comments/mcajrk/paypal_closed_my_account_with_22k_and_holds_money/">locking funds</a>, or  <a href="https://en.wikipedia.org/wiki/Civil_forfeiture_in_the_United_States">civil asset forfeiture</a>. By being inconspicuous even in large amounts, easy to self custody, and easy to spend or transfer when desired, Bitcoin can be an easy way to avoid many ways in which wealth can be stolen or confiscated.</p>



<p>On the other hand, by being easily transferable, Bitcoin can also be more vulnerable to theft by other means, whether that involves <a href="https://github.com/jlopp/physical-bitcoin-attacks">threats or physical violence</a> or <a href="https://www.coinbureau.com/analysis/biggest-bitcoin-hacks/">insufficient technical security of online wallets</a>. There are, I think, plenty of potential improvements to be made here.</p>



<h4>Censorship resistance</h4>



<p>A different problem some people face is people attempting to prevent them from spending their own money in the ways they&#8217;d like, or from receiving money for goods or services they provide. This can result from people simply trying to discourage illegal activities (cf, <a href="https://en.wikipedia.org/wiki/Silk_Road_(marketplace)">Silk Road</a>) but can also apply to activities the government dislikes, even if they&#8217;re apparently legal (eg, <a href="https://www.washingtonexaminer.com/news/canada-unfreezes-bank-accounts-linked-to-freedom-convoy">Trucker protests</a>) or completely legal (eg, <a href="https://en.wikipedia.org/wiki/Operation_Choke_Point">Operation Choke Point</a>, <a href="https://www.news.com.au/finance/money/costs/gofundme-announces-a-ban-on-antivaccination-campaigns/news-story/2cbf49fc4a7be431bc241b4025186359">various</a> <a href="https://www.washingtonexaminer.com/news/gofundme-reverses-ban-on-kyle-rittenhouse-fundraisers-after-acquittal">GoFundMe</a> <a href="https://www.dailydot.com/irl/gofundme-crowdfunding-sex-workers/">bans</a>); and there are various attempts to have more even more intrusive control over people&#8217;s spending (eg, <a href="https://en.wikipedia.org/wiki/Social_Credit_System">China&#8217;s Social Credit System</a>, Australia&#8217;s <a href="http://web.archive.org/web/20221118204136/https://www.servicesaustralia.gov.au/referral-child-protection-authority-for-income-management?context=22416">Income Management System</a> for welfare recipients, <a href="https://www.weforum.org/agenda/2019/05/this-credit-card-has-a-carbon-emission-spending-limit/">credit cards with emissions limits on purchases</a>, or CBDCs).</p>



<p>In so far as Bitcoin can allow you to transact with other people without third parties having any idea who is making the transaction, or what the transaction is for, then preventing targeted censorship is probably straightforward. And even if such information can still be recovered by approaches such as chainanalysis, even just being able to avoid having to reveal all that information to middlemen, such as banks or payment providers (who, in turn, may be required to collect such information due to KYC/AML requirements) is a win.</p>



<p>If you&#8217;re thinking of Bitcoin as &#8220;Freedom Money&#8221; this is probably the key feature that justifies that phrase: being free to do what you want with your own money, versus someone else being able to tell you &#8220;no, we disaprove, we can&#8217;t allow you to do that.&#8221;</p>



<h4>Cost reduction</h4>



<p>One of the problems with money is that everyone always seems to want more of it; so even if they&#8217;re not stealing your money outright, someone&#8217;s always trying to take a bit here and a bit there. Where there&#8217;s a monopoly payment platform in place, these fees can be exhorbitant (eg, Twitch takes <a href="https://help.twitch.tv/s/article/twitch-affiliate-program-faq?language=en_US#revenue">50% of subscription fees&nbsp;after&nbsp;deducting&nbsp;taxes/expenses</a>, app stores tend to be <a href="https://www.ntia.gov/sites/default/files/publications/mobileappecosystemreport.pdf?_ga=2.161266429.1932899028.1675249746-336723602.1675249746">15%-30%</a>, as is <a href="https://merchants.ubereats.com/us/en/pricing/">Uber Eats</a>, OnlyFans takes <a href="https://onlyfans.com/help/3/16/59">about 20%</a>, Patreon is <a href="https://www.patreon.com/pricing">8%-20%</a>). Having alternative ways of sending/receiving money can both be a way of directly avoiding these costs, and a way of convincing existing companies to reduce their fees by the thread of competition. To a lesser extent the same applies to regular banking services as well, with each transaction losing a few percent to credit card fees or currency conversion fees, as well as setup and account keeping fees.</p>



<h4>Self-enforcing contracts</h4>



<p>A much more esoteric feature that can attract people to Bitcoin (or cryptocurrencies more broadly) is the ability to write self-enforcing contracts (aka &#8220;smart contracts&#8221;). That is, rather than writing a contract &#8220;you do X, I&#8217;ll pay you $Y&#8221; and then having to go to court in the event of a disagreement, you setup a self-enforcing contract, and whoever&#8217;s in the right can just enforce the contract directly without needing any third party involvement (and the uncertainty, expense and delays that can entail).</p>



<p>There are a lot of limitations to that, of course, and it may be that for many things it&#8217;s better done outside Bitcoin per se, rather than directly on the Bitcoin blockchain (particularly for contracts that don&#8217;t involve exchanging bitcoin). But even when restricted to simple things like lightning&#8217;s <a href="https://bitcoinops.org/en/topics/htlc/">hash-timelock contracts</a>, this sort of technique can be a powerful enabling technique for other features.</p>



<h4>Wealth redistribution</h4>



<p>And then of course there&#8217;s the simplest reason of all: the opportunity to part fools from their money. This can be pretty benign &#8212; if some people don&#8217;t recognise Bitcoin&#8217;s value immediately, then you can buy it early then sell it to them later at a higher value when they do eventually recognise its value, ie essentially the &#8220;number go up&#8221; thesis.</p>



<p>But it can also pretty easily devolve to fraud, where you&#8217;re taking money upfront and promising to deliver something of value, without ever having the intention of doing anything much more than taking the money, and the only reason the people losing money are fools is that thy believed you. Maybe you do this by running a <a href="https://www.cbc.ca/news/business/osc-quadriga-gerald-cotten-1.5607990">ponzi scheme</a> and just spending your customers&#8217; deposits, or maybe by creating worthless tokens and selling them to hoodwinked investors so <a href="https://www.straitstimes.com/business/crypto-lender-celsius-propped-up-token-while-two-founders-cashed-out-millions-us-bankruptcy-report">insiders can profit</a>, or maybe pretending you&#8217;ve come up with a new way of effectively turning <a href="https://www.coindesk.com/learn/what-is-luna-and-ust-a-guide-to-the-terra-ecosystem/">lead</a> into <a href="https://www.cbsnews.com/news/ftx-nft-nonfungible-token-crypto-prices-bored-ape/">gold</a>. Personally, I think even some of the <a href="https://finance.yahoo.com/news/stock-flow-analysis-worst-case-162600429.html">ridiculously</a> <a href="https://twitter.com/Excellion/status/1514821970176921600">overconfident</a> price predictions/targets fall into this category too.</p>



<p>Bitcoin and cryptocurrencies are particularly susceptible to this for a few reasons: there&#8217;s easily verified history of people getting really rich really quickly, so when people claim some new scheme will do the same for you, it may be more believable than it would be in other contexts; people who&#8217;ve missed out on those gains already might be <a href="https://twitter.com/marceloclaure/status/1591565113022205952">susceptible to FOMO</a> and jumping in on too-good-to-be-true offers without taking the time to do enough due dilligence; Bitcoin and cryptocurrencies are new and complicated, so it can be hard to see all the ways in which a scheme can fail and thus hard to correctly weight up the risks; and finally it can be hard to hold people responsible for frauds accountable in any meaningful way, perhaps because they managed to be anonymous the entire time, perhaps because they&#8217;re simply operating from another country, or perhaps because they deflected blame to the technology itself. Perhaps the strangest thing to my mind is that rather than encouraging people to call out frauds to prevent newcomers from being defrauded, people that do that get persecuted, both legally (<a href="https://www.coindesk.com/policy/2022/08/01/craig-wright-v-peter-mccormack-wright-put-forward-false-evidence-will-receive-damages-of-1/">McCormack</a>, <a href="https://au.finance.yahoo.com/news/hodlonaut-wins-norwegian-lawsuit-against-134311067.html">hodlonaut</a>) and even more surprisingly (to me, anyway) socially (<a href="https://twitter.com/TuurDemeester/status/1628186851428245505">Tuur</a>, <a href="https://twitter.com/TheBlueMatt/status/1296460897565712385">Matt</a>).</p>



<p>In most cases, people who have different goals for Bitcoin can work together pretty satisfactorily: if someone cares more about censorship resistance and someone else cares more about inflation resistance, that rarely results in much conflict; self-enforcing contracts can be an enabling tool for the other goals whether (eg, by allowing better lightning channels to make payments cheaper or vaults to make theft harder), theft and censorship resistance tend to go hand in hand, and everyone wants cheap transactions.</p>



<p>But people who are benefiting more from fraud don&#8217;t necessarily fit in as well: both because improvements on any of the other tend to require actual work, which defeats the point of getting money for nothing, and because often the promises they&#8217;re making are obsoleted by actual improvements in the other areas.</p>



<p>So, I think it&#8217;s probably worth putting in some effort to appreciate just how much influence fraudsters and scammers have in the space. For example, up until its downfall, FTX and SBF were, somehow, <a href="https://www.latimes.com/politics/story/2022-08-12/sam-bankman-fried-ftx-political-donations">widely respected</a> and considered a <a href="https://www.latimes.com/politics/story/2022-08-12/sam-bankman-fried-ftx-political-donations">respectable partner</a> in designing a regulatory framework for the cryptocurrency industry. That respect provides a platform to make claims like <a href="https://economictimes.indiatimes.com/tech/technology/ftx-chief-says-bitcoin-has-no-future-as-a-payments-network-report/articleshow/91587334.cms">&#8220;Bitcoin has no future as a payments network&#8221;</a>, which are then widely repeated because, hey, the guy&#8217;s a widely respected billionaire (and the fact that FTX effectively held an <a href="https://www.bloomberg.com/opinion/articles/2022-11-14/ftx-s-balance-sheet-was-bad">undisclosed naked short position on BTC to the tune of $1.4B</a> was, prior to the company&#8217;s collapse, undisclosed).</p>



<p>How to actually do that is left as an exercise for the reader, of course.</p>



<p>(There are two related topics I&#8217;m not including as &#8220;fraud&#8221; per se, that other people might: if you&#8217;re just doing an exit scam, eg running a completely legitimate custodial exchange, then one day running off with all your customers&#8217; funds, then I&#8217;m considering that theft more than fraud; if you&#8217;re just doing money laundering and only lying about the source of your income/expenses to people who you think have no business knowing about it anyway, then, to me, that&#8217;s more an issue of censorship resistance)</p>



<h4>Revolution</h4>



<p>Finally, I don&#8217;t think it&#8217;s unfair to say that some see Bitcoin as a way to overthrow the unjust established order. That Bitcoin will stop <a href="https://medium.com/zen-and-the-art-of-crypto/bitcoin-and-the-end-of-war-8997a384cbbb">crony capitalism</a>, <a href="https://medium.com/zen-and-the-art-of-crypto/bitcoin-and-the-end-of-war-8997a384cbbb">stop wars</a> by preventing funding them via inflation, and generally prevent the <a href="https://bitcoinmagazine.com/culture/fiat-money-ruins-civilization">fall of civilisation</a> and usher in a <a href="https://bitcoinmagazine.com/culture/the-bitcoin-renaissance-is-coming">new renaissance</a>.</p>



<p>Personally, I&#8217;m doubtful that this line of thinking really holds up: my guess is that the best bitcoin can really do is more along the lines of &#8220;keeping honest people honest&#8221;:</p>



<ul><li>Bitcoin&#8217;s inflation resistance might stop a government that&#8217;s not trying to steal/destroy the country&#8217;s wealth from accidentally starting on that path, but it won&#8217;t prevent a despot from simply <a href="https://www.euronews.com/next/2022/08/25/bitcoin-ban-these-are-the-countries-where-crypto-is-restricted-or-illegal2">banning bitcoin</a> and aggressively persecuting anyone they suspect of using it anyway;</li><li>likewise if you have to search everywhere to find a tiny SD card, that&#8217;s less tempting to confiscate than a bag full of cash, but there&#8217;s plenty of cases where governments have successfully confiscated Bitcoin despite people applying reasonable levels of protection (and governments tend to have a competitive advantage at <a href="https://xkcd.com/538/">$5 wrench attacks</a> anyway);</li><li>as far as censorship resistance goes, if a government&#8217;s willing to just imprison its critics, that&#8217;s probably already a greater threat than not being able to run a gofundme account;</li><li>maybe significant wealth will get redistributed from later adopters to early adopters, but at best that will just put different people with different flaws in positions of power, and won&#8217;t do away with greed or corruption.</li></ul>



<p>But, hey, I could be wrong; if hyperbitcoinization does somehow ushers in a global idyllic utopia, I won&#8217;t be complaining.</p>



<h4>Alignment</h4>



<p>An obvious question that the above might inspire is why should we have one solution to all those different goals &#8212; why wouldn&#8217;t it be better to work on different approaches so that you can make fewer tradeoffs and end up with a better result for each individual topic, rather than some one-size-fits-all compromise?</p>



<p>I think one key thing tying them all together is decentralisation. Any centralised solution seems likely to breakdown:</p>



<ul><li>centralised control over inflation gets compromised by governments wanting to spend more than they tax without building up debt</li><li>centralised custody provides a single point to attack for governments and activists who want to censor transactions or steal funds</li><li>centralised payment platforms provide opportunities to raise fees to monopoly levels, greatly increasing costs</li><li>contracts with a central controller (who can choose to delay enforcing the contract terms or to not enforce them at all) provide a way to overrule the letter of the contract, whether that&#8217;s via regulatory influence or economic incentives from the losing party to the contract (or because the central controller was the losing party to the contract)</li></ul>



<p>So there is at least some reason to imagine they have enough in common that trying to do everything with a single system isn&#8217;t necessarily crazy.</p>



<h4>Conclusion</h4>



<p>I think that covers most of the reasons, both good and bad, of why people are interested in Bitcoin. While I might go into these in more detail later, I think, for me, the summary is:</p>



<ul><li>At least for now, inflation resistance is mostly a &#8220;don&#8217;t screw it up&#8221; issue. That doesn&#8217;t stop people from constantly <a href="https://bitcoinops.org/en/newsletters/2022/07/20/#long-term-block-reward-ongoing-discussion">trying to screw it up</a> of course.</li><li>Theft prevention has lots of possible improvements: multisigs, <a href="https://bitcoinops.org/en/newsletters/2023/01/18/#proposal-for-new-vault-specific-opcodes">OP_VAULT</a>, lightning watchtowers, supply chain authenticity, etc.</li><li>Censorship resistance still needs work: improving privacy to make it harder to know what to censor via things like encrypting p2p, dandelion transaction broadcast, PTLCs over lightning, etc; but also further encouraging people to <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2023-February/021396.html">get things off-chain</a> where they can stay secret and uncensorable, rather than doing them on-chain where they&#8217;re easy to observe and then attack.</li><li>Cost reduction is, I guess, something we&#8217;re still doing pretty okay at; on chain fees are still low, the lightning network has even lower fees and is continuing to improve, etc, so this seems more an issue of &#8220;more, faster&#8221; than any particular change in direction being needed.</li><li>Self-enforcing contracts is a much more open ended topic, and I don&#8217;t think amenable to a bullet-point summary.</li><li>As far as fraud goes, making it an expected standard that anyone with Bitcoin denominated liabilities regularly publish a standardised <a href="https://blog.bitmex.com/proof-of-reserves-liabilities-bitmex-demonstration/">cryptographic proof of solvency/reserves/liabilities</a> (and making it easy to audit that either via your own full node, or via simple third party phone apps) would likely make it easier to detect and avoid ponzi schemes, at least. (Going further and having these being treated as securing the listed creditors for bankruptcy proceedings might also be straight forward, and encourage creditors to routinely validate these proofs)</li></ul>



<h4>Movie quote</h4>



<blockquote class="wp-block-quote"><p><em>Zeitgeist</em> &#8212; I&#8217;m Zeitgeist.</p><p><em>Deadpool</em> &#8212; Cool. I&#8217;d like to say you have the power to put your finger on the&#8230; pulse of society? </p><p><em>Zeitgeist</em> &#8212; No&#8230; No, I spit acidic vomit.</p><cite><em>Deadpool 2, 2018</em></cite></blockquote>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2023/02/26/zeitgeist/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bitcoin Price</title>
		<link>https://www.erisian.com.au/wordpress/2022/05/20/bitcoin-price</link>
					<comments>https://www.erisian.com.au/wordpress/2022/05/20/bitcoin-price#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Thu, 19 May 2022 18:57:25 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">https://www.erisian.com.au/wordpress/?p=1178</guid>

					<description><![CDATA[One of the things that&#8217;s hard to talk sensibly about is Bitcoin&#8217;s price. I&#8217;m going to have a go at it anyway. Personally, I think there&#8217;s two fundamental aspects driving Bitcoin&#8217;s value: adoption, and security. The idea there is that, fundamentally, if you look at each person who&#8217;s invested in Bitcoin, take their net worth [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>One of the things that&#8217;s hard to talk sensibly about is Bitcoin&#8217;s price. I&#8217;m going to have a go at it anyway.</p>



<p>Personally, I think there&#8217;s two fundamental aspects driving Bitcoin&#8217;s value: adoption, and security. The idea there is that, fundamentally, if you look at each person who&#8217;s invested in Bitcoin, take their net worth and multiply it by the percentage of that net worth they&#8217;re confident putting in Bitcoin, and add all that up, you&#8217;ll get Bitcoin&#8217;s market cap. So increased adoption means you have more people to look at, and increased security means each person is willing to put a higher percentage of their net worth into Bitcoin. Both those underlying factors are interesting to me, so I think having some idea of price trends is useful even as technical information. Obviously that doesn&#8217;t take competition into account at all &#8212; maybe other things look safer than Bitcoin, maybe people change their risk profile and are looking for profit rather than safety, etc: I don&#8217;t mean to suggest the above is all there is to it.</p>



<p>But the underlying idea there is that long term sustained increases in Bitcoin&#8217;s price have to be supported by sustained long term increases in adoption; and for the price increases to be exponential, the adoption increases probably also have to be exponential: you can&#8217;t just get 100 new Bitcoiners each cycle, you have to double the number of Bitcoiners each cycle.</p>



<p>One way to capture that trend is by plotting Bitcoin&#8217;s price over time on a logarithmic graph: every time the line on the graph goes up by an inch, that reflects the price going up 10x, and likewise reflects the underlying adoption of Bitcoin going up by some similar factor.  The simplest way of doing this and turning it into a prediction is exemplified by the <a href="https://framingbitcoin.com/the-bitcoin-rainbow/">rainbow chart</a> which is calculated by also putting the time since bitcoin began on a logarithmic scale, then picking the best straight line that matches. Again: I don&#8217;t mean to suggest that this approaches captures all the important things about price movements; it doesn&#8217;t have any way to predict how changes in monetary or asset price inflation might affect the price, nor have any way of capturing competition in the monetary/cryptocurrency space, and at best it can only predict a trend, not shocks to the trend.</p>



<figure class="wp-block-image"><img decoding="async" src="https://www.blockchaincenter.net/wp-content/uploads/image-145.png" alt=""/></figure>



<p>But without some better way of predicting the future, guessing that trends from the past will continue more or less the same doesn&#8217;t seem like a bad idea. But if you want to do that, the rainbow chart is kind-of awkward: most of the space for the chart is outside the rainbow, and thus irrelevant if you already think the price will follow the rainbow; and because the rainbow tends to cross a 10x spread in price, and isn&#8217;t a straight line, it can be hard to match up when the rainbow is predicting a particular price level will be hit.</p>



<p>One way of fixing that is baking the rainbow prediction in, and seeing what remains. For the following graph, I&#8217;m taking the price prediction from <a href="https://bitcointalk.org/index.php?topic=831547.msg17459785#msg17459785">bitcointalk user trolololo dated 2017-01-10</a>; I&#8217;m dividing the actual price by the prediction, taking the log of that, then rescaling (ie <code>y=log(price/pred, 10)*4+3)</code>, and just using time as the x-axis. The rainbow colours are then simple stripes &#8212; the border between green and yellow (at y=3) is the line that the price would follow if it had exactly matched the prediction.</p>



<figure class="wp-block-image"><img decoding="async" loading="lazy" width="1024" height="640" src="https://www.erisian.com.au/wordpress/wp-content/uploads/2022/05/flatrainbow3-1024x640.png" alt="" class="wp-image-1182" srcset="https://www.erisian.com.au/wordpress/wp-content/uploads/2022/05/flatrainbow3-1024x640.png 1024w, https://www.erisian.com.au/wordpress/wp-content/uploads/2022/05/flatrainbow3-300x187.png 300w, https://www.erisian.com.au/wordpress/wp-content/uploads/2022/05/flatrainbow3-768x480.png 768w, https://www.erisian.com.au/wordpress/wp-content/uploads/2022/05/flatrainbow3.png 1164w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>The additional lines marked on the graph are the price points at powers of 10 &#8212; $1, $10, $100, etc up to $1,000,000 in the top right corner. You can perhaps see some psychological barriers there &#8212; an aversion to crossing the $10, $1000 and $10,000 barriers, with those figures only being crossed after they were in the blue, &#8220;cheap&#8221;, region of the rainbow prediction.</p>



<p>Again: it&#8217;s not reasonable to draw firm conclusions from these sorts of models &#8212; the rainbow chart simply models Bitcoin&#8217;s past performance, and as companies like to say about stocks, past performance is no guarantee of future results.</p>



<p>But I think it can be reasonable to use it as a baseline, that is with the proviso that things continue growing much as they have been, that there are no enormous shocks, etc, what seems likely to happen? In which case, if crossing the $100,000 barrier is similar to past ones, we probably shouldn&#8217;t expect to do it outside of the blue region, which suggests it&#8217;s perhaps plausible in 2027, which is another 5 years away; and Bitcoin at a million dollars per coin (hyperbitcoinisation?)  is probably still a decade or more away, reachable perhaps sometime in the 2030s. Even $100k being the &#8220;fair price&#8221; according to the rainbow model appears not to occur until around about 2024.</p>



<p>That is, if you&#8217;re saving Bitcoin for your retirement in a decade or three, then buying now and expecting ridiculous gains might be reasonable; but if you&#8217;re <a href="https://twitter.com/Excellion/status/1514821970176921600">expecting</a> <a href="https://twitter.com/adam3us/status/1501655954068287491">huge</a> <a href="https://twitter.com/Fxhedgers/status/1437566200905564160">returns</a> over just the next year or two, then that probably implies you&#8217;re expecting that Bitcoin grows much faster than it has in its entire history so far, which is a very big call.</p>



<p>I suspect &#8220;things continue growing much as they have been&#8221; probably already bakes in things like <a href="https://www.nasdaq.com/articles/president-nayib-bukele-announces-44-countries-to-meet-in-el-salvador-to-discuss-bitcoin">&#8220;44 Countries To Meet In El Salvador To Discuss Bitcoin&#8221;</a> &#8212; we&#8217;re already assuming roughly exponential increases in adoption, and going from some companies adding it to their balance sheet to some countries doing the same is simply the scale we&#8217;ve already reached. New ETFs or more appropriate accounting standards also seem likely to be effectively baked in to me.</p>



<p>On the other hand, I&#8217;m pretty sure a prediction based on a linear regression like that is also effectively assuming that USD monetary policy continues to produce both low inflation in the 1%-2% range, and very low interest rates, since those have both the case for almost all Bitcoin&#8217;s existence, and changes there (assuming they&#8217;re not &#8220;transitory&#8221;) will probably cause different behaviours in the future compared to the past. Maybe that results in something meaningful; but maybe it just means that we&#8217;d want to redo the charts in &#8220;2009 USD&#8221; in order to exclude CPI inflation, and that might turn out to be already be good enough.</p>



<p>You can perhaps get a better fitting prediction by redoing the regression; for me, I like that using one that&#8217;s about five years old is still useful, and also that it perhaps suggests you shouldn&#8217;t take any conclusions you might draw from it too seriously. I don&#8217;t think using a fit based on all the price data to date changes any of the conclusions above substantially.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2022/05/20/bitcoin-price/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Liquid and Taproot Activation</title>
		<link>https://www.erisian.com.au/wordpress/2021/10/26/liquid-and-taproot-activation</link>
					<comments>https://www.erisian.com.au/wordpress/2021/10/26/liquid-and-taproot-activation#comments</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Tue, 26 Oct 2021 07:55:43 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">https://www.erisian.com.au/wordpress/?p=1168</guid>

					<description><![CDATA[Blockstream posted today about Elements 0.21 and activating taproot on the Liquid sidechain. I think that&#8217;s worth talking about in a couple of ways. First is that it&#8217;s another consensus update scheduled about six weeks after the previous &#8220;dynafed&#8221; update. That update failed fairly badly causing almost a full day&#8217;s downtime for the network, during [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Blockstream posted today about <a href="https://blockstream.medium.com/taproot-activation-enhanced-transaction-scripts-and-privacy-for-liquid-a44b060904cf">Elements 0.21 and activating taproot</a> on the Liquid sidechain. I think that&#8217;s worth talking about in a couple of ways.</p>



<p>First is that it&#8217;s another consensus update scheduled about six weeks after the previous &#8220;dynafed&#8221; update. That update <a href="https://blockstream.medium.com/taproot-activation-enhanced-transaction-scripts-and-privacy-for-liquid-a44b060904cf">failed fairly badly</a> causing almost a full day&#8217;s downtime for the network, during which no blocks were able to be generated. There was an <a href="https://github.com/ElementsProject/elements/pull/1054">additional consensus bug</a> in the development version of elements that prevented it from being able to follow the new chain once block signing resumed, though the most recent released version of elements was able to validate blocks without a problem.</p>



<p>I think there&#8217;s probably a few problems that played a part in causing that train-wreck.</p>



<p>First is that the block signing code for liquid is proprietary &#8212; it&#8217;s not quite clear to me if that&#8217;s proprietary to Blockstream, or a shared trade secret between Blockstream the functionaries that use the code and do the signing &#8212; but either way, it&#8217;s code that&#8217;s not included in elements, and not something that is widely available and able to be tested thoroughly before it&#8217;s used in deployment. That&#8217;s probably a legitimate tradeoff to make: keeping the signing mechanism secret is security by obscurity, but provided obscurity is not the only protection, it can still be a valuable additional measure; and additionally, selling a secure way of allowing the functionaries to coordinate around signing the sidechain blocks is (to my understanding) what makes this a business for Blockstream. So I think the conclusion there is that if it&#8217;s possible to open more of the block signing code, and then better automate testing of it, that&#8217;s great; but it may well not be reasonable to do that, and if so, it should be treated as a much more high risk module than it seems like it has been.</p>



<p>A simple way to mitigate that risk is in fork design. One of the principles we apply in Bitcoin soft forks is ensuring that we don&#8217;t break any mining hardware when introducing consensus changes: people have made large, real capital investments, and a software change that devalues that investment isn&#8217;t a great way of building mutual trust. We had an instance of exactly that occur in taproot signalling, where a modest amount of hashpower simply <a href="https://twitter.com/bitentrepreneur/status/1389592547123769346">wasn&#8217;t able to signal for activation</a>; and I&#8217;d argue that was the fundamental cause of many of the difficulties with segwit &#8212; it (unintentionally) reduced the value of significant amounts of capital investment due to being incompatible with covert ASICBoost.</p>



<p>So I think the second factor in giving rise to the dynafed activation issues was not taking enough advantage of that philosophy.</p>



<p>In the context of a hard-fork &#8212; which means accepting blocks that would previously have been unacceptable &#8212; a simple way to implement the same principle is to make it a pure hard-fork: that is, make sure you accept any block that would have been acceptable under the old rules, so that if it does turn out you have a bug, you can just keep building blocks as if the hard fork never happened. That way, rather than the chain dying until a fix is rolled out, you can keep building blocks, just without using the new features you were hoping to enable. This is complicated by the fact that, as a hard fork, it is not possible to continue running old validation software once a single block using the new features has been accepted; and because liquid has a two-block finality rule, reorgs of more than one block are not acceptable.</p>



<p>Without being able to see the block signer code, it&#8217;s hard to suggest specifics here, but that a majority of &#8220;nine functionaries, running an earlier version of the functionary software, reported errors but did not terminate&#8221; suggests to me that it should have been possible to design dynafed in a way that failed more gracefully than it did &#8212; perhaps by making it so a single, non-upgraded, functionary proposing non-dynafed blocks would be able to have their blocks signed by a majority of functionaries, with no observed downtime; or by making it so a quick downgrade by a majority of functionaries was enough to continue producing valid blocks, rather than an emergency patch having to be written, validated and deployed.</p>



<p>Another standard in the blockchain world is to have a live testnet &#8212; somewhere you can deploy code changes and test them out before they start affecting anything worth real money. To the best of my knowledge liquid doesn&#8217;t have a testnet anymore. There was originally <a href="https://bitcointalk.org/index.php?topic=1085271.0">&#8220;Elements Alpha&#8221;</a> but that was discontinued at some point (probably because Bitcoin&#8217;s testnet isn&#8217;t really reliable enough to use with liquid&#8217;s peg-in/peg-out feature), and you can spin up your own &#8220;liquidv1test&#8221; test environment for local use, but that doesn&#8217;t test the proprietary block signing code. Testnets certainly aren&#8217;t a silver bullet for bugs, and you&#8217;d need to put some thought into how to both partition block signing for the testnet from liquid itself to prevent potential exploits, while also keeping the block signing code itself apropriately secret. Those seem like solvable problems, and worth the effort to detect consensus bugs earlier, however. So this is perhaps a third approach that could have detected this bug earlier, before it caused problems.</p>



<p>That&#8217;s not to say any of that is necessarily a crisis for liquid, or something that should necessarily be their single highest priority to fix. Rather, it seems to be about par for the course: Solana had <a href="https://solana.com/news/9-14-network-outage-initial-overview/">17 hours downtime</a> a month ago due to increased transaction volume, Infura had a <a href="https://blog.infura.io/infura-mainnet-outage-post-mortem-2020-11-11/">7 hour outage</a> last year due to an unexpected consensus incompatibility, and Ethereum had <a href="https://blog.infura.io/infura-mainnet-outage-post-mortem-2020-11-11/">a consensus bug that was exploited</a> to cause a chain split affecting just over <a href="https://www.tomshardware.com/news/ethereum-blockchain-split-geth">50% of nodes</a> and <a href="https://twitter.com/TimBeiko/status/1431278258222338056">a minority of miners</a>. But on the other hand, if liquid isn&#8217;t trying to be substantially more reliable/robust than those alternatives, what&#8217;s its advantage over them?</p>



<p>I think Blockstream and the <a href="https://liquid.net/governance">Liquid Federation</a> need to step up their game here&#8230; Though, to be fair, I&#8217;d say the same about everything else in this space, including Bitcoin.</p>



<p>Anyway, the activation of taproot on liquid will be quite different. It&#8217;s a soft-fork that only affects transactions, so it should be possible for it to fallback cleanly if there ends up being a problem, and much of the updates for taproot have been ported from Bitcoin, and have been reasonably well tested there. On the other hand there are two substantial sets of consensus features that aren&#8217;t in Bitcoin that will be in liquid: one is a variety of <a href="https://github.com/ElementsProject/elements/blob/master/doc/tapscript_opcodes.md">additional opcodes</a> which should be quite interesting, and the other is changes to signature hashing to support liquid&#8217;s pegged L-BTC and confidential assets features. (There are also various wallet features added to liquid, that don&#8217;t have the same failure modes as consensus changes)</p>



<p>I think those changes should have had more review &#8212; they have an in-repo document explaining the tapscript additions, rather than something like a BIP or EIP proposing the changes, eg, and they&#8217;ve been merged relatively quickly. I expect one consequence of that is that tapscript for liquid and tapscript for Bitcoin will diverge &#8212; liquid have claimed a bunch of opcodes for these new features, and I expect that will start to conflict with Bitcoin wanting to claim opcodes for its features. With a bit more time spent on actively seeking feedback on the proposal, that could have been avoided pretty easily, but, oh well. There&#8217;s always a risk those changes could result in a consensus incompatibility of some sort, though I think it&#8217;s low in this case. There&#8217;s a much bigger risk it could result in buggy smart contracts and thus loss of funds. Maybe that&#8217;s just a &#8220;buyer beware&#8221; thing, but if using liquid isn&#8217;t substantially safer than transacting on random other multicoin blockchains, then again, what&#8217;s the point? (Perhaps confidentiality is enough; I&#8217;m not sure if any of the other chains that do multiple assets also do confidential transactions on chain)</p>



<p>The other thing about how they&#8217;re deploying taproot compared to how they deployed dynafed is the activtion parameters. Dynafed used the default activation parameters of 75% signalling over a 144 block period (so about 2.5 hours, given liquid generates blocks every minute) and had a special rule that would require functionaries to explicitly enable signalling via the <code>-con_dyna_deploy_signal</code> parameter (that parameter also results in an erroneous &#8220;unknown new rules activated&#8221; warning, when it&#8217;s not used by non-mining nodes). Activation doesn&#8217;t occur until after a locked-in period, so another 2.5 hours later after signalling reaches the threshold.</p>



<p>By contrast, liquid&#8217;s taproot activation has customised parameters requiring 100% signalling over 10080 blocks (exactly one week) and signalling will occur by default for any functionary that upgrades. A locked-in period is also required, so activation is then delayed for a week after the 100% signalling threshold is reached.</p>



<p>That setup means that any functionary that is not upgraded by the time signalling begins (presumably on the 1st of November) will delay activation by a week, and means that if any functionary finds a problem with the taproot activation on liquid, they can unilaterally prevent activation indefinitely. All-in-all probably fine, but a pretty big change from how dynafed was activated.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2021/10/26/liquid-and-taproot-activation/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Rolling for initiative</title>
		<link>https://www.erisian.com.au/wordpress/2021/09/29/rolling-for-initiative</link>
					<comments>https://www.erisian.com.au/wordpress/2021/09/29/rolling-for-initiative#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Tue, 28 Sep 2021 14:44:20 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">https://www.erisian.com.au/wordpress/?p=1162</guid>

					<description><![CDATA[At the start of the year, I wrote out some thoughts about Bitcoin priorities, probably most simply summed up as: it&#8217;s probably more important to work on things that reinforce [Bitcoin&#8217;s] existing foundations, than neat new ideas to change them In that post, I also wrote: I&#8217;m particularly optimistic about an as yet unannounced approach [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>At the start of the year, I wrote out <a href="https://www.erisian.com.au/wordpress/2021/01/07/bitcoin-in-2021">some thoughts about Bitcoin priorities</a>, probably most simply summed up as:</p>



<blockquote class="wp-block-quote"><p>it&#8217;s probably more important to work on things that reinforce [Bitcoin&#8217;s] existing foundations, than neat new ideas to change them<br></p></blockquote>



<p>In that post, I also wrote:</p>



<blockquote class="wp-block-quote"><p>I&#8217;m particularly optimistic about an as yet unannounced approach that DCI has been exploring, which (if I&#8217;ve understood correctly) aims to provide long term funding for a moderate sized team of senior devs and researchers to focus on keeping Bitcoin stable and secure [&#8230;]</p></blockquote>



<p>It wasn&#8217;t something I&#8217;d even considered as a possibility at the time, but the world works in mysterious ways, and as it turns out, I&#8217;m now joining the <a href="https://dci.mit.edu/">Digital Currency Initiative</a> to work on making <a href="https://dci.mit.edu/research/2021/2/25/dci-bitcoin-security-effort">that approach</a> live up to its promise.</p>



<p>There are, I think, two ways to make systemic improvements in security. One is in code and tooling improvements &#8212; reworking the code directly to remove bugs and make it more robust, and building tools like linters, continuous integration and fuzz testers, that will then automatically eliminate potential bugs before they&#8217;re written or merged. I expect that will be where we&#8217;ll devote most of the effort.</p>



<p>But I think an equally important part of doing security well is having it be an integral part of development, not an add-on &#8212; while certainly some people will have more expertise than others, you want <em>everyone</em> thinking about security; in a similar way to wanting everyone to be thinking about performance if you want your system to work efficiently, or wanting everyone to be thinking about user experience if you want a smooth and consistent experience. That is, the other part of making systemic improvements in security is maintaining a culture that deems security a critical priority, and worth thinking about at all levels.</p>



<p>That may mean that I want to walk back my earlier conclusion that <em>&#8220;neat new ideas [that] change [Bitcoin&#8217;s existing foundations]&#8221;</em> are something to deprioritise. Because it certainly seems like people do want exciting new features, and given that, it quickly becomes super important that the people working on those features aren&#8217;t a separate group from the people who are deeply security-conscious, if we want to ensure those new features don&#8217;t end up compromising Bitcoin&#8217;s foundations. The alternative is to continually fight a rearguard action to either debug or prevent adoption of each neat new idea that hasn&#8217;t been developed with an appropriately adversarial mindset.</p>



<p>In particular, that may mean that working on things like <a href="https://bitcoinops.org/en/topics/sighash_anyprevout/">ANYPREVOUT</a> and <a href="https://bitcoinops.org/en/newsletters/2021/09/15/#covenant-opcode-proposal">TAPLEAFUPDATEVERIFY</a> might have two ways of fitting into the &#8220;improve Bitcoin&#8217;s security&#8221; framework: it makes it easier to use bitcoin securely (ANYPREVOUT hopefully makes lightning safer by enabling eltoo and thus reduces the risks of toxic state; TAPLEAFUPDATEVERIFY may make improvements in cold storage possible, making on-chain funds safer from theft), but developing them in a way that puts security as a core goal (as compared to other priorities, eg &#8220;time to market&#8221;) might help establish traditions that improve security more broadly too.</p>



<p>(And I don&#8217;t mean to criticise the way things are going in Bitcoin core so far &#8212; it&#8217;s a great project where security does take a front row seat pretty much all the time. The question I&#8217;m thinking about is how to make sure things stay that way as we scale up)</p>



<p>Also, just to get it on the record: &#8220;security&#8221; means, in some sense, &#8220;the system works the way it&#8217;s intended to&#8221;, at least in regard to who can access/control what; but &#8220;who is intended to have what level of access/control&#8221; is a question you need to answer first. For me, Bitcoin&#8217;s fundamentals are that it&#8217;s decentralised, and that it&#8217;s a store of value that you, personally, can keep secure and choose to transfer if and when you please &#8212; which is really just another way of saying that it&#8217;s &#8220;peer-to-peer electronic cash&#8221;.</p>



<p>I don&#8217;t think Bitcoin gets anywhere by compromising on decentralisation: better to leave that to competing moneys whether that be Central Bank issued or altcoin tokens on the one hand, and higher layers that build on Bitcoin, like Liquid or exchanges, on the other. If those things succeed, that&#8217;s great &#8212; but having a money that&#8217;s an even playing field for everyone, powerful or not, is a fundamentally different thing that&#8217;s worth trying to make work.</p>



<p>There are plenty of details that go into that, and plenty of other things that are also important (for instance, I think you could also argue that many of Bitcoin&#8217;s other priorities, such as the fixed supply, or privacy or censorship resistance can only be obtained by having a decentralised system); but I think it&#8217;s worth trying to pick the principles you&#8217;re going to stand for early, and for Bitcoin, I think the best place to start is decentralisation.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2021/09/29/rolling-for-initiative/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sturm und drang und taproot activation</title>
		<link>https://www.erisian.com.au/wordpress/2021/05/18/sturm-und-drang-und-taproot-activation</link>
					<comments>https://www.erisian.com.au/wordpress/2021/05/18/sturm-und-drang-und-taproot-activation#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Mon, 17 May 2021 14:46:54 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1151</guid>

					<description><![CDATA[Back at the end of 2019, I said on Stephan Livera&#8217;s podcast that activation of taproot is &#8220;something a lot of people in the community have very strong opinions of; so itâ€™s probably going to be a Twitter flamefest or whatever about it.&#8221; It&#8217;s turned out both better and worse than I expected &#8212; better [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img decoding="async" loading="lazy" width="1024" height="731" src="http://www.erisian.com.au/wordpress/wp-content/uploads/2021/05/sturm-shipwreck-1024x731.jpeg" alt="" class="wp-image-1152" srcset="https://www.erisian.com.au/wordpress/wp-content/uploads/2021/05/sturm-shipwreck-1024x731.jpeg 1024w, https://www.erisian.com.au/wordpress/wp-content/uploads/2021/05/sturm-shipwreck-300x214.jpeg 300w, https://www.erisian.com.au/wordpress/wp-content/uploads/2021/05/sturm-shipwreck-768x548.jpeg 768w, https://www.erisian.com.au/wordpress/wp-content/uploads/2021/05/sturm-shipwreck.jpeg 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption><a href="http://www.tate.org.uk/art/work/N00476">The Shipwreck &#8211; Joseph Mallord William Turner 1775-1851</a></figcaption></figure>



<p>Back at the end of 2019, I said on <a href="https://stephanlivera.com/episode/137/">Stephan Livera&#8217;s podcast</a> that activation of taproot is &#8220;something a lot of people in the community have very strong opinions of; so itâ€<img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />s probably going to be a Twitter flamefest or whatever about it.&#8221; It&#8217;s turned out both better and worse than I expected &#8212; better in that we got decent agreement on an activation method, merged it into core, and so far appear to be getting uptake by miner more rapidly than I was expecting; worse in that the the &#8220;UASF&#8221; side of the debate seems to have gone weirdly off the rails.</p>



<p>(I&#8217;ve written in the past about <a href="http://www.erisian.com.au/wordpress/2020/10/26/activating-soft-forks-in-bitcoin">activating soft forks in Bitcoin</a> so I&#8217;ll just leave that link there if you want some general context for what the heck I&#8217;m talking about and otherwise dive right in)</p>



<h4>Speedy&nbsp;Trial</h4>



<p>The activation method included in the <a href="https://bitcoincore.org/en/releases/0.21.1/">Bitcoin Core 0.21.1</a> is called <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-March/018583.html">&#8220;Speedy Trial&#8221;</a> and it&#8217;s implemented as a variant of BIP 9 (which was used for activating segwit and CSV/relative timelocks) modified in a few ways:</p>



<ul><li>rather than having signalling not start for a month after the release of the new version, signalling was scheduled for just a few weeks after the merge of the activation parameters, and ended up starting on the same day the software was actually released</li><li>rather than having signalling continue for a year, it only continues for a bit over three months (ending sometime after August 11)</li><li>rather than having activation occur two weeks after lock in occurs, it is delayed until block 709632 (expected around mid November)</li><li>rather than requring 95% of blocks to signal to lock in activation, only 90% of blocks are required to signal</li></ul>



<p>The main idea is that we don&#8217;t have any reason to expect problems with taproot activation, so let&#8217;s just do something quickly: if we&#8217;re right, and there are no problems, the quick approach will work fine, and if we&#8217;re wrong and there are problems then we can do something else.</p>



<p>Shortening the timeframe (starting and ending signalling sooner than BIP 9&#8217;s recommendations) means that we can move on to dealing with problems much more quickly and delaying activation helps ensure that there&#8217;s still time for users to upgrade and ensure miners play fair, despite signalling starting so quickly. Finally the reduced threshold recognises that the BIP 9 mechanism doesn&#8217;t need as high a threshold as the old IsSuperMajority approach, so lowers it somewhat while remaining fairly conservative.</p>



<p>The broader rationale behind this approach was documented by Matt in his <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-January/017547.html">Modern Soft Fork Activation email</a> early last year (point 4): adoption by the vast majority of hashpower reduces the risk to the network of activation while the rest of the network upgrades &#8212; users who don&#8217;t upgrade will follow the chain with the new rules because any chain that doesn&#8217;t follow the new rules will quickly become much shorter (the 90% figure means transactions in an chain invalid under the new rules only have ~1% chance of getting three confirms before being reorged to a chain that&#8217;s valid under the new rules).</p>



<p>That strategy fits well with voluntary signalling by miners: if miners upgrade quickly, it&#8217;s safe to activate the new rules fairly quickly. If they don&#8217;t upgrade quickly, well then we need to wait for users to upgrade to have a UASF-style activation &#8212; but if users have all upgraded, it doesn&#8217;t much matter what miners do: if they mine blocks invalid under the new rules, they&#8217;ll just be ignored, the same as BCH or BSV blocks are ignored by Bitcoin nodes. So &#8220;Speedy Trial&#8221; just deals with the easy case &#8212; let&#8217;s see if things will work well, and get it over with if it does. If it doesn&#8217;t work well, it&#8217;ll all be over quickly, and we can move on to an activation method that doesn&#8217;t rely on miners, knowing that it&#8217;s needed.</p>



<h4>&#8220;UASF&#8221;</h4>



<p>While most people were happy to release Bitcoin Core with the Speedy Trial method, that&#8217;s not true of everyone, and a few people are instead encouraging use of an alternative implementation, forked from the Bitcoin Core codebase, and using a different activation methodology, that requires taproot activation by signalling by a particular block height that is expected to arrive around November 2022.</p>



<p><strong>I don&#8217;t recommend running that client under any circumstances.</strong></p>



<p>The simplest reason is that it&#8217;s poorly maintained: for example, the change to set the activation parameters is <a href="https://github.com/BitcoinActivation/bitcoin/pull/9">PR#9</a>, which was merged without any (public) review comments, about nine hours after it was filed, and about 29 hours <em>before</em> the <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018769.html">meeting</a> that was going to make the decision on those parameters. It also has a red-cross &#8220;failed CI tests&#8221; marker, mainly because various software-as-a-service CI systems have limits on how many jobs they&#8217;ll run for free, and in order to run all the CI tests for bitcoin, you either have to pay to get them run quickly, or you have to wait for a long time. Having been forked from Bitcoin Core 0.21.0, none of the backports targeted to Bitcoin Core 0.21.1 have been merged, such as <a href="https://github.com/bitcoin/bitcoin/pull/20901">#20901</a>, <a href="https://github.com/bitcoin/bitcoin/pull/21469">#21469</a>, or <a href="https://github.com/bitcoin/bitcoin/pull/21640">#21640</a> &#8212; the lack of #21469 in particular means the UASF client won&#8217;t correctly parse bech32m addresses when attempting to pay to taproot addresses following BIP 350, for instance, rendering it incompatible with any taproot wallets following the recommended address format. Are these serious bugs that will lose you money today? No, probably not. But is this the best software to secure your BTC so you won&#8217;t lose money tomorrow? Also, no.</p>



<p>Beyond poor quality, it&#8217;s also marketed deceptively &#8212; eg, <a href="https://twitter.com/lukedashjr/status/1382892186954567682">announcing</a> it as &#8220;the Bitcoin Core 0.21.0 build w/ Taproot added in&#8221; and naming it &#8220;Bitcoin Core version 0.21.0-based Taproot Client 0.1&#8221; rather than making it clear that it&#8217;s an entirely separate group of people working on it to the Bitcoin Core developers. Perhaps if you look carefully at their <a href="https://bitcointaproot.cc/">bitcointaproot.cc</a> site, after skipping past the big, bold &#8220;Bitcoin Core&#8221; heading in the middle of your screen when you first load it up, you might see the &#8220;Who maintains the Taproot Client software?&#8221; and click through to see &#8220;Bitcoin Mechanic, Shinobi and stortz&#8221;, though you&#8217;ll likely have no way of figuring out who those people are.</p>



<h4>&#8220;lot=false to lot=true&#8221;</h4>



<p>It was (in my opinion) always likely we&#8217;d end up with one activation method in Bitcoin Core and a different UASF client published by Luke and others &#8212; when I did the <a href="http://www.erisian.com.au/wordpress/2020/10/26/activating-soft-forks-in-bitcoin">survey of some devs</a> two-thirds didn&#8217;t want to go straight to a &#8220;flag day&#8221; style activation, but the remaining one-third did, and the BIP 148 experience already demonstrated that releasing a forked client was a realistic gambit if things weren&#8217;t going your way.</p>



<p>The original pseudonymous author of BIP 8 approved <a href="https://github.com/bitcoin/bips/pull/550">Luke&#8217;s patch adding himself as a co-author</a> of that document in June last year, and in the same patch set, Luke introduced the lockinontimeout parameter, which seemed (to me at least) like a way that the same codebase could satisfy both goals. So for the eight or so months following that, I spent a bunch of time (see <a href="https://github.com/bitcoin/bips/pull/950">#950</a>, <a href="https://github.com/bitcoin/bips/pull/1019">#1019</a>, <a href="https://github.com/bitcoin/bips/pull/1020">#1020</a>, <a href="https://github.com/bitcoin/bips/pull/1021">#1021</a>, <a href="https://github.com/bitcoin/bips/pull/1023">#1023</a>, <a href="https://github.com/bitcoin/bips/pull/1063">#1063</a>) trying to refine that so it would work as smoothly as possible, even if miners or others were deliberately trying to game the system.</p>



<p>The advantage of that approach over where we are today is that when a few opinionated people decide that a UASF is the only reasonable approach it would be much easier to maintain a high quality fork of Bitcoin Core that has that feature &#8212; you&#8217;re only changing a single &#8220;false&#8221; to &#8220;true&#8221; and otherwise just updating documentation and the name; so there&#8217;s no particular difficulty in porting over other patches. (In contrast, when you&#8217;re using an entirely different mechanism, you have to touch code in lots of different places, and each of those has a chance of conflicting with any other patches you might also want to include)</p>



<p>By mid February it was looking (to me at least) pretty much like that was how things would play out, and we would merge BIP 8 into core with taproot set as lot=false, but with the code ready for a switch to lot=true. There was still <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-February/018472.html">work to be done</a> to make lot=true safe in the adversarial conditions where it might have any value, but it seemed plausible that we could make progress on that over the next few months &#8212; pulling in some of the fixes that were already done for the BIP 148 code in 2017, and adding improvements on top of that.</p>



<p>But that was about the point any chance of consensus collapsed: the suggestions of <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-February/018430.html">&#8220;core should just release both clients and let the people choose&#8221;</a> and the consensus risks that implies (which is complicated enough it&#8217;d take a whole article in itself to cover) concerned Suhas seriously enough to setup a <a href="https://medium.com/@sdaftuar/on-taproot-activation-and-consensus-changes-in-bitcoin-5b3453e91c4e">blog</a> and concerned Matt enough to go back to <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-February/018495.html">square one</a> on activation methods. Meanwhile on the other side, Luke declared <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-February/018498.html">&#8220;LOT=False is dangerous and shouldn&#8217;t be used&#8221;</a>.</p>



<p>The <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-March/018515.html">&#8220;UASF (LOT=true) kick off meeting&#8221;</a> was then announced as happening a couple of days later (though work on the UASF website had already <a href="https://github.com/BitcoinActivation/BitcoinTaproot.org/commit/f7857f5f104ccf9b774449447599a6515a0c5da4">begun a week earlier</a>, prior to &#8220;LOT=false is dangerous&#8221; post), which ended up <a href="http://gnusha.org/uasf/2021-03-02.log">including</a> some gloating about the confusion, along with promises to make it hard to come to consensus (&#8220;<em>&lt;luke-jr&gt; personally I plan to NACK any LOT=False; but I doubt I would need to at this point (devs pushing against LOT=True seem to be off shed-painting other bad ideas now)</em>&#8220;).</p>



<p>Perhaps someone with more ranks in the Diplomacy skill could&#8217;ve done better and we could have stayed on that track, but, at least for me, those were pretty clear &#8220;Dead End&#8221; signs.</p>



<p>Speedy Trial was proposed a few days later, providing a new track. It took under six hours to get a first draft <a href="https://github.com/bitcoin/bitcoin/pull/21377">PR implementing that proposal </a>up, but then an additional 57 days to actually get it <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-core-dev/2021-May/000099.html">included in a release</a>. Some of that was due to <a href="https://github.com/bitcoin/bitcoin/pull/21377#issuecomment-792425221">problems</a> with the original draft, some was due to <a href="https://github.com/bitcoin/bitcoin/pull/21380">improving test coverage</a>, some was due to the regular release candidate process, and some was certainly due to <a href="https://github.com/bitcoin/bitcoin/issues/21725#issuecomment-823411723">an unexpected certificate revocation</a>, but a lot of time was effectively wasted: eg, there was a <a href="https://github.com/bitcoin/bitcoin/pull/21392">port of Speedy Trial on top of the BIP 8 patches</a> proposed a few days after the initial PR above, effectively doubling the review load and splitting the development effort for most of that time, and then there were the promised <a href="https://github.com/bitcoin/bitcoin/pull/21377#issuecomment-802217810">NACKs</a>, along with <a href="https://github.com/bitcoin/bips/pull/1091#event-4641683582">long</a> <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018863.html">delays</a> with getting BIP updates merged.</p>



<p>I say &#8220;effectively wasted&#8221;, but perhaps that&#8217;s not fair: exploring alternative ways of writing code helps you understand what&#8217;s going on, even if you throw it away (certainly, I learned something from it: notably that height based signalling isn&#8217;t compatible with testnet behaviour). Given the sudden failure of the previous lot=false approach, I don&#8217;t think there was ever any realistic hope of achieving a better degree of consensus, but of course, I could be wrong, and some things are worth trying even when it seems hopeless. So, obviously, draw your own conclusions on whether the time spent there was worthwhile or not.</p>



<h4 id="mce_31">Speedy Trial vs UASF</h4>



<p>I think there&#8217;s fundamentally three reasons why some people are still sticking to the UASF approach rather than being happy with the Speedy Trial approach &#8212; whether in practice, despite the poor implementation, or more in principle, eg by suggesting that Bitcoin Core should be deploying some sort of a UASF backstop now, rather than solely doing Speedy Trial.</p>



<p>I think the simplest of these reasons is something along the lines of <em>&#8220;BIP 8 was proposed in 2017, why go to all this hassle instead of just doing it?&#8221;</em> (eg <a href="https://twitter.com/adam3us/status/1389147036914704384">adam3us</a> or <a href="https://github.com/bitcoin/bitcoin/pull/21377#issuecomment-791987546">michaelfolkson</a>) or more assertively something like <em>&#8220;We already agreed to do BIP 8, why are you violating community consensus?&#8221;</em> (eg <a href="https://bitcoin.jonasschnelli.ch/ircmeetings/logs/bitcoin-core-dev/2021/bitcoin-core-dev.2021-04-08-19.01.log.html#l-54">luke-jr</a> or <a href="https://twitter.com/MarkFriedenbach/status/1379367152386338816">MarkFriedenbach</a>) The problem with that is that the BIP 8 we have today is not the BIP 8 that was proposed in 2017 or even the one we had in January this year &#8212; over time it&#8217;s had the lot=true/false parameter added, had a compulsory signalling phase added, had numerous tweaks to the state behaviour added, and most recently had a lock-in delay added. It&#8217;s never been used outside of the regression test environment, and bugs were being found and fixed as recently as <a href="https://github.com/bitcoin/bips/pull/1021/">February</a> and <a href="https://github.com/bitcoin/bitcoin/pull/19573#pullrequestreview-600769319">throughout</a> <a href="https://github.com/bitcoin/bips/pull/1081#discussion_r604235915">March</a>. That&#8217;s not unexpected &#8212; what we had in 2017 was an idea, but as with most ideas, things get more complicated when you try to actually make them a reality. And sometimes it turns out that your original idea wasn&#8217;t so great in the first place.</p>



<p>Another reason is something along the lines of <em>&#8220;If we think a UASF might be necessary in a few months in the event Speedy Trial doesn&#8217;t hit 90%, why not do it now?&#8221;</em> There&#8217;s two answers to that: the first is that the approach that we were working towards had collapsed, and it would likely take months to get agreement on an alternative one &#8212; by which time Speedy Trial would have finished anyway, whether it succeeds or fails. (That it took two months to even get Speedy Trial out suggests that might even be an underestimate). So why not get started with the easy part while we rethink the hard part? The second is that we&#8217;re likely to learn things from Speedy Trial and that can inform our decisions on how to deploy the UASF. From my perspective we&#8217;ve already learnt some things:</p>



<ul><li>miners/pools didn&#8217;t start signalling prior to the activation logic reaching the STARTED state &#8212; that probably means there&#8217;s less &#8220;false&#8221; signalling than some us feared/expected</li><li>pools have been upgrading to signal fairly quickly, adding credence to their prior statements as recorded on <a href="https://taprootactivation.com/">taprootactivation.com</a></li><li>poolin have <a href="https://twitter.com/bitentrepreneur/status/1389592547123769346">reported</a> that some ASIC firmware doesn&#8217;t support signalling via version bits &#8212; maybe that&#8217;s an easy fix, or maybe we should <a href="https://twitter.com/TheBlueMatt/status/1389645738431455233">move signalling to a different mechanism</a>; as a result they&#8217;ve only enabled signalling for some of their servers, and maybe <a href="https://twitter.com/hampus_s/status/1389919445817208834">1THash</a> has done the same</li><li>maybe we should be expecting teething problems like this and in the future <a href="https://twitter.com/ajtowns/status/1389594926376112129">encourage signalling in advance of it actually mattering</a></li></ul>



<p>An obvious thing we&#8217;ll learn if Speedy Trial fails is that we can&#8217;t reach 90% of miners signalling in three months &#8212; if we discover that&#8217;s for practical reasons (like the issue poolin described), then making signalling mandatory is probably a bad idea if a significant amount of hashrate can&#8217;t actually do it &#8212; so perhaps lowering the threshold further would be a good idea, or changing the way we signal to something that more mining hardware is compatible with would be worthwhile, or perhaps changing the approach entirely might be a better bet. We&#8217;ll also likely learn how enthusiastic businesses and node operators are to upgrade to support taproot &#8212; the faster everyone does that, the less time we need to wait before triggering a flag day. But there&#8217;s a chicken and egg problem &#8212; you can&#8217;t pick a flag day without knowing how fast people will upgrade, people can&#8217;t upgrade until there&#8217;s a client, you can&#8217;t release a flag day/UASF client until you pick a date for the flag day, you can&#8217;t pick a flag day without knowing how fast people will upgrade&#8230; rinse, repeat. So being able to release a client that doesn&#8217;t set a flag day lets you break that cycle and get a somewhat informed answer. And beyond all that, perhaps there are unknown unknowns that we&#8217;ll find out about.</p>



<p>The third reason for advocating for a UASF now, in my opinion, is just that a bunch of people enjoyed the BIP 148/no2x drama and want to play it out again in much the same. Looked at from the right viewpoint it was a really straightforward heroic saga: a <a href="https://github.com/bitcoin/bitcoin/pull/10442">small band of misfits</a> get together to fight <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-April/013996.html">the big bad</a>, against the <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-April/014152.html">advice of the establishment</a>, build up a <a href="https://twitter.com/excellion/status/849573754657153024">popular movement</a>, and <a href="https://github.com/bitcoin/bitcoin/pull/10442#issuecomment-321448218">win the battle</a> <a href="https://www.coindesk.com/bitcoin-uasf-proposal-quietly-activates-little-effect">without a shot being fired</a>. Total feel-good Hollywood blockbuster plot line. </p>



<p>You can see little demonstrations of this sentiment every now and then, eg when the BIP 148 big bad started signalling, <a href="https://twitter.com/adam3us/status/1389492868264480769">adam3us&#8217;s reponse</a> was <em>&#8220;don&#8217;t thank them too much &#8211; last time they were among the ring leaders in tactical veto games. 148 lurking. never forget.&#8221;</em> or <a href="https://twitter.com/zndtoshi/status/1388931664974422022">zndtoshi&#8217;s take</a> <em>&#8220;Dude I wish that ST would fail so that miners get it that we can enforce via uasf. But I have a feeling they did learn from the segwit saga and will just signal now.&#8221;</em></p>



<p>And I mean, that&#8217;s fine &#8212; if you&#8217;ve got an empowering narrative for why you&#8217;re doing what you&#8217;re doing, good for you! But it becomes a problem if remembering the past blinds you to the present and your plotline doesn&#8217;t actually match reality &#8212; just because you won the last battle with a <a href="https://www.poetryfoundation.org/poems/45319/the-charge-of-the-light-brigade">cavalry charge</a>, doesn&#8217;t mean it&#8217;s necessarily a good idea for this battle, and just because it was fun fighting an enemy in the past doesn&#8217;t mean it&#8217;s a smart idea to find more enemies now.</p>



<p>Anyway, that&#8217;s my collection of thoughts on where we&#8217;re at. No particular conclusion from them &#8212; I guess I have a whole other set of thoughts on what to do next &#8212; but I wanted to get these written down somewhere before moving on.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2021/05/18/sturm-und-drang-und-taproot-activation/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fixing UASF</title>
		<link>https://www.erisian.com.au/wordpress/2021/03/14/fixing-uasf</link>
					<comments>https://www.erisian.com.au/wordpress/2021/03/14/fixing-uasf#comments</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Sun, 14 Mar 2021 00:48:46 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1146</guid>

					<description><![CDATA[Ambiguous titles are tight. I&#8217;ve always been a little puzzled by the way the segwit/uasf/uahf/segsignal drama played out back in 2017 &#8212; there was a lot of drama about the UASF for a while, and then, when push came to shove, suddenly miners switch to being 100% in favour of it, and there were no [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Ambiguous titles are tight.</p>



<p>I&#8217;ve always been a little puzzled by the way the segwit/uasf/uahf/segsignal drama played out back in 2017 &#8212; there was a lot of drama about the UASF for a while, and then, when push came to shove, suddenly miners switch to being 100% in favour of it, and there were no problems at all. There was even the opportunity for a bit of a last minute &#8220;screw you&#8221;: BIP91 could have been activated so that it only locked in after BIP148 activated, potentially resulting in a segwit-enforcing chain that wasn&#8217;t valid according to BIP148 &#8212; not quite &#8220;if I can&#8217;t have it, nobody can&#8221;, but at least a way to get a final punch in prior to losing the fight. But it just didn&#8217;t happen that way.</p>



<p>So what if &#8220;losing the fight&#8221; wasn&#8217;t really what happened &#8212; what if the fight had been fixed right from the start?</p>



<figure class="wp-block-image"><a href="https://twitter.com/JihanWu/status/849299794258534402"><img decoding="async" loading="lazy" width="584" height="214" src="http://www.erisian.com.au/wordpress/wp-content/uploads/2021/03/jihan-uahf.png" alt="&quot;We are preparing a UAHF to the market. We will have two kinds of Bitcoin if UASF is activated. Big block vs 1MB block. Let us trade.&quot; - Jihan Wu Arp 5, 2017" class="wp-image-1147" srcset="https://www.erisian.com.au/wordpress/wp-content/uploads/2021/03/jihan-uahf.png 584w, https://www.erisian.com.au/wordpress/wp-content/uploads/2021/03/jihan-uahf-300x110.png 300w" sizes="(max-width: 584px) 100vw, 584px" /></a></figure>



<p>I think that was <a href="https://www.reddit.com/r/Bitcoin/comments/63fa3r/jihanwu_we_are_preparing_a_uahf_to_the_market_we/">a day or two before</a> Greg posted about <a href="https://www.reddit.com/r/Bitcoin/comments/63rtuv/this_guy_reverse_engineered_a_mining_chip_to/">ASICBoost</a> to the bitcoin-dev list &#8212; which is interesting since, prior to the ASICBoost factor being revealed, I don&#8217;t think the UASF approach had all that much traction. For example, here&#8217;s <a href="https://www.reddit.com/r/Bitcoin/comments/63rtuv/this_guy_reverse_engineered_a_mining_chip_to/dfwn20v/">eblieverÂ commenting on redditÂ inÂ responseÂ toÂ theÂ ASICBoostÂ reveal</a>:</p>



<blockquote class="wp-block-quote"><p>I didn&#8217;t like the UASF when first proposed because it seemed radical  and a bad precedent. But given the crisis if Bitmain can&#8217;t be stopped in  short order, to save the rest of the mining industry I&#8217;d favor the UASF  as an emergency measure ASAP.</p></blockquote>



<p>Why reveal plans for a UAHF to defend against a UASF before the UASF even has significant support?</p>



<p>Well, one reason might be that you wanted to do a UAHF all along. The UAHF became BCH, and between August 2017 and November 2018, BCH had the &#8220;advantage&#8221; over regular bitcoin in that you could do covert ASICBoost mining on it. (In November 2018 BCH was <a href="https://bitcoinexchangeguide.com/nchain-is-strongly-against-canonical-transaction-ordering-ctor-proposal/">changed</a> in a way that also prevented covert ASICBoost, and wonder of wonders, a new hard fork of BCH instantly appeared, BSV)</p>



<p>After all, there weren&#8217;t many other outcomes on the table that would have allowed covert ASICBoost to continue &#8212; the New York Agreement was aiming to do bigger blocks and segwit which still would have blocked it, the &#8220;Bitcoin Unlimited&#8221; split had basically <a href="https://www.coindesk.com/bitcoin-exchanges-unveil-emergency-hard-fork-contingency-plan">failed</a>, and stalling segwit probably wouldn&#8217;t work forever</p>



<p>There&#8217;s a <a href="https://medium.com/@yhaiyang/the-story-behind-bitcoin-fork-ffda933dc689">history of the BCH fork</a> from Haipo Yang of ViaBTC. I think it&#8217;s pretty interesting in its own right, but for the purposes of this post the interesting stuff is in section 2 &#8212; with Bitcoin Unlimited failing to achieve a split occuring just prior to that section. In particular, it includes the argument:</p>



<blockquote class="wp-block-quote"><p> Fortunately, small-hashrate fork can be done  without othersâ€<img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /> support, and it seemed to be the only feasible direction  for the big-block supporters.</p><p>Even at this time, most of the big block advocates still placed their hope on the SegWit+2MB plan reached by the New York Consensus. I made it clear that this road was not going to work</p></blockquote>



<p>It also gives the following timeline leading up to the BCH split:</p>



<blockquote class="wp-block-quote"><p>Wu Jihan has got a Plan B. While supporting the New York Consensus, he took the small-hashrate fork as a backup. [&#8230;] At that time, the core members of the Core team launched the UASF (User Activated Soft Fork) campaign, and planned to force the activation of SegWit on August 1, 2017. So we decided to activate UAHF (User Activated Hard Fork) on the same day.</p><p></p></blockquote>



<p>So at least according to that timeline, the NYA was already written off as a failure and the BCH UAHF was already being worked on prior UASF being a thing, and picking the same day to do the UAHF was just a matter of convenience, not a desperate attempt to save Bitcoin from a UASF at all.  That&#8217;s not confirmation that the UAHF was planned from the start in order to save covert ASICBoost &#8212; but it is at least in line with the argument that UAHF was the goal all along, rather than a side effect of trying to oppose the UASF.</p>



<p>The thing is, that leaves nobody having been opposed to the UASF: the BCH camp was just using it as a distraction while they split off for their own reasons; the NYA camp were supporting it as the first step of S2X; conservative folks thought it was risky but were happy to see segwit activated; and obviously bip148 supporters were over the moon.</p>



<p>And that&#8217;s relevant today to discussions of the &#8220;bip8 lot=true&#8221; approach, which proposes using the same procedure as bip148 &#8212; by some only as a <a href="https://www.reddit.com/r/Bitcoin/comments/lsd1r6/just_release_taproot_with_lotfalse_already_and/">response</a> to delaying tactics, by others as the <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-March/018545.html">primary</a> or <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-February/018498.html">sole</a> method. </p>



<p>Because despite there being claims that running a UASF client has <a href="https://medium.com/@lukedashjr/bip148-and-the-risks-it-entails-for-you-whether-you-run-a-bip148-node-or-not-b7d2dbe85ce6">no risks</a>, that is fundamentally not true. There are at least two pretty serious risks: the first is that you&#8217;ll go out of consensus with the network, nobody will mine blocks you consider valid, and that you&#8217;ll be unable to receive payments until you abandon your UASF client &#8212; that alone is likely enough risk for businesses and exchanges to not be willing to run a UASF client; and the second is that people split down the middle on supporting and opposing the UASF and we have an actual chainsplit, resulting in significant work as one or both sides figure out how to avoid being spammed by nodes following the other chain, add replay protection and protect their preferred system from suffering from a difficulty bomb that makes it uneconomic to continue mining blocks.</p>



<p>All of that&#8217;s fine if you&#8217;re confident any UASF you support will easily win the day &#8212; shades of Trump&#8217;s &#8220;trade wars are good, and easy to win&#8221; there &#8212; but if you&#8217;re relying on the experience with segwit and bip148 as your evidence that UASF&#8217;s will easily win, perhaps the above is some cause for doubt. It is for me, at any rate.</p>



<p>(Of course, not being easy to win, doesn&#8217;t mean unwinnable or too scary to even risk fighting; but it does mean building up your strength before picking a fight. For bitcoin, at a minimum, that means a lot more work on making p2p robust against the potential of a more-work invalid chain that your peers may consider valid)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2021/03/14/fixing-uasf/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Bitcoin in 2021</title>
		<link>https://www.erisian.com.au/wordpress/2021/01/07/bitcoin-in-2021</link>
					<comments>https://www.erisian.com.au/wordpress/2021/01/07/bitcoin-in-2021#comments</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Thu, 07 Jan 2021 04:10:58 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1135</guid>

					<description><![CDATA[I wrote a post at the start of last year thinking about my general priorities for Bitcoin and I&#8217;m still pretty happy with that approach &#8212; certainly &#8220;store of value&#8221; as a foundation feels like it&#8217;s held up! I think over the past year we&#8217;ve seen a lot of people starting to hold a Bitcoin [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>I wrote a post at the start of last year thinking about <a href="http://www.erisian.com.au/wordpress/2020/01/07/bitcoiner-maximalism">my general priorities for Bitcoin</a> and I&#8217;m still pretty happy with that approach &#8212; certainly <em><strong>&#8220;store of value&#8221; as a foundation</strong></em> feels like it&#8217;s held up!</p>



<p>I think over the past year we&#8217;ve seen a lot of people starting to hold a Bitcoin balance, and that we&#8217;ll continue to do so &#8212; which is a win, but following last year&#8217;s logic also means we&#8217;ll want to start paying more attention to the later parts of the funnel as well: if we (for instance) double the number of people holding Bitcoin, we also want to double the number of people doing self-custody, and double the number of people transacting over lightning, eg; and ideally we&#8217;d want that in addition to whatever growth in self-custody and layer 2 transactions we&#8217;d already been aiming for if Bitcoin adoption had remained flat.</p>



<p>That said, I&#8217;m not sure I&#8217;m in a growth mindset for Bitcoin this year, rather than a consolidation one: consider the BTC price at the start of the past few years: 2016: ~$450, 2017: $1000, 2018: $13,000, 2019: $3700, 2020: $8000, 2021: $30,000. Has there been a 8x increase in security and robustness during 2016, 2017 and 2018 to match the 8x price increase from Jan 2016 to Jan 2019? Yeah, that&#8217;s probably fair. Has there been another 8x increase in security and robustness during 2019 and 2020 to match the 8x price increase there? Maybe. What if you&#8217;re thinking of a price target of <a href="https://cointelegraph.com/news/bitcoin-hitting-200k-by-december-2021-is-now-conservative-willy-woo">$200,000</a> or <a href="https://twitter.com/100trillionusd/status/1343140448160915457">$300,000</a> sometime soon &#8212; doesn&#8217;t that require yet another 8x increase in security and robustness? Where&#8217;s that going to come from? And those 8x factors are multiplicative: if you want something like $250k by December 2021, that&#8217;s not a &#8220;three-eights-are-24&#8221; times increase in robustness over six years (2016 to 2022), it&#8217;s an &#8220;<strong>eight-cubed-is-512</strong>&#8221; times increase in robustness! And your mileage may vary, but I don&#8217;t really think Bitcoin&#8217;s already 500x more robust than it was five years ago.</p>



<p>So as excited as I am about taproot and the possibilities that opens up (PTLCs and eventually eltoo on lightning, scriptless scripts and discreet log contracts, privacy preserving proof of reserves, cheap multisig &#8212; the list might not be infinite but at least seems computationally intractable), I think I&#8217;m now even more of the view that <em><strong>itâ€<img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />s probably more important to work on things that reinforce the existing foundations, than neat new ideas to change them</strong></em> than I was this time last year.</p>



<p>There are already a bunch of areas where Bitcoin&#8217;s approach to security and robustness has improved technically over the past few years: we&#8217;ve got more people doing reviews (eg, via the PR review club, or getting introduced to Bitcoin via the Chaincode Residency etc), we&#8217;ve got deeper and more diverse continuous integration testing (thanks both to more integrations being enabled via github, and travis becoming unreliable enough to force looking at other approaches), fuzz testing has improved a lot and become a bit more broadly used, and I think static analysis of the codebase has improved a bit. There have been a bunch of improvements in code standards (eg using safe pointers, locking annotations, spans instead of raw pointers) too, I think it&#8217;s fair to say. I haven&#8217;t done an analysis here, just going from gut feel and recollection.</p>



<p>With a focus on robustness, to me, the areas to prioritise in the short term are probably:</p>



<ol><li>Modularisation &#8212; eg, so that we can better leverage process separation to reduce security impacts, and better use fuzz testing to catch bugs in edge cases. There&#8217;s already work to split the gui and wallet into separate processes, though while that&#8217;s merged, it&#8217;s not part of the standard build yet. Having the p2p-network-facing layer also be a separate process might be another good win. While it&#8217;s a tempting goal, I think libconsensus is still a ways off &#8212; p2p, mempool management, and validation rules are currently pretty tightly coupled &#8212; but there&#8217;s steps we can make towards that goal that will be improvements on their own, I think.</li><li>The P2P network &#8212; This is the obvious way to attack Bitcoin since by its nature everyone has access to it. There are multiple levels to this: passively monitoring the p2p network may allow you to violate users&#8217; privacy expectations, while actively isolating users onto independent networks can break Bitcoin&#8217;s fundamental assumptions (you can&#8217;t extend the longest chain if you can&#8217;t communicate with any of the people who have the longest chain). There are also plenty of potential problems that someone could cause in between those extremes that could, eg, break assumptions that L2 systems like lightning make. Third-party (potentially centralised) alternatives as backups for the p2p network may also be valuable support here &#8212; things like Blockstream Satellite, or block relay over ham radio, or headers over DNS: those can mend splits in the p2p network that the p2p layer itself can&#8217;t automatically fix. Or efficiency improvements like erlay or block-relay-only can allow a higher degree of connectivity making attacks harder.</li><li>CI, static analysis, reproducible builds &#8212; Over the past year, travis seems like it&#8217;s gone from having the occasional annoying problem to being <a href="https://www.jeffgeerling.com/blog/2020/travis-cis-new-pricing-plan-threw-wrench-my-open-source-works">pretty much unusable</a> for open source projects. CI is an important part of both development and review; having it break makes both quite a lot harder. What we&#8217;ve got at this point seems pretty good, but it&#8217;s new and not really time-tested yet, so I&#8217;d guess a year of smoothing out the rough edges is probably needed. I think there&#8217;s other &#8220;CI&#8221;-ish stuff that could be improved, like more automated IBD testing (eg, I think <a href="https://bitcoinperf.com/d/YiV16Vsik/overview?orgId=1&amp;from=now-6M&amp;to=now">bitcoinperf</a> is about 3 months out of date). Static analysis serves a similar goal to tests in a different way; and while we&#8217;ve already got a lot of low hanging fruit of this nature already integrated into CI via linters and compiler options, I suspect there&#8217;s still some useful automation that could happen here. Finally, nailing down the last mile to ensure that people are running the software the devs are testing is always valuable, and I think the nixos work is showing some promise there.</li><li>Third-party validation &#8212; We&#8217;ve had a few third-party monitoring tools arise lately &#8212; various sites monitoring feerate and mempool sizes, forkmonitor checking for stale blocks (and double-spends), or, at a stretch, optech&#8217;s reviews of wallet behaviour and segwit support. There&#8217;s probably a lot of room for more of this.</li></ol>



<p>I&#8217;d love to list formal verification at the consensus layer as a priority, but I think there&#8217;s too much yak-shaving needed first: it would probably need all the refactoring to get to libconsensus first, then would likely need that separated into its own process, which you could only then start defining a formal spec for, which in turn would give you something you could start doing formal verification against. I suspect we&#8217;ll want to be at that point within another cycle or two though.</p>



<p>I&#8217;m not concerned about mining &#8212; eventually there might be a risk that the subsidy is too small and there&#8217;s not enough fee income, but that&#8217;s not going to happen while the price doubles faster than the pre-scheduled halvings. There&#8217;s certainly centralisation risks, whether in ASIC manufacture, in hardware ownership/control, or at the pool level, but my sense of things is that&#8217;s not getting worse, and is not the biggest immediate risk. Maybe I&#8217;m wrong; if so, hopefully the people who think so are working on preventing problems from arising, rather than taking advantage of them.</p>



<p>There are other levels of robustness and security beyond just &#8220;keep the network working&#8221;, if you consider the question of &#8220;how to prevent my coins from being lost/stolen?&#8221; more broadly. The phishing attacks and potential for physical attacks resulting from the Ledger leak are an easy example of a problem of this sort, but exchange hacks/failures in general, malware swapping addresses so your funds go to an attacker instead of the intended recipient, and lost access to keys are also pretty bad. I think descriptors, miniscript and taproot multisig probably provide for a good path forward to help prevent losing access to keys; and it&#8217;s possible that progress on BIP322 (signing messages against a Bitcoin address) may provide a path to avoiding address swapping attacks.</p>



<p>Technical solutions are, in some sense, all you can hope for if you&#8217;re doing self-custody; but where a bank/custodian is involved (good) regulation might be useful too: requirements to keep customer data protected or destroyed, third-party audits to ensure the best-practices procedures you&#8217;re claiming to follow are actually being followed, etc. If custodians store funds in taproot addresses, it may be feasible to do privacy preserving (zero-knowledge) <a href="https://twitter.com/n1ckler/status/1334240709814136833">proofs of solvency</a>, eg, making it harder for fly-by-night folks to run ponzi schemes or otherwise steal their customers&#8217; funds.</p>



<p>Obviously where possible these sorts of standards should be implemented via audited open source code rather than needing extensive implementation costs by each company. But one other thing to think about is whether regulations of this nature could be setup as industry standards (&#8220;we comply with the industry standard, competitor X doesn&#8217;t&#8221;) rather than necessarily a government regulator &#8212; for one, it certainly seems questionable whether government regulators have the background to pick good best practices for cryptocurrency systems to follow. Though perhaps it would be to have something oriented towards &#8220;consumer rights&#8221; than &#8220;industry&#8221; per se, to avoid it just being a vector for regulatory capture.</p>



<p>I think there&#8217;s been good progress on stabilising Bitcoin development &#8212; in 2015 through 2017 we were in a phase where people were seriously thinking of <a href="https://www.newsbtc.com/news/bitcoin/according-viabtc-team-bitcoin-core-developers-fired/">replacing</a> <a href="https://blog.plan99.net/the-resolution-of-the-bitcoin-experiment-dabb30201f7">Bitcoin&#8217;s</a> <a href="https://www.coindesk.com/consensus-2017-bitpay-ceo-bitcoin-fork">developers</a> &#8212; devs were opposing a quick blocksize increase, so the obvious solution was to replace them with people who weren&#8217;t opposed. If you think of Bitcoin as an experimental, payments-oriented, tech startup, that&#8217;s perhaps not a bad idea; but if you think of it a store of value it&#8217;s awful: you don&#8217;t get a reliable system by replacing experts because they think your plan is wrong-headed, and you don&#8217;t get a good store of value without a reliable system. But whatever grudges might show up now and then on twitter, that seems to be pretty thoroughly in the past, and there now seems to be much <a href="https://www.coindesk.com/summer-2020-is-funding-season-for-open-source-bitcoin-development">broader support</a> for funding devs, and much better consensus on what development should happen (though perhaps only because people who disagree have moved to different projects, and new disagreements haven&#8217;t yet cropped up).</p>



<p>But while that might be near enough the 64x improvement to support today&#8217;s valuation, I think we probably need a lot more to be able to supported continued growth in adoption.</p>



<p>Hopefully this is buried enough to not accidentally become a lede, but I&#8217;m particularly optimistic about an as yet unannounced approach that <a href="https://dci.mit.edu/security">DCI</a> has been exploring, which (if I&#8217;ve understood correctly) aims to provide long term funding for a moderate sized team of senior devs and researchers to focus on keeping Bitcoin stable and secure &#8212; that is auditing code, developing tools to find and prevent bugs, and doing targeted research to help the white hats stay ahead in the security arms race. I&#8217;m not sure it will get off the ground or pass the test of time, and if it does, it will probably need to be replicated by other groups to avoid becoming worryingly centralising, but I think it&#8217;s a promising approach for supporting the next 8x improvement in security and robustness, and perhaps even some of the one after that.</p>



<p>I&#8217;ve also chatted briefly with Jeremy Rubin who has some interesting funding ideas for <a href="https://judica.org/join/">Judica</a> &#8212; the idea being (again, if I haven&#8217;t misunderstood) to try to bridge the charitable/patronage model of a lot of funding of open source Bitcoin dev, with the angel funding approach that can generate more funds upfront by having a realistic possibility of ending up with a profitable business and thus a return on the initial funding down the road. </p>



<p>That seems much more blue-sky to me, but I think we&#8217;ll need to continue exploring out-there ideas in order to avoid centralisation by development-capture: that is, if we just expand on what we&#8217;re doing now, we may end up where only a few companies (or individuals) have their quarterly bottom line directly affected by development funding, and are thus shouldering the majority of the burden while the rest of the economy more-or-less freeloads off them, and then having someone see an opportunity to exploit development control and decide to buy them all out. A mild example of this might be Red Hat&#8217;s <a href="https://lists.centos.org/pipermail/centos-announce/2014-January/020100.html">purchase of CentOS</a> (via an inverse-acquihire, I suppose you could call it), and <a href="https://lwn.net/Articles/839523/">CentOS&#8217;s recent strategy change</a> that reduces its competition with Red Hat&#8217;s RHEL product.</p>



<p>(There are also a lot of interesting funding experiments in the DeFi/ethereum space in general, though so far I don&#8217;t think they feed back well into the &#8220;ongoing funding of robustness and security development work&#8221; goal I&#8217;m talking about here)</p>



<p>There are probably three &#8220;attacks&#8221; that I&#8217;m worred about at present, all related to the improvements above.</p>



<p>One is that the &#8220;modularisation&#8221; goal above implies a lot of code being moved around, with the aim of not really changing any behaviour. But because the code that&#8217;s being changed is complicated, it&#8217;s easy to change behaviour by accident, potentially introducing irritating bugs or even vulnerabilities. And because reviewers aren&#8217;t expecting to see behaviour changes, it can be hard to catch these problems: it&#8217;s perhaps a similar problem to <a href="https://www.theguardian.com/technology/2018/jan/24/self-driving-cars-dangerous-period-false-security">semi-autonomous vehicles</a> or <a href="https://eprints.qut.edu.au/94790/3/94790.pdf">security screening</a> &#8212; most of the time everything is fine so it&#8217;s hard to ensure you maintain full attention to deal with the rare times when things aren&#8217;t fine. And while we have plenty of automated checks that catch wide classes of error, they&#8217;re still far from perfect. To me this seems like a serious avenue for both accidental bugs to slip through, and a risk area for deliberate vulnerabilities to be inserted by attackers willing to put in the time to establish themselves as Bitcoin contributors. But even with those risks, modularisation still seems a worthwhile goal, so the question is how best to minimise the risks. Unfortunately, beyond what we&#8217;re already doing, I don&#8217;t have good ideas how to do that. I&#8217;ve been trying to include &#8220;is this change really a benefit?&#8221; as a review question to limit churn, but it hasn&#8217;t felt very effective so far.</p>



<p>Another potential attack is against code review &#8212; it&#8217;s an important part of keeping Bitcoin correct and secure, and it&#8217;s one that doesn&#8217;t really scale that well. It doesn&#8217;t scale for a few reasons &#8212; a simple one is that a single person can only read so much code a day, but another factor is that any patch can have subtle impacts that only arise because of interactions with other code that&#8217;s not changing, and being aware of all the potential subtle interactions in the codebase is very hard, and even if you&#8217;re aware of the potential impacts, it can take time to realise what they are. Having more changes thus is one problem, but dividing review amongst more people is also a problem: it lowers the chance that a patch with a subtle bug will be reviewed by someone able to realise that some <a href="https://github.com/bitcoin/bitcoin/issues/20005">subtle</a> <a href="https://github.com/bitcoin/bitcoin/issues/16684#issuecomment-726214696">bug</a> even exists. Similarly, having development proceed quickly and efficiently is not always a win here: it reduces the time available to realise there&#8217;s a problem before the change is merged and people move on to thinking about the next thing. Modularisation helps here at least: it substantially reduces the chance of interactions with entirely different parts of the project, though of course not entirely. CI also helps, by automating review of classes of potential issues. I think we already do pretty well here with consensus code: there is a lot of review, and things progress slowly; but I do worry about other areas. For example, I was pretty surprised to see <a href="https://github.com/bitcoin/bitcoin/pull/20624">PR#20624</a> get proposed on a Friday and merged on Monday (during the lead up to Christmas no less); that&#8217;s the sort of change that I could easily see introducing subtle bugs that could have serious effects on p2p connectivity, and I don&#8217;t think it&#8217;s the sort of huge improvement that justifies a merge-first-review-later approach.</p>



<p>The final thing I worry about is the risk that attackers might try subtler ways of &#8220;firing the devs&#8221; than happened last time. After all, if you can replace all the people who would&#8217;ve objected to what you want to do, there&#8217;s no need to sneak it in and hope no one notices in review, you can just do it, and even if you don&#8217;t get rid of everyone who would object you at least lower the chances that your patch will get a thorough review by whoever remains. There are a variety of ways you can do that. One is finding way of making contributing unpleasant enough that your targets just leave on their own: constant arguments about things that don&#8217;t really matter, slowing down progress so it feels like you&#8217;re just wasting time, and personal attacks in the media (or on social media), for instance. Another is the cancel-culture approach of trying to make them a pariah so no one else will have anything to do with them. Or there&#8217;s the potential for <a href="https://coingeek.com/wright-victorious-peter-mccormack-abandons-libel-defence/">court cases</a> (cf <a href="https://twitter.com/angela_walch/status/1270832206932512779">Angela&nbsp;Walch&#8217;s&nbsp;ideas&nbsp;on&nbsp;fiduciary&nbsp;duties&nbsp;for&nbsp;developers</a>) or more direct <a href="https://blog.lopp.net/reflections-upon-a-swatting/">attempts at violence</a>.</p>



<p>I don&#8217;t think there&#8217;s a direct answer to this &#8212; even if all of the above fail, you could still get people to leave by offering them bunches of money and something interesting to do instead, for example. Instead, I think the best defense is more cultural: that is having a large group of contributors, with strong support for common goals (eg decentralisation, robustness, fixed supply, not losing peoples funds, not undoing transactions) that&#8217;s also diverse enough that they&#8217;re not all vulnerable to the same attacks.</p>



<p>One of the risks of funding most development in much the same way is that it&#8217;s encourages conformity rather than diversity &#8212; an obvious rule for getting sponsored is &#8220;don&#8217;t bite the hand that feeds you&#8221; &#8212; eg, <a href="https://github.com/BitMEXResearch/Bitcoin-Developer-Grant-Agreement/blob/master/Bitcoin-Developer-Grant-Agreement.md">BitMEX&#8217;s Developer Grant Agreement</a> includes &#8220;Not undertaking activities that are likely to bring the reputation of &#8230; the Grantor into disrepute&#8221;. And I don&#8217;t mean to criticise that: it&#8217;s a natural consequence of what a grant is. But if everyone working on Bitcoin is directly incentivised to follow that rule, what happens when you need a whistleblower to call out bad behaviour? </p>



<p>Of course, perhaps this is already fine, because there are enough devs who&#8217;ll happily quit their jobs if needed, or enough devs who have already hit their FU-money threshold and aren&#8217;t beholden to anyone?</p>



<p>To me though, I think it&#8217;s a bit of a red flag that LukeDashjr<a href="https://twitter.com/LukeDashjr/status/1341765848701145089"> hasn&#8217;t gotten</a> one of these funding gigs &#8212; I know he&#8217;s applied for a couple, and he should superficially be trivially qualified: he&#8217;s a long time contributor, he&#8217;s been influential in calling out <a href="https://bitcoinmagazine.com/articles/the-battle-for-p2sh-the-untold-story-of-the-first-bitcoin-war">problems with BIP16</a>, in making <a href="https://bitcoinmagazine.com/articles/long-road-segwit-how-bitcoins-biggest-protocol-upgrade-became-reality">segwit deployment feasible</a>, in avoiding some of the possible disasters that could have resulted from <a href="https://medium.com/@lukedashjr/bip148-and-the-risks-it-entails-for-you-whether-you-run-a-bip148-node-or-not-b7d2dbe85ce6">the UASF activation of segwit</a>, and in <a href="https://twitter.com/lukedashjr/status/1276028540975288321">working out how to activate taproot</a>, and he&#8217;s one of the people who&#8217;s good at spotting <a href="https://github.com/bitcoin/bitcoin/pull/17428#issuecomment-579580035">subtle interactions</a> that risk bugs and vulnerabilities of the sort I talked about above. On the other hand he&#8217;s known for having some <a href="https://bitcoin.stackexchange.com/questions/2623/what-are-tonal-bitcoins">weird ideas</a> and can be <a href="http://www.erisian.com.au/bitcoin-core-dev/log-2017-01-17.html#l-199">difficult to work with</a> and maybe his expectations are <a href="https://www.reddit.com/r/btc/comments/9r86cd/luke_jrs_patreon_is_hilarious/">unrealistic</a>. What&#8217;s that add up to? Maybe he&#8217;s a test case for this exact attack on Bitcoin. Or maybe he&#8217;s just had a run of bad luck. Or maybe he just needs to sell himself better, or adopt a more business-friendly attitude &#8212; and I guess that&#8217;s the attitude to adopt if you want to solve the problem yourself rather than rely on someone else to help.</p>



<p>But&#8230; if we all did that, aren&#8217;t we hitting that exact &#8220;conformity&#8221; problem; and doesn&#8217;t that more or less leave everyone vulnerable to the &#8220;pariah&#8221; attack, exploitable by someone pushing your buttons until you overreact at something that&#8217;s otherwise innocuous, then tarring you as the sort of person that&#8217;s hard to work with, and repeating that process until that sticks, and no one wants to work with you?</p>



<p>While I certainly (and tautologically) like working with people who I like working with, I&#8217;m not sure there&#8217;s a need for devs to exclusively work with people they find pleasant, especially if the cost is missing things in review, or risking something of a vulnerable monoculture. On the other hand, I tend to think of patience as a virtue, and thus that people who test my patience are doing me a service in much the same way exams in school do &#8212; they show you where you&#8217;re at and what you need to work on &#8212; so it might also be that I&#8217;m overly tolerant of annoying people. And I did also list &#8220;making working on Bitcoin unenjoyable&#8221; as another potential attack vector. So I don&#8217;t know that there&#8217;s an easy answer. Maybe promoting <a href="https://github.com/sponsors/luke-jr">Luke&#8217;s github sponsors page</a> is the thing to do?</p>



<p>Anyway, conclusion.</p>



<p>Despite my initial thoughts above that <strong>taproot</strong> might be less of a priority this year in order to focus on robustness rather than growth, I think the &#8220;let wallets do more multisig so users funds are less likely to be lost&#8221; is still a killer feature, so I think that&#8217;s still #1 for me. I think trying to help with making <strong>p2p and mempool code</strong> be more resilient, more encapsulated and more testable might be #2, though I&#8217;m not sure how to mitigate the code churn risk that creates. I don&#8217;t think I&#8217;m going to work much on <strong>CI/tests/static analysis</strong>, but I do think it&#8217;s important so will try to do more <strong>review</strong> to help that stuff move forward. </p>



<p>Otherwise, I&#8217;d like to get the <strong>anyprevout</strong> patches brought up to date and testable. In so far as that enables eltoo, which then allows better reliability of lightning channels, that&#8217;s kind-of a fit for the robustness theme (and robustness in general, I think, is what&#8217;s holding lightning back, and thus fits in with the &#8220;keep lightning growing at the same rate as Bitcoin, or better&#8221; goal as well). It&#8217;s hard to rate that as highly as robustness improvements at the base Bitcoin layer though, I think.</p>



<p>There are plenty of other neat technical things too; but I think this year might be one of those ones where you have to keep reminding yourself of a few fundamentals to avoid getting swept up in the excitement, so keeping the above as foundations is probably a good idea.</p>



<p>Otherwise, I&#8217;m hoping I&#8217;ll be able to continue supporting <a href="https://twitter.com/coinbase/status/1341549293539356674">other people&#8217;s</a> dev funding efforts &#8212; whether blue sky, or just keeping on with what&#8217;s working so far. I&#8217;m also hoping to do a bit more writing &#8212; my resolution last year was meant to be to blog more, and didn&#8217;t really work out, so why not double down on it? Probably a good start (aside from this post) would be writing a response to the <a href="https://twitter.com/ozprodcom/status/1341169814300082176">Productivity Commission Right to Repair</a> issues paper; I imagine there&#8217;ll probably be some more crypto related issues papers to respond to over this year too&#8230;</p>



<p>If for whatever reason you&#8217;re reading this looking for suggestions you might want to do rather than what I&#8217;m thinking about, here are some that come to my mind:</p>



<ul><li>Money: consider supporting or hiring <a href="https://github.com/sponsors/luke-jr">Luke</a>, or otherwise supporting (or, if it&#8217;s in your wheelhouse, doing) Bitcoin dev work, or supporting MIT DCI, or funding/setting up something independent from but equally as good as MIT DCI or Chaincode (in increasing order of how much money we&#8217;re talking). If you&#8217;re a bank affected by the recent <a href="https://www.occ.gov/news-issuances/news-releases/2021/nr-occ-2021-2a.pdf">OCC letter&nbsp;on&nbsp;payments</a>, making a serious investment in lightning dev might be smart.</li><li>Bitcoin code: help improve internal test coverage, static analysis, and/or build reproducibility; setup and maintain external tests; review code and find bugs in PRs before they get merged. Otherwise there&#8217;s a million interesting features to work on, so do that.</li><li>Lightning: get PTLCs working (using taproot on signet or ecdsa-based), anyprevout/eltoo, improve spam prevention. Otherwise, implementing and fine-tuning everything already on lightning&#8217;s TODO list.</li><li>Other projects: do more testing on signet in general, test taproot integration on signet (particularly for robustness features like multisig), monitor blockchain and mempool activity for oddities to help detect and prevent potential attacks asap.</li></ul>



<p>(Finally, just in case it&#8217;s not already obvious or clear: these are what <strong><em>I</em></strong> think are priorities today, there&#8217;s not meant to be any implication that anything outside of these ideas shouldn&#8217;t be being worked on)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2021/01/07/bitcoin-in-2021/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Activating Soft forks in Bitcoin</title>
		<link>https://www.erisian.com.au/wordpress/2020/10/26/activating-soft-forks-in-bitcoin</link>
					<comments>https://www.erisian.com.au/wordpress/2020/10/26/activating-soft-forks-in-bitcoin#comments</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Mon, 26 Oct 2020 11:51:16 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1122</guid>

					<description><![CDATA[General background: Bitcoin is a consensus system &#8212; it works because there are a set of rules on how Bitcoin transactions work, and everyone agrees on what they are. Changing those rules is called &#8220;forking&#8221; &#8212; when some people want to change the rules in a non-backwards compatible way while others don&#8217;t, that results in [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><em>General background:</em> Bitcoin is a consensus system &#8212; it works because there are a set of rules on how Bitcoin transactions work, and everyone agrees on what they are. Changing those rules is called &#8220;forking&#8221; &#8212; when some people want to change the rules in a non-backwards compatible way while others don&#8217;t, that results in a new altcoin that follows the changed rules (eg <a href="https://en.wikipedia.org/wiki/Bitcoin_Cash">BCH</a>), while Bitcoin&#8217;s rules stay the same; and when everyone agrees to change the rules in a backwards compatible way, we have what&#8217;s called a <a href="https://en.bitcoin.it/wiki/Softfork">soft fork</a>. Most of the interesting development in Bitcoin doesn&#8217;t require changes to the consensus rules, but some changes do. In essence, these sorts changes touch the fundamentals of Bitcoin, and thus warrant extra care and attention.<br><br><em>Specific background:</em> The proposed <a href="https://bitcoinmagazine.com/articles/taproot-coming-what-it-and-how-it-will-benefit-bitcoin">taproot soft fork</a> is something we&#8217;ve been working on for quite a while now, and the <a href="https://github.com/bitcoin/bitcoin/pull/19953">underlying code changes</a> got merged into the bitcoin codebase a bit over a week ago, just in time for the 0.21 feature freeze. Those changes allow the new taproot rules to be used for testing purposes on the regtest chain, and also on the new <a href="https://en.bitcoin.it/wiki/Signet">signet</a> chain, but do not change how things work on the real, live, Bitcoin network. The idea there is to allow people to check that the major upgrade to 0.21 works as expected and is safe to widely deploy, and only after that&#8217;s done worry about the soft fork. Exactly how to activate the soft fork is something of an open question though &#8212; while we&#8217;ve done a <a href="https://blog.bitmex.com/bitcoins-consensus-forks/">number of them in the past</a>, the last one ended up a bit of a debacle. Back in July, we started <a href="https://bitcoinops.org/en/newsletters/2020/07/22/#taproot-activation-discussions">discussing activation methods</a> more seriously, and came up with some <a href="https://en.bitcoin.it/wiki/Taproot_activation_proposals">ideas</a>.</p>



<p>At the time, I wanted to get a better idea of what people thought of the fundamental constraints, so I tried writing up a <a href="https://forms.gle/MTyWqmoPMWyf5HVu7">survey</a> and sent an email to a bunch of smart dev-type people inviting them to fill it in if they were interested:</p>



<blockquote class="wp-block-quote"><p>We seem to be getting to the point where people are making memes about activation methods <a href="https://twitter.com/BitcoinMemeHub/status/1290562542675214337">[0]</a> <a href="https://twitter.com/BitcoinMemeHub/status/1290542003332108288">[1]</a> <a href="https://twitter.com/theinstagibbs/status/1284127952901373952">[2]</a>, but I think we&#8217;re also still at the point where pretty smart people still have big differences of opinion over technical issues <a href="https://twitter.com/TheBlueMatt/status/1288141145407717377">[3]</a>.</p><p> I feel like we&#8217;ve made some progress on ##taproot-activation, but talking with harding after he did his wiki summary of the state of things, I didn&#8217;t feel like that was quite getting at the heart of the differences. So I&#8217;ve had a go at writing up a survey for (what I think are) the underlying questions that are driving the differences between the proposals. There&#8217;s only 10 real questions there, but I&#8217;ve added a whole bunch of text that (hopefully) neutrally explains most of the tradeoffs between the choices, hopefully without introducing too much of my own bias. I&#8217;m hoping it covers all the choices people are currently favouring, even if they&#8217;re &#8220;comically moronic&#8221;, and, ideally at least, will give some clue as to the tradeoffs people are considering/ignoring that&#8217;s leading them to that preference. Ideally the results might indicate where there&#8217;s already widespread agreement, what might be worth talking through more, and what productive ways there might be of dealing with any remaining disagreementsâ€¦</p><p>If there&#8217;s some important issues / responses the survey doesn&#8217;t cater for, that would be good to know. And, obviously, if you&#8217;re happy to fill in the survey, that would be awesome</p><p>My thought is, assuming the response isn&#8217;t &#8220;this is a stupid, counter-productive idea&#8221;, to post the url at the next weekly core dev irc meeting for a broader but still cluey audience, and post to bitcoin-dev and ##taproot-activation afterwards, and then do something about collating and publishing the results, which might hopefully help promote intelligent discussion vs meme warsâ€¦</p><p>I&#8217;ve bcc&#8217;ed people so they don&#8217;t get included in replies if they&#8217;re not interested; but fwiw the list is [&#8230;]. . Random collection of people who have participated in recent discussions, might have varying strong opinions on some of the topics, and/or who did bunches of work and who I&#8217;d be embarrassed to exclude.</p><p>Steve Lee, A. Jonas, and Mike Schmidt helped with drafting and will hopefully help with/do all the work of collating responses; Dave Harding, Russell O&#8217;Connor both offered helpful comments that assisted significantly with early drafting. Any remaining stupid counter-productivity is mine of course.</p><p>(I&#8217;m hoping this survey will help result in a better idea of what to do about activation which will then inform what we actually do. But either way it&#8217;s certainly not a &#8220;vote by sms now, and whichever answers get the most votes will be your new american idol, uh, taproot activation method&#8221; thing, or even a &#8220;nope, everyone else voted X, your opinion is unimportant&#8221;. Hopefully that didn&#8217;t need to be said.)</p></blockquote>



<p>I sent the survey to about 20 people and got 13 responses (including my own). I figure not identifying who responded or tying responses with people is probably best, since that avoids tying anyone to their opinion from a month or three ago, and thus maybe makes it easier for people to adjust their views to new information and eventually come to an agreement.</p>



<p>If you&#8217;re interested in the details around this topic, I think the survey&#8217;s worth a read, and I&#8217;ve left it open in case anyone wants to fill in their own answers.</p>



<p>The results turned out harder to collate than I expected &#8212; mostly because google&#8217;s CSV export isn&#8217;t that great when you have &#8220;choose as many as you like&#8221; questions that each have full sentences for the answers, but also because there were fewer obvious patterns than I expected. But anyway. </p>



<p>Results for the first set of questions, about activation via enforcement by a supermajority of hashpower, ended up being:</p>



<ul><li>What do you consider a reasonable threshold for activation by hashpower supermajority?<ul><li>Eight people selected 90%-95%, 85%-95%, 90% or 95%</li><li>Four people selected 60%/70%/75% as the lower bound and 95% as the upper</li><li>One person selected just 75%</li></ul></li><li>If everything goes well, how long will it take miners to upgrade and enable signalling for activation by hashpower supermajority?<ul><li>Six people chose &#8220;up to 12 months</li><li>Five people chose &#8220;up to 3 months&#8221;</li><li>One person chose &#8220;up to 6 months&#8221;</li><li>One person didn&#8217;t answer</li></ul></li><li>How long should it be at minimum between software release and activation actually taking effect?<ul><li>Five people chose &#8220;6 retarget periods&#8221; (3 months)</li><li>Four people chose &#8220;4 retarget periods&#8221; (2 months)</li><li>Two people chose &#8220;2 retarget periods&#8221; (1 month)</li><li>One person didn&#8217;t answer</li><li>One person gave a free form answer: &#8220;Unpopular opinion: between 3 and 6 months. Need to give time for users to update too. Otherwise miners can do play dirty (I suppose but I haven&#8217;t thought deeply about this). &#8220;</li></ul></li></ul>



<p>For the &#8220;flag day activation&#8221; section, the answers were:</p>



<ul><li>What concerns do you think should be taken into account in choosing a flag day?<ul><li>Eleven people chose &#8220;plenty of people will enforce the rules, after the flag day, though maybe not the flag day itself&#8221;</li><li>Eleven people chose &#8220;sufficient number of people enforcing the flag day that ignoring it will be economically unviable&#8221;</li><li>Seven people chose &#8220;almost every node will enforce the flag day&#8221;</li><li>Five people chose &#8220;not introducing precedents that will cause problems&#8221;</li><li>Four people chose &#8220;soon enough to keep development momentum&#8221;</li></ul></li><li>How long away should the flag day be?<ul><li>Seven people found 12 or 18 months acceptable. Of those, six found 12, 18 or 24 months acceptable, and two of them also considered 36 or 48 months acceptable.</li><li>One person found only 6 or 12 months acceptable.</li><li>One person found only 36 or 48 months acceptable.</li><li>Two people only indicated 12 months.</li><li>One person only indicated 18 months.</li><li>One person chose &#8220;never&#8221;.</li></ul></li><li>When should we decide on the flag day?<ul><li>Nine people chose answers that depend on uptake (seven wanted to see how users upgrade; six wanted to see how miners behave; five wanted to be sure a flag day is actually needed)</li><li>Four people chose &#8220;before the first activation attempt&#8221;, though two of those also wanted to see how users upgrade, and one also selected the &#8220;never&#8221; option (not the same person that chose &#8220;never&#8221; for the previous question)</li></ul></li><li>How should disagreement on a choice of flag day be resolved?<ul><li>Six people indicated &#8220;whatever the BIP authors and core maintainers agree on is fine&#8221;</li><li>Four people indicated &#8220;only do a flag day if there&#8217;s clear consensus&#8221; (no overlap with the previous six)</li><li>Four people chose &#8220;Pick my answer (or a later one)&#8221;; one of those also chose &#8220;Pick the average answer&#8221;</li><li>There were a bunch of free form answers as well: &#8220;Pick a reasonable answer&#8221;, &#8220;6 months or 1 year only, unless there&#8217;s a clear reason more time is required (e.g., fixing timestamp overflow bugs in far future). Anything in between 6 months and 1 year is bikeshedding, anything less than 6 months is too fast, and anything further than 1 year is too far out&#8221;, &#8220;Pick the Nth percentile wait, where N is pretty high. I&#8217;m fine waiting longer, I just want the flag day locked in&#8221;, &#8220;rough consensus and running code&#8221;, &#8220;A thought I had during the segwit2x debacle is that I don&#8217;t think there is consensus for playing games of chicken with consensus. I think taproot is a good idea, but I don&#8217;t think chain splits are, and I think we should take our time to be careful about deploying consensus changes in a way that is not likely to produce a chain split. No one has any reason to think that taproot won&#8217;t activate, so let&#8217;s not rashly move forward in a way that could provoke a chain split due to errors or oversights.&#8221;</li></ul></li><li>How will we know there is community support for a flag day by default?<ul><li>Ten people chose &#8220;enough time for reasonable objections to be reported, but none have been&#8221;</li><li>Nine people chose &#8220;uptake of software supporting hashpower supermajority activation&#8221;</li><li>Eight people chose &#8220;we see manual signalling&#8221; (everyone chose at least one of these three responses, except for one person who only entered a free form response)</li><li>Five people chose &#8220;uptake of opt-in activation&#8221;</li><li>Four people chose &#8220;we see price information&#8221;</li><li>Four people chose &#8220;we already do&#8221;</li><li>One person chose &#8220;we never will&#8221; (along with other options)</li><li>There were also a couple of free form additions: &#8220;Every softfork is a user-activated softfork&#8221;, &#8220;when anyone on reddit/reading coindesk would understand that there are no objections, and understand the care that went into design.&#8221;, &#8220;Know it when we see it, but should only be used if necessary&#8221;</li></ul></li><li>How should users opt-in to flag day activation?<ul><li>Seven people chose &#8220;never opt-in, should be the default for everyone once community support is established&#8221;</li><li>Five people chose &#8220;upgrading to a new (optional) version of bitcoin core&#8221; &#8212; eleven people chose at least one of these two options</li><li>Four people chose &#8220;setting a configuration flag&#8221;</li><li>Four people chose &#8220;an alternative forked client&#8221;</li><li>Six people chose &#8220;editing the source and recompiling&#8221;, however all of those people also chose at least one other option</li><li>The only free form comment was: &#8220;Configs can be set wrong accidentally and is hard to test, a bit harder to run wrong binary for a long time. (speaking against config flag option)&#8221;</li></ul></li><li>Signalling a flag-day activation?<br><ul><li>Six people chose &#8220;mandatory signalling only when bringing activation forward&#8221;</li><li>Five people chose &#8220;always require signalling prior to activation&#8221; (nine people chose one of these options)</li><li>One person chose &#8220;never mandate signalling&#8221;</li><li>Two people gave no answer, and one just gave the free form response: &#8220;No opinion at this time&#8221;</li><li>Remaining free form comments were: &#8220;I think forced signaling flag days are really only interesting for two phase deployments where the first phase doesn&#8217;t know about the flag day but hasn&#8217;t timed out, and where the flag day is far enough out that disruption from it can be minimized (e.g. miners can get told to at least adjust their versions)&#8221;, &#8220;We want mandatory signalling to bring to ensure activation on nodes that do not enforce the flag day. The &#8220;proposed update to BIP 8 <a href="https://github.com/bitcoin/bips/pull/950">[3]</a>&#8221; is a very good solution to this.&#8221;</li></ul></li></ul>



<p>I don&#8217;t think the &#8220;opinion weighting&#8221; answers ended up being very interesting:</p>



<ul><li>How informed are your opinions?<ul><li>Six people chose &#8220;based on years of experience with multiple activations&#8221;</li><li>Two people chose &#8220;in depth study of bitcoin activation&#8221;</li><li>Four people chose &#8220;knowledge about other aspects of bitcoin and reading the questions&#8221;</li><li>One person chose &#8220;you wanted my opinion, you got it. caveat emptor&#8221;.</li></ul></li><li>How confident are you about your opinions?<ul><li>Eight people chose &#8220;right balance of tradeoffs&#8221;</li><li>Three people chose &#8220;not very&#8221;</li><li>One person chose &#8220;anything else will be a disaster&#8221;</li></ul></li></ul>



<p>Overall free form comments were:</p>



<ul><li>Your choices for how sure I am are pretty rough. I mean, there probably isn&#8217;t anyone with <em>more</em> activation experience than me (though several equal) but no one has activated anything in the current network, no one has activated taproot. etc. A sentiment I hoped to be able to express was support for nested activations like harding&#8217;s start now and improve later. Forced activation specifics are likely to be complicated and painful to decide and that decision would be greatly simplified by initial robust deployment. â€¦ plus I think there are good odds that forced activation will be unnecessary (esp if its clear that we will use it if needed)&#8211; so why serialize getting this stuff activated on figuring out forced activation details? Better to do whatever thing has good odds of getting it activated fast assuming miners cooperate then worry about more dramatic things if they don&#8217;t. Without the initial attempt everyone is just guessing&#8211; guessing on uptake&#8211; guessing on miner behaviour&#8211; etc. Plus people who want more aggressive and less aggressive approaches differ a lot based just on how pessimistic they are about miners, a question that will be resolved by seeing what miners do. The primary counter argument to this approach is that if we don&#8217;t plan for a flagday in advance there is a risk that the moment miners drag their feet at all, the pitchforks will come out and the least reasonable people will immediately move forward with a 30 day flagday or whatever. I think that this can be avoided by the author of the parameters making a clear statement of intent. That if users adopt but miners holdback the intention will be to flag day and we&#8217;ll start discussing the details of that in 3 monthsâ€¦ or something like that.</li><li>I can&#8217;t answer about how &#8220;correct&#8221; my opinions areâ€¦ My feelings about activation methods are strongest when it comes to the narrative around them, and least strong when it comes to the specifics (provided that they are reasonably in line with a good narrative). I think we could take almost any activation method and tell a story about it that is terrible &#8212; miner-activation means that miners dictate the rules; user-activation means that developers dictate the rules, etc. In my view the most important thing here is to have as strong a sense as reasonably possible that no one is opposed to the consensus change and that activation is very likely to not cause a chain split (at the time of activation or down the road). How we get there is a matter of debate and discussion, but if we can agree that those two principles are paramount and other issues are secondary, then I think I&#8217;d be on board with any number of proposals that are crafted around such a narrative.</li><li>To summarize my current thinking:<ul><li>deploy bip8(false) in Bitcoin Core</li><li>If it becomes clear that the miners use their veto to prevent activation let users coordinate on a flag day. In order to opt-in to flag day activation (bip8(true)) users should create their own fork of Bitcoin Core. For this to work properly, it would be ideal to use Anthony Town&#8217;s suggested changes to BIP 8. If the users fail to cooperate and the softfork doesn&#8217;t activate, then that&#8217;s fine too, but maybe the softfork wasn&#8217;t useful enough then. We can propose another softfork that hopefully gets more user support (sigagg, etc.).</li><li>Thanks for making this! Looking forward to see what comes out of it.</li></ul></li><li>I think that we&#8217;ve micro-managed soft-forking patterns as the biggest threat that bitcoin faces and worthy of all the attention and fuss&#8230; There are bigger problems and challenges facing bitcoin centralization that we can work on (e.g., proliferation of storing funds in custodial wallets), but that feel more outside our control, so we focus on something that is in our control. I think any reasonable choice that allows us to ship small soft-forks when recommended by devs and users is the right tradeoff when we&#8217;re already suffering from other centralization vectors.</li><li>Perhaps not a disaster for Taproot, but some deviation could set very harmful precedents. Looking at upgrade history, I worry we ought to set a minimum 1 year after software release before starttime, but the question only asked about a *minimum*.</li><li>Waiting too long means hats come out of closets and we get something much less organised and safe. Let&#8217;s get a flag day set far enough in the future and move on with our lives</li></ul>



<p>Hopefully the length of that summary when there&#8217;s only 13 responses serves as a good explanation why I didn&#8217;t summarise this earlier, or try getting more responses first&#8230;</p>



<p>One thing I&#8217;ve been thinking more and more is that the exact activation method isn&#8217;t really what&#8217;s important. I think that the whole &#8220;BIP 9 allows an activation attempt to fail&#8221; has been somewhat misleading &#8212; while it&#8217;s technically true, the fact that the activation could succeed at all is more important, and that possibility implies that we have to be absolutely confident that a deployment is definitely worth activating before we risk activation. And if we are absolutely confident it&#8217;s worthwhile, then so is everyone else, and we will eventually activated it one way or another, and the details of exactly how it happens are just that: details. And while details matter, it&#8217;s much more important to make sure the idea is sound, and to do that first &#8212; so I think it&#8217;s actually more of a big deal that we&#8217;ve in addition to all the review and unit tests and guides and explanations we&#8217;ve now also got <a href="https://twitter.com/kallewoof/status/1319230929160695808">taproot activated on signet</a> which should make third-party development feasible, and in some sense allow an extra layer of testing.</p>



<p>But anyway, as far as activation parameters go, your takeaways from the above might be different, but I think mine are:</p>



<ul><li>Activation threshold should stay at 95% (or at most be reduced to 90%)</li><li>We don&#8217;t really know how quickly miners will react; so hope for a quick response within a few months, but plan for it taking up to a year, even if everything goes well</li><li>Setting the startheight to be about a month or two worth of blocks away is probably about right (along with a retarget period each of STARTED and LOCKED_IN this gets at least two or three months of deployment time before activation is possible)</li><li>Almost everyone is open to the idea of a flag day in some circumstances</li><li>If there&#8217;s a flag day, we should expect it to be a year or two away (though it might turn out sooner than that, or later)</li><li>There probably isn&#8217;t support for setting a flag day initially (only 4/13 support choosing a day early enough; only (a different) 4/13 think we already know there&#8217;s sufficient community support; 9/13 want to see adoption of hashpower-based activation to establish there&#8217;s consensus for a flag day)</li><li>Almost everyone wants to see as many nodes as possible enforce the rules after activation</li><li>Most people seem to be willing to accept bringing a flag day forward by mandatory signalling</li><li>There&#8217;s not a lot of support for opting-in to flag day activation by setting a configuration option</li></ul>



<p>So I think to me that means:</p>



<ul><li>Initial activation parameters should be included in a minor update release (eg, version 0.21.1 or 0.21.2) and be something like:<ul><li>lockinontimeout = false</li><li>startheight = release height + 3 retarget periods, rounded up (to get a two or three month delay before activation is possible)</li><li>timeoutheight = startheight + 209,664 blocks (4 years worth &#8212; in case the 12-24 months estimates turn out to be too low)</li><li>threshold = 95% (no point changing it)</li></ul></li><li>We then see what happens &#8212; if miners activate it within the first three or 12 months: great. If they don&#8217;t, we&#8217;ll have more data, and use that to refine the deployment strategy. For example, if miners have been having legitimate problems deploying the new software, we&#8217;ll help them fix that; if not, and there&#8217;s plenty of uptake of the new software and other support, we&#8217;ll run some numbers on the rate at which users are upgrading, and pick a date for a flag day based on that.</li><li>When we work out what flag day is best supported by the data (suppose for the sake of example that it&#8217;s startheight + 18 months, to be roughly in line with what people expected per the above), then we&#8217;d update the deployment parameters to:<ul><li>lockinontimeout = true</li><li>startheight = unchanged</li><li>timeoutheight = startheight + 78,624 blocks (18 months&#8217; worth)</li><li>threshold = unchanged</li></ul></li><li>The updated activation parameters should be backported for each major version (eg, if startheight is March 2020 and timeoutheight is in September 2021, that might be 0.21.5, 0.22.3, and 0.23.1, and already included in master by the time 0.24.0 is branched off)</li></ul>



<p>This is more or less the <a href="https://en.bitcoin.it/wiki/Taproot_activation_proposals#Gently_discourage_apathy.2C_BIP8.28true.2C_2y.29">&#8220;gently discourage apathy&#8221; approach</a> though with a longer initial timeout.</p>



<p>Note that with 13 version bits reasonably available for use (BIP320 reserves the remainder, and miners are actively using them), a four year timeout still allows for a new soft fork every four months on average without having to overlap version bits or come up with a new signalling method; which seems likely to be more than sufficient.</p>



<p>Compared to &#8220;<a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-January/017547.html">modern soft fork activation</a>&#8220;, I think the main differences are that it plans for an earlier flag day (though only if that&#8217;s actually supportable via adoption data), does not include a config parameter for updating to flag day activation but instead requires upgrading to a new minor release (unavoidable given the flag day isn&#8217;t decided in advance and manually setting the flag day would be too easy to get wrong, which risks breaking consensus), and requires mandatory signalling if the flag day occurs.</p>



<p>If you want to maximise the number of nodes that will enforce the rules should a flag day occur, but also only choose the flag day after an initial activation attempt is already widely deployed, then you have no choice but to make signalling mandatory when the flag day occurs. I think it&#8217;s a good idea to do a little more work to minimise the costs that mandatory signalling might impose on miners, so have proposed some updates to BIP 8 to that effect &#8212; one to <a href="https://github.com/bitcoin/bips/pull/1020">not require signalling during LOCKED_IN</a>, and one to <a href="https://github.com/bitcoin/bips/pull/1021">reduce signalling during MUST_SIGNAL</a> from 100% of blocks down to the threshold figure; I think the latter also is potentially somewhat protective against miner gamesmanship, as noted in the link. That&#8217;s still not zero-impact on miners in the way the &#8220;modern soft fork activation&#8221; approach is, but I think it&#8217;s near enough.</p>



<p>Apart from that, I think the current BIP 8 <a href="https://github.com/bitcoin/bips/blob/master/bip-0008.mediawiki">spec</a>/<a href="https://github.com/bitcoin/bitcoin/pull/19573">code</a> should more or less work for the above aleady.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2020/10/26/activating-soft-forks-in-bitcoin/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>A Paradigm Shift</title>
		<link>https://www.erisian.com.au/wordpress/2020/07/15/a-paradigm-shift</link>
					<comments>https://www.erisian.com.au/wordpress/2020/07/15/a-paradigm-shift#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Wed, 15 Jul 2020 05:37:25 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1117</guid>

					<description><![CDATA[(I would have liked to have come up with a more original post title, but found myself unable to escape this one&#8217;s event horizon) I&#8217;ve been at Xapo for a bit over a couple years now, and it&#8217;s been pretty great. Earlier this year, we&#8217;d been coming up to performance review time, so, as you [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>(I would have liked to have come up with a more original post title, but found myself unable to escape this one&#8217;s event horizon)</p>
<p>I&#8217;ve been at Xapo for a bit over a couple years now, and it&#8217;s been pretty great. Earlier this year, we&#8217;d been coming up to performance review time, so, as you do, I&#8217;d been thinking about what changes would be cool &#8212; raise, promotion, different responsibilities, career growth, whatever &#8212; and, largely, coming up blank, particularly given we&#8217;d recently taken on <a href="https://twitter.com/amizi/status/1181793784620670977">Amiti</a> as an additional dev working on bitcoin upstream. I mean, no one&#8217;s going to say no to more money for doing the same thing, but usually if you want significant changes you have to make significant change, and I was feeling pretty comfortable: good things to work on, good colleagues to work with, and not too much bureaucratic nonsense getting in the way. In many ways, my biggest concern was I was maybe getting complacement. So, naturally, come Good Friday, after responding to a late night ping on slack, I found out I was being fired &#8212; and being a remote worker, without even a kiss on the cheek as is traditional for betrayal at that time of year!</p>
<p>Okay, that&#8217;s not a precisely accurate take: I got made redundant along with plenty of others as part of a pretty major realignment/restructuring at Xapo. This was pretty unexpected, since the <a href="https://fortune.com/2019/08/15/coinbase-xapo-bitcoin-custody/">sale of the institutions part of the business to Coinbase</a> had seemed like it had given Xapo a really long runway to avoid having to make painful cuts, though on the other hand I had been concerned enough about the lack of focus (or a nice brief elevator pitch for what Xapo was) to have been mailing Wences ideas about it last year, so some sort of big realignment was not a total surprise either. It&#8217;s summarised in a post on the Xapo blog in May as <a href="https://blog.xapo.com/improving-banking-for-you/">&#8220;relaunching as a digital bank&#8221;</a> which I don&#8217;t think is really all that clear; and there&#8217;s a later post with a <a href="https://blog.xapo.com/changes-to-our-business-and-service/">bunch of FAQs</a> which is helpful for the details, but not really the big picture. The difference between &#8220;custodial wallet&#8221; and &#8220;bank&#8221; has always seemed pretty minor to me, so Xapo&#8217;s <a href="http://www.erisian.com.au/wordpress/2018/05/25/buying-in-and-selling-out">always</a> seemed pretty bank-like to me anyway &#8212; although it&#8217;s still worth distinguishing between a bank where all the customers&#8217; balances are fully backed, and the more normal ones with fractional reserve where funds in deposit accounts are mostly backed by other customers&#8217; debts, and are thus at risk for bank runs, which requires deposit insurance backed by central bank money printing and so on.</p>
<p>I think it&#8217;s fair to describe Xapo&#8217;s new direction as a change of focus from something like &#8220;bitcoin&#8217;s cool, we&#8217;ll help you with it&#8221; to something like &#8220;protecting your wealth is cool, we&#8217;ll help you with it&#8221; &#8212; but when you do that, bitcoin becomes just one answer, with things like USD or gold or even some equities as other answers, just as <a href="http://www.erisian.com.au/wordpress/2019/06/19/libra-hot-take">they are for Libra</a>. That&#8217;s also a focus that matches Wences&#8217; attitude (or life story?) better &#8212; protecting you from currency collapses and the like is a mission; playing with cool new technology is a hobby. And while I think it&#8217;s a good mission in general, I think it&#8217;s particularly timely now with governments/banks/currencies facing pretty serious challenges as a result of response to the covid19 pandemic. It&#8217;s also a much tighter focus than Xapo&#8217;s had over the time I&#8217;ve been with the company &#8212; unless you&#8217;re a massive conglomerate like Google or Disney, it&#8217;s important to be able to say &#8220;no &#8212; that&#8217;s a good idea but it&#8217;s not for us, at least not yet&#8221; so that you limit the things you&#8217;re working on to things that you can do well, so I think that&#8217;s also a big improvement for Xapo. And as a result, I can&#8217;t even really object to Xapo not retaining a bitcoin core dev spot &#8212; in my opinion a focus on wealth preservation for bitcoin mostly means <a href="http://www.erisian.com.au/wordpress/2020/01/07/bitcoiner-maximalism">not screwing things up</a> (at least for now) rather than developing new things. Hopefully once Xapo reopens to new customers and those customers are relying on bitcoin as a substantial store of wealth, and the numbers are all going up, it will make sense to have in-house expertise again, but, well, one of the benefits for companies that build on open source platforms is that you can free-ride for a while, and it doesn&#8217;t make much sense to begrudge that. I think it&#8217;s definitely going to be a challenging time for Xapo to re-establish itself especially with the big personnel changes, but I&#8217;m hopeful that it will work out well. I have exercised my stock options for what that&#8217;s worth, though I don&#8217;t know if that counts as skin in the game or a conflict of interest.</p>
<p>Wences was kind enough to provide a few months&#8217; notice rather than terminating the contract immediately (not something that he was able to do for many of the other Xapo folks who were made redundant around the same time, as I understand it), and even kinder to provide some <a href="https://twitter.com/matthuang/status/1282781523427512321">introductions</a> to people who might fund me in continuing in the same role. It&#8217;s certainly a bad <a href="https://twitter.com/FEhrsam/status/1282794139088596992">negotiating tactic</a>, but the Paradigm guys (they&#8217;re a California based company, so guys still counts as gender neutral, right?) were Wences&#8217; first recommendation, and after getting some surprisingly positive recommendations about them, talking to them, and reading some of their writings, I didn&#8217;t really see much need to look elsewhere. Like I said, complacent. (Or, if you prefer, perhaps &#8220;lacking even first-world problems&#8221; is a better description). Once word filtered through the grapevine a little, I did get an offer from the Chaincode folks to see if I needed some support so that I didn&#8217;t have to worry about urgently getting a new job in the midst of a global pandemic, but I figured it&#8217;s &#8220;better for bitcoin&#8221; for a company like Paradigm that hasn&#8217;t supported development directly until now to get some experience learning how to do it than to join an existing company that&#8217;s already doing pretty much everything right, and it didn&#8217;t feel like too much of a risk on my behalf. So maybe at least there I managed a not-completely-complacent choice? And while there&#8217;s no particular change in job description, I&#8217;m hoping working with folks like A<a href="https://twitter.com/arjunblj">rjun</a> and <a href="https://medium.com/@danrobinson">Dan</a> might help me actually finish fleshing out and writing up some ideas that aren&#8217;t able to be directly turned into code, and I&#8217;m hopeful for some cross-pollination from some of ideas in the DeFi space that they pay attention to, which I&#8217;ve mostly been studiously ignoring so far, so I hope there&#8217;s a bit of potential for growth there.</p>
<p>Anyway, given I&#8217;m doing the same job just with a different company, there wasn&#8217;t really any impetus, but I&#8217;ve been using it as an excuse to get some of the things I&#8217;ve been working on over the past little while actually published; hence the <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-July/018038.html">ANYPREVOUT update</a> and the <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2020-July/018043.html">activation method draft</a> in particular. Both those I&#8217;d been hoping to publish at or shortly after the coredev meeting in March, but covid19 cancelled that for us, and the times since have been kind of distracting.</p>
<p>In conclusion, the moral of the story: take performance reviews more seriously in future.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2020/07/15/a-paradigm-shift/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>COVID19 Thoughts</title>
		<link>https://www.erisian.com.au/wordpress/2020/05/08/covid19-thoughts</link>
					<comments>https://www.erisian.com.au/wordpress/2020/05/08/covid19-thoughts#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Fri, 08 May 2020 09:15:39 +0000</pubDate>
				<category><![CDATA[random]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1111</guid>

					<description><![CDATA[A month and a bit ago, I wrote up my take on covid19 on facebook. At the time, Australia was at 1300 cases, numbers were doubling twice a week, and I&#8217;d been pessimistically assuming two weeks between infection and detection.That led me to pessimistically estimate that we&#8217;d be at 20,000 cases by Easter, and we&#8217;d [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A month and a bit ago, I wrote up <a href="https://www.facebook.com/ajtowns/posts/10157924709989550">my take on covid19</a> on facebook. At the time, Australia was at 1300 cases, numbers were doubling twice a week, and I&#8217;d been pessimistically assuming two weeks between infection and detection.That led me to pessimistically estimate that we&#8217;d be at 20,000 cases by Easter, and we&#8217;d be close to capacity for our hospital system, but I was pretty confident that the measures we&#8217;d put in place by then would be starting to have an effect and we&#8217;d avoid having an utter catastrophe. I&#8217;d predicted by late April we&#8217;d be &#8220;arguing about how to get out of the shutdown&#8221; and have a gradual reopening plan by May &#8212; that looks like it&#8217;s come about now, with the PM and state premiers coordinating on how that should work, and the Queensland one, at least, beginning <a href="https://www.covid19.qld.gov.au/government-actions/roadmap-to-easing-queenslands-restrictions">next week</a>.</p>
<p>The other &#8220;COVID SAFE checks&#8221; also seem good to me: widespread testing, effective tracking and tracing of outbreaks, and having each stage conditional on the outbreaks being contained. We&#8217;re in a much better state to do those things than we were two months ago, There&#8217;s also (as I understand it) been a lot of progress on increasing the capacity of hospitals to respond to outbreaks, so as far as &#8220;flattening the curve&#8221; so that we can go back to living a normal-ish life, without exponential growth causing a disaster, I think we&#8217;re doing great.</p>
<p>It&#8217;s a more cautious reopening than I would have expected though: the four week minimum time between stages is perhaps twice as long as the theoretical minimum, but even that was twice as long as what I&#8217;d have expected the minimum time people would tolerate at a political level. It&#8217;s not clear to me how bad the economics is &#8212; I think we&#8217;ll get the first real economic stats next week, but the numbers I&#8217;m seeing so far (<a href="https://www.abc.net.au/news/2020-05-05/almost-one-million-australians-lose-jobs-due-to-coronavirus/12215494">7% of payroll employees</a> out of work, eg) aren&#8217;t as bad as I was expecting, while the forecasts (which are expecting a sluggish recovery) are worse. Maybe that just means we&#8217;ll be able maintain patience in the short term, but should still expect things to be painful while the world tries to recover its supply chains over the next year or two?</p>
<p>The thing that has perhaps most impressed me about Australia&#8217;s response, especially compared to the US, has been the lack of politicisation. I don&#8217;t think you can have an effective emergency response when the people in charge of that response are pointing fingers at each other, and wasting time with gotcha questions to make each other look stupid.Â  The National Cabinet approach, the willingness of the both the federal government to bend to some of the states&#8217; concerns (particularly Victoria&#8217;s push to close schools prior to Easter), the willingness of states to coordinate under federal leadership and be aligned where possible, and above all mostly managing to work together rather than the usual policy of exaggerating disagreements has been great. Unlike <a href="https://www.washingtonpost.com/opinions/2020/05/05/scott-morrison-is-now-very-popular-australia-he-hasnt-earned-that/">Soraya Lennie</a> I think that&#8217;s a massive achievement by the PM and also the <a href="https://www.abc.net.au/news/2020-03-24/coronavirus-billions-given-to-government-stimulus/12084546">opposition leader</a>. Morrison <a href="https://7news.com.au/lifestyle/health-wellbeing/pm-warns-of-challenging-months-ahead-c-742482">cancelling his trip to the footy</a> was a good move, and <a href="https://www.abc.net.au/news/2020-05-03/coronavirus-education-minister-dan-tehan-wants-schools-reopened/12209734">Dan Tehan&#8217;s walkback of his criticism of Daniel Andrews</a> was too &#8212; but forgiving both those mistakes rather than the usual approach of continually bring them back up is also important.</p>
<p>Where I got things wrong, was that it appears the virus is easier to limit than I&#8217;d expected. While I thought we&#8217;d be screwed for weeks yet, instead we started turning the corner just five days after my post, which itself was ten days after the government had started issuing bans on large gatherings and requiring overseas travelers to start self-isolating. We&#8217;ve also apparently had a much lower percentage of cases end up in the ICU &#8212; I think 1.75% of cases ended up in ICU in NSW versus figures like 5% from China, or 2.6% from Italy? We&#8217;re currently at 97 deaths out of 6913 confirmed cases, which is 1.4%, so double the 0.7% reported from <a href="https://www.who.int/docs/default-source/coronaviruse/who-china-joint-mission-on-covid-19-final-report.pdf">non-Wuhan China</a>.</p>
<p>That fatality rate figure still makes it hard for me to find &#8220;herd immunity&#8221; strategies plausible &#8212; you probably need about 60% or more of the population to have been infected to get herd immunity, but 0.7% of 60% of Australia&#8217;s population is 103,000 deaths; compared to 3500 deaths per year from the regular flu in Australia, that seems unacceptably many to me &#8212; and perhaps you have to double that to match our observed 1.4% fatality rate anyway. And conversely, it makes it seem pretty unlikely that there&#8217;s already herd immunity anywhere &#8212; if there haven&#8217;t been that many unexplained deaths, it&#8217;s pretty unlikely that covid19 swept through somewhere prior to this, granting everyone left alive herd immunity.</p>
<p>Nevertheless, that seems to be <a href="https://www.abc.net.au/news/2020-04-07/coronavirus-sweden-adopting-more-flexible-approach/12118422">the strategy Sweden is taking</a>; currently they have over <a href="https://www.covid19insweden.com/en/">3000 deaths</a>, so if the 0.7% ratio holds that&#8217;s 430,000 cases, fewer if the ratio&#8217;s more like Australia&#8217;s 1.4%. However they are currently only reporting 24,000 cases &#8212; which adds up to to an 12.5% fatality rate instead. Things seemed to have stabilised for them at about 60-100 deaths per day; so to get from 430k cases to 6M to achieve herd immunity, that&#8217;s presumably going to result in a further 39,000 deaths, which at 80 deaths per day will take another 16 months. And Sweden&#8217;s <a href="https://www.dailymail.co.uk/news/article-8260175/Sweden-shuts-five-bars-restaurants-refused-observe-social-distancing-rules.html">reportedly</a> doing some lockdown measures anyway, so even if that number of deaths is acceptable, it&#8217;s not clear to me that it&#8217;s an argument for &#8220;life as normal&#8221; rather than &#8220;we can deal with this via modest restrictions over quite a long time&#8221;. And additionally, I think Sweden has doubled their normal ICU capacity, and may have needed that extra capacity already.</p>
<p>Still, that Sweden&#8217;s death rate has stabilised rather than continuing to double also seems to be evidence that the virus does end up limited almost no matter what &#8212; though my guess is that this is more because once it becomes obvious to everyone, people start voluntarily limiting their exposure without needing government to mandate it. So perhaps that means the best thing governments can do here is force people to make good choices early, when they have access to good advice that hasn&#8217;t percolated through to the rest of the public, then ease off once that advice has spread. Having leaders do the opposite, and spread bad advice early &#8212; <a href="https://twitter.com/globaltimesnews/status/1224661041495212032">Florence&#8217;s &#8220;hug a chinese&#8221; day,</a> <a href="https://ny.eater.com/2020/3/11/21175497/coronavirus-nyc-restaurants-safe-dine-out">New York&#8217;s &#8220;keep going to restaurants&#8221;</a> or <a href="https://www.independent.co.uk/news/uk/politics/coronavirus-boris-johnson-positive-test-health-advice-shaking-hands-hospital-hancock-a9430231.html">Boris Johnson &#8220;shaking hands with everybody&#8221;</a> &#8212; might therefore have been spectacularly harmful.</p>
<p>The US numbers don&#8217;t make sense to me at present: <a href="https://www.cdc.gov/coronavirus/2019-ncov/cases-updates/cases-in-us.html">the CDC reports</a> 1.2 million cases and 73 thousand deaths, but that&#8217;s a 6% fatality rate. If the deaths figure is accurate, but the real fatality rate is more like Australia&#8217;s 1.4% that would mean there&#8217;s really 5.2 million cases in the country (which is still only 1.6% of the population, miles away from herd immunity); while if the cases figure a fatality rate like Australia&#8217;s would imply only 17 thousand of the deaths were due to covid19, and 56 thousand were misreported. There&#8217;s certainly been reports of deaths being wrongly reported as due to covid19 in the US, but there&#8217;s also plenty of indications there hasn&#8217;t been enough testing, which would let to the reported case numbers being way too low.</p>
<p>I don&#8217;t really have a further prediction at this point; I think there&#8217;ll be people worried the staged reopening is both too slow (people need to get back to work) and too fast (there&#8217;ll be actual outbreaks that could perhaps have been prevented if we stay in lockdown), and maybe the timeline will get tweaked as a result, but there&#8217;s already some flexibility built in via the &#8220;COVID SAFE Plan&#8221; that will presumably allow things to open up further after some sort of government/health review, and the ability to defer stages if there&#8217;s an undue risk. As far as the economy goes, I expect we&#8217;ll see a quicker than expected recovery mostly: tourism and exporters will find it difficult but scrape by, I think &#8212; lack of international competition will probably mean some tourist places end up with a blow out year; industries relying on immigration such as higher ed and real estate will still be in trouble for a while; but I can&#8217;t put a figure on where that will all end up. The budget will be a mess, and worse for the fact that we didn&#8217;t get back into surplus between dealing with the last crisis and this one coming along. I expect we&#8217;ll be stuck with having to take effort to deal with avoiding covid19 until it either mutates into something more like a normal flu, dies out everywhere, or we get a vaccine, which seems likely to be years away.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2020/05/08/covid19-thoughts/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bitcoiner Maximalism</title>
		<link>https://www.erisian.com.au/wordpress/2020/01/07/bitcoiner-maximalism</link>
					<comments>https://www.erisian.com.au/wordpress/2020/01/07/bitcoiner-maximalism#comments</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Tue, 07 Jan 2020 02:31:52 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1099</guid>

					<description><![CDATA[I&#8217;ve been trying to come up with a good way of thinking about what to prioritise in Bitcoin work for a little while now &#8212; there&#8217;s so much interesting stuff going around, all of it Good For Bitcoin, that you need some way to figure out which bits are more important or urgent than others. [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve been trying to come up with a good way of thinking about what to prioritise in Bitcoin work for a little while now &#8212; there&#8217;s so much interesting stuff going around, all of it <a href="https://knowyourmeme.com/memes/this-is-good-for-bitcoin">Good For Bitcoin</a>, that you need some way to figure out which bits are more important or urgent than others. One way to think about it is &#8220;what will we make the price go up?&#8221;, another is &#8220;how do we beat all the altcoins?&#8221;, but both of those seem a bit limited in scope. Maybe an alternative is to think about it backwards: if Bitcoin gets better, more people will want to be Bitcoiners; so what would it take to make more people Bitcoiners? That sort of question is a pretty common one in sales/marketing, and they tend to use &#8220;sales funnels&#8221; for analysing it &#8212; before becoming a customer, people have to hear about a product, be interested in it, and find it for sale somewhere, and you get some attrition at each step; reducing the attrition at any step (without making it worse at any other) then increases your sales and your numbers go up.</p>
<p>One way of looking at that might be to consider the normal sorts of things Bitcoiners do: they buy some Bitcoin, setup their own wallet to have control over their funds, run a full node, and maybe eventually start giving some input into Bitcoin&#8217;s development (whether that be in the form of code, discussion, investment or making bets over twitter). The problem with thinking about things that way is that while there are some clear incentives for the first steps (Bitcoin&#8217;s increasing in value so a good investment or at least better than earning negative rates; self-custody reduces the risk of some company <a href="https://globalnews.ca/news/5411298/quadriga-cotten-customer-funds-personal-accounts-ernst-young/">running off</a> with all the coins you thought were yours), there&#8217;s a breakdown after that: having a hardware wallet under your mattress is cheap and easy, but running a full node constantly is an ongoing cost and maintenance burden, and what&#8217;s the actual direct benefit to you? If you look at the numbers, those steps are something like 8B to 160M (2%) to 4M (2.5%) to 50k (1.25%) to maybe 900 (1.8%), but there&#8217;s no obvious levers to use to increase either the 2.5% or 1.25% figures, so that approach doesn&#8217;t seem that useful.</p>
<p>A different way of looking at it might be to first break out people who regularly transact with their Bitcoin balance, rather than just buying and holding. The idea being that this covers traders who actively manage their Bitcoin investment, merchants who sell products for Bitcoin, people who get paid in Bitcoin, and so on. I&#8217;ve got no idea what a valid number for this is &#8212; BitPay claims to be <a href="https://bitpay.com/">&#8220;Trusted by thousands of businesses &#8212; worldwide&#8221;</a> which makes it sound like the number probably isn&#8217;t in the millions, so I&#8217;ve picked a quarter of a million. Going from &#8220;actively transacting&#8221; to &#8220;self-custody&#8221; is a different step than self-custody for &#8220;buying-and-holding&#8221; &#8212; don&#8217;t think of installing a mobile wallet or buying a hardware wallet, but rather as using software like <a href="https://btcpayserver.org/">btcpay</a> or lightning rather than hosted solutions like bitpay or travelbybit. I&#8217;ve picked 15k as the number there, based on the number of lightning nodes reported by 1ml.com, and rounded up a bit.</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-1103 aligncenter" src="http://www.erisian.com.au/wordpress/wp-content/uploads/2020/01/funnel-1.png" alt="" width="599" height="426" srcset="https://www.erisian.com.au/wordpress/wp-content/uploads/2020/01/funnel-1.png 599w, https://www.erisian.com.au/wordpress/wp-content/uploads/2020/01/funnel-1-300x213.png 300w" sizes="(max-width: 599px) 100vw, 599px" /></p>
<p>The nice thing about that approach is that the incentives at each stage are a fair bit clearer. You maintain a Bitcoin balance if it works as a store of value and fits into your investment strategy. You go from just holding a Bitcoin balance to actively transacting with it if spending Bitcoin is less of a pain than spending from your bank account &#8212; which makes it pretty clear why that step has a 99.85% attrition rate and what to do about it. Likewise, you go from transacting in general to self-custody when you decide that the costs of using a Bitcoin bank outweigh the benefits &#8212; risk of loss of funds or censorship, KYC frustrations, privacy concerns versus ease of setup and someone else taking care of ongoing maintenance. Having that option is hopefully a good incentive for businesses (and regulators) to keep those risks, frustrations and concerns relatively rare for everyone that doesn&#8217;t self-custody as well. Going from actively using Bitcoin to helping it develop is still a big step, but it&#8217;s also a fairly natural one (or so it seems to me). I think those levels also fit fairly well with business models: getting people into Bitcoin in the first place is financial education/advice and exchange services; actively transacting is banking and merchant services; self-custody is hardware wallets, and things like btcpay and lightning nodes; even consensus participation has been monetized by the likes of bitfinex&#8217;s <a href="https://www.bitfinex.com/posts/221">chain-split tokens</a>. (A nice thing about this approach is that self-custody for people actively transacting, generally implies running a node for technical reasons, and at that point the costs of running a node are a much smaller deal: you&#8217;re getting regular benefits from your regular transactions, so the small regular costs of running a full node are much easier to justify)</p>
<p>One way to view those levels might be as &#8220;pre-coiners&#8221;, &#8220;store-of-value&#8221;, &#8220;method-of-payment&#8221;, &#8220;self-sovereign&#8221; and &#8220;decentralised&#8221; &#8212; with each level implicitly depending on the previous levels. You can&#8217;t pay for things with money that nobody values; there&#8217;s no point being in control of money that no one will accept or that&#8217;s not worth anything; there&#8217;s not point having decentralised money if it can be stolen from you, etc. There&#8217;s some circularity too though: there&#8217;s no point storing value if you can&#8217;t eventually transfer it, and a significant part of the value proposition of Bitcoin for store of value or method of payment is that you can control your own funds and that there isn&#8217;t a central group able to inflate the money supply, confiscate funds or block transactions.</p>
<p>What does that mean for priorities? I think there&#8217;s a few general principles you can draw from the above:</p>
<ul>
<li>From an industry-growth point-of-view, increasing the percentages for the top two levels and maintaining the percentages for the bottom two seems like a good focus: getting a billion people owning Bitcoin, and hundred of millions transacting using it, even with &#8220;only&#8221; 12M (6% of 200M) people running their own full nodes (due to self-hosting their lightning balance), and 750k (6% of 12M) people actively paying attention to how Bitcoin works and evolves seems like it could work out.</li>
<li>This approach has &#8220;store of value&#8221; as a foundation that the other properties of Bitcoin rely on &#8212; if that makes sense, it probably means messing with the &#8220;store of value&#8221; features of Bitcoin is a really risky idea. Instead, it&#8217;s probably more important to work on things that reinforce the existing foundations, than neat new ideas to change them.</li>
<li>The &#8220;having Bitcoin&#8221; to &#8220;transacting with Bitcoin&#8221; step is the one that needs the most work &#8212; probably in a million areas: not just all the things on the todo list for lightning, but UX stuff, and working with regulators to avoid knee-jerk money-laundering concerns, or with tax agencies to reduce the reporting burden due to Bitcoin valuation changes, to deploying point-of-sale systems, and whatever else.</li>
<li>If we do manage to get lots more people holding Bitcoin, and/or lots more people transacting with it, then maintaining the percentages of people doing self-custody or contributing in general will be hard, and require a lot of effort.</li>
</ul>
<p>So for me (with an open source developer&#8217;s perspective), I think that adds up to:</p>
<ul>
<li>Number one priority is keeping Bitcoin working technically &#8212; trying to avoid bugs, resist potential attacks (both ones we already know about, and those people have yet to come up with), stay backwards compatible, do clean upgrades. Things to work on here include monitoring, tests, code analysis, code reviews, etc. This also means keeping development of bitcoin itself relatively slow, since all these things take time and effort.</li>
<li>Number two priority is, I think, lightning: it seems the best approach for payments, both for people who want to do self-custody, and as the underlying payments mechanism for Bitcoin custodians to use when their customers instruct them to make a payment. There&#8217;s a lot of work to be done there: routing, reliability, spam/attack-resistance, privacy, wallet integration, etc. Other payments related things (like btcpay) are also probably pretty high impact.</li>
<li>After that, I think being prepared for growth is the next thing: finding ways of doing things more efficiently (eg, batching, consolidation), coping dynamically with changes to the system (eg, fee estimation), developing standards to make it easy to interoperate with new entrants to the ecosystem (eg, psbt, miniscript), and having good explanations of how Bitcoin works and why it works that way to newcomers (podcasts, books, academic papers, etc).</li>
</ul>
<p>And more particularly, I think that means that I want to prioritise stability over new features (so work on analysis and reviews and tests and no rushing the taproot soft-fork), and as far as new features go, I&#8217;m more interested in ones that can provide boosts to lightning or payments in general (so taproot and ANYPREVOUT stay high on my list), but growth and interoperability are still important (so I don&#8217;t have to ignore cool things like <a href="https://github.com/bitcoin/bips/pull/875">CTV</a> fortunately).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2020/01/07/bitcoiner-maximalism/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Libra, hot-take</title>
		<link>https://www.erisian.com.au/wordpress/2019/06/19/libra-hot-take</link>
					<comments>https://www.erisian.com.au/wordpress/2019/06/19/libra-hot-take#comments</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Wed, 19 Jun 2019 01:56:21 +0000</pubDate>
				<category><![CDATA[ecash]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1089</guid>

					<description><![CDATA[Hot-take on Facebook and friends&#8217; cryptocurrency. Disclaimer: I work at Xapo, and Xapo&#8217;s a founding member of the Libra Association; thoughts are my own, and are only based on public information. So, first, the stated goal is &#8220;Libra is a simple global currency and financial infrastructure that empowers billions of people&#8221;. That&#8217;s pretty similar to [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Hot-take on Facebook and friends&#8217; cryptocurrency. Disclaimer: I work at Xapo, and Xapo&#8217;s a founding member of the Libra Association; thoughts are my own, and are only based on public information.</p>
<p>So, first, the stated goal is &#8220;Libra is a simple global currency and financial infrastructure that empowers billions of people&#8221;. That&#8217;s pretty similar to Xapo&#8217;s mission (&#8220;We created Xapo to give everyone the freedom and security to be more and do more with their money&#8221; eg). It&#8217;s also something that Bitcoin per-se isn&#8217;t really good at: the famous &#8220;7 transactions per second&#8221; limit means 220 million transactions per year, which doesn&#8217;t seem like it really scales to billions of people for instance. And likewise Libra&#8217;s monetary policy (backed by a basked of &#8220;bank deposits and short-term government securities&#8221;) isn&#8217;t very interesting compared to just holding funds in USD, EUR, AUD or similar; but probably is pretty compelling compared to holding Bolivars, Zimbabwe dollars or Argentinian pesos. That could make it a death-knell for badly managed central banks in just a few years, which could be pretty interesting.</p>
<p>It doesn&#8217;t sound very censorship resistant &#8212; if you want to use it to buy hookers or guns or support political causes unpopular with Silicon Valley, you&#8217;re probably out of luck. Likewise if you want to pay for a VPN out of China, or similar. It seems like all of the association members will have access to all the transactions, and there&#8217;ll only be at most a few hundred megacorps to lean on to fully deanonymise everyone, so while it&#8217;s not a positive for shady central banks, I think it&#8217;s totally compatible with fascist police states and oppressing freedom of association/speech/thought. Not sure if it&#8217;s better or worse than today with almost everything done via credit card or bank transfers. Certainly much worse than cash (or lightning).</p>
<p>The amazing thing about Bitcoin is that there wasn&#8217;t a baked in rule along the lines of &#8220;Satoshi gets all the moneys&#8221; &#8212; instead Satoshi just ran the software in the same way any other early adopter could, and all the early adopters benefited essentially equally. So one thing that&#8217;s always interesting to me is to see the ways in which new cryptocurrencies have their rules tilted to favour the founders. In this case it looks like there&#8217;s three ways: (1) founders get to run validators which means they get to see all the data, control access to it, and (presumably) be paid in &#8220;gas&#8221; for the privilege; (2) the backing funds are invested in interest-bearing instruments, and the founders collect the interest, while Libra holders bear the investment risk; (3) the backing funds aren&#8217;t accessible to most users, but instead only to &#8220;authorized resellers&#8221; who will presumably charge a spread; these resellers are authorised by the association, and presumably will charge the resellers a membership fee for the privilege.</p>
<p>The consensus model they use is Byzantine consensus, rather than proof-of-work. So it&#8217;s immediately final (in much the same way as the Liquid sidechain is), rather than forcing people to have to worry about reorgs of 6 blocks or 100 blocks or 1000 blocks, etc. But that assumes that more than 2/3rds or players are honest &#8212; with 28 initial validators, if you had 10 nodes under your control, and could split the remaining 18 honest nodes into two groups of 9, you could collaborate with one group to create one history, and the other group to create a different history, and induce double spends. Essentially the coin&#8217;s security becomes vulnerable to a 34% attack, rather than Bitcoin&#8217;s nominal 51% attack vulnerability. There&#8217;s nothing particularly wrong with that, it just means you need to be careful not to let more than a third of nodes be vulnerable to attack. Probably not good to suggest &#8220;<span class="TextRun BCX0 SCXW95396408" lang="EN-US" xml:lang="EN-US" data-contrast="none"><span class="NormalTextRun BCX0 SCXW95396408">For organizations that would like to run a validator node via a cloud service provider</span></span> &#8230;&#8221; on your website though.</p>
<p>Unlike proof-of-work, Byzantine consensus doesn&#8217;t scale in the number of validators. From their whitepaper: &#8220;Our goal was to choose a protocol that would initially support at least 100 validators and would be able to evolve over time to support 500â€“1,000 validators&#8221;. But that&#8217;s a feature not a bug if you want to make a profit by being part of a small oligopoly, though. I&#8217;m a little dubious about how reliable you can realistically make it too &#8212; to have a transaction confirm, 2/3rds of the global set of validators have to see it, so losing links between countries means entire country&#8217;s ecommerce systems become unavailable, and if there&#8217;s breaks or even just slow-downs between significant subsets of validators, potentially the entire currency becomes unavailable. Bitcoin is small enough that you can route around this via satellite links or SMS or similar, but Libra needs to be able to reliably throw lots of data around.</p>
<p>The whitepaper claims &#8220;The association does not set a monetary policy.&#8221; which seems a bit disingenuous to me. They&#8217;ll need to decide what will make up the basket that backs each Libra coin, and that&#8217;s a monetary policy. They also note they&#8217;ll have &#8220;The ability to customize the Libra coin contract using Move&#8221; which &#8220;allows the definition of this scheme without any modifications to the underlying protocol or the software that implements it. Additional functionality can be created, such as requiring multiple signatures to mint currency and creating limited-quantity keys to increase security&#8221;. There&#8217;s a few interesting cases bound up somewhere in there: what happens when the backing reserve loses value &#8212; eg, a country renegs on its bonds, or there&#8217;s a huge loss in value in one of the currencies, or one of the banks fails and can&#8217;t redeem its deposits? They&#8217;ve already covered what happens if the reserve gains value: the founders take it as profit. If that works out okay once it happens by accident, that opens up the option of &#8220;going off the fiat standard&#8221; and just having the coin be issued in its own right, rather than due to changes in a bank balance somewhere. It seems unlikely to me that the economists and MBAs that&#8217;ll be running the foundation eventually will be able to resist that temptation once it arises, and their shareholders may even consider them legal beholden to succumb to it.</p>
<p>The Move language doesn&#8217;t seem very interesting; it uses accounts rather than coins, will include a &#8220;standard library&#8221; for things like sha3 rather than having them as opcodes, and generally seems like an incremental simplification from where Ethereum is. Having a smallish group of validators means that upgrades to the language should be relatively easy to coordinate, so I&#8217;d expect it to seem cheap and powerful compared to Bitcoin script or Ethereum.</p>
<p>Like I said, I think the macroeconomic impact on bad central banks is probably pretty positive &#8212; it either forces them to match world best practices, or be obsoleted. For central banks that are in the basket, it&#8217;s not clear to me what the consequences are: if, say, Australians are holding Libra coins instead of AUD, and the Reserve Bank wants to stimulate the economy by printing money/dropping rates to make everyone feel richer, then it seems like there&#8217;s two possibilities: if goods remain priced in AUD, despite people holding their spending money in Libra, then prices immediately seem cheaper, and people buy more stuff, and the Reserve Bank is happy; or, what seems more likely, goods become priced in Libra coin as well because that&#8217;s what people have in their accounts, and it&#8217;s stable and international and cool, and the Reserve Bank loses the ability to counteract recessions. But that assumes Libra is used a lot by people with first-world currencies, rather than the target audience of the unbanked. And it&#8217;s not clear that makes sense: it doesn&#8217;t pay interest (the founders collect that), it&#8217;s vulnerable to foreign currency shocks, and there&#8217;s maybe other drawbacks (reliability, privacy concerns, cost/speed, hassles of KYC/AML procedures). You could trivially get around this by having actual stable coins on the Libre platform, ie having an &#8220;AUD&#8221; coin instead of a Libracoin, but still on the Libra blockchain, with the stable coin backed by a single-currency reserve, rather than a basket reserve.</p>
<p>Good for Bitcoin? I don&#8217;t think Libra really competes with Bitcoin &#8212; Bitcoin&#8217;s a scarce store of value with peer-to-peer validation and permissionless ledger additions; Libra isn&#8217;t scarce, its decentralisation is limited to the association members which is in turn limited due to the technology in use, and it&#8217;s got permissions at every layer. It seems like, in a world where Bitcoin is wildly successful, that Libra could easily add Bitcoin to its reserve basket, and perhaps that could bridge the gap between the two feature sets: Bitcoin ensures that there&#8217;s no hidden inflation where central banks give free money to their cronies, while Libra gives access to Bitcoin as a store of value to billions of people. If Libra takes the fight for sounder-money to third-world governments, that perhaps just makes it easier for Bitcoin to be the next step after that. If Libra looks like the bigger immediate threat, being both new and having well known people to subpoena, while Bitcoin looks like old news that&#8217;s reasonably well understood, maybe that means good things for &#8220;permissionless innovation&#8221; in the Bitcoin space over the next little while. Will be interesting to see how India and Turkey and similar places react &#8212; places where the local currency looks precarious but isn&#8217;t already a basketcase. If they either don&#8217;t try to block Libra, or try but can&#8217;t, that&#8217;s a really good sign for people being better able to save and control their wealth globally in future, which is definitely good for Bitcoin, while if it does get blocked, that&#8217;s probably not a good sign for Libra&#8217;s mission.</p>
<p>Better than the alternatives? If you consider this as just an industry association trying to enter underserviced markets to make more moneys, does it make sense? &#8220;Decentralised consensus&#8221; is a useful organising principle to let the association keep each other honest, and in finance you probably want to keep a permanent audit trail anyway, and the &#8220;blockchain&#8221; they&#8217;ve specified doesn&#8217;t seem like it&#8217;s much more than that. So that point of view seems to work to me. Seems kind of a weird thing for Facebook to be leading, though.</p>
<p>So yeah; kind of interesting, but not for any of the reasons Bitcoin is interesting. Potential positives for adoption in the third-world; but just another payment method for the first-world. Lots of rent-seeking opportunities, but less harmful seeming than that of third-world central banks. The tech seems fine, but isn&#8217;t crazy interesting.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2019/06/19/libra-hot-take/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Taxes, nine years on</title>
		<link>https://www.erisian.com.au/wordpress/2019/04/06/taxes-nine-years-on</link>
					<comments>https://www.erisian.com.au/wordpress/2019/04/06/taxes-nine-years-on#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Fri, 05 Apr 2019 16:07:21 +0000</pubDate>
				<category><![CDATA[poli-mics]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1084</guid>

					<description><![CDATA[About nine years ago, during the last days of the first Rudd government, the Henry Tax review came out and I did a blog post about it. Their recommendations were: tax free threshold of $25,000 marginal rate of 35% between $25,000 and $180,000 marginal rate of 45% above $180,000 drop the Medicare levy, low income [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>About nine years ago, during the last days of the first Rudd government, the Henry Tax review came out and I did a <a href="http://www.erisian.com.au/wordpress/2010/05/03/henry-tax-review-post-release">blog post</a> about it. Their recommendations were:</p>
<ul>
<li>tax free threshold of $25,000</li>
<li>marginal rate of 35% between $25,000 and $180,000</li>
<li>marginal rate of 45% above $180,000</li>
<li>drop the Medicare levy, low income tax offset, etc</li>
<li>introduce a standard deduction to simplify tax returns</li>
</ul>
<p>(Given inflation, those numbers should probably be $30,000 and $220,000 today)</p>
<p>The only one of those recommendations the Rudd/Gillard govt&#8217;s managed to implement was the increase in the tax free threshold from $6000 to $18,200, accompanied by compensating marginal rate increases from 15% to 19% and 30% to 32.5%.</p>
<p>What we&#8217;ve got in the budget now is a step closer to the Henry review&#8217;s recommendations:</p>
<ul>
<li>tax free threshold remains at $18,000</li>
<li>marginal rate of 19% up to $45,000 (in 2022) instead of $37,000</li>
<li>marginal rate of 30% up to $200,000 (in 2024) instead of 32.5% to $120,000 (in 2022) or $90,000 (nowish)</li>
<li>marginal rate of 37% dropped (in 2024)</li>
<li>top marginal rate of 45% retained</li>
<li>low income tax offset is retained and increased (and remains regressive, as the marginal tax rate under $66k is larger than the marginal tax rate over $67k due to the offset phasing out as income increases)</li>
<li>temporary low-and-middle income tax offset introduced to stage in the change to the 19% marginal rate</li>
<li>medicare levy retained at 2% rather than increased to 2.5%</li>
</ul>
<p>Most of that&#8217;s from last year&#8217;s budget, which looks like it passed despite opposition from <a href="https://parlinfo.aph.gov.au/parlInfo/search/display/display.w3p;query=Id%3A%22chamber%2Fhansardr%2Fe7437ebc-d7b3-4d81-a720-4f0c42fff8a9%2F0004%22">the ALP</a>, <a href="https://parlinfo.aph.gov.au/parlInfo/search/display/display.w3p;query=Id%3A%22chamber%2Fhansards%2Fe77b546c-7504-4921-95d8-5c858c7b51c2%2F0018%22">the Greens</a> and independents <a href="https://parlinfo.aph.gov.au/parlInfo/search/display/display.w3p;query=Id%3A%22chamber%2Fhansards%2F071eca09-6d8e-49a9-aa6a-f46cee688fe8%2F0347%22">Tim Storer</a>, Andrew Wilkie and Cathy McGowan. This year&#8217;s budget just changes the 19% bracket&#8217;s cutoff from $41,000 to $45,000, increases the LITO, and drops the 32.5% bracket to 30%.</p>
<p>That&#8217;s still a bit worse than the Henry review&#8217;s recommendations from almost a decade ago: the 19% marginal rate should and the low-income tax offset should both be dropped, with the tax free threshold raised to compensate for both of those, and the medicare levy should be rolled into remaining rates, increasing them to 32% and 47%. But still, it&#8217;ll be the first reduction in the <a href="https://www.ato.gov.au/Rates/Individual-income-tax-for-prior-years/">number of tax brackets since 1990</a>, which isn&#8217;t nothing.</p>
<p>Despite the Henry review having been a Labor initiative, Labor&#8217;s plan seems to be to do the opposite, and re-legislate the 37% tax rate back in so that we won&#8217;t have to have &#8220;a cleaner [..] pay the same tax rate as a CEO&#8221;. Shorten&#8217;s explicit <a href="https://www.billshorten.com.au/2018_budget_reply_canberra_thursday_10_may_2018">example</a> of a nurse on $40,000 and a doctor on $200,000 paying the same rate doesn&#8217;t actually work; the nurse&#8217;s marginal rate drops to 19% even under existing law before the doctor&#8217;s marginal rate drops from 45% to 30%. Comparing marginal rates at wildly different incomes is absurd, however; and the Henry report addressed this concern <a href="http://taxreview.treasury.gov.au/content/FinalReport.aspx?doc=html/publications/papers/Final_Report_Part_1/chapter_4.htm">directly</a>, noting that a large tax free threshold and a flat marginal rate already achieves progressivity, so that, eg, a cleaner on $50,000 pa pays $6630 (13.3%) tax while the CEO on $150,000 pays $36,630 (24.4%) tax, despite both being on the same 30% marginal rate. This doesn&#8217;t seem to just be election sloganeering by Shorten, but an ongoing lack of understanding; O&#8217;Neill made a similar claim in the parliamentary debate last year, <a href="https://parlinfo.aph.gov.au/parlInfo/search/display/display.w3p;query=Id%3A%22chamber%2Fhansards%2Fe77b546c-7504-4921-95d8-5c858c7b51c2%2F0017%22">saying</a> &#8220;<span class="HPS-Normal">Let&#8217;s be absolutely clear here: stages 2 and 3 of the government&#8217;s tax plan will flatten out Australia&#8217;s personal income tax system, and that structural change to the personal income tax system is eroding its progressivity.</span>&#8221;</p>
<p>The budget papers have an interesting justification for the changes: they keep the percentage of govt revenue collected from the top 1%, 5%, 10% and 20% of taxpayers roughly stable (in percentage of total terms). Without the changes, I think the numbers indicate that the top 1% of taxpayers and the bottom half of the top 20% of taxpayers currently pay around 16.7% and 16% of the government&#8217;s income tax revenue, but without the changes that would reverse to 15.6% and 16.1%, while with them it&#8217;s 17% and 15.5%, which seems fairer. On the other hand, in both cases the burden on the bottom 80% of taxpayers is slightly increased in both cases. Not really sure what good answers here are &#8212; it really depends on how much more the top x% earn compared to the top y%, and that&#8217;s easier to look at just by looking at average and marginal rates anyway &#8212; but it seems like an interesting thing to think about.</p>
<p>I did a <a href="http://www.erisian.com.au/wordpress/2013/05/01/messing-with-taxes">followup post</a> a few years later, shortly before Gillard got ousted for the brief second Rudd government, looking at something like:</p>
<ul>
<li>tax free threshold of $25,000 <em>[$28,000 inflation adjusted]</em></li>
<li>marginal rate of 35% between $25,000 and $80,000 <em>[$90,000]</em></li>
<li>marginal rate of 40% between $80,000 and $180,000 <em>[$200,000]</em></li>
<li>marginal rate of 46.5% above $180,000</li>
<li>dropping Medicare levy, low income tax offset, etc</li>
</ul>
<p>and noting it&#8217;d result in pretty similar government revenue based on the reported taxable income distribution. It&#8217;s more effort to get the numbers from the ATO and run them than I can be bothered with for now (and would be pretty speculative trying to apply them to the world of 2024), but tax brackets like</p>
<ul>
<li>tax free threshold of $20,000</li>
<li>marginal rate of 20% up to $45,000</li>
<li>marginal rate of 32% up to $200,000</li>
<li>marginal rate of 47% above that</li>
<li>drop Medicare levy, low income tax offset, etc</li>
</ul>
<p>would be very close to the post-2024 plan, if anyone could manage the politics of not special casing the medicare levy or the low-income offset.</p>
<p>In the same post, I also thought about an unconditional $350 per fortnight payment as an optional alternative to the tax free threshold &#8212; so you get $350 a fortnight (tax free) direct into your bank account, but pay 35% from the first dollar you earn other than that all the way to $80k. That seemed like a fairly plausible way to start on a UBI to me &#8212; if you&#8217;re earning more than $25k per year, it doesn&#8217;t affect your total tax bill at all, but it&#8217;s a quarter of the minimum wage or about half the newstart allowance, so it&#8217;s not trivial, and doesn&#8217;t require any additional paperwork or convincing centrelink you&#8217;re not a bludger. If you could afford to raise the tax free threshold to $30,000 and just have a 32% rate from there to $200,000 (which would mean everyone earning over $45,000 pays the same tax, while everyone earning less than that pays less tax), you could have a UBI of up to $370/fortnight, without any impact on anyone earning more than $30,000 a year, or any disincentive to work for anyone earning less than that. That still means fitting up to an extra $10,000 per year for all the people who don&#8217;t earn more than $30,000 a year into the budget, which still isn&#8217;t easy. Maybe an easy way to start might be to make it so you can only opt-in if you&#8217;ve filed a tax return for the past three years and are 21 or over, which would exclude a lot of the people who&#8217;d otherwise be getting large payouts. Interactions with newstart, and various pensions would also need a bunch of work.</p>
<p>I wish there was a political party that had a policy like that. But the ALP and Greens seem to be against fewer brackets on the general principle that anything that&#8217;s good for the rich is bad for Australia (and the Greens think a <a href="https://www.greeninstitute.org.au/wp-content/uploads/2018/06/GIConvoStartUBI02HowAndHowMuchWEB.pdf">good starting point</a> for a UBI is $18,200 per year, or even better would be $23,000 per year funded by a top tax bracket of 78% which is just absurd), while the LDP wants a flat 20% tax with a $40,000 tax free threshold and fewer transfer payments rather than more, and everyone else tends to want to only give welfare payments to people who prove they need it, rather than a universal scheme, again on principle, despite that making it harder for welfare recipients to work. The Libs come the closest, but their vision still barely gets one and a half of the four income tax recommendations from the Henry report implemented one and a half decades after the report came out. Which is better than nothing, or going in the wrong direction, but it&#8217;s hardly very inspiring.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2019/04/06/taxes-nine-years-on/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Myths and disinformation</title>
		<link>https://www.erisian.com.au/wordpress/2018/12/12/myths-and-disinformation</link>
					<comments>https://www.erisian.com.au/wordpress/2018/12/12/myths-and-disinformation#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Wed, 12 Dec 2018 11:52:58 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1080</guid>

					<description><![CDATA[As Mike Burgess, Director-General of the Australian Signals Directorate &#8212; one of roles that is a direct beneficiary of the Assistance and Access bill &#8212; points out &#8220;there has been considerable inaccurate commentary on the Telecommunications and Other Legislation Amendment (Assistance and Access) Act 2018&#8243;. His attempt to calm the waters down follows the standard [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>As Mike Burgess, Director-General of the Australian Signals Directorate &#8212; one of roles that is a direct beneficiary of the Assistance and Access bill &#8212; points out &#8220;there has been considerable <a href="https://www.asd.gov.au/speeches/20181212-tola-act-statement.htm">inaccurate commentary</a> on the Telecommunications and Other Legislation Amendment (Assistance and Access) Act 2018&#8243;. His attempt to calm the waters down follows the standard template of declaring everything opponents say to be based on myths; I guess that&#8217;s the &#8220;it&#8217;s all fake news!&#8221; defense. Let&#8217;s see how accurate that is.</p>
<p><strong>#1: Your information is no longer safe</strong></p>
<p>His first claim is that &#8220;if you are using a messaging app for a lawful purpose, the legislation does not affect you&#8221;. This isn&#8217;t true on two grounds.</p>
<p>The first is that the legislation doesn&#8217;t directly target users of messaging apps, but their providers. So if you write a messaging app, and only use it yourself for legal purposes, even in the best case you&#8217;re still affected because the police can come and demand you make it so they can spy on other people who may be using it to discuss illegal activities. But the legislation isn&#8217;t restricted to &#8220;messaging apps&#8221;, and the term &#8220;messaging&#8221; never actually appears in the legislation. The law is actually much broader and covers any &#8220;designated communications provider&#8221; which, amongst 14 other categories, includes anyone who &#8220;develops, supplies or updates software used, for use, or likely to be used in connection with (a) a listed carriage service; or (b) an electronic service that has one or more end-users in Australia&#8221;, then going on to note that &#8220;For the purposes of this Part, electronic service means .. (b) a service that delivers material to persons having equipment appropriate for receiving that material, [&#8230;]&#8221; and &#8220;&#8221;For the purposes of subsection (1), service includes a website&#8221;. Run a website in Australia that someone else in Australia might look at? The law affects you.</p>
<p>But the second way it&#8217;s not true, is that you don&#8217;t have to be behaving unlawfully for the government to decide to snoop on your communications, they just have to think you are. That&#8217;s just normal policing, of course: you get a warrant to find out what&#8217;s going on, then if there really was something illegal, you present a case and get a guilty verdict. Well, that&#8217;s if you&#8217;re the police: the ASD is more about just getting information, not convicting anyone of an actual crime. As per <a href="https://asd.gov.au/about/index.htm">their website</a>, their mission is to &#8220;Inform&#8221; through &#8220;covertly accessing information not publicly available&#8221;, so while they&#8217;re also about &#8220;supporting military operations, law enforcement and criminal intelligence activity against cyber criminals&#8221; I guess it&#8217;s understandable they might not be on top of all the finer details of the process that you could pick up from an episode of Law&amp;Order.</p>
<p><strong>#2: Agencies get unfettered power</strong></p>
<p>In any event, there are no protection measures in place against the nominated agencies misuing the new powers: there is no way for the website owners who are required to break the security of their websites (or messaging apps, or other software) to know the reason for the request, it is illegal to even tell others that their has been a request or to imply who the request came from, and even if it does become known, there are no statutory penalties for an agency issuing unsupported notice.</p>
<p>One such way this fails is the claim &#8220;Nobody&#8217;s personal communications can be accessed under the Act without a warrant&#8221;. Perhaps if the website owner being asked to make such changes has good enough legal advice, that might be true; but nowhere in the act does it actually say you have to have a warrant before making these requests. Instead it says something much weaker, such as: &#8220;A technical assistance notice or technical capability notice has no effect to the extent (if any) to which it would require a designated communications provider to do an act or thing for which a warrant or authorisation under any of the following laws is required: [&#8230;]&#8221;. Which is actually almost the opposite: if you needed a warrant, the notice has no effect; but if you didn&#8217;t need a warrant, you have to comply with it.</p>
<p><strong>#3: The security of the Internet is under threat</strong></p>
<p>Mike writes &#8220;By their very nature, security and law enforcement investigations are highly targeted&#8221;. This is simply a lie: modern intelligence gathering often follows a &#8220;Big Data&#8221; approach, where as much data is collected as possible, and is then analysed after the fact. This was documented publicly by the Snowden leaks, and Australia in particular is known to participate in the &#8220;PRISM&#8221; program of dragnet surveillance at the Internet service provider level. That program has been <a href="https://www.theguardian.com/world/2013/jun/20/nsa-australian-intelligence-agencies">previously addressed in parliament</a>, with then Senator Xenephon asking if any emails might be excluded from the program, with then Foreign Minister Carr explaining that there were safeguards in place, but not answering the question asked.</p>
<p>Mike also points out the &#8220;systemic weakness&#8221; defense, but avoids mentioning any of the concerns about the ineffectiveness of that provision that were raised during the public consultation and senate review, or the fact that the proposals to address those flaws were abandoned in the rush to not leak weak on national security over Christmas.</p>
<p><strong>#4: Tech companies will be forced offshore</strong></p>
<p>Companies are already considering whether to offshore. Certainly they aren&#8217;t &#8220;forced&#8221; to do so by the legislation, but they&#8217;re certainly encouraged to do so by economic reality. This is simply the expected result of the destruction of trust this bill enabled; the PRISM revelations had a <a href="https://qz.com/147313/ciscos-disastrous-quarter-shows-how-nsa-spying-could-freeze-us-companies-out-of-a-trillion-dollar-opportunity/">similar effect</a> on compliant companies.</p>
<p><strong>#5: The communications of Australians will be jeopardised</strong></p>
<p>Mike claims the Act has built-in oversight mechanisms. As many of the responses to the public consultation noted, these oversight mechanisms are woefully limited. The act gives IGIS no additional powers over any of the agencies (and they only have power over the spy agencies, not the anti-corruption or police), though it does at least make it legal to inform them about notices. There is, per the IGIS website, no right to make a complaint to IGIS, nor any obligation on IGIS to investigate complaints about the intelligence and security services. The Commonwealth ombudsman does not seem to be mentioned in the Act at all, so it does not seem like it would be legal to even inform them that you have received a notice under the Act, in order to complain about it being illegal.</p>
<p>The problem with this is that oversight of national security agencies is almost impossible: the only way we find out about activities like PRISM that do affect large swathes of Australian citizens, rather than proven threats to national security, is when a disastrous leak occurs; and even when that occurs questions of what was actually going on are dismissed with platitudes that &#8220;there are procedures in place&#8221;. The public never has the opportunity to review those procedures in detail, of course.</p>
<p><strong>#6: ASD will be able to spy on Australians</strong></p>
<p>I think Mike is claiming this is a myth because, like, ASD cares about foreigners, why would they even want to spy on Australians? Which might be plausible, if we didn&#8217;t have a large migrant population, or ASD didn&#8217;t have alliances with foreign intelligence agencies that do want to spy on Australians. And maybe it&#8217;s true anyway; who knows? Though I notice he qualifies that as &#8220;everyday&#8221; Australians.</p>
<p>In any event, the question is whether they can, and the Act makes this easy: all they need is to convince one of the other interception agencies to issue the notice, and then communicate the results to them under the carve-out in Division 6 317ZF(3)(d)(ii) which allows the interception agency to pass on any info they obtain &#8220;in connection with the performance of functions, or the exercise of powers, by the Australian Signals Directorate&#8221;.</p>
<p><strong>#7: The reputation of Australian tech companies will suffer</strong></p>
<p>This is in fact a myth: the reputation of Australian tech companies is already suffering.</p>
<p>It is, at least, nice of Mike to have provided such a convenient list of headlines for why the Act is such a disaster, and why our &#8220;intelligence&#8221; agencies have been over-influenced by their own self-interest, rather than the national interest. The true danger of the act is not the usual grab-bag of &#8220;terrorists, pedophiles and other criminals&#8221; but rather law enforcement and security agencies who have to act with little or no public oversight gaining large powers of the remainder of the Commonwealth.</p>
<p>I still admire Mike for the ASD&#8217;s <a href="https://twitter.com/ASDGovAu/status/1056712961148895232">&#8220;long time listener, first time caller&#8221;</a> tweet, but they&#8217;ve overreached here and come up with a true disaster of a policy, that should never have made it through Parliament.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2018/12/12/myths-and-disinformation/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Money Matters</title>
		<link>https://www.erisian.com.au/wordpress/2018/09/06/money-matters</link>
					<comments>https://www.erisian.com.au/wordpress/2018/09/06/money-matters#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Thu, 06 Sep 2018 06:24:53 +0000</pubDate>
				<category><![CDATA[poli-mics]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1077</guid>

					<description><![CDATA[I have a few things I need to write, but am still a bit too sick with the flu to put together something novel, so instead I&#8217;m going to counter-blog Rob Collins recent claim that Money doesn&#8217;t matter. Rob&#8217;s thoughts are similar to ones I&#8217;ve had before, but I think they&#8217;re ultimately badly mistaken. There&#8217;s [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I have a few things I need to write, but am still a bit too sick with the flu to put together something novel, so instead I&#8217;m going to counter-blog Rob Collins recent claim that <a href="https://rbtcollins.wordpress.com/2018/09/06/money-doesnt-matter/">Money doesn&#8217;t matter</a>. Rob&#8217;s thoughts are similar to ones I&#8217;ve had before, but I think they&#8217;re ultimately badly mistaken.</p>
<p>There&#8217;s three related, but very different, ways of thinking about money: as a store of value, as a medium of exchange, and as a unit of account. In normal times, dollars (or pounds or euros) work for all three things, so it&#8217;s easy to confuse them, but when you&#8217;re comparing different moneys some are better at one than another, and when a money starts failing, it will generally fail at each purpose at different rates.</p>
<p>Rob says &#8220;Money isn&#8217;t wealth&#8221; &#8212; but that&#8217;s wrong. In so far as money serves as a store of value, it is wealth. That&#8217;s why having a million dollars in your bank account makes you feel wealthy. The obvious failure mode for store of value is runaway inflation, and that quickly becomes a humanitarian disaster. Money can be one way to store value, but it isn&#8217;t the only way: you can store value by investing in artwork, buying property, building a company, or anything else that you expect to be able to sell at some later date. The main difference between those forms of investment versus money is that, ideally, monetary investments have low risk (perhaps the art you bought goes out of fashion and becomes worthless, or the company goes bankrupt, but your million dollars remains a million dollars), and low variance (you won&#8217;t make any huge profits, but you won&#8217;t make huge losses either). Unlike other assets, money also tends to be very fungible &#8212; if you earn $1000, you can spend $100 and have $900 left over; but if you have an artwork worth $1000 it&#8217;s a lot harder to sell one tenth of it.</p>
<p>Rob follows up by saying that money is &#8220;a thing you can exchange for other things&#8221;, which is true &#8212; money is a medium of exchange. Ideally it&#8217;s cheap and efficient, hard to counterfeit, and easy to verify. This is mostly a matter of technology: pretty gems are good at these things in some ways, coins and paper notes are good in others, cheques kind of work though they&#8217;re a bit to easy to counterfeit and a bit too hard to verify, and these days computer networks make credit card systems pretty effective. Ultimately a lot of modern systems have ended up as walled gardens though, and while they&#8217;re efficient, they aren&#8217;t cheap: whether you consider the 1% fees credit card companies charge, or the 2%-4% fees paypal charges, or the 30% fees from the Apple App Store or Google Play Stores, those are all a lot larger than how much you&#8217;d lose accepting a $50 note from someone directly. I have a lot of hope that Bitcoin&#8217;s Lightning Network will eventually have a huge impact here. Note that if money isn&#8217;t wealth &#8212; that is, it doesn&#8217;t manage to be a good store of value even in the short term, it&#8217;s not a good medium of exchange either: you can&#8217;t buy things with it because the people selling will have to immediately get rid of it or they&#8217;ll be making a loss; which is why currencies undergoing hyperinflation result in black markets where trade happens in stable currencies.</p>
<p>With modern technology and electronic derivatives, you could (in theory) probably avoid ever holding money. If you&#8217;re a potato farmer and someone wants to buy a potato from you, but you want to receive fertilizer for next season&#8217;s crop rather than paper money, the exchange could probably be fully automated by an online exchange so that you end up with an extra hundred grams of fertilizer in your next order, with all the details automatically worked out. If you did have such a system, you&#8217;d entirely avoid using money as a store of value (though you&#8217;d probably be using a credit account with your fertilizer supplier as a store of value), and you&#8217;d at least mostly avoid using money as a medium of exchange, but you&#8217;d probably still end up using money as a medium of account &#8212; that is you&#8217;d still be listing the price of potatoes in dollars.</p>
<p>A widely accepted unit of account is pretty important &#8212; you need it in order to make contracts work, and it makes comparing different trades much easier. Compare the question &#8220;should I sell four apples for three oranges, or two apples for ten strawberries?&#8221; with &#8220;should I sell four apples for $5, or two apples for $3&#8221; and &#8220;should I buy three oranges for $5 or ten strawberries for $3?&#8221; While I suppose it&#8217;s theoretically possible to do finance and economics without a common unit of account, it would be pretty difficult.</p>
<p>This is a pretty key part and it&#8217;s where money matters a lot. If you have an employment contract saying you&#8217;ll be paid $5000 a month, then it&#8217;s pretty important what &#8220;$5000&#8221; is actually worth. If a few months down the track there&#8217;s a severe inflation event, and it&#8217;s only worth significantly less, then you&#8217;ve just had a severe pay cut (eg, the Argentinian Peso dropped from 5c USD in April to 2.5c USD in September). If you&#8217;ve got a well managed currency, that usually means low but positive inflation, so you&#8217;ll instead get a 2%-5% pay cut every year &#8212; which is considered desirable by economists as it provides an automatic way to devote less resources to less valuable jobs, without managers having to deliberately fire people, or directly cut peoples&#8217; pay. Of course, people tend to be as smart as economists, and many workers expect automatic pay rises in line with inflation anyway.</p>
<p>Rob&#8217;s next bit is basically summarising the concept of sticky prices: if there&#8217;s suddenly more money to go around, the economy goes weird because people aren&#8217;t able to fix prices to match the new reality quickly, causing shortages if there&#8217;s more money before there&#8217;s higher prices, or gluts (and probably a recession) if there&#8217;s less money and people can&#8217;t afford to buy all the stuff that&#8217;s around &#8212; this is what happened in the global financial crisis in 2008/9, though I don&#8217;t think there&#8217;s really a consensus on whether the blame for less money going around should be put on the government via the Federal Reserve, or the banks, or some other combination of actors.</p>
<p>To summarise so far: money does matter a lot. Having a common unit of account so you can give things meaningful prices is essential, having a convenient store of value that you can use for large and small amounts, and being able to easily trade it for goods and services is a really big deal. Screwing it up hurts people directly, and can be really massively harmful. You could probably use something different for medium of exchange than method of account (eg, a lot of places accepting cryptocurrencies use the cryptocurrency as medium of exchange, but use regular dollars for both store of value and pricing); but without a store of value you don&#8217;t have a medium of exchange, and once you&#8217;ve got a method of account, having it also work as a store of value is probably too convenient to skip.</p>
<p>But all that said, money is just a tool &#8212; generally money isn&#8217;t what anyone wants, people want the things they can get with money. Rob phrases that as &#8220;resources and productivity&#8221;, which is fine; I think the economics jargon would be &#8220;real GDP&#8221; &#8212; ie, the actual stuff that goes into GDP, as opposed to the dollar figure you put on it. Things start going wonky quickly though, in particular with the phrase &#8220;If, given the people currently in our country, and what they are being paid to do today, we have enough resources, and enough labour-and-productivity to &#8230;&#8221; &#8212; this starts mixing up nominal and real terms: people expect to be paid in dollars, but resources and labour are real units. If you&#8217;re talking about allocating real resources rather than dollars, you need to balance that against paying people in real resources rather than dollars as well, because that&#8217;s what they&#8217;re going to buy with their nominal dollars.</p>
<p>Why does that matter? Ultimately, because it&#8217;s very easy to get the maths wrong and not have your model of the national economy balanced: you allocate some resources here, pay some money there, then forget that the people you paid will use that money to reallocate some resources. If the error&#8217;s large enough and systemic enough, you&#8217;ll get runaway inflation and all the problems that go with it.</p>
<p>Rob has a specific example here: an unemployed (but skilled) builder, and a homeless family (who need a house built). Why not put the two together, magic up some money to prime the system and build a house? Voila the builder has a job, and the family has a home and everyone is presumably better off. But you can do the same thing without money: give the homeless family a loaded gun and introduce them to the builder: the builder has a job, and the family get a home, and with any luck the bullet doesn&#8217;t even get used! The key problem was that we didn&#8217;t inspect the magic sufficiently: the builder doesn&#8217;t want a job, or even money, he wants the rewards that the job and the money obtain. But where do those rewards come from? Maybe we think the family will contribute to the economy once they have a roof over their heads &#8212; if so, we could commit to that: forget the gun, the family goes to a bank, demonstrates they&#8217;ll be able to earn an income in future, and takes out a loan, then goes to the builder and pays for their house, and then they get jobs and pay off their mortgage. But if the house doesn&#8217;t let the family get jobs and pay for the home, the things the builder buys with his pay have to come from somewhere, and the only way that can happen is by making everyone else in the country a little bit poorer. Do that enough, and everyone who can will move to a different country that doesn&#8217;t have that problem.</p>
<p>Loans are a serious answer to the problem in general: if the family is going to be able to work and pay for the house eventually, the problem isn&#8217;t one of money, it&#8217;s one of risk: whoever currently owns the land, or the building supplies, or whatever doesn&#8217;t want to take the risk they&#8217;ll never see anything for letting the house get built. But once you have someone with founds who is willing to take the risk, things can start happening without any change in government policies. Loaning directly to the family isn&#8217;t the only way; you could build a set of units on spec, and run a charity that finds disadvantaged families, and sets them up, and maybe provide them with training or administrative support to help them get into the workforce, at which point they can pay you back and you can either turn a profit, or help the next disadvantaged family; or maybe both.</p>
<p>Rob then asks himself a bunch of questions, which I&#8217;ll answer too:</p>
<ul>
<li>What about the foreign account deficit? (It doesn&#8217;t matter in the first place, unless perhaps you&#8217;re anti-immigrant, and don&#8217;t want foreigners buying property)</li>
<li>What about the fact that lots of land is already owned by someone? (There&#8217;s enough land in Australia outside of Sydney/Melbourne that this isn&#8217;t an issue; I don&#8217;t have any idea what it&#8217;s like in NZ, but see Tokyo for ways of housing people on very little land if it is a problem)</li>
<li>How do we fairly get the family the house they deserve? (They don&#8217;t deserve a house; if they want a nice house, they should work and save for it. If they&#8217;re going through hard times, and just need a roof over their heads, that&#8217;s easily and cheaply done, and doesn&#8217;t need a lot of space)</li>
<li>Won&#8217;t some people just ride on the coat-tails of others? (Yes, of course they will. That&#8217;s why you target the assistance to help them survive and get back on their feet, and if they want to get whatever it is they think they deserve, they can work for it, like everyone else)</li>
<li>Isn&#8217;t this going to require taking things other people have already earnt? (Generally, no: people almost always buy houses with loans, for instance, rather than being given them for free, or buying them outright; there might be a need to raises taxes, but not to fundamentally change them, though there might be other reasons why larger reform is worthwhile)</li>
</ul>
<p>This brings us back to the claim Rob makes at the start of his blog: that the whole &#8220;government cannot pay for healthcare&#8221; thing is nonsense. It&#8217;s not nonsense: at the extreme, government can&#8217;t pay for enough healthcare for everyone to live to 120 while feeling like they&#8217;re 30. Even paying enough for everyone to have the best possible medical care isn&#8217;t feasible: even if NZ has a uniform health care system with 100% of its economy devoted to caring for the sick and disabled, there&#8217;s going to be a specialist facility somewhere overseas that does a better job. If there isn&#8217;t a uniform healthcare system (and there won&#8217;t be, even if only due to some doctors/nurses being individually more talented), there&#8217;ll also be better and worse places to go in NZ. The reason we have worrying fiscal crises in healthcare and aged support isn&#8217;t just a matter of money that can be changed with inflation, it&#8217;s that the real economic resources we&#8217;re expecting to have don&#8217;t align with the promises we&#8217;re already making. Those resources are usually expressed in dollar terms, but that&#8217;s because having a unit of account makes talking about these things easier: we don&#8217;t have to explicitly say &#8220;we&#8217;ll need x surgeons and y administrators and z MRI machines and w beds&#8221; but instead can just collect it all and say &#8220;we&#8217;ll need x billion dollars&#8221;, and leave out a whole mass of complexity, while still being reasonably accurate.</p>
<p>(Similar with &#8220;education&#8221; &#8212; there are limits to how well you can educate everyone, and there&#8217;s a trade off between how many resources you might want to put into educating people versus how many resources other people would prefer. In a democracy, that&#8217;s just something that&#8217;s going to get debated. As far as land goes, on the other hand, I don&#8217;t think there&#8217;s a fundamental limit to the government taking control over land it controls, though at least in Australia I believe that&#8217;s generally considered to be against the vibe of the constitution. If you want to fairly compensate land holders for taking their land, that goes back to budget negotiations and government priorities, and doesn&#8217;t seem very interesting in the abstract)</p>
<p>Probably the worst part of Rob&#8217;s blog is this though: &#8220;We get 10% less things done. Big deal.&#8221; Getting 10% less things done is a disaster, for comparison the Great Recession in the US had a GDP drop of less than half that, at -4.2% between 2007Q4 and 2009Q2, and the Great Depression was supposedly about -15% between 1929 and 1932. Also, saying &#8220;we&#8217;d want 90% of folk not working&#8221; is pretty much saying &#8220;90% of folk have nothing of value to contribute to anyone else&#8221;, because if they did, they could do that, be paid for it, and voila, they&#8217;re working. That simply doesn&#8217;t seem plausible to me, and I think things would get pretty ugly if it ended up that way despite it&#8217;s implausibility.</p>
<p>(Aside: for someone who&#8217;s against carbs, &#8220;potato farmer&#8221; as the go to example seems an interesting choice&#8230; )</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2018/09/06/money-matters/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Buying in and selling out</title>
		<link>https://www.erisian.com.au/wordpress/2018/05/25/buying-in-and-selling-out</link>
					<comments>https://www.erisian.com.au/wordpress/2018/05/25/buying-in-and-selling-out#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Fri, 25 May 2018 11:00:10 +0000</pubDate>
				<category><![CDATA[btc]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1073</guid>

					<description><![CDATA[I figured &#8220;Someday we&#8217;ll find it: the Bitcoin connection; the coders, exchanges, and me&#8221; was too long for a title. Anyhoo, since very late February I&#8217;ve been gainfully employed in the cryptocurrency space, as a developer on Bitcoin Core at Xapo (it always sounds pretentious to shorten that to &#8220;bitcoin core developer&#8221; to me). I [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I figured &#8220;Someday we&#8217;ll find it: the Bitcoin connection; the coders, exchanges, and me&#8221; was too long for a title. Anyhoo, since very late February I&#8217;ve been gainfully employed in the <a href="https://www.google.com/search?q=cryptocurrency+craze">cryptocurrency space</a>, as a <a href="https://twitter.com/udiWertheimer/status/929415393202106369">developer</a> on <a href="https://bitcoincore.org/">Bitcoin Core</a> at <a href="https://www.xapo.com/">Xapo</a> (it always sounds pretentious to shorten that to &#8220;bitcoin core developer&#8221; to me).</p>
<p>I mentioned this to <a href="https://medium.com/@rusty_lightning">Rusty</a>, whose immediate response (after &#8220;Congratulations&#8221;) was &#8220;Xapo is weird&#8221;. I asked if he could name a Bitcoin company that&#8217;s not weird &#8212; turns out that&#8217;s still an open research problem. A lot of Bitcoin is my kind of weird: open source, individualism, maths, intense arguments, economics, political philosophies somewhere between techno-libertarianism and anarcho-capatalism (&#8220;ancap&#8221;, which shouldn&#8217;t be confused with the <a href="https://www.ancap.com.au/">safety rating</a>), and a general &#8220;we&#8217;re going to make the world a better place with more freedom and cleverer technology&#8221; vibe of the thing. Xapo in particular is also my kind of weird. For one, it&#8217;s founded by Argentinians who have experience with the downsides of inflation (currently sitting at 20% pa, down from 40% and up from 10%), even if that pales in comparison to Venezuela, the world&#8217;s current socialist basket case suffering from <a href="http://www.miamiherald.com/news/nation-world/world/americas/venezuela/article210282264.html">hyperinflation</a>; and Xapo&#8217;s CEO makes what I think are <a href="http://unchainedpodcast.co/xapos-wences-casares-on-how-bitcoin-makes-a-fairer-world">pretty good points</a> about Bitcoin improving global well-being by removing a lot of discretion from monetary policy &#8212; as opposed to doing blockchains to make finance more financey, or helping criminals and terrorists out, or just generally getting rich quick. Relatedly, Xapo (seems to me to be) much more of a global company than many cryptocurrency places, which often seem very Silicon Valley focussed (or perhaps NYC, or wherever their respective HQ is); it might be a bit self-indulgent, but I really like being surrounded by people with oddly different cultures, and at least my general impression of a lot of Silicon Valley style tech companies these days is more along the lines of &#8220;<a href="http://foundersatwork.posthaven.com/the-sound-of-silence">dysfunctional monoculture</a>&#8221; than anything positive. Xapo&#8217;s tech choices also seem to be fairly good, or at least in line with my preferences (python! using bitcoin core! microservices!). Xapo is also one of pretty few companies that&#8217;s got a strong Bitcoin focus, rather than trying to support every crazy new cryptocurrency or subtoken out there: I tend to think Bitcoin&#8217;s the only cryptocurrency that really has good technical and economic fundamentals; so I like &#8220;Bitcoin maximilism&#8221; in principle, though I guess I&#8217;m hard pressed to argue it&#8217;s optimal at the business level.</p>
<p>For anyone who follow Bitcoin politics, Xapo might seem a strange choice &#8212; Xapo not long ago was on the losing side of the <a href="https://hackernoon.com/this-is-bitcoin-who-are-you-to-tell-us-otherwise-8fc5966d4ac4">S2X conflict</a>, and why team up with a loser instead of the winners? I don&#8217;t take that view for a couple of reasons: I didn&#8217;t ever really think doubling the blocksize (the 2X part) was a fundamentally bad idea (not least, because segwit (the S part) already does that and more under some circumstances), but rather the problem was the implementation plan of doing it in just a few months, against the advice of all the most knowledgeable developers, and having an <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-segwit2x/2017-July/000094.html">absolutely</a> <a href="https://github.com/btc1/bitcoin/issues/34">terrible</a> <a href="https://github.com/btc1/bitcoin/issues/34">response</a> when problems with the implementation were found. But although that was probably unavoidable considering the mandate to activate S2X within just a few months, I think the majority of the blame is rightly put on the developers doing the shoddy work, and the solution is for companies to work with developers who can say &#8220;no&#8221; convincingly, or, preferably, can say &#8220;yes, and this is how&#8221; long enough in advance that solving the problem well is actually possible. So working with any (or at least most) of the S2X companies just seems like being part of the solution to me. And in any event, I want to live in a world where different viewpoints are welcome and disagreement is okay, and finding out that you&#8217;re wrong just means you learned something new, not that you get punished and ostracised.</p>
<p>Likewise, you could argue that anyone who wants to really use Bitcoin should own their private keys, rather than use something like Xapo as a wallet or even a vault, and that working on Xapo is kind-of opposed to the &#8220;be your own bank&#8221; philosophy at the heart of Bitcoin. My belief is that there&#8217;s still a use for banks with Bitcoin: safely storing valuables is hard even when they&#8217;re protected by maths instead of (or as well as) locks or guns; so it still makes sense for many people to want to outsource the work of maintaining private keys, and unless you&#8217;re an IT professional, it&#8217;s probably more sensible to do that to a company that looks kind of like a bank (ie, a custodial wallet like Xapo) rather than one that looks like a software vendor (bitcoin core, electrum, etc) or a hardware vendor (ledger or trezor, eg). In that case, the key benefit that Bitcoin offers is protection from government monetary policy, and, hopefully better/cheaper access or storage of your wealth, which isn&#8217;t nothing, even if it&#8217;s not fully autonomous control over your wealth.</p>
<p>For the moment, there&#8217;s plenty of things to work on at Xapo: I&#8217;ve been delaying writing this until I could answer the obvious <a href="https://www.reddit.com/r/Bitcoin/comments/7ov1fs/why_are_all_companies_not_adopting_segwit_when_i/">&#8220;when segwit?&#8221;</a> question (<a href="https://twitter.com/tedmrogers/status/999756503996219392">&#8220;now!&#8221;</a>), but there&#8217;s still more bits to do there, and obviously there are lots of neat things to do improving the app, and even more non-development things to do like dealing with other financial institutions, compliance concerns, and what not. Mostly that&#8217;s stuff I help with, but not my focus: instead, the things I&#8217;m lucky enough to get to work on are the ones that will make a difference in months/years to come, rather than the next few weeks, which gives me an excuse to keep up to date with things like <a href="https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-February/001031.html">lightning</a> and <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-May/015951.html">Schnorr</a> <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-March/015838.html">signatures</a> and work on open source bitcoin stuff in general. It&#8217;s pretty fantastic. The biggest risk as I see it is I end up doing too much work on getting some awesome new feature or project prototyped for Xapo and end up having to maintain it, downgrading this from dream job to just a motherforking fantastic one. I mean, aside from the bigger risks like cryptocurrency turns out to be a fad, or we all die from nuclear annihilation or whatever.</p>
<p>I don&#8217;t really think <a href="https://medium.com/@rusty_lightning/the-corrosion-of-ethics-in-cryptocurrencies-f7ba77e9dfc3">disclosure</a> posts are particularly necessary &#8212; it&#8217;s better to assume everyone has undisclosed interests and biases and judge what they say and do on its own merits. But in the event they are a good idea: financially, I&#8217;ve got as yet unvested stock options in Xapo which I plan on exercising and hope will be worth something someday, and some Bitcoin which I&#8217;m holding onto and hope will still be worth something some day. I expect those to be highly correlated, so anything good for one will be good for the other. Technically, I think Bitcoin is fascinating, and I&#8217;ve put a lot of work into understanding it: I&#8217;ve looked through the code, I&#8217;ve talked with a bunch of the developers, I&#8217;ve looked at a bunch of the crypto, and I&#8217;ve even done a graduate diploma in economics over the last couple of years to have some confidence in my ability to judge the economics of it (though to be fair, that wasn&#8217;t the reason I had for enrolling initially), and I think it all makes pretty good sense. I can&#8217;t say the same about other cryptocurrencies, eg Litecoin&#8217;s essentially the same software, but the economics of having a &#8220;digital silver&#8221; to Bitcoin&#8217;s &#8220;digital gold&#8221; doesn&#8217;t seem to make a lot of sense to me, and while Ethereum aims at a bunch of interesting problems and gets the attention it deserves as a result, I&#8217;m a long way from convinced it&#8217;s got the <a href="https://hackernoon.com/the-ethereum-blockchain-size-has-exceeded-1tb-and-yes-its-an-issue-2b650b5f4f62">fundamentals</a> <a href="https://www.reddit.com/r/ethereum/comments/8ltxac/vitalik_responds_to_the_misinformation_about_size/dzio52p/">right</a>, and a lot of other cryptocurrency things seem to essentially be <a href="https://theconversation.com/the-last-thing-the-marshall-islands-need-is-a-cryptocurrency-94325">scams</a>. Oh, perhaps I should also disclose that I don&#8217;t have access to private keys for <a href="http://www.afr.com/markets/currencies/bitcoin-xapo-goes-to-extreme-lengths-to-guard-us10-billion-of-cybercurrency-20180510-h0zwz5">$10 billion dollars</a> worth of Bitcoin; I&#8217;m happily on the open source technology side of things, not on the access to money side.</p>
<p>Of course, my opinions on any of that might change, and my financial interests might change to reflect my changed opinions. I don&#8217;t expect to update this blog post, and may or may not post about any new opinions I might form. Which is to say that this isn&#8217;t financial advice, I&#8217;m not a financial advisor, and if I were, I&#8217;m certainly not your financial advisor. If you still want financial advice on crypto, I think <a href="https://blog.xapo.com/why-own-bitcoin/">Wences&#8217;s</a> is reasonable: take 1% of what you&#8217;re investing, stick it in Bitcoin, and ignore it for a decade. If Bitcoin goes crazy, great, you&#8217;ve doubled your money and can brag about getting in before Bitcoin went up two orders of magnitude; if it goes terrible, you&#8217;ve lost next to nothing.</p>
<p>One interesting note: the press is generally reporting Bitcoin as <a href="https://stocksgazette.com/2018/05/25/another-mayday-for-bitcoin-btc/">doing terribly</a> this year, maintaining a value of around $7000-$9000 USD after hitting highs of up to $19000 USD mid December. That&#8217;s not fake news, but it&#8217;s a pretty short term view: for comparison, Wences&#8217;s advice linked just above from less than 12 months ago (when the price was about $2500 USD) says &#8220;I have seen a number of friends buy at â€œexpensiveâ€ prices (say, $300+ per bitcoin)&#8221; &#8212; but that level of &#8220;expensive&#8221; is still 20 or 30 times cheaper than today. As a result, in spite of the &#8220;bad&#8221; news, I think every cryptocurrency company that&#8217;s been around for more than a few months is feeling pretty positive at the moment, and most of them are hiring, including Xapo. So if you want to work with me on Xapo&#8217;s backend team we&#8217;re <a href="https://xapo.com/careers/">looking for Python devs</a>. But like every Bitcoin company, expect it to be a bit weird.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2018/05/25/buying-in-and-selling-out/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bitcoin: ASICBoost &#8211; Plausible or not?</title>
		<link>https://www.erisian.com.au/wordpress/2017/07/13/bitcoin-asicboost-plausible-or-not</link>
					<comments>https://www.erisian.com.au/wordpress/2017/07/13/bitcoin-asicboost-plausible-or-not#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Thu, 13 Jul 2017 09:16:05 +0000</pubDate>
				<category><![CDATA[ecash]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1055</guid>

					<description><![CDATA[So the first question: is ASICBoost use plausible in the real world? There are plenty of claims that it&#8217;s not: &#8220;Much conspiracy around #asicboost today. I don&#8217;t believe SegWit non-activation has anything to do with AsicBoost!&#8221; &#8211; Timo Hanke, one of the patent applicants, on twitter &#8220;Sam Cole, Guy Corem and Timo Hanke, ASIC developers [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>So the <a href="http://www.erisian.com.au/wordpress/2017/07/10/bitcoin-asicboost-and-segwit2x-background">first question</a>: is ASICBoost use plausible in the real world?</p>
<p>There are plenty of claims that it&#8217;s not:</p>
<ul>
<li>&#8220;Much conspiracy around <a class="twitter-hashtag pretty-link js-nav" dir="ltr" href="https://twitter.com/hashtag/asicboost?src=hash" data-query-source="hashtag_click"><s>#</s><b>asicboost</b></a> today. I don&#8217;t believe SegWit non-activation has anything to do with AsicBoost!&#8221; &#8211; <a href="https://twitter.com/timothanke/status/849896505653706753">Timo Hanke</a>, one of the patent applicants, on twitter</li>
<li class="ProfileHeaderCard-nameLink u-textInheritColor js-nav">&#8220;Sam Cole, Guy Corem and Timo Hanke, ASIC developers that found AsicBoost independently, agree on this: conflict has nothing to do with it.&#8221; &#8211; <a href="https://twitter.com/SDLerner/status/851419970965823488">Sergio Demian Lerner</a>, the other patent applicant, also on twitter</li>
<li class="ProfileHeaderCard-nameLink u-textInheritColor js-nav">&#8220;Bitmain has tested ASICBOOST on the Testnet but has<em> never</em> used ASICBOOST on the mainnet &#8230; the ASICBOOST method has not been used by us on the mainnet &#8230; Bitmain holds the ASICBOOST patent in China. We can legally use it in our own mining farms in China to profit from it and sell the cloud mining contracts to the public. This, however profitable, is not something we would do for the greater good of Bitcoin.&#8221; &#8211; <a href="https://blog.bitmain.com/en/regarding-recent-allegations-smear-campaigns/">Bitmain statement on ASICBoost</a></li>
<li>&#8220;there&#8217;s absolutely nothing but baseless accusations flying around&#8221; &#8211; <a href="http://hackingdistributed.com/2017/04/05/bitcoin-drama-response/">Emin Gun Sirer&#8217;s take</a>, linked from the Bitmain statement</li>
<li>&#8220;no company would ever produce a chip that would have a switch in to hide that it&#8217;s actually an ASICboost chip.&#8221; &#8211; <a href="https://hackernoon.com/asicboost-655a73d48ae4">Sam Cole</a> formerly of KNCMiner which went bankrupt due to being unable to compete with Bitmain in 2016</li>
<li>&#8220;I believe their claim about not activating ASICBoost. It is very small money for them.&#8221; &#8211; <a href="https://medium.com/@vcorem/the-real-savings-from-asicboost-to-bitmaintech-ff265c2d305b">Guy Corem of SpoonDoolies</a>, who independently discovered ASICBoost</li>
<li>&#8220;No one is even using Asicboost.&#8221; &#8211; <a href="https://np.reddit.com/r/btc/comments/64pmo8/samson_mow_is_in_tokyo_again_and_i_roger_ver_have/dg5j0ry/">Roger Ver</a> (/u/memorydealers) on reddit</li>
</ul>
<p>A lot of these claims don&#8217;t actually match reality though: ASICBoost is implemented in Bitmain miners sold to the public, and since it defaults to off, a switch to hide it is obviously easily possible since it&#8217;s disabled by default, contradicting Sam Cole&#8217;s take. There&#8217;s <a href="https://www.reddit.com/r/Bitcoin/comments/63yo27/some_circumstantial_evidence_supporting_the_claim/">plenty of circumstantial evidence</a> of ASICBoost-related transaction structuring in blocks, contradicting the basis on which Emin Gun Sirer&#8217;s dismisses the claims. The 15%-30% improvement claims that Guy Corem and Sam Cole cite are certainly large enough to be worth looking into &#8212; andÂ  Bitmain confirms to have done on testnet. Even Guy Corem&#8217;s claim that they only amount to $2,000,000 in savings per year rather than $100,000,000 seems like a reason to expect it to be in use, rather than so little that you wouldn&#8217;t bother.</p>
<p>If ASICBoost weren&#8217;t in use on mainnet it would probably be relatively straightforward to prove that: Bitmain could publish the benchmarks results they got when testing on testnet, and why that proved not to be worth doing on mainnet, and provide instructions for their customers on how to reproduce their results, for instance. Or Bitmain and others could support efforts to block ASICBoost from being used on mainnet, to ensure no one else uses it, for the greater good of the network &#8212; if, as they claim, they&#8217;re already not using it, this would come at no cost to them.</p>
<p>To me, much of the rhetoric that&#8217;s being passed around seems to be a much better match for what you would expect if ASICBoost were in use, than if it was not. In detail:</p>
<ul>
<li>If ASICBoost were in use, and no one had any reason to hide it being used, then people would admit to using it, and would do so by using bits in the block version.</li>
<li>If ASICBoost were in use, but people had strong reasons to hide that fact, then people would claim not to be using it for a variety of reasons, but those explanations would not stand up to more than casual analysis.</li>
<li>If ASICBoost were not in use, and it was fairly easy to see there is no benefit to it, then people would be happy to share their reasoning for not using it in detail, and this reasoning would be able to be confirmed independently.</li>
<li>If ASICBoost were not in use, but the reasons why it is not useful require significant research efforts, then keeping the detailed reasoning private may act as a competitive advantage.</li>
</ul>
<p>The first scenario can be easily verified, and does not match reality. Likewise the third scenario does not (at least in my opinion) match reality; as noted above, many of the explanations presented are superficial at best, contradict each other, or simply fall apart on even a cursory analysis. Unfortunately that rules out assuming good faith &#8212; either people are lying about using ASICBoost, or just dissembling about why they&#8217;re not using it. Working out which of those is most likely requires coming to our own conclusion on whether ASICBoost makes sense.</p>
<p>I think Jimmy Song had some good posts on that topic. His first, on <a href="https://medium.com/@jimmysong/examining-bitmains-claims-about-asicboost-1d61118c678d">Bitmain&#8217;s ASICBoost claims</a> finds some plausible examples of ASICBoost testing on testnet, however this was corrected in the comments as having been performed by Timo Hanke, rather than Bitmain. Having a look at other blocks&#8217; version fields on testnet seems to indicate that there hasn&#8217;t been much other fiddling of version fields, so presumably whatever testing of ASICBoost was done by Bitmain, fiddling with the version field was not used; but that in turn implies that Bitmain must have been testing covert ASICBoost on testnet, assuming their claim to have tested it on testnet is true in the first place (they could quite reasonably have used a private testnet instead). Two later posts, on <a href="https://medium.com/@jimmysong/mining-profitability-and-asicboost-ffdb779ef6dd">profitability and ASICBoost</a> and <a href="https://medium.com/@jimmysong/just-how-profitable-is-bitmain-a9df82c761a">Bitmain&#8217;s profitability</a> in particular, go into more detail, mostly supporting Guy Corem&#8217;s analysis mentioned above. Perhaps interestingly, Jimmy Song also made a <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-April/014076.html">proposal</a> to the bitcoin-dev shortly after Greg&#8217;s original post revealing ASICBoost and prior to these posts; that proposal would have endorsed use of ASICBoost on mainnet, making it cheaper and compatible with segwit, but would also have made use of ASICBoost readily apparent to both other miners and patent holders.</p>
<p>It seems to me there are three different ways to look at the maths here, and because this is an economics question, each of them give a different result:</p>
<ul>
<li>Greg&#8217;s maths splits miners into two groups each with 50% of hashpower. One group, which is unable to use ASICBoost is assumed to be operating at almost zero profit, so their costs to mine bitcoins are only barely below the revenue they get from selling the bitcoin they mine. Using this assumption, the costs of running mining equipment are calculated by taking the number of bitcoin mined per year (365*24*6*12.5=657k), multiplying that by the price at the time ($1100), and halving the costs because each group only mines half the chain. This gives a cost of mining for the non-ASICBoost group of $361M per year. The other group, which uses ASICBoost, then gains a 30% advantage in costs, so only pays 70%, or $252M, a comparative saving of approximately $100M per annum. This saving is directly proportional to hashrate and ASICBoost advantage, so using Guy Corem&#8217;s figures of 13.2% hashrate and 15% advantage, this reduces from $95M to $66M, saving about $29M per annum.</li>
<li>Guy Corem&#8217;s maths estimates Bitmain&#8217;s figures directly: looking at the AntPool hashpower share, he estimates 500PH/s in hashpower (or 13.2%); he uses the specs of the AntMiner S9 to determine power usage (0.1 J/GH); he looks at electricity prices in China and estimates $0.03 per kWh; and he estimates the ASICBoost advantage to be 15%. This gives a total cost of 500M GH/s * 0.1 J/GH / 1000 W/kW * $0.03 per kWh * 24 * 365 which is $13.14 M per annum, so a 15% saving is just under $2M per annum. If you assume that the hashpower was 50% and ASICBoost gave a 30% advantage instead, this equates to about 1900 PH/s, and gives a benefit of just under $15M per annum. In order to get the $100M figure to match Greg&#8217;s result, you would also need to increase electricity costs by a factor of six, from 3c per kWH to 20c per kWH.</li>
<li>The approach I prefer is to compare what your hashpower would be keeping costs constant and work out the difference in revenue: for example, if you&#8217;re spending $13M per annum in electricity, what is your profit with ASICBoost versus without (assuming that the difficulty retargets appropriately, but no one else changes their mining behaviour). Following this line of thought, if you have 500PH/s with ASICBoost giving you a 30% boost, then without ASICBoost, you have 384 PH/s (500/1.3). If that was 13.2% of hashpower, then the remaining 86.8% of hashpower is 3288 PH/s, so when you stop using ASICBoost and a retarget occurs, total hashpower is now 3672 PH/s (384+3288), and your percentage is now 10.5%. Because mining revenue is simply proportional to hashpower, this amounts to a loss of 2.7% of the total bitcoin reward, or just under $20M per year. If you match Greg&#8217;s assumptions (50% hashpower, 30% benefit) that leads to an estimate of $47M per annum; if you match Guy Corem&#8217;s assumptions (13.2% hashpower, 15% benefit) it leads to an estimate of just under $11M per annum.</li>
</ul>
<p>So like I said, that&#8217;s three different answers in each of two scenarios: Guy&#8217;s low end assumption of 13.2% hashpower and a 15% advantage to ASICBoost gives figures of $29M/$2M/$11M; while Greg&#8217;s high end assumptions of 50% hashpower and 30% advantage give figures of $100M/$15M/$47M. The differences in assumptions there is obviously pretty important.</p>
<p>I don&#8217;t find the assumptions behind Greg&#8217;s maths realistic: in essence, it assumes that mining be so competitive that it is barely profitable even in the short term. However, if that were the case, then nobody would be able to invest in new mining hardware, because they would not recoup their investment. In addition, even if at some point mining were not profitable, increases in the price of bitcoin would change that, and the price of bitcoin has been increasing over recent months. Beyond that, it also assumes electricity prices do not vary between miners &#8212; if only the marginal miner is not profitable, it may be that some miners have lower costs and therefore are profitable; and indeed this is likely the case, because electricity prices vary over time due to both seasonal and economic factors. The method Greg uses does is useful for establishing an upper limit, however: the only way ASICBoost could offer more savings than Greg&#8217;s estimate would be if every block mined produced less revenue than it cost in electricity, and miners were making a loss on every block. (This doesn&#8217;t mean $100M is an upper limit however &#8212; that estimate was current in April, but the price of bitcoin has more than doubled since then, so the current upper bound via Greg&#8217;s maths would be about $236M per year)</p>
<p>A downside to Guy&#8217;s method from the point of view of outside analysis is that it requires more information: you need to know the efficiency of the miners being used and the cost of electricity, and any error in those estimates will be reflected in your final figure. In particular, the cost of electricity needs to be a &#8220;whole lifecycle&#8221; cost &#8212; if it costs 3c/kWh to supply electricity, but you also need to spend an additional 5c/kWh in cooling in order to keep your data-centre operating, then you need to use a figure of 8c/kWh to get useful results. This likely provides a good lower bound estimate however: using ASICBoost will save you energy, and if you forget to account for cooling or some other important factor, then your estimate will be too low; but that will still serve as a loose lower bound. This estimate also changes over time however; while it doesn&#8217;t depend on price, it does depend on deployed hashpower &#8212; since total hashrate has risen from around 3700 PH/s in April to around 6200 PH/s today, if Bitmain&#8217;s hashrate has risen proportionally, it has gone from 500 PH/s to 837 PH/s, and an ASICBoost advantage of 15% means power cost savings have gone from $2M to $3.3M per year; or if Bitmain has instead maintained control of 50% of hashrate at 30% advantage, the savings have gone from $15M to $25M per year.</p>
<p>The key difference between my method and both Greg&#8217;s and Guy&#8217;s is that they implicitly assume that consuming more electricity is viable, and costs simply increase proportionally; whereas my method assumes that this is not viable, and instead that sufficient mining hardware has been deployed that power consumption is already constrained by some other factor. This might be due to reaching the limit of what the power company can supply, or the rating of the wiring in the data centre, or it might be due to the cooling capacity, or fire risk, or some other factor. For an operation spanning multiple data centres this may be the case for some locations but not others &#8212; older data centres may be maxed out, while newer data centres are still being populated and may have excess capacity, for example. If setting up new data centres is not too difficult, it might also be true in the short term, but not true in the longer term &#8212; that is having each miner use more power due to disabling ASICBoost might require shutting some miners down initially, but they may be able to be shifted to other sites over the course of a few weeks or month, and restarted there, though this would require taking into account additional hosting costs beyond electricity and cooling. As such, I think this is a fairly reasonable way to produce an plausible estimate, and it&#8217;s the one I&#8217;ll be using. Note that it depends on the bitcoin price, so the estimates this method produces have also risen since April, going from $11M to $24M per annum (13.2% hash, 15% advantage) or from $47M to $103M (50% hash, 30% advantage).</p>
<p>The way ASICBoost works is by allowing you to save a few steps: normally when trying to generate a proof of work, you have to do essentially six steps:</p>
<ol>
<li>A = Expand( Chunk1 )</li>
<li>B = Compress( A, 0 )</li>
<li>C = Expand( Chunk2 )</li>
<li>D = Compress( C, B )</li>
<li>E = Expand( D )</li>
<li>F = Compress( E )</li>
</ol>
<p>The expected process is to do steps (1,2) once, then do steps (3,4,5,6) about four billion (or more) times, until you get a useful answer. You do this process in parallel across many different chips. ASICBoost changes this process by observing that step (3) is independent of steps (1,2) &#8212; so by finding a variety of Chunk1s &#8212; call them Chunk1-A, Chunk1-B, Chunk1-C and Chunk1-D that are each compatible with a common Chunk2. In that case, you do steps (1,2) four times for each different Chunk1, then do step (3) four billion (or more) times, and do steps (4,5,6) 16 billion (or more) times, to get four times the work, while saving 12 billion (or more) iterations of step (3). Depending on the number of Chunk1&#8217;s you set yourself up to find, and the relative weight of the Expand versus Compress steps, this comes to (n-1)/n / 2 / (1+c/e), where n is the number of different Chunk1&#8217;s you have. If you take the weight of Expand and Compress steps as about equal, it simplifies to 25%*(n-1)/n, and with n=4, this is 18.75%. As such, an ASICBoost advantage of about 20% seems reasonably practical to me. At 50% hash and 20% advantage, my estimates for ASICBoost&#8217;s value are $33M in April, and $72M today.</p>
<p>So as to the question of whether you&#8217;d use ASICBoost, I think the answer is a clear yes: the lower end estimate has risen from $2M to $3.3M per year, and since Bitmain have acknowledged that AntMiner&#8217;s support ASICBoost in hardware already, the only additional cost is finding collisions which may not be completely trivial, but is not difficult and is easily automated.</p>
<p>If the benefit is only in this range, however, this does not provide a plausible explanation for opposing segwit: having the Bitcoin industry come to a consensus about how to move forward would likely increase the bitcoin price substantially, definitely increasing Bitmain&#8217;s mining revenue &#8212; even a 2% increase in price would cover their additional costs. However, as above, I believe this is only a lower bound, and a more reasonable estimate is on the order of $11M-$47M as of April or $24M-$103M as of today. This is a much more serious range, and would require an 11%-25% increase in price to not be an outright loss; and a far more attractive proposition would be to find a compromise position that both allows the industry to move forward (increasing the price) and allows ASICBoost to remain operational (maintaining the cost savings / revenue boost).</p>
<p>&nbsp;</p>
<p>It&#8217;s possible to take a different approach to analysing the cost-effectiveness of mining given how much you need to pay in electricity costs. If you have access to a lot of power at a flat rate, can deal with other hosting issues, can expand (or reduce) your mining infrastructure substantially, and have some degree of influence in how much hashpower other miners can deploy, then you can derive a formula for what proportion of hashpower is most profitable for you to control.</p>
<p>In particular, if your costs are determined by an electricity (and cooling, etc) price, E, in dollars per kWh and performance, r, in Joules per gigahash, then given your hashrate, h in terahash/second, your power usage in watts is (h*1e3*r), and you run this for 600 seconds on average between each block (h*r*6e5 Ws), which you divide by 3.6M to convert to kWh (h*r/6), then multiply by your electricity cost to get a dollar figure (h*r*E/6). Your revenue depends on the hashrate of the everyone else, which we&#8217;ll call g, and on average you receive (p*R*h/(h+g)) every 600 seconds where p is the price of Bitcoin in dollars and R is the reward (subsidy and fees) you receive from a block. Your profit is just the difference, namely h*(p*R/(h+g) &#8211; r*E/6). Assuming you&#8217;re able to manufacture and deploy hashrate relatively easily, at least in comparison to everyone else, you can optimise your profit by varying h while the other variables (bitcoin price p, block reward R, miner performance r, electricity cost E, and external hashpower g) remain constant (ie, set the derivative of that formula with respect to h to zero and simplify) which gives a result of 6gpR/Er = (g+h)^2.</p>
<p>This is solvable for h (square root both sides and subtract g), but if we assume Bitmain is clever and well funded enough to have already essentially optimised their profits, we can get a better sense of what this means. Since g+h is just the total bitcoin hashrate, if we call that t, and divide both sides, we get 6gpR/Ert = t, or g/t = (Ert)/(6pR), which tells us what proportion of hashrate the rest of the network can have (g/t) if Bitmain has optimised its profits, or, alternative we can work out h/t = 1-g/t = 1-(Ert)/(6pR) which tells us what proportion of hashrate Bitmain will have if it has optimised its profits.Â  Plugging in E=$0.03 per kWH, r=0.1 J/GH, t=6e6 TH/s, p=$2400/BTC, R=12.5 BTC gives a figure of 0.9 &#8211; so given the current state of the network, and Guy Corem&#8217;s cost estimate, Bitmain would optimise its day to day profits by controlling 90% of mining hashrate. I&#8217;m not convinced $0.03 is an entirely reasonable figure, though &#8212; my inclination is to suspect something like $0.08 per kWh is more reasonable; but even so, that only reduces Bitmain&#8217;s optimal control to around 73%.</p>
<p>Because of that incentive structure, if Bitmain&#8217;s current hashrate is lower than that amount, then lowering manufacturing costs for own-use miners by 15% (per Sam Cole&#8217;s estimates) and lowering ongoing costs by 15%-30% by using ASICBoost could have a compounding effect by making it easier to quickly expand. (It&#8217;s not clear to me that manufacturing a line of ASICBoost-only miners to reduce manufacturing costs by 15% necessarily makes sense. For one thing, this would come at a cost of not being able to mine with them while they are state of the art, then sell them on to customers once a more efficient model has been developed, which seems like it might be a good way to manage inventory. For another, it vastly increases the impact of ASICBoost not being available: rather than simply increasing electricity costs by 15%-30%, it would mean reducing output to 10%-25% of what it was, likely rendering the hardware immediately obsolete)</p>
<p>Using the same formula, it&#8217;s possible to work out a ratio of bitcoin price (p) to hashrate (t) that makes it suboptimal for a manufacturer to control a hashrate majority (at least just due to normal mining income): h/t &lt; 0.5, 1-Ert/6pR &lt; 0.5, so t &gt; 3pR/Er. Plugging in p=2400, R=12.5, e=0.08, r=0.1, this gives a total hash rate of 11.25M TH/s, almost double the current hash rate. This hashrate target would obviously increase as the bitcoin price increases, halve if the block reward halves (if a fall in the inflation subsidy is not compensated by a corresponding increase in fee income eg), increase if the efficiency of mining hardware increases, and decrease if the cost of electricity increases. For a simpler formula, assuming the best hosting price is $0.08 per kWh, and while the Antminer S9&#8217;s efficiency at 0.1 J/GH is state of the art, and the block reward is 12.5 BTC, the global hashrate in TH/s should be at least around 5000 times the price (ie 3R/Er = 4787.5, near enough to 5000).</p>
<p>Note that this target also sets a limit on the range at which mining can be profitable: if it&#8217;s just barely better to allow other people to control &gt;50% of miners when your cost of electricity is E, then for someone else whose cost of electricity is 2*E or more, optimal profit is when other people control 100% of hashrate, that is, you don&#8217;t mine at all. Thus if the best large scale hosting globally costs $0.08/kWh, then either mining is not profitable anywhere that hosting costs $0.16/kWh or more, or there&#8217;s strong centralisation pressure for a mining hardware manufacturer with access to the cheapest electrictiy to control more than 50% of hashrate. Likewise, if Bitmain really can do hosting at $0.03/kWh, then either they&#8217;re incentivised to try to control over 50% of hashpower, or mining is unprofitable at $0.06/kWh and above.</p>
<p>If Bitmain (or any mining ASIC manufacturer) is supplying the majority of new hashrate, they actually have a fairly straightforward way of achieving that goal: if they dedicate 50-70% of each batch of ASICs built for their own use, and sell the rest, with the retail price of the sold miners sufficient to cover the manufacturing cost of the entire batch, then cashflow will mostly take care of itself. At $1200 retail price and $500 manufacturing costs (per <a href="https://medium.com/@jimmysong/just-how-profitable-is-bitmain-a9df82c761a">Jimmy Song&#8217;s numbers</a>), that strategy would imply targeting control of up to about 58% of total hashpower. The above formula would imply that&#8217;s the profit-maximising target at the current total hashrate and price if your average hosting cost is about $0.13 per kWh. (Those figures obviously rely heavily on the accuracy of the estimated manufacturing costs of mining hardware; at $400 per unit and $1200 retail, that would be 67% of hashpower, and about $0.09 per kWh)</p>
<p>Strategies like the above are also why this analysis doesn&#8217;t apply to miners who buy their hardware rather from a vendor, rather than building their own: because every time they increase their own hash rate (h), the external hashrate (g) also increases as a direct result, it is not valid to assume that g is constant when optimising h, so the partial derivative and optimisation is in turn invalid, and the final result is not applicable.</p>
<p>&nbsp;</p>
<p>Bitmain&#8217;s mining pool, AntPool, obviously doesn&#8217;t directly account for 58% or more of total hashpower; though currently they&#8217;re the pool with the most hashpower at about 20%. As I understand it, Bitmain is also known to control at least <a href="http://www.coindesk.com/bitcoin-miner-bitmain-acquires-blockchain-data-startup/">BTC.com </a>and <a href="https://bitcoinmagazine.com/articles/meet-connectbtc-bitmains-newest-bitcoin-mining-pool/">ConnectBTC</a> which add another 7.6%. The other &#8220;Emergent Consensus&#8221; supporting pools (Bitcoin.com, BTC.top, ViaBTC) account for about 22% of hashpower, however, which brings the total to just under 50%, roughly the right ballpark &#8212; and an additional 8% or 9% could easily be pointed at other public pools like slush or f2pool. Whether the &#8220;emergent consensus&#8221; pools are aligned due to common ownership and contractual obligations or simply similar interests is debatable, though. <a href="https://twitter.com/cnLedger/status/849550621913042945">ViaBTC is funded by Bitmain</a>, and Canoe was <a href="https://news.bitcoin.com/new-22-petahash-mining-pool-signaling-bitcoin-unlimited/">built and sold by Bitmain</a>, which means strong contractual ties might exist, howeverÂ  Jihan Wu, Bitmain&#8217;s co-founder, has <a href="https://twitter.com/JihanWu/status/853669868696027136">disclaimed equity ties to BTC.top</a>. Bitcoin.com is owned by Roger Ver, but I haven&#8217;t come across anything implying a business relationship between Bitmain and Bitcoin.com beyond supplier and customer. However John McAffee&#8217;s apparently forthcoming <a href="http://www.prnewswire.com/news-releases/development-completed-on-mgt-bitcoin-mining-pool-300416204.html">MGT mining pool</a> is both <a href="https://www.mgtci.com/bitmain">partnered with Bitmain</a> and <a href="https://www.mgtci.com/advisory-boards">advised by Roger Ver</a>, so the existence of tighter ties may be plausible.</p>
<p>It seems likely to me that Bitmain is actually behaving more altruistically than is economically rational according to the analysis above: while it seems likely to me that Bitcoin.com, BTC.top, ViaBTC and Canoe have strong ties to Bitmain and that Bitmain likely has a high level of influence &#8212; whether due to contracts, business relationships or simply due to the loyalty and friendship &#8212; this nevertheless implies less control over the hashpower than direct ownership and management, and likely less profit. This could be due to a number of factors: perhaps Bitmain really is already sufficiently profitable from mining that they&#8217;re focusing on building their business in other ways; perhaps they feel the risks of centralised mining power are too high (and would ultimately be a risk to their long term profits) and are doing their best to ensure that mining power is decentralised while still trying to maximise their return to their investors; perhaps the rate of expansion implied by this analysis requires more investment than they can cover from their cashflow, and additional hashpower is funded by new investors who are simply assigned ownership of a new mining pool, which may helps Bitmain&#8217;s investors assure themselves they aren&#8217;t being duped by a pyramid scheme and gives more of an appearance of decentralisation.</p>
<p>It seems to me therefore there could be a variety of ways in which Bitmain may have influence over a majority of hashpower:</p>
<ul>
<li>Direct ownership and control, that is being obscured in order to avoid an economic backlash that might result from people realising over 50% of hashpower is controlled by one group</li>
<li>Contractual control despite independent ownership, such that customers of Bitmain are committed to follow Bitmain&#8217;s lead when signalling blocks in order to maintain access to their existing hardware, or to be able to purchase additional hardware (an account on reddit appearing to belong to the GBMiners pool has <a href="https://www.reddit.com/r/Bitcoin/comments/60udvd/a_disturbing_quote_by_indian_pool_gbminers/">suggested</a> this is the case)</li>
<li>Contractual control due to offering essential ongoing services, eg support for physical hosting, or some form of mining pool services &#8212; maintaining the infrastructure for covert ASICBoost may be technically complex enough that Bitmain&#8217;s customers cannot maintain it themselves, but that Bitmain could relatively easily supply as an ongoing service to their top customers.</li>
<li>Contractual influence via leasing arrangements rather than sale of hardware &#8212; if hardware is leased to customers, or financing is provided, Bitmain could retain some control of the hardware until the leasing or financing term is complete, despite not having ownership</li>
<li>Coordinated investment resulting in cartel-like behaviour &#8212; even if there is no contractual relationship where Bitmain controls some of its customers in some manner, it may be that forming a cartel of a few top miners allows those miners to increase profits; in that case rather than a single firm having control of over 50% of hashrate, a single cartel does. While this is technically different, it does not seem likely to be an improvement in practice. If such a cartel exists, its members will not have any reason to compete against each other until it has maximised its profits, with control of more than 70% of the hashrate.</li>
</ul>
<p>&nbsp;</p>
<p>So, conclusions:</p>
<ul>
<li>ASICBoost is worth using if you are able to. Bitmain is able to.</li>
<li>Nothing I&#8217;ve seen suggest Bitmain is economically clueless; so since ASICBoost is worth doing, and Bitmain is able to use it on mainnet, Bitmain are using it on mainnet.</li>
<li>Independently of ASICBoost, Bitmain&#8217;s most profitable course of action seems to be to control somewhere in the range of 50%-80% of the global hashrate at current prices and overall level of mining.</li>
<li>The distribution of hashrate between mining pools aligned with Bitmain in various ways makes it plausible, though not certain, that this may already be the case in some form.</li>
<li>If all this hashrate is benefiting from ASICBoost, then my estimate is that the value of ASICBoost is currently about $72M per annum</li>
<li>Avoiding dominant mining manufacturers tending towards supermajority control of hashrate requires either a high global hashrate or a relatively low price &#8212; the hashrate in TH/s should be about 5000 times the price in dollars.</li>
<li>The current price is about $2400 USD/BTC, so the corresponding hashrate to prevent centralisation at that price point is 12M TH/s. Conversely, the current hashrate is about 6M TH/s, so the maximum price that doesn&#8217;t cause untenable centralisation pressure is $1200 USD/BTC.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2017/07/13/bitcoin-asicboost-plausible-or-not/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bitcoin: ASICBoost and segwit2x &#8211; Background</title>
		<link>https://www.erisian.com.au/wordpress/2017/07/10/bitcoin-asicboost-and-segwit2x-background</link>
					<comments>https://www.erisian.com.au/wordpress/2017/07/10/bitcoin-asicboost-and-segwit2x-background#respond</comments>
		
		<dc:creator><![CDATA[aj]]></dc:creator>
		<pubDate>Mon, 10 Jul 2017 03:20:46 +0000</pubDate>
				<category><![CDATA[ecash]]></category>
		<guid isPermaLink="false">http://www.erisian.com.au/wordpress/?p=1052</guid>

					<description><![CDATA[I&#8217;ve been trying to make heads or tails of what the heck is going on in Bitcoin for a while now. I&#8217;m not sure I&#8217;ve actually made that much progress, but I&#8217;ve at least got some thoughts that seem coherent now. First, this post is background for people playing along at home who aren&#8217;t familiar [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve been trying to make heads or tails of what the heck is going on in Bitcoin for a while now. I&#8217;m not sure I&#8217;ve actually made that much progress, but I&#8217;ve at least got some thoughts that seem coherent now.</p>
<p>First, this post is background for people playing along at home who aren&#8217;t familiar with the issues or jargon: Bitcoin is a currency based on an electronic ledger that essentially tracks how much Bitcoin exists, and how someone can be authorised to transfer it to someone else; that ledger is currently about 100GB in size, growing at a rate of about a gigabyte a week. The ledger is updated by miners, who compete by doing otherwise pointless work running cryptographic hashes (and in so doing obtain a &#8220;proof of work&#8221;), and in return receive a reward (denominated in bitcoin) made up from fees by people transacting and an inflation subsidy. Different miners are competing in an essentially zero-sum game, because fees and inflation are essentially a fixed amount that is (roughly) divided up amongst miners according to how much work they do &#8212; so while you get more reward for doing more work, it comes at a cost of other miners receiving less reward.</p>
<p>Because the ledger only grows by (about) a gigabyte each week (or a megabyte per block, which is roughly every ten minutes), there is a limit on how many transactions can be included each week (ie, supply is limited), which both increases fees and limits adoption &#8212; so for quite a while now, people in the bitcoin ecosystem with a focus on growth have wanted to work out ways to increase the transaction rate. Initial proposals in mid 2015 suggested allowing miners to regularly determine the limit with no official upper bound (nominally &#8220;<a href="https://github.com/jgarzik/bip100/blob/master/bip-0100.mediawiki">BIP100</a>&#8220;, though never actually formally submitted as a proposal), or to increase by a factor of eight within six months, then double every two years after that, until reaching almost 200 times the current size by 2036 (<a href="https://github.com/bitcoin/bips/blob/master/bip-0101.mediawiki">BIP101</a>), or to increase at a rate of about 17% per annum (<del><a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-July/009763.html">suggested</a> on the mailing list, but never formally proposed</del> <a href="https://github.com/bitcoin/bips/blob/master/bip-0103.mediawiki">BIP103</a>). These proposals had two major risks: locking in a lot of growth that may turn out to be unnecessary or actively harmful, and requiring what is called a &#8220;hard fork&#8221;, which would render the existing bitcoin software unable to track the ledger after the change took affect with the possible outcome that two ledgers would coexist and would in turn cause a range of problems. To reduce the former risk, a minimal compromise proposal was made to &#8220;kick the can down the road&#8221; and just double the ledger growth rate, then figure out a more permanent solution down the road (<a href="https://github.com/bitcoin/bips/blob/master/bip-0102.mediawiki">BIP102</a>) (or to double it three times &#8212; to 2MB, 4MB then 8MB &#8212; over four years, per <a href="https://twitter.com/adam3us/status/636410827969421312?lang=en">Adam Back</a>). A few months later, some of the devs figured out a way to more or less achieve this that also doesn&#8217;t require a hard fork, and comes with a host of other benefits, and proposed an update called &#8220;segregated witness&#8221; at the December 2015 Scaling Bitcoin conference.</p>
<p>And shortly after that things went completely off the rails, and have stayed that way since. Ultimately there seem to be two camps: one group is happy to deploy segregated witness, and is eager to make further improvements to Bitcoin based on that (this is my take on events); while the other group does not, perhaps due to some combination of being opposed to the segregated witness changes directly, wanting a more direct upgrade immediately, being afraid deploying segregated witness will block other changes, or wanting to take control of the bitcoin codebase/roadmap from the current developers (take this with a grain of salt: these aren&#8217;t opinions I share or even find particularly reasonable, so I can&#8217;t do them justice when describing them; cf <a href="https://medium.com/@ViaBTC/why-we-dont-support-segwit-91d44475cc18">ViaBTC&#8217;s post</a> to get that side of the argument made directly, eg)</p>
<p>Most recently, and presumably on the basis that the opposed group are mostly worried that deploying segregated witness will prevent or significantly delay a more direct increase in capacity, a bitcoin venture capitalist, Barry Silbert, organised an <a href="https://medium.com/@DCGco/bitcoin-scaling-agreement-at-consensus-2017-133521fe9a77">agreement</a> amongst a number of companies including many miners, to both activate segregated witness within the next month, and to do a hard fork capacity increase by the end of the year. This is the &#8220;segwit2x&#8221; project; named because it takes segregated witness, (&#8220;segwit&#8221;) and then additionally doubles its capacity increase (&#8220;2x&#8221;). This agreement is not <a href="https://en.bitcoin.it/wiki/Segwit_support">supported</a> by any of the existing dev team, and is being developed by Jeff Garzik (who was behind BIP100 and BIP102 mentioned above) in a forked codebase renamed &#8220;<a href="https://github.com/btc1/bitcoin/commit/7c040e60385320d9313b7d3ca32367c5187857d1">btc1</a>&#8220;, so if successful, this may also satisfy members of the opposed group motivated by a desire to take control of the bitcoin codebase and roadmap, despite that not being an explicit part of the agreement itself.</p>
<p>To me, the arguments presented for opposing segwit don&#8217;t really seem plausible. As far as future development goes, a roadmap was put out in December 2015 and <a href="https://bitcoincore.org/en/2015/12/21/capacity-increase/">endorsed by many developers</a> that explicitly included a hard fork for increased capacity (&#8220;moderate block size increase proposals (such as 2/4/8 &#8230;)&#8221;), among many other things, so the risk of no further progress happening seems contrary to the facts to me. The core bitcoin devs are extremely capable in my estimation, so replacing them seems a bad idea from the start, but even more than that, they take a notably hands off approach to dictating where Bitcoin will go in future &#8212; so, to my mind, it seems like a more sensible thing to try would be working with them to advance the bitcoin ecosystem in whatever direction you want, rather than to try to replace them outright. In that context, it seems particularly notable to me that in the eighteen months between the segregated witness proposal and the segwit2x agreement, there hasn&#8217;t been any serious attempt to propose a hard fork capacity increase that meets the core dev&#8217;s quality standards; for instance there has never been any code for BIP100, and of the various hard forking codebases that have arisen by advocates of the hard fork approach &#8212; Bitcoin XT, Bitcoin Classic, Bitcoin Unlimited, btc1, and Bitcoin ABC &#8212; none have been developed in a way that&#8217;s suitable for the changes to be reviewed and merged into core via a pull request in the normal fashion. Further, since one of the main criticisms of a hard fork is that deployment costs are higher when it is done in a short time frame (weeks or a few months versus a year or longer), that lack of engagement over the past 18 months followed by a desperate rush now seems particularly poor to me.</p>
<p>A different <a href="https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2017-April/013996.html">explanation for the opposition to segwit</a> became public in April, however. ASICBoost is a patent-pending optimisation to the way Bitcoin miners do the work that entitles them to extend the ledger (for which they receive the rewards described earlier), and while there are a few ways of making use of ASICBoost, perhaps the most effective way turns out to be incompatible with segwit. There are three main alternatives to the covert, segwit-incompatible approach, all of which have serious downsides. The first, overt ASICBoost via modifying the block version reveals that you&#8217;re using ASICBoost, which would either (a) encourage other miners to also use the optimisation reducing your profits, (b) give the patent holder cause to charge you royalties or cause other problems (assuming the patent is eventually granted and deemed valid), or (c) encourage the bitcoin community at large to change the ecosystem rules so that the optimisation no longer works. The second, mining empty blocks via ASICBoost means you don&#8217;t gain any fee income, reducing your revenue and hence profit. And the third, rolling the extranonce to find a collision rather than combining partial transaction trees increases the preparation work by a factor of ten or so, which is probably enough to outweigh the savings from the optimisation in the first place.</p>
<p>If ASICBoost were being used by a significant number of miners, and segregated witness prevents its continued use in practice, then we suddenly have a very plausible explanation for much of the apparent madness: the loss of the optimisation could significantly increase some miners&#8217; costs or reduce their revenue, reducing profit either way (a high end estimate of $100,000,000 per year was given in the original explanation), which would justify significant investment in blocking that change. Further, an honest explanation of the problem would not be feasible, because this would be just as bad as doing the optimisation overtly &#8212; it would increase competition, alert the potential patent owners, and might cause the optimisation to be deliberately disabled &#8212; all of which would also negatively affect profits. As a result, there would be substantial opposition to segwit, but the reasons presented in public for this opposition would be false, and it would not be surprising if the people presenting these reasons only give half-hearted effort into providing evidence &#8212; their purpose is simply to prevent or at least delay segwit, rather than to actually inform or build a new consensus. To this line of thinking the emphasis on lack of communication from core devs or the desire for a hard fork block size increase aren&#8217;t the actual goal, so the lack of effort being put into resolving them over the past 18 months from the people complaining about them is no longer surprising.</p>
<p>With that background, I think there are two important questions remaining:</p>
<ol>
<li>Is it plausible that preventing ASICBoost would actually cost people millions in profit, or is that just an intriguing hypothetical that doesn&#8217;t turn out to have much to do with reality?</li>
<li>If preserving ASICBoost is a plausible motivation, what will happen with segwit2x, given that by enabling segregated witness, it does nothing to preserve ASICBoost?</li>
</ol>
<p>Well, stay tuned&#8230;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.erisian.com.au/wordpress/2017/07/10/bitcoin-asicboost-and-segwit2x-background/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
