0

The goal of bitcoin is to serve as p2p electronic cash. But it still needs a 3rd party (miners) to approve/authorize/record/track/store transactions. The difference is this authority is decentralized and distributed.

Why is it not a complete p2p (like gold, fiat cash) electronic cash? Is it not possible to create such system with cryptography? If yes what are the difficulties?

2

it still needs a 3rd party (miners) to approve/authorize/record/track/store transactions

Role of miners vs other participants

In the beginning miners were not a third-party, every wallet owner was also a miner, all peers performed the same roles.

Nowadays mining has become a separate activity but miners do not really have any special control over the bitcoin network. They have a specialized role but I believe their influence over consensus rules carries the same weight as ordinary wallet nodes. Its just that a mining business deploys a lot more nodes than the average wallet owner does. In any peer-to-peer system, even a completely homogenous one, one person or organisation could deploy a large number of nodes.

approve/authorize/record/track/store transactions

approval

All nodes approve transactions, if all ordinary wallets disapprove of blocks from a miner then that miner loses money.

authorisation

There is no authorisation in the Bitcoin network protocols or consensus rules so far as I know.

The only action similar to authorisation is the P2P process of proving ownership of private keys in order to prove the right to spend the outputs of a transaction. Every wallet does this.

Recording transactions

Miners are responsible for recording transactions in the blockchain. So they do have a special role here. Bitcoin relies on no single organisation having more than 50% of the total available hashing power.

Tracking transactions

All full-nodes track transactions (i.e. keep local records of transactions in blockchain blocks as well as maintain an in-memory pool of unconfirmed transactions). Miners have no special role here.

Storing transactions

All full-nodes store a complete list of transactions from which blocks of fully-spent transactions are optionally pruned. Miners have no special role here.


Why is it not a complete p2p (like gold, fiat cash) electronic cash?

Gold is not P2P in the modern world. Generally people who buy and sell gold directly do so in the form of coins or ingots - the production of coins and ingots is performed by a limited number of businesses not by the buyers and sellers. Often it is governments that mint gold coins. Often governments regulate the gold market. Gold assayers are often relied on by buyers.

Fiat cash is not P2P. Banknotes and coins are typically created by governments, not by buyers and sellers. The amount of fiat cash in circulation is typically managed by governments. Inflation rates are set at the whim of politicians.

3
  • Regarding the gold and fiat cash, I meant from the transaction perspective its a complete p2p. No 3rd party needed for a transaction. And also with gold I had the history in my mind, like in the old days the merchants used gold to trade stuff. – Mani Bharathy Apr 18 '20 at 20:06
  • And also the top 10 or 20 mining pools combined have more than 50% of the hashrate of the network which is scary to me. Any thoughts on this? – Mani Bharathy Apr 18 '20 at 20:47
  • @Mani: Your question is whether Bitcoin is "Full P2P". This Q&A website is different from a discussion forum, new questions should be asked separately and comments are temporary and disposable - they are intended to suggest improvements to questions/answers or to request clarification of points that are unclear. Don't forget to try the search facility for questions such as 51% – RedGrittyBrick Apr 18 '20 at 21:38
1

The existing answer is very good, but I think it does not answer this part of your question:

Is it not possible to create such system with cryptography? If yes what are the difficulties?

Indeed, because the problem isn't one related to cryptography, but physics.

Imagine, in a hypothetical miner-less P2P currency system with all the properties you hope for, that one person creates two transactions that spend the same money twice. The system needs something or someone to determine which of these is accepted, and which one isn't. My understanding of what you're asking for is that it isn't someone - instead, there should be some global, fair, mechanism that makes this determination.

The obvious criterion to use is time: the first of the two wins. Unfortunately, and counter to many people's intuition, there is no such thing as a objective global ordering of events in a distributed system.

Say someone creates two conflicting but otherwise legal transactions (where each individually would be valid if the other was absent), and sends this transaction to two nodes in the network, one in Australia, and one in North America, simultaneously. It's surprising, but these two peers literally have no way to determine which of them saw the transaction first, due to the fact that communication between them takes a non-zero amount of time. The Australia one will think it was first, and the North America one will think it was first, and nothing one can tell the other to prove them wrong. In short: each machine has its own local clock, and order events as they see it, but there is no global clock.

Thus, time cannot be used to determine which of two conflicting transactions is valid. Perhaps another mechanism can, but it's hard to imagine what that would be.

0

But it still needs a 3rd party (miners) to approve/authorize/record/track/store transactions. The difference is this authority is decentralized and distributed.

I would say this is not quite correct; miners do not really have 'authority' over the network, at least not in the ways that term would usually infer.

When a transaction is submitted to the network, the miners that hear about it will in pretty much every case have no idea where it came from, so the ability to selectively censor is extremely low. This doesn't mean that miners can't arbitrarily censor transactions, but doing so would mean lost opportunity cost - and that is a big deal in a hyper-competitive industry with slim margins! Since mining is permission-less to join, we should expect that if miners are arbitrarily censoring transactions and losing revenue because of it, eventually some other miner will come online to grab the profits that the other miners have ignored.

These incentives remove any sort of 'authority' an individual miner could have over the network. Thus collectively, miners are not an 'authority' in any meaningful sense of the word.

A majority attack breaks these assumptions, but it is incredibly expensive, difficult, and counter-productive to launch such an attack.

Why is it not a complete p2p (like gold, fiat cash) electronic cash? Is it not possible to create such system with cryptography? If yes what are the difficulties?

In the physical world, it is fairly easy to imagine how a P2P cash system would work: you just trade physical items, that represent some amount of value. When someone hands you the item, you can inspect it to ensure it is authentic.

But in the digital world, this problem gets really tough. It is very easy to copy/paste a digital file, so if I had a file that said This is worth $10!, I could just copy it 100 times, to create $1000 in value. So if someone paid you using one of these files, how could you know whether or not it was a copy?

The obvious solution is to create some sort of central authority, which keeps track of the balance of individual users. But this existence of a central authority is a security risk to users, so it doesn't look like a great fix. The general formalization of this problem is called the Byzantine General's Problem, and it was an unsolved question in computer science for a long time.

So we might imagine that we could just create a ledger that includes all transactions: everyone will watch the ledger, and update it as transactions are made. But there is still a problem! How will everyone agree upon the ordering of transactions? What if a user sends two payments using the same money, at the same time? Even in the case that everyone is acting honestly (unlikely), network latency alone could cause issues. Notice that the issue here is transaction ordering, we are in need of some sort of chronology for transactions. So how do we keep everyone in sync, running on the same clock and thus able to agree on the ordering of transactions?

Well, one day back in 2009 Bitcoin was released to the world, and offered a probabilistic solution to the problem! By forcing miners to spend a real-world resource in order to progress the network, we arrive at a solution that creates a sort of 'clock' to record when transactions happen. You can imagine each new block as a 'tick' of the clock, in a simple sense.

And so in Bitcoin, everyone has the ledger, and they can all agree on the ordering of transactions on it. Miners are necessary for this ordering to take place, but are otherwise not in any special position of power on the network. Without mining, it is unclear how we would accomplish creating this chronological ordering in a decentralized manner.


All of that said, you may be interested to learn more about the Lightning Network. While the lightning network is still built upon on-chain bitcoin transactions, each individual lightning network payment can be completed in a purely P2P fashion. No information needs to be broadcast to anyone other than the relevant channel participants, so payments can be completed in a very private manner.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.