4 ms·
This analysis is obviously wrong, if the important thing was establishing a global clock, you could just use GPS receivers. Ordering transactions works also wit
by danbruc 9y ago
This analysis is obviously wrong, if the important thing was establishing a global clock, you could just use GPS receivers. Ordering transactions works also without proof of work, just including a hash of an existing transaction or block in a new transaction or block and this proofs the order of those transactions or blocks relative to each other. No clock required at all. And also exactly what Bitcoin does but which is totally unrelated to the proof of work.
I guess this has been said countless times before, but the role of proof of work is to establish a somewhat strange kind of identity among anonymous participants. If you had a trusted list of all participants, you could simply grant everyone one vote per block and decide by majority whether to accept or reject a block and get rid of the proof of work altogether. Of course using some cryptography to establish authenticity of votes and such.
But because Bitcoin is anonymous - or pseudonymous if you insist - there is no such list of participants and you need a mechanism to prevent participants from casting an arbitrary number of votes by essentially inventing identities. And this is what proof of work does, it limits your ability to invent identities and cast as many votes as you would like by making casting a vote really hard respectively expensive. The capital costs and the energy consumption of your warehouse full of ASIC miners become a proxy for your identity via their hashing power.
And that's it, nothing more, nothing less. The rest follows from here, for example a 51 % attack is just someone using a lot of money to buy more than half of all the available identities in the Bitcoin system granting him the majority of the available votes.
- pdpi 9y ago> This analysis is obviously wrong, if the important thing was establishing a global clock, you could just use GPS receivers Is it so obviously wrong? From the first paragraph of the introduction to Satoshi's Bitcoin Paper: "In this paper, we propose a solution to the double-spending problem using a peer-to-peer distributed timestamp server to generate computational proof of the chronological order of transactions". GPS is a trusted system, whereas bitcoin is designed to be completely trust-less. The reason why timestamping is a difficult problem is that if I publish two transactions spending the same money, the network must agree on the order of events (which is to say: must assign different timestamps to the two transactions) so that one is considered valid, and the other invalid. Doing this without proof-of-work leaves you vulnerable to Sybil attacks, where I can pretend to have an overwhelming amount of nodes in the consensus, and vote for the more favourable (to me) transaction to be considered the canonical one.
- danbruc 9y agoI just looked into the paper [1] for the first time but it says exactly what I wrote. Hashes in the blocks linking to previous blocks establish the ordering of transactions, proof of work limits the voting power of participants. The terminology could be somewhat more precise in distinguishing between the different components and their roles but it is still rather unambiguous about what does what. Chapter 3 - Timestamp Server A timestamp server works by taking a hash of a block of items to be timestamped and widely publishing the hash, such as in a newspaper or Usenet post [2-5]. The timestamp proves that the data must have existed at the time, obviously, in order to get into the hash. Each timestamp includes the previous timestamp in its hash, forming a chain, with each additional timestamp reinforcing the ones before it. Chapter 4 - Proof-of-Work The proof-of-work also solves the problem of determining representation in majority decision making. If the majority were based on one-IP-address-one-vote, it could be subverted by anyone able to allocate many IPs. Proof-of-work is essentially one-CPU-one-vote. The majority decision is represented by the longest chain, which has the greatest proof-of-work effort invested in it. If a majority of CPU power is controlled by honest nodes, the honest chain will grow the fastest and outpace any competing chains. [1] https://bitcoin.org/bitcoin.pdf https://bitcoin.org/bitcoin.pdf
- gtrubetskoy 9y agoYou are right that PoW does not establish order. The PoW "ticks" have a temporal order, but the way it is represented in the blockchain is cryptographically using a Merkle tree, and there is no "rule" that the real life appearance of "ticks" must match the blockchain order. Note that the paper says "_also_ solves", implying that the "representation in majority decision" part is secondary. If you think about it, the winning miner does not really get to decide anything at all, since the block has to exist before the winning SHA is found since it is the input to the SHA.
- danbruc 9y agoI would argue the »also« is misplaced, that is really the only thing thing that the proof of work does. If you read the chapter, there is only an explanation how it works before the »also« but nothing else that is solved by the proof of work. And the miner does get to decide which transactions get included in the block, it creates the block, the block does not exist before.
- IncRnd 9y agoYour post is very dangerous from a security perspective and may misinform many people who are still learning about digital identification. > the role of proof of work is to establish a somewhat strange kind of identity among anonymous participants. The role of proof of work is to make the creation of information one-way based upon a pre-specified amount of work. Therefore, in a properly constructed system, a participant cannot steal the results created by another party. Identification is generally accepted in the security community to come from something you are (biometrics), something you have (bank card), and something you know (pin for your bank card, password, etc). For safety, two separate classes are normally and simultaneously required for identification, hence the term two-factor id. An identity is something entirely different from work. Proof of work, since it is one-way, proves that work was performed. This has nothing to do with identity, which cannot be proved by work. Something You Can Do is not a new category of identification but a statement about processing power. This can be seen by simply sharing the private key of a wallet. In two factor identification, you could make a copy of someone's eye or face to try to get into a system, but two factor identification would stop you. > And this is what proof of work does, it limits your ability to invent identities and cast as many votes as you would like by making casting a vote really hard respectively expensive. Proof of work doesn't have anything to do with the ability to invent identities. It ties the result of processing power to keys. Digital keys are not identities any more than physical keys are houses. To construct a house, you need to perform the work. To get into a house, you need a key. To take possession of a key you need to identify yourself. > a 51 % attack is just someone using a lot of money to buy more than half of all the available identities in the Bitcoin system granting him the majority of the available votes. A 51% attack is when someone who may or may not use a lot of money forces an alternate version of a blockchain data structure by having 51% or more of the processing power. This has nothing to do with purchasing identities. You can test this for yourself. If you create two bitcoin wallets, you clearly didn't create two digital identities. You are the identity in possession of two keys for two separate wallets. Besides, a 51% attack isn't 51% of the nodes but 51% of the processing power, which could be only 1 powerful node. Those are entirely different.
- danbruc 9y agoThe role of proof of work is to make the creation of information one-way based upon a pre-specified amount of work. Therefore, in a properly constructed system, a participant cannot steal the results created by another party. That makes no sense, or the meaning is at least not obvious. What does it mean to make creation of information one-way? Proof of work is just a vote allocation scheme. We want to reach consensus about what the transaction history is and do so by a majority vote and therefore we have to decide who gets how many votes. This alone has no single obviously correct solution, for example, if I have a company with a company account, do I get one vote for the company or do I get a thousand votes because the company has a thousand employees? Or maybe votes proportional to the amount of money in the account? And if the system is anonymous it gets even harder because there is no easy way to know who cast a vote or if someone cast a million votes. And that is the way in which I used identity, the identity of an entity allowed to cast a specific amount of votes. And that is what proof of work does, a collection of mining hardware establishes an entity with a voting power proportional to its hashing power. Identification is generally accepted in the security community to come from something you are (biometrics), something you have (bank card), and [...] An identity is something entirely different from work. Proof of work, since it is one-way, proves that work was performed. This has nothing to do with identity, which cannot be proved by work. As explained above, I was not using identity in the computer security sense but in the sense of the identity of entities with a certain amount of voting power. And all your other remarks essentially also hinge on a misunderstanding of my use of identity, if you read it as entities with voting power it will certainly make more sense.
- zodiac 9y agoI think you have to be more precise when making claims of this sort; in this case "establishing a global clock" is not very precisely defined. Suppose we have an oracle that implements this protocol: it publishes a new public key every hour, and at any time someone can present it a blob of data which it will sign with the private key corresponding to the current hour's public key. Furthermore, you can query it for the set of all blobs it has signed with a given public key. It is obvious that one can implement a distributed ledger with the only security assumption (for each user) being "I trust this oracle" and "I can determine the current time". OTOH, suppose we have a weaker oracle which implements this protocol: every hour it publishes a new blob of data. Then it is probably not possible to implement a distributed ledger using only the weaker oracle. It is well-known that pure cryptography is strictly weaker than cryptography + economic assumptions or cryptography + subjectivity assumptions, due to some inherent information-theoretic asymmetries. For instance, pure cryptography allows us to prove that the owner of the secret key of a given public key has signed a message, but it cannot let us prove that the owner of a secret key has NOT publicly signed a message. A way to do this by relying on economic and non-coordination assumptions is to offer a public bounty (ie I will pay some USD) to anyone who can provide the signature and then to wait some time to see if anyone turns up. Another example: with pure cryptography it is easy to produce "private randomness" (say between 2 people) by using a commit-guess-reveal scheme, but a third party later who cannot trust that the two were not colluding cannot be convinced that the output was random. But once again this is possible with economic assumptions. As for the distinctions between different kinds of non-cryptographic assumptions, I don't think it's clear-cut. Timestamping is strictly weaker than proof of publication (https://petertodd.org/2014/setting-the-record-proof-of-publication#real-world-proof-of-publication-the-torrens-title-system https://petertodd.org/2014/setting-the-record-proof-of-publi...), which is equivalent in strength to a distributed ledger. I'm not sure the anti-sybil assumptions have been modeled as such, but it is well-known that anti-coordination assumptions are needed even if we assume no double-spends are possible (e.g., a pool of 70% of btc hashpower can profitably censor the other 30% by orphaning their blocks; no double-spend needed!)
- danbruc 9y agoI think you have to be more precise when making claims of this sort; in this case "establishing a global clock" is not very precisely defined. I meant this in the straight forward sense and what GPS essentially provides, a means to globally agree on the current time with a reasonable high resolution. Suppose we have an oracle that implements this protocol: it publishes a new public key every hour, and at any time someone can present it a blob of data which it will sign with the private key corresponding to the current hour's public key. Furthermore, you can query it for the set of all blobs it has signed with a given public key. You don't state it explicitly but from »[...] the set of all blobs it has signed with a given public key [...]« I assume more than one blob can be signed with any key pair and I would then also assume every user can get an arbitrary number of blobs signed with each key pair, right? Or did you imagine a limit per user or key pair? It is obvious that one can implement a distributed ledger with the only security assumption (for each user) being "I trust this oracle" and "I can determine the current time". This is, at least to me, not obvious and I tend somewhat towards thinking is it not possible or at least not easy. If my interpretation from above is correct and there is no limit on the number of blobs that can be signed with each key pair then it seems to be at least non-obvious how one could reimplement Bitcoin on top of the oracle. Everyone could just fork and create arbitrary long chains of blocks because there is no proof of work slowing the participants down which I turn means that the longest chain is not necessarily the one that the majority considers valid. Only if the oracle had a limited capacity and all participants flooded the oracle with request as fast as possible one could hope that the majority would be able to create the longest chain assuming the oracle processes all requests fairly. Maybe there is a way [substantially different from Bitcoin] to build a distributed ledger on top of this oracle but, as already said, it is at least to me not so obvious that I could quickly figure out how to do so.