I think the confusion stems from permissioned vs permissionless blockchain, and the comment you replied assumed you were talking about one instead of the other. I find the plain term "blockchain" rather vague in that regard.
No, that's what a write-ahead-log is, or quite a few various databases, or a git branch are.
The key innovation of the blockchain was the use of proof-of-work in order to associate an amount of computer-time with a given block, and then pick, from competing views of a blockchain, which view took the most energy to arrive at... all while being resistant to a small number of subversive actors.
In short, the blockchain solved the Byzantine Generals’ Problem, and happened to use a append-only cryptographic ledger as part of it.
Proof of Work doesn't determine which view took the most energy to arrive at. What it does is give a self-adjusting brute force cracking problem that takes 10 real-world minutes to perform, regardless of the amount of energy put in. The assumption is that 10 minutes is enough for even the slowest links of the network to get an up-to-view of the world, preventing double-spends or similar issues.
> The key innovation of the blockchain was the use of proof-of-work in order to associate an amount of computer-time with a given block
Correct. In other words, proof of work is only a tool to make everybody slow
in producing data while keeping everybody fast in verifying it.
> In short, the blockchain solved the Byzantine Generals’ Problem,
No. It's a common misconception, but in fact it does not solve Byzantine
generals problem, with the simplest reason being that the problem requires the
solving protocol to terminate (blockchain does no such thing).
> and happened to use a append-only cryptographic ledger as part of it.
The correct terminology is not "ledger", but "document timestamping". You
don't need to record transactions in blockchain, they can be any statements.
Cryptographers already had such systems, except that each of those required
trusted third party to produce timestamps.
I agree that blockchain is overhyped right now, but I don't understand the common sentiment on HN that "you don't need a blockchain, just an append-only decentralized database with Merkel root logs", as if that's something easy to build. What is this hypothetical non-blockchain, where are you going to get it, and why not just use a blockchain if that's what you need?
Another one out there uses postgres. It turns out that you can use traditional databases in many cases where you think you need a blockchain, and you'll be able to waste vastly less energy on proof-of-work and vastly less time dealing with the terrible mess that is "blockchain".
The reason not to use "blockchain" is that it has 200 definitions, all of them full of people trying to get rich, not getting things done.
Databases have long-since solved the problem of storing and distributing data.
Distributed stores like etcd, zookeeper, and so on have long since solved the problem of duplicating data.
Very few people need byzentine fault tolerance (due to having a large number of untrusted actors with write access), which is the only time the additional complexity blockchain includes is actually useful
> I don't understand the common sentiment on HN that "you don't need a blockchain, just an append-only decentralized database with Merkel root logs", as if that's something easy to build.
In my case, this sentiment accompanies an implementation in the form of an easily-deployable open source microservice.
If it's too hard for people to build, they can use what I wrote.
> What is this hypothetical non-blockchain, where are you going to get it, and why not just use a blockchain if that's what you need?
That's the tx/s limit on Bitcoin today? I can do hundreds of writes per seconds to Chronicle on a modest VM without sweat. This is possible because it's centralized, albeit supports mirroring (i.e. replication) and cross-signing.
CiPHPerCoder|8 years ago
This is a handy reference to decide if you're building a cryptographic ledger or a blockchain: https://gist.github.com/joepie91/e49d2bdc9dfec4adc9da8a8434f...
hiq|8 years ago
In addition to this github gist, I like http://doyouneedablockchain.com/ .
TheDong|8 years ago
The key innovation of the blockchain was the use of proof-of-work in order to associate an amount of computer-time with a given block, and then pick, from competing views of a blockchain, which view took the most energy to arrive at... all while being resistant to a small number of subversive actors.
In short, the blockchain solved the Byzantine Generals’ Problem, and happened to use a append-only cryptographic ledger as part of it.
Jasper_|8 years ago
dozzie|8 years ago
Correct. In other words, proof of work is only a tool to make everybody slow in producing data while keeping everybody fast in verifying it.
> In short, the blockchain solved the Byzantine Generals’ Problem,
No. It's a common misconception, but in fact it does not solve Byzantine generals problem, with the simplest reason being that the problem requires the solving protocol to terminate (blockchain does no such thing).
> and happened to use a append-only cryptographic ledger as part of it.
The correct terminology is not "ledger", but "document timestamping". You don't need to record transactions in blockchain, they can be any statements. Cryptographers already had such systems, except that each of those required trusted third party to produce timestamps.
woah|8 years ago
TheDong|8 years ago
One implementation of it, google's, uses leveldb:
https://github.com/google/certificate-transparency
Another one out there uses postgres. It turns out that you can use traditional databases in many cases where you think you need a blockchain, and you'll be able to waste vastly less energy on proof-of-work and vastly less time dealing with the terrible mess that is "blockchain".
The reason not to use "blockchain" is that it has 200 definitions, all of them full of people trying to get rich, not getting things done.
Databases have long-since solved the problem of storing and distributing data.
Distributed stores like etcd, zookeeper, and so on have long since solved the problem of duplicating data.
Very few people need byzentine fault tolerance (due to having a large number of untrusted actors with write access), which is the only time the additional complexity blockchain includes is actually useful
CiPHPerCoder|8 years ago
In my case, this sentiment accompanies an implementation in the form of an easily-deployable open source microservice.
https://github.com/paragonie/chronicle
If it's too hard for people to build, they can use what I wrote.
> What is this hypothetical non-blockchain, where are you going to get it, and why not just use a blockchain if that's what you need?
That's the tx/s limit on Bitcoin today? I can do hundreds of writes per seconds to Chronicle on a modest VM without sweat. This is possible because it's centralized, albeit supports mirroring (i.e. replication) and cross-signing.
jgh|8 years ago