News for hackers. Stuff that matters.
Re:Building for the Blockchain by CiPHPerCoder on Tuesday January 09, 2018 @12:45PM (#16108037)
People are trying to solve a lot of interesting problems with blockchain, but I fear it's become the ultimate shoehorn solution for the modern era. See also: https://tonyarcieri.com/on-the-dangers-of-a-blockchain-monoc...

I've had meetings with prospective clients that opened with, "We have $problem, can we use blockchain to solve it?" where anything that doesn't qualify as a blockchain is cast to the wayside because it doesn't scratch that buzzword itch.

(Amusingly, I've witnessed one pitch where the person called it "bitchain" and it sounded like "ba-ching!" and I was waiting for the follow-up to what I thought was onomatopoeia for a cash register sound. I've since learned to not abbreviate cryptography as "crypto" lest I attract sketchy prospects.)

A lot of the problems that you might want to solve with a blockchain probably doesn't need a blockchain. A distributed, append-only cryptographic ledger will suffice. To wit: https://paragonie.com/blog/2017/07/chronicle-will-make-you-q...

Re:Building for the Blockchain by scardine on Tuesday January 09, 2018 @01:55PM (#16108689)
A couple weeks ago a startup pitched blockchain solutions for government problems (I work at a government agency in Brazil). The presentation sounded like Scientology, lots of circular arguments and bold claims without much substance.

I asked a few questions and he dodged them like a professional politician:

* what do you do if you need to reverse a transaction (lets say, court order)

* what if someone loses his wallet/password

* some people claims blockchain is over-hyped

He said that I being skeptical proves my ignorance and I should study more about the subject instead of challenge him.

Remembered the short tale "The Emperor's new clothes", I'm unable to see the king's clothes because they are made of a magic fabric invisible to the stupid. I guess the magic fabric is made of blockchain.

Re:Building for the Blockchain by pimeys on Tuesday January 09, 2018 @03:06PM (#16109469)
I might need to do something with blockchains at work and I need to follow the scene and study stuff. The behavior you described here is too common. Sometimes I feel everybody has too much money involved and everybody is cheating everybody... So there definitely is no trust.
Re:Building for the Blockchain by elmar on Tuesday January 09, 2018 @02:12PM (#16108833)
Does your problem gets easier/solved with a permissionless ownerless database, if "yes" then you need a public blockchain, if "no" you need something else.
Re:Building for the Blockchain by dozzie on Tuesday January 09, 2018 @03:58PM (#16109992)
If "yes", then you still don't need blockchain. There are better protocols, like DHT. The only time you need blockchain is when you need to tell which of the two related statements was issued earlier and at the same time you absolutely have to have no trusted third party that assigns timestamps to the statements.
Re:Building for the Blockchain by ericb on Tuesday January 09, 2018 @04:27PM (#16110266)
There's another aspect, unforgeability. The interesting thing about the blockchain is that it is a very hard to forge data-set, by design. You can take a proof of work blockchain and look at the hashes of the blocks in it, and based on the number of 0's in each block (the difficulty), you can know how much energy (and cost) went into mining that block.

So if there's a danger of forgery, or you have an interest in security, a blockchain with proof of work provides a really trustworthy way to know you're getting authentic data, because you can look at the chain, and know things like it would cost about 100,000,000 to forge this full history, and 1,000,000 to forge to last block.

Re:Building for the Blockchain by joosters on Tuesday January 09, 2018 @04:56PM (#16110532)
Just because each block has had gigawatts of computing power thrown at it doesn't make the block's contents correct, or 'the truth'. Case in point: every stolen bitcoin or ethereum wallet. The blockchain is storing the wrong owner of these coins. Every hack can be considered a forgery, and the miners will happily validate it.
Re:Building for the Blockchain by tonyjstark on Tuesday January 09, 2018 @04:49PM (#16110461)
Only if the community does not decide to fork and everyone jumps to the fork like with The DAO. Then maybe you can look up everything in the old branch of your chain but nobody cares...
Re:Building for the Blockchain by xorcist on Tuesday January 09, 2018 @06:31PM (#16111164)
If any blockchain could be regarded as the truth at any time, why bother with a blockchain at all? Just let a trusted third party run a database. Or vote on its integrity if you wish to distribute trust.
Re:Building for the Blockchain by ericb on Tuesday January 09, 2018 @02:49PM (#16109256)
I agree, although I might add "trustless" in there.
Re:Building for the Blockchain by bitcoinmoney on Tuesday January 09, 2018 @03:42PM (#16109847)
i think trustless == ownerless. do you agree?
Re:Building for the Blockchain by Asdfbla on Tuesday January 09, 2018 @04:04PM (#16110050)
There's more dimensions to that though. Can participants have identities? If yes, then you don't need proof-of-work, for instance but can have a distributed ledgers with conventional algorithms for Byzantine agreement etc.

Might be just my misinterpretation, but when I hear blockchain I usually just think of conventional totally trustless and identity-less protocols that necessarily require proof-of-work - which is a security level which is not needed for most applications.

Re:Building for the Blockchain by arkona on Tuesday January 09, 2018 @12:49PM (#16108071)
> A distributed, append-only cryptographic ledger

Pardon my ignorance, but isn’t that what a blockchain is?

Re:Building for the Blockchain by CiPHPerCoder on Tuesday January 09, 2018 @12:52PM (#16108103)
A distributed ledger doesn't necessarily mean a decentralized one.

This is a handy reference to decide if you're building a cryptographic ledger or a blockchain: https://gist.github.com/joepie91/e49d2bdc9dfec4adc9da8a8434f...

Re:Building for the Blockchain by hiq on Tuesday January 09, 2018 @01:04PM (#16108211)
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.

In addition to this github gist, I like http://doyouneedablockchain.com/ .

Re:Building for the Blockchain by dsacco on Tuesday January 09, 2018 @02:29PM (#16109027)
For precision, it’s good to distinguish between decentralization and permissionlessness as separate axes. Technically speaking the two are commonly positively correlated, but you can build centralized, permissionless systems and decentralized, permissioned systems.
Re:Building for the Blockchain by TheDong on Tuesday January 09, 2018 @01:12PM (#16108288)
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.

Re:Building for the Blockchain by Jasper_ on Tuesday January 09, 2018 @01:25PM (#16108427)
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.
Re:Building for the Blockchain by dozzie on Tuesday January 09, 2018 @04:07PM (#16110083)
> 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.

Re:Building for the Blockchain by woah on Tuesday January 09, 2018 @01:00PM (#16108182)
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?
Re:Building for the Blockchain by TheDong on Tuesday January 09, 2018 @01:17PM (#16108343)
Let's look at another project that needed a such a ledger: the certificate transparency project.

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

Re:Building for the Blockchain by the_stc on Tuesday January 09, 2018 @01:45PM (#16108612)
This. At my company, we want a way to show investors our actual revenue numbers in an auditable manner, trustless. This is because we are extrajurisdictional and have high opsec concerns and cannot simply hire an accounting firm to give us an OK.

Hence we shall issue signed receipts to all clients and providers then setup a system to pay out a large bounty if someone can produce a signed receipt not in our weekly-published-log. We'll automate the bounty, but perhaps a third party will also offer a validator. We will not even need Postgres for it, just nginx and a filesystem.

But that is not interesting enough by itself, and mentioning digital signatures just confuses people more. So we call it a Single-Issuer-Blockchain: Now people instantly get the idea.

Re:Building for the Blockchain by CiPHPerCoder on Tuesday January 09, 2018 @01:02PM (#16108195)
> 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.

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.

Re:Building for the Blockchain by sharemywin on Tuesday January 09, 2018 @03:59PM (#16109997)
This sounds a lot like ripple:

...

Are people still fighting about this or have they come to a consensus?

I'm probably the worst person to represent whether there's a consensus or not since I'm one of the designers of Ripple. But the important thing, at least in my opinion, is that there is no "secret sauce".

The software is open source. People are free to modify it however they please. We run the exact same software that we make available on our public servers and our validators. Others are free to run validators and they do so.

As it happens, much of the network infrastructure is run by us today. But we are more than happy to turn that over to others who are willing to do it.

Why do you care if something is decentralized? The main reason is usually that you don't want the users of the system to be forced to accept changes made by an owner/operator of the system whose interest may be averse to them. Ripple is decentralized in this sense.

For example, eBay is not decentralized. They don't warehouse their goods. But if eBay the company says no auctions of adult merchandise, then there will be no such auctions. It wouldn't matter if every user disagreed with the policy. Their only recourse would be to re-create what eBay had done, that is, to themselves implement eBay's secret sauce.

By contrast, Ripple has no secret sauce. Anyone can run their own servers. If we make changes people don't like, nothing requires them to run the code with those changes. If Ripple disappeared and users of the ledger wanted it to continue, nothing would stop them from continuing it.

https://bitcoin.stackexchange.com/questions/40448/is-ripple-...

Re:Building for the Blockchain by CiPHPerCoder on Tuesday January 09, 2018 @04:39PM (#16110376)
> This sounds a lot like ripple:

It's way more like Certificate Transparency than Ripple. Chronicle has nothing to do with payments or currency. It's just a ledger.

Re:Building for the Blockchain by jgh on Tuesday January 09, 2018 @02:50PM (#16109270)
I see some of the siblings have named different solutions, Datomic also exists as a database with immutable facts and time-travel.
Re:Building for the Blockchain by bambax on Tuesday January 09, 2018 @04:49PM (#16110459)
[Question] What technology, based or not on blockchain, would enable an entity to write relatively large amounts of data in a "sustainable" way -- sustainable meaning, that the data is independent from whoever wrote it (can survive it)?

Writing data to the blockchain solves this problem, but the cost is large and performance is dismal.

Writing hashes to the blockchain at specified intervals, delivers proof of existence, at an acceptable cost and performance, but does not really make sure the data itself will survive its original author.

Is there another way? Can chronicle help?

Re:Building for the Blockchain by viach on Tuesday January 09, 2018 @04:42PM (#16110396)
How the DDOS problem is solved there?