<oembed><type>rich</type><version>1.0</version><author_name>npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_name><author_url>https://nostr.ae/npub1f2nvlx49er5c7sqa43src6ssyp6snd4qwvtkwm5avc2l84cs84esecrwet</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-07-04&#xA;📝 Original message:On Fri, Jul 4, 2014 at 3:27 AM, Andy Parkins &lt;andyparkins at gmail.com&gt; wrote:&#xA;&gt; Hello,&#xA;&gt;&#xA;&gt; I had a thought after reading Mike Hearn&#39;s blog about it being impossible to&#xA;&gt; have an ASIC-proof proof of work algorithm.&#xA;&gt;&#xA;&gt; Perhaps I&#39;m being dim, but I thought I&#39;d mention my thought anyway.&#xA;&#xA;Thanks for sharing. Ideas similar to what you&#39;re describing have come&#xA;up a number of times before.&#xA;&#xA;I believe the particular formulation you&#39;re suggesting is not workable&#xA;for a number of reasons.&#xA;&#xA;If I understand what you&#39;re proposing correctly, it that it has very&#xA;high (nearly symmetrical) verification costs, all the verifiers have&#xA;to also hash all of that information to check the result. It is&#xA;imperative for the system that the proof of work be cheap to verify,&#xA;since every system needs to verify it and have no incentive to skip&#xA;verifying it, needs to use it to block DOS attacks, etc.&#xA;&#xA;I believe this design would also completely preclude lite nodes (SPV&#xA;nodes, section 8 of https://bitcoin.org/bitcoin.pdf), which are the&#xA;most popular Bitcoin wallets. SPV wallets do not need to store the&#xA;blockchain, in fact they technically need no storage at all— and are&#xA;secure, given some assumptions about the decentralization and honesty&#xA;of mining. It would make Bitcoin more or less infeasible to use on&#xA;mobile devices and force many people using wallets onto centralized&#xA;services providers which they&#39;d have to trust to process their&#xA;transactions.&#xA;&#xA;Another longer term side effect of making verification costly is that&#xA;it makes it much less reasonable to provide zero knoweldge proofs for&#xA;data in Bitcoin— closing off a whole set of useful tools like strongly&#xA;private proofs of solvency, and strongly private bitcoin-backed&#xA;pseudonymous identities.&#xA;&#xA;I also believe this would also break pruning (section 7 of&#xA;bitcoin.pdf): Right now a fully validating node can be created that&#xA;uses only on the order of 1GB of disk space, without pruning the&#xA;number is 25 GB and the gap is just going to grow over time. The&#xA;elimiating of pruning would be a major scalability hit.&#xA;&#xA;A smaller, but potentially still important issue is that the proposed&#xA;proof of work function would be expensive to run even once. This may&#xA;result in it not being effectively progress free— if a miner would&#xA;typically only make a small number of tries before success then it&#xA;would make mining like a race where faster miners would have a&#xA;super-linear advantage over others instead of statistically rewarding&#xA;miners fairly.&#xA;&#xA;There are ways to make what I think you&#39;re trying to accomplish work&#xA;with fewer tradeoffs that have been suggested before (see&#xA;https://en.bitcoin.it/wiki/User:Gmaxwell/alt_ideas &#34;POW which involves&#xA;queries against the UTXO set&#34;)... the general idea there is that the&#xA;candidate block header is used to randomly select one or a few random&#xA;entries in the set of spendable coins (UTXO set), which are then&#xA;included in the hashing. If the UTXO set is also committed in every&#xA;block via a hash tree when the miner finds a solution he can also&#xA;extract a compact membership proof that shows the UTXO he included in&#xA;his hashing were the right ones.  This way the work can still be&#xA;verified by systems that don&#39;t have the blockchain (though they may&#xA;use 10x more bandwidth— unfortunate on its own and perhaps enough to&#xA;still make zero knoweldge proofs less practical), and because the&#xA;queries are against the UTXO set instead of the whole blockchain it&#39;s&#xA;not incompatible with pruning.&#xA;&#xA;Though even with those fixes, I am far from sure that this would be&#xA;helpful: It would not preclude specialized high efficiency hardware&#xA;for mining (see https://download.wpsoftware.net/bitcoin/asic-faq.pdf&#xA;for set of general arguments in this space), and the hardware that&#xA;existed may not be actually useful for validation in much the same way&#xA;that you cannot use existing mining hardware as a general sha256&#xA;accelerator.&#xA;&#xA;This specialized hardware might look more like an massively parallel&#xA;flash or dram array with integrated computation (e.g.&#xA;http://www.eecg.toronto.edu/~dunc/cram/ )— and these differences may&#xA;not all be good: by shifting costs from operating energy to gate-count&#xA;it moves the total costs into hardware which is one-time and amortized&#xA;over use (generally for modern process, compute bound equipment costs&#xA;more in energy than the marginal costs in fabrication after a month or&#xA;two of operation), potentially creating an advantage for&#xA;earlier/larger participants. Plus a CRAM like design might also have&#xA;massive throughput advantages compared to commodity hardware operating&#xA;in a bus limited mode its hard to say until millions have been sunk in&#xA;trying to optimize it, but even if it does not— one of the arguments&#xA;made in asic-faq.pdf is because mining should be, in theory, nearly&#xA;perfect competition even the small advantage in costs from eliminating&#xA;unneeded peripherals can basically drive everyone without that&#xA;advantage out.&#xA;&#xA;As an aside, there is an altcoin &#34;boolberry&#34; that implements something&#xA;where 2MB of data is extracted from the blockchain and then mined one.&#xA;But because the extraction is not in the inner-loop mining pools just&#xA;send it out to miners... and of course it could be uploaded to a&#xA;dedicated mining coprocessor (or FPGA, or GPU) if anyone ever got&#xA;around to doing the optimizations... it also has most of the other&#xA;issues I raised above relative to your proposal. It&#39;s still too new to&#xA;see what failure modes it suffers the most from first, and the&#xA;altcoins that it is mostly competing with suffer from their own ill&#xA;advised (_very slow_) POW.&#xA;&#xA;&gt; Apologies in advance if this is a stupid idea.&#xA;&#xA;No need to be sorry— talking about these things is how people learn.&#xA;While I don&#39;t think this idea is good, and I&#39;m even skeptical about&#xA;fixed versions— I promise you many other people were thinking similar&#xA;or even less useful things and will find the discussion interesting.</html></oembed>