34 comments

[ 2.1 ms ] story [ 77.6 ms ] thread
Direct democracy is great but it has problems. Even though I'm a technical user and early bitcoin adopter I still don't understand enough about the protocol itself to decide between the proposed solutions to transaction rate scaling.

So I just end up running, and implicitly supporting, the core client from my distro's repositories.

So you chose "representative democracy" option by having the distro maintainers decide for you

At least bitcoin gives options to chose...

It's about trust. No matter what software you are running you always trust somebody. Intel, gcc, maintainers etc. You can't verify everything yourself. But one screw up can ruin somebody's reputation and then you can decide to trust somebody else. Well, with a client. Not with the protocol though.

Most people simply can't have deep understanding of Bitcoin internals. It would be terrible if Bitcoin would be driven by democracy in the way that protocol becomes what most people want (yeah, I'm not hoping for karma with this one). Because then it would become the same as politics. It would drop down to marketing and manipulating memes by some small minority optimizing for its profit.

The protocol is decided by miners who optimize for their profit and Bitcoin success is in their best interest because their earnings depend on it.

Running a tweaked client like this seems really risky. Bitcoin is a consensus protocol. If clients disagree about which blocks are valid, you lose consensus. You're allowing attackers to inject controversial blocks that fork the history, resulting in double-spending or DOS attacks on you.
(comment deleted)
Which will only work if at least half the miner population agrees to use this tweaked client
DOS attacks are easy - just make tons of bogus transactions in super-size blocks. Other miners will discard the block immediately for being too large, but this client will be stuck verifying all the transactions. That attack doesn't require anyone else to agree.
Actually around 75%
51% is guarantees that over infinite time consensus will be achieved. 75% is just a stronger guarantee that it will with higher probability come to consensus in a shorter time.
This still exposes you to fake confirmation attacks. Any miner can give you a block that follows this clients rules and as long as most miners aren't following these rules, he can guarantee the block will be overwritten (reorged out). This allows cheaper double-spend attacks.
"Personally, I’m in favor of global adoption, but I don’t really care if it is used for more than just settlement."

If you want global adoption, why not go all the way?

Personally, I will never use bitcoin unless I have to, because I don't trust much currency these days, much less a currency/ETF that is used for illegal activities, that you had to "get in early" to make any money off of, and that people have had problems with or need to hack clients for because of problems with its definition.

I think eventually we will "regress", although I cringe using that word because I think it was always a better option, to trading and bartering directly without some flawed and inappropriate way to represent value.

The things that really matter for trade are basically services, products, resources, or food, etc. for sustenance. We should be able to share these things, and for those that don't want to share or want a workable system around sharing, they can trade.

Sure, our society's not really setup for this anymore at global scale, although we do trade services and products both at micro and macro levels. But, I think if we keep relying on (virtual) currency or similar, whether it be dollars, euros, yen, rubles, bitcoin, or anything else, then we are just setting the chessboard for something to completely screw the system.

In the end, there are things that matter, and things that don't. Money for the sake of money never mattered. And even if you think it matters, you don't matter to it. Love and life are what matters. There is no virtual currency for those things.

> Personally, I will never use bitcoin unless I have to, because I don't trust much currency these days, much less a currency/ETF that is used for illegal activities, that you had to "get in early" to make any money off of, and that people have had problems with or need to hack clients for because of problems with its definition.

You're in luck! I think USD is just what you need. It's never been used for illegal activities, and there are no clients built on top of it that add extra layers of abstraction and bring with it their own sets of problems. In fact, you can start collecting USD tomorrow and have just as likely of a chance of being rich as if your family started collecting it when they "got in early"

And it never had problems of definition, like being suddenly and unilaterally unpegged from other assets.
The problems we now see with the global markets and currency exchange system result from trade-offs made to solve historical problems.

One of the major problems is human neurophysiology. The median market participant cannot keep track of an entire matrix of the relative value of goods and services, availability of supply, and such, after the number of distinct market options pass a certain threshold. That table grows at O(n^2). So the market chose the m commodity goods with the most universally stable demand to act as currency, and the table then grows at only O(m^2 + n), which is much more manageable.

So if you brought butter and milk to the market, and took away flour and eggs, instead of needing to know 16 values, you traded your goods for coins and your coins for goods, and only needed to know a minimum of 1 values for each of the 4 goods, plus all the exchange rates between coins.

We don't actually need to do that any more. Computers are great at remembering huge quantities of numbers, and algorithmically traversing graphs. In theory, you could add a node to the market graph that describes the good or service that you offer, add a node that describes the good or service that you want, and a computer could grind out a solution that gives everyone in the trade chain as much of what they want as possible, for as little as they can spare of what they offer.

The default system as it is now is that everyone in the US always has a want open for USD, with no numeric cap, and usually also has an offer open for as many USD as they can afford to spend. So when you offer something, someone will pay USD for it. When you want something, you give USD for it. You don't have much computing power to waste on graph traversal, and certainly aren't trying to maximize utility for anyone other than yourself. So you don't automatically get the best possible deal.

When you rely on a computer network to do all the heavy lifting, you don't need your default settlement currency to be the same kind that the local ATMs spit out. You could decide that you would accept unlimited quantities of USD, EUR, GBP, .9167 Au, .4000 ethanol, bitcoin, litecoin, dogecoin, or etherium. Just like that, you're writing code for a pizzeria, and some mason jars filled with 80-proof appear on your back porch. You have no idea how the pizzeria connects with the distiller. You can only assume that the distiller wanted some pizza, and the pizzeria wanted software-authoring services rather than illegal liquor. Since your code is worth more than the distiller's pizza, the pizzeria also gives you the barbecue chicken and sweet onion pizza you said you wanted and some USD. Some bitcoin appears in your wallet, probably from someone else who wanted pizza, but couldn't get it directly from the pizzeria because they didn't want to accept bitcoin. No natural human trade network could ever routinely clear multiparty trades that complicated. But doing huge quantities of tedious and complex math is a cinch with computers.

As soon as enough people commit to accepting alternate currencies, or bartered goods and services, a whole lot of trades that had previously been stalled, waiting for a payment solution, start clearing.

The existing currencies have always been used to reduce the otherwise burdensome cost of trade. If you annihilate that cost with automation, you don't need the common currency any more. That pizzeria can start to pay its suppliers, contractors, and employees with pizza IOUs, and those circulate as another form of currency, backed by both the promised producer of the pizzas and those who want to eat them. Without the former, the IOUs could not exist, and without the latter, they would be worthless.

That's interesting, but I'm not sure where it ends up.

You say "a computer could grind out a solution that gives everyone in the trade chain as much of what they want as possible, for as little as they can spare of what they offer." But if this is dynamic, and trades using different combinations and subsets of the same goods give you different quantities of each, then arbitrage is inevitable. Even on a personal basis: if I know that my software gets me four pizzas in another place, and just two here, I'll trade it in that other place and get two pizzas as profit.

If you eliminate those differences, such that trading e.g. offering 2 pizzas always ends up getting 4 mason jars of 80-proof, then you can calculate all the values against a single good - and you've just created a new currency :)

For a bitcoin newbie like me, is this not like getting a dollar bill, change the picture on the front to my face and calling a new currency?
It's not the money that's being changed, it's the rules regarding transactions and accounting. This client will accept more transactions per block. Blocks are mined at a semi-regular rate averaging <10 minutes. So this allows tons of transactions to be added.
No. His software fork is participating in the same Bitcoin network as everyone else.

This software fork is not the same as a network fork, and definitely not the same as creating an entirely new network that just happens to run the same software.

> No. His software fork is participating in the same Bitcoin network as everyone else.

for now

It's more like introducing a new $10.000 dollar bill that only you accept, but no-one else.

He's making it sound like Bitcoin is all about freedom of choice, when in reality a small group of ~6 Chinese miners decide what the block size is.

It's a little more complicated than that. Assuming you are correct about the 6 Chinese miners controlling > 50% of the hash power they could indeed collude and support a new block size.

When the first large block arrives the blockchain splits effectively creating a new currency. Old Bitcoin and New Bitcoin.

It's the Bitcoin infrastructure in terms of exchanges and wallets that will decide which of these coins will be the winner.

Basically if you have 1 Bitcoin before, then after the split you will have 1 Bitcoin in each chain.

The market will decide which of these coins will hold value. It's not the first time the blockchain has split.

That's a common misconception. The miners can do what they like, but if they start mining blocks that the exchanges (and everyone else) don't accept the blocks they mine, then they can't sell their coins. Bitcoins democracy comes not from what the miners think, but what the people who accept bitcoin as payment think.
Almost like every other currency?
That's what I was thinking. As a lowest common denominator, bitcoin, or any other thing for that matter, can be accepted as money if the other party accepts it in exchange. If no one accepts it, it is worthless.
> But with bitcoin, I can implement any change I want, immediately, just by modifying the software.

No, you've created software that works the same now, but could cause a fork. Which means it's not a change to bitcoin, but a new software version./

> No, you've created software that works the same now, but could cause a fork.

Where is the problem? As far as I understand it (but prove me wrong!) in the extreme case we'll have two Bitcoin blockchains: One without the block size restriction and one with. In each of these two blockchains there will be a consensus (that's what the Bitcoin protocol is in principle about). In the "typical" case the supporters of one of these two forks will stop mining in it, since they see that it is "not mainstream enough". If both blockchains have lots of supporters behind, we'll have "two different bitcoins". Here it can get interesting, since now we have "two different products/bitcoins", where the market will have to decide (and in the extreme case this ability to choose will damage bitcoin - here also things get interesting).

Why was a limit made at all?
Because every transaction has to be stored forever, on every single client. This was the easies method to prevent somebody from makeing the blockchain serveral terabytes.
Not exactly. You can prune txs if you don't need to keep them for archiving purposes. But you have to validate the whole blocks to verify your own payments. You cannot selectively validate portions of blocks ("shard blockchain") and still have perfect proofs of validity of payments to you.

If every block was capped at 100 Gb and there were miners creating such blocks, then only a handful of companies would be able to validate the blockchain and therefore mine and receive payments. That would reduce censorship-resistance and make the system less decentralized.

In the old days, when people kept ledgers, they wouldn't tally up every line from the first page of their first ledger book all the way up to the last line entered. They would instead occasionally write a special summary line that encapsulates all the changes made since the last summary.

At minimum, there would be a total at the bottom of each page, which would be copied to the top of the next. That way, you only had to deal with one page of the ledger at a time, rather than all the pages you have ever written.

And yet, if you really wanted to, you could audit every transaction you ever entered. They were still there, but you didn't need to keep track of business from 10 years ago to get things done today.

Is there no way for bitcoin to start a new page of its ledger by writing down the verified totals from all prior transactions? Satoshi wrote about pruning in section 7 of the design paper, but as far as I know, no pruning solution has been implemented.

Why not? I'm not crypto-savvy enough or familiar enough with bitcoin to know why you can't write a block that rolls up the entire history of the blockchain in such a way that you only need to look at previous blocks if you want to verify the summary block itself. It would almost literally be just a list of all the addresses and the total amount each one could spend.

Every time I think I understand Bitcoin a little bit something like this comes out and washes that feeling away