Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I agree with this article.

Proponents of blockchain tech argue its revolutionary quality is its ability to act as a decentralized and trustless database. But I don't ever hear them sort through the issue of how to agree on the schema for this trustless database.

For a group of people to use a decentralized DB, they have to agree as to what to store in it, and how to store it. They need to form consensus about how the system will work, and how the data will flow.

For example I've seen people on here mention applications such as a decentralized stock exchange, and a decentralized hotel rooms marketplace.

For either of these, it's necessary to get all the users of the system in a room and agree what is in scope and what is not, and in general what can be done with the system and how. At this point they already have a consensus, they trust each other, they might as well just set up a centralized database run by a 3rd party that manages the system, keeps it up to date and adds upgrades, instead of building it on the blockchain and hoping there are no major bugs in the cloud code and that it will live off gas.

For the stock exchange, that's exactly what we already have. We have institutions that are dedicated to running exchanges, which act as neutral arbiters. They use regular old centralised databases. When they have bugs in their code or the system makes a mistake they can even roll back trades, which they couldn't do on the blockchain.

Essentially this is the same argument as OP. The 3rd party's act of ironing out issues, deciding what the rules are and how they interact is synonymous with OP's term "governance". We agree that using/running the system is different than defining/implementing the system and the latter can't be done trustlessly.

And also governance gets a lot easier when you also run the system centralized ;)



This argument sums up my recent thoughts on blockchains. Proofs of their trustlessness and eventual consistency rely on explicit assumptions (no cartels with >50% computation power, bounds on network partitions), but the underlying unstated assumption is that there is consensus about the protocol and its rules to begin with. We've seen this assumption break down with the block size debate and the DAO fork.

However, I don't think that this completely rules out their usefulness. Blockchains are more like "consensus abstractions" - if you have the underlying consensus (achieved through a governance model that can engender it), then it allows for uses like smart contracts that can efficiently work on top of it. The "trustless" property is also maintained - for example, even if a cryptocurrency is designed, issued and governed by a central bank, the fact that the network is decentralized and its integrity can be independently verified (even if it is centrally secured) still has some social benefit.


Fwiw, two new blockchains are launching soon that include protocols for protocol changes - DFINITY & Tezos.

https://dfinity.network/

https://tezos.com/

Not endorsing, just pointing out.


With bitcoin, it is agreed upon using byzantine consensus. The only way a bad actor can manipulate the ledger is if they own enough nodes to gain a majority, which is virtually impossible. After just a handful of bit times is economically and mathematically impossible to reverse the contract.

I suggest listening to this Tim Ferris podcast with Nick Szabo: http://tim.blog/2017/06/04/nick-szabo/

The entire idea is that no arbiter is truly neutral, no third party is truly trustworthy. Block chain is the onset of FAT protocols and trustful computing.

If the poor of the world can understand the social mobility that crypto currency affords them, there will be no stopping it, in my opinion.


OP's argument is that this distributed consensus algorithm works only if there is already consensus about which algorithm to use in the first place! If you and I disagree about which block history is valid (for example, because my history includes blocks with a lower difficulty), then the assumptions are no longer valid and there's a hard fork. Also, note that a 51% attack can only exclude transactions or allow double spending - the ledger still can't be arbitrarily manipulated since transactions are signed by private keys.


Is "byzantine consensus" an appropriate term?

I think it's typically used when there's agreement on the list of nodes participating in the network. (The nodes can agree to change the list of participants, Lamport wrote about it in "Reconfiguring a State Machine".)*

With "blockchain" / proof of work, computing power substitutes for voting power: you pass state transitions by controlling a majority of the compute power rather than a majority of the voting power.

Have you seen "byzantine consensus" used in the second context (with proof of work) also?

(*) When I think of the Byzantine consensus problem, it's when:

- not every node has to vote in each round (so that the system can make progress even if some nodes fail);

- you can authenticate (e.g. with cryptography) that messages come from the appropriate sender (but not whether that sender is acting "honestly");

- the goal is to reach consensus, i.e., if any node concludes that some proposition (i.e. state transition) has passed, no nodes will ever agree on contradictory proposition.


> If the poor of the world can understand the social mobility that crypto currency affords them

Can you expand on how crypto currencies relate to positive social mobility?

Off-handedly it seems to me it would be the opposite, although I'm admittedly fuzzy on this..

In theory crypto currencies reduce rent-seeking from intermediaries; since much financial rent seeking is established as percentages of an exchange (like a credit card transfer), removing those rents will give bigger net advantages to those transferring large amounts than those transferring small ones.

Not saying removing rent seeking is bad (it's awesome!), but I don't see how that does anything but increase the difficulty for someone with low capital to catch up; rather it should be doing the opposite.


> Can you expand on how crypto currencies relate to positive social mobility?

Bringing those who are unbanked into the global financial system is a powerful way to help lift people out of poverty. In many cases, banks are unwilling or unable to serve the poor, so cryptocurrencies could potentially fill the gap. I don't think any current cryptocurrencies will achieve this, but there is some research being done on "stablecoins" which could fit the bill.


Cryptocurrency is already doing this, I don't have the names offhand, butt, (Ill eave the typo, hehe) there are several regions in Africa where bitcoin is a primary currency being traded.


Do you have any sources for that claim? Given the massive existing mobile payment deployment it seems like a very ambitious target.


> I don't have the names offhand

Tether?


> The only way a bad actor can manipulate the ledger is if they own enough nodes to gain a majority, which is virtually impossible.

Im not buying that. If there is a way, someone will do it. This actually seems like a huge vulnerability to me. Especially when we are talking about specialized blockchains where the participation isnt every internet connected person in the world. How do you prevent that from happening?


> The only way a bad actor can manipulate the ledger is if they own enough nodes to gain a majority, which is virtually impossible.

At times the leading BTC mining pool has controlled greater than 50% of the nodes. Would this not be enough to alter the ledger?


Notably, 'altering the ledger' here has a very restricted meaning. You can spend money, then reverse the spend back into your wallet. Or you can commit to a piece of information, then delete it.

But you can't alter the core protocol or fundamental network rules. If you do, the other nodes will ignore you.


But this is the fundamental question it's all about... the expectation that the other nodes will ignore you.

Somehow "the other nodes" have reached consensus about what protocols or rules to follow, and this is where we end up back at human governance.


Yes, you could abuse that power to allow double-spending. For what it's worth, I'd say I'm a bit concerned about this, but it seems many aren't.

https://news.ycombinator.com/item?id=14485430


They all say that they'll never roll back or retroactively make any changes. But inevitably, they always do. I thought Ethereum might have been different, but of course I had to be disappointed.

The problem with blockchains is that they still fundamentally fail to solve the problem of mob rule, though, I suppose you could argue that's one thing you'll never fully get rid while the human element is still involved. Robot overlords or bust?


Ethereum Classic is still a thing: https://ethereumclassic.github.io/

Ethereum Classic is a fork of Ethereum that held blockchain is immutable paradigm and let DAO continue to be drained.


> Ethereum Classic is a fork of Ethereum that held blockchain is immutable paradigm

Ethereum Classic did a hardfork last October which removed null accounts created in the DAO attack. Now, while this didn't change account balances, these were legally created accounts and the historical ledger was changed. The hardfork was controversial at the time for this reason.

You can't say that in Classic the blockchain is an immutable paradigm - it changed history just as Ethereum did.


Everybody knows already which fork won. Sure Classic still exists, but if nobody is going to use it, then it really doesn't matter.


I think concentration of power is a bigger problem than "mob rule". If certain people or groups are able to acquire the majority of the power in the system, then the egalitarian ideals of decentralization are lost. You have just traded one power (e.g. banks) for another (e.g. the big miners).


Definitely true. Both sides of the coin are bad.


Here is a proposed solution to mob rule:

https://github.com/neyer/dewdrop

With a much simpler version of the same concept here

https://github.com/neyer/respect

I think it's doable.


Interesting. So reputation would act as a mediator for decision making then? Those with greater reputation would have more influence, and theoretically this should work because reputation would be gained only when other people notice that the person has done something beneficial/helpful in their eyes. Overall that should result in high reputation values being directly correlated to those who are altruistic and good.

It's definitely a cool concept. The main problem being I think is incentive to adopt. Without the weight of reputation having meaning behind it, no one will care and thus the intended effect disappears.


How would such a reputation system defeat the Sybil attack?


There isn't an absolute reputation score. Reputation is computed pairwise. Rep(a,b) means "What is the implied reputation of person b, given the persons a trusts"

So a bunch of fake accounts aren't going to influence a's perception of b,unless a has trusted someone who'se created those fake accounts. IN that case, the mistake a made was trusting someone (directly or indirectly) who'se created a bunch of fake accounts.

Because the input weight of a person decreases with their distance on the graph from a, the only sybil attacks that would screw you up would be ones conducted by people who you've said you trust.


Filtering out everything but the users you have established relationships with will just push you into a filter bubble echo chamber.


There are mechansims (see 'soundness') which reward people on the edge between filter bubbles for combining those bubbles. Maintaining a soundness core means resolving disputes between bubbles.

My goal is to gradually expand filter bubbles, rather than try to pop them.


After skimming the "respect" idea, I am convinced that echo chambers are the dominant strategy.

In fact, make a complete subgraph of order 9 or more of people who respect each other. That subgraph has order-N respect that goes to infinity for anyone who has any respect for any of its members, even transitively.


Trustless isn't the only option. https://www.stellar.org/papers/stellar-consensus-protocol.pd...

The reason I believe in our model for consensus is that it more closely resembles trust in the real world. We're more explicit than meatspace, which could be a drawback, but I think it's a better model than trustless.

Disclosure: I work for stellar.org


Didn't read the paper (got crypto burnout after 4 years at Kraken) but it occurs to me that the problem with explicit trust is that it is usually a one size fits all approach or someone has to tediously specify it in specific terms, neither of which work well at scale in the real world.


There's no reason that I can see why we can't automate the tedious bits. I can see someone creating some sort of a digital assistant program that applies trust policies to digital identities on behalf of a user. think for example something that applies a digital encoding of "I trust everyone whom I've paid to advertise their specials to me" or "I trust people who prove they live within 5 miles of my home address to send a neighborhood watch message to me", etc.

I'm not sure the specific formulation needed to be successful, but there is clearly value in something that helps people better manage digital trust. It's a shit show right now.


Right. I had some ideas around this previously when thinking around http://www.ifex-project.org/our-proposals/ifex/2012-04-11-pa...

In short each node would have its own risk management profile. Entering a transaction using any settlement path or asset type (even multi-hop transactions involving multiple paths or assets) is the explicit decision of the actor in question, against that risk profile, available information, and its own priorities (eg. must complete by X date, prefer to avoid Y actor/system/asset, etc.)

Because the properties of each settlement network, asset type or actor are able to be formally defined, cross-system automation is possible and new systems with interesting properties are able to present themselves on a fair and equal footing.

Of course, with such lofty goals, it was never finished (I was keen but asked to direct attentions to urgent areas elsewhere), but recently I have begun to revisit it owing to my study of physical logistics networks and scheduling algorithms for my current startup http://8-food.com/


Thanks for the link! I'll check it out. I agree such a system is quite lofty at this point. I can start to see a feasible system in my mind, but IMO we're still just so far away from it working in reality and in practice.

I'm still on the horse for now... sorry to hear you got burnt out at kraken.


Hehe. Just on crypto specifics not the rest :)


I wonder what a protocol might look like based on more cynical assumptions? Let's call it the House protocol because it assumes that everyone is hostile--lying and trying to cheat you. Sadly, I think this a more realistic assumption for the global digital environment.


That's not really true. Systems like Ethereum allow for arbitrary data storage and contract structures. The filter for consensus in a distributed environment will be usage. Lots of contracts will get written, a few will get used. Those few will be the ones people agree on.

Secondly, the consensus as to the schema isn't trustless even in blockchains. Deciding what to do and how to do it is and always will be trustful. What is trustless is the execution of that decision once its been made. That is the important contribution of blockchains.


I don't find this a wholly satisfying position (and I say this even as someone who's generally a blockchain skeptic).

Concretely, this argument conflates agreeing on a set of rules with agreeing on an arbiter to determine the application of those rules. Those aren't the same thing, because only one of them centralizes power.

> At this point they already have a consensus, they trust each other, they might as well just set up a centralized database run by a 3rd party that manages the system

This is the critical point where I don't think the argument works. Firstly: they don't necessarily trust each other. They trust the system to work within the rules they have established. It simply doesn't follow from that that they should therefore be willing to trust a 3rd party.

For what it's worth, this is why I'm interested to see how the block size situation in Bitcoin resolves itself. If it happens relatively smoothly, it's a strong point for the ability of consensus to respond to pressing needs. If it doesn't... well, I might have to reconsider my position.


Notably, you don't have to agree on how to design a system. Many such systems exist and you just have to pick which one you want to use. If you see the rules as fixed, you can enter the system that most closely matches your needs, and then trust that it's not going to change from under your feet.

Well, the properly decentralized ones let you assume that the rules aren't going to change. Many blockchains though will implement whatever changes their developers desire.


Decentralized systems aren't attractive only to decentralized groups. One application for which I've been considering use of a (private) blockchain is user authentication, and logging of authentication attempts.


Why would you want to do that with a blockchain? Is it necessary to store this logging data to thousands of nodes? What about 5 servers, geographically distributed?


Why do you assume a blockchain has to consist of thousands of nodes? A private blockchain works equally well across those 5 geographically distributed nodes.


So why use blockchain? Whats the benefit? The only thing I can think of is proof of authentication attempts, a kind of a irrefutable log of some sort. But whats the benefit its providing, that we are lacking today?


That irrefutable log is highly valuable in environments where there is a need to audit who has requested access to what resources, and when.


I think this is a really good idea. Would it be worthwhile to have a neutral party also maintain a node? Would that give the evidence more weight in court for example?


While I am not allowed to talk too much about it, this is exactly what I'm currently working on for certain high profile companies that wish to share information (query results) between themselves, without ever actually sharing the data itself, in a way that the country-wide regulator can verify and check for anticompetitive behaviour.

I'm currently having fun experimenting with homomorphic encryption, to see if I can't add another layer of "trustlessness"


Decentralized trustless databases can also be implemented with Merkle Trees (as it is done with certificate transparency). I dont understand why people choose blockchains instead.


Blockchains are currently implemented with a Merkle tree at each block, and Merkle proofs are used to store the transactions in that block.


What? So you're saying that since Cisco and Juniper both standardize protocols at the IETF, they should just merge their companies because they are already in one room anyway?


We had decentralized ownership of the stock exchanges, but they went public to cash out and make more money with high frequency traders.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: