Design errors Satoshi made
twitter.com
twitter.com
I once skimmed through Satoshi's code while I was in college and found this: https://github.com/bitcoin/bitcoin/blob/v0.8.2rc3/src/base58...
I've neither seen any such decision in any other project, nor have I come across any strong advocacy for such things online. FAIW, Satoshi might be a kick-ass UX designer too.
In a different tangent, do any of you remember or still see/make such decisions (mostly to build a better UX)?
https://www.flickr.com/groups/api/discuss/72157616713786392/
> Great summary. However all issues you mention are technical ones (mostly coding). I think the people that praise Satoshi or follow his "gospel" are more attached to his concept and design which is, in most cases, the White Paper.
Any software engineer will write buffer overflows, miss a few corner cases that break your model, or write hard-to-maintain code that needs to be refactored. However these issues are ephemeral, do not block the broader vision, and have since been fixed. I would even argue that it’s totally understandable that the initial PoC of Bitcoin was buggy and flawed. It should be expected of any first-try implementation of groundbreaking tech.
But if we're talking about design issues, there is one big one that everyone seems to be missing - and that is the Proof of Work incentive mechanism. The first issue with this is that it disproportionately rewards early adopters (both via difficulty increasing every 2 weeks and rewards halving every 4 years) and requires a constant addition of new adopters just to sustain the price (to counteract the deflationary nature of new coin generation), which makes it appear more like a traditional pyramid scheme than a new financial paradigm and may in the long term behave like one. The second issue is that this has led to the concentration of almost all of the wealth in a handful of anonymous and in many cases very shady characters in a completely unregulated market which has completely inverted the original goals of the project. The third issue is of course that Proof of Work is an environmental disaster.
His system solves a previously unsolved problem, but it has flaws. Do we know a better solution? Well, it's being worked on. However, Bitcoin has been here for ~10 years.
but yes the Satoshi as Gospel stuff is quite uncanny! Even the Bitcoin Core and Bitcoin Cash crowd debate each other over the meanings of Satoshi writings and then debate about the context! Cryptocurrency's regulatory problems will be solved by the IRS designating all of it as a religion.
Of course it was centralized power structures and societal authority that chose which religion we have today, and crypto is much less likely to obtain that.
Not only that but the power on the Bitcoin blockchain is directly determined by how much hardware you can buy and how specialized you can make this hardware. Consider that atm you can fit about 80% of bitcoin hash power on a single stage (about 11 people IIRC).
Of of the few actual debates between the two party's interpretation of the whitepaper is about running full nodes. Core believes that Satoshi expected anyone transacting on the network to run their own full node to validate each blocks even if the person isn't trying to mine (generate coins). The Cash party believes that Satoshi never intended end users to run a full node unless they were also trying to generate coins.
Other than that though, there doesn't seem to be much debate coming from the "Bitcoin Core" side. They seem to be of the opinion that the whitepaper describes a system that simply cannot work in it's original form. It's hard to know what people really think though because of the censorship (or strict moderation if you prefer) in r/bitcoin.
> Cryptocurrency's regulatory problems will be solved by the IRS designating all of it as a religion.
Does that mean they can apply for tax exempt status? ;)
„Core believes that Satoshi expected anyone transacting on the network to run their own full node to validate each blocks“
to
„Core believes that Satoshi expected anyone transacting on the network to BE ABLE TO run their own full node to validate each blocks (without needing a supercomputer or anything near that)“
But actually even this is not right. Bitcoin Core devs are taking distance to the words satoshi said... at least when necessary... they correctly say that time has passed and they try to do what‘s best for the project from todays point of view (mostly it is the same anyway, but they don‘t try to argue with „satoshi said this“... of course it happens now and then because many people work on bitcoin core, but these are not arguments with which you win the fight/consens)
[0] https://nakamotoinstitute.org/
[1] https://nakamotostudies.org/
[2] https://en.wikipedia.org/wiki/Monty_Python%27s_Life_of_Brian
> Early version of bitcoind allows you to spend any coin by using "op_true op_return" as signature.
Spending money involves prepending the input script to the output script, then executing and checking the result.
Normally the output script is something like "[pubkey] OP_CHECKSIG" (for the old P2PK), and the only input script to cause the combination to succeed would be the valid signature, such that "[sig] [pubkey] OP_CHECKSIG" succeeds.
With "OP_TRUE OP_RETURN" instead of [sig] it would also succeed as OP_RETURN would stop execution.
This was fixed by ensuring OP_RETURN stops execution AND fails the script.
> Input value were not [directly] covered by signature, making it impossible for offline devices to check how much is spent and paid in fees.
It is true that the input value (amount) being spent is not covered by the signature. This got fixed in Bitcoin SegWit signatures (BIP 143) and in Bitcoin Cash (mandatory).
Even in traditional Bitcoin, it is possible for offline devices to avoid being tricked by incorrect input values. The idea is to feed every input transaction into the device, let the device extract the input values, and let the device compute the transaction hash - instead of the unsafe shortcut of feeding the hash and value.
That's what sigops limits are for: https://curiosity-driven.org/low-level-bitcoin#signatures
The problem is that with twice as many sigops, you would also have to hash ~twice as much for each sigop. Hence O(n*m). A problem known "quadratic hashing".
This is solved by using a different way to hash the signatures that doesn't require full recalculation on each input.
In Bitcoin Cash it is fixed for all transactions; in Bitcoin it is only fixed for SegWit transactions so an attacker could still do this, by not using segwits.
If it's about money laundering, they had no problem doing that with the many currencies that already existed before Bitcoin.