Hacker News new | ask | show | jobs
by noxer 2438 days ago
Why exactly aren't you fine with that? You run a node and you decide which nodes you want to connect your node to. If such a node gets a Tx it will be relayed to your node and the other way around.

It's not like your node would copy their validation and just agree with what they agree. Every node always enforces all the rules. So your node checks if a Tx is valid anyway and if you get invalid Tx from a node you trust it wont make your node accept that Tx. But it should make you overthink whether that node is trustable.

Trusting nodes is a "reliability rating thing" it doesn't really affect the consensus decisions because Tx are either valid or aren't. The consensus that must be found is only about the order of Tx. If the majority of the validators say Tx X was first and therefore Tx Y is invalid (attempt to double spend) but your node got Tx Y first then its totally fine to flip the order of these two since both are valid just not at the same time.

"Voting" which nodes you trust means you trust them to be reliable/fast and not controlled by a single entity or controllable by a single entity (gov.) So with a clever trust list you help decentralize the network and help that the network runs on the most reliable nodes. You don't change the rules or allow other to change the rules. You can even make mistakes. You can choose some nodes that turn out to be not reliable/fast or even actively malicious. It has no fatal effect and can be corrected as soon as it is detected. Only if everyone would select over 20% "bad" nodes it could halt the consensus. Still would not allow a single false Tx or a single Tx reverse. It would just stop until some nodes remove the bad actors form their trust list.

As your quotes says "...run by different parties who are expected to behave honestly most of the time." The "trust" you give them is very very very limited.

1 comments

> Why exactly aren't you fine with that?

because i don't want to trust anyone. XRP is not trustless or decentralized enough.

> Every node always enforces all the rules. So your node checks if a Tx is valid anyway and if you get invalid Tx from a node you trust it wont make your node accept that Tx.

as i said - validity is trivial. i asked you to not bring it up but you did anyway.

> majority of the validators say Tx X was first

"majority of validators" is not something you can reliably even define for yourself because you don't know which parties have colluded with each other. this consensus model fails on every layer.

> Only if everyone would select over 20% "bad" nodes it could halt the consensus.

i don't care how small you think this problem is. i want to never rely on having to select "correct" validators to ensure my financial future isn't at risk.

i want universally objective measure by which i can compare competing chains. if your protocol doesn't provide it without having to trust third parties - it's a failure.

> because i don't want to trust anyone. XRP is not trustless or decentralized enough.

And yet you trust the Internet to get packets to HN. You trust the government to administer the roads, the schools, the army, the police, the firefighters, and so on for days. The FDA to verify your drugs, Agriculture to verify your food.

You trust so many people every single day to make it through from breakfast to dinner, and yet this is where you draw the line for some reason you can't really quantify.

What you’re saying is basically “things are horrible so why don’t you just bend over and let somebody fuck you in this other aspect as well”.

Yes, that’s where I draw the line today. Governments used to challenge our right to free speech and even right to live free - we don’t accept that anymore. In my opinion it’s time to untangle governments and money. You’re free to disagree of course and you’re free to entrust all sorts of strangers to make all sorts of decisions in your life, just don’t expect others to do the same.

> You’re free to disagree of course and you’re free to entrust all sorts of strangers to make all sorts of decisions in your life, just don’t expect others to do the same.

You already do though. You're just entrusting a different set of un-elected un-accountable strangers with no economics degrees with your monetary policy -- the Bitcoin Core team. And the PRC where over 50% of the hash power is located. They could change the number of Bitcoin on issue, the rate, the block reward rate, anything, with zero recourse on your part. Your government is accountable to you, the core team, to themselves.

If you tell me they wont then you're trusting them not to unless you can point to a math equation preventing them, I guess.

You're describing a libertarian pipedream that can't exist.

> You're just entrusting a different set of un-elected un-accountable strangers with no economics degrees with your monetary policy -- the Bitcoin Core team

no i don't. they just happen to maintain the reference implementation.

> And the PRC where over 50% of the hash power is located

no trust involved here either.

> They could change the number of Bitcoin on issue, the rate, the block reward rate, anything, with zero recourse on your part.

no they can't and the fact that you think this means you have zero understanding of how bitcoin works.

> If you tell me they wont

i'm telling you they can't. bitcoin is defined by consensus rules and releasing a binary that breaks those rules or mining blocks that break those rules doesn't change bitcoin.

It’s the politics. If the core team decided to change the parameters of bitcoin at worst everyone would fall in line and at best it’d fork and you’d lose a whole lot of value.
Trust can not be removed it can only be spread. If you use BTC you also have to trust that most miners/pools act honest. You can't even choose which miners you think are trust able. You have to just hope (trust) that at least 50% are honest an cant be compromised at the same time. How is that any better than (optional, yes completely optional) choosing trusted Nodes?

You can very reliably define the "majority of validators" its defined as 80% it doesn't matter if or how many validators colluded. If Tx X was actually first but Tx Y reaches majority this simply means that either Tx X was not relayed fast enough to all the nodes OR it could mean that a lot colluded nodes voted for Tx Y.

Either way the consensus can "fail" because of technical reasons (slow relaying) or "fail" trough colluded nodes both "fails" do not lead to changed rules. No invalid Tx can happen this way. No Tx can be reversed this way. The whole situation can only ever happen if 2 Tx are valid signed but try to send the same funds (double spend attempt) and are inserted into the network nearly at the same time. Only one Tx will be processed. Enough colluded validators could effect which one but its completely irrelevant. Who cares which Tx of a double spend attempt is processed?

If you try to pay 2 persons with 100 bucks each by placing just one 100 dollar bill on the table in front of them, you don't know which one is gonna pick it up but clearly you have not fooled anyone into thinking you payed both.

>i don't care how small you think this problem is. i want to never rely on having to select "correct" validators to ensure my financial future isn't at risk.

You completely misunderstood, you don't have to choose "correct" validators to make it work correctly it can only work correctly! Bad validators don't "hurt" they just don't contribute.

Assuming 50% of all validators are bad and suddenly start censoring Txs or reordering non final Txs that would have the same effect as if these validators would just shut down. It does NOT produce a wrong output. Worst case is that the network halts and that is wanted because if 50% go offline at the same time there is probably something seriously wrong like a global internet collapse. Something humans have to fix first before resuming.

>i want universally objective measure by which i can compare competing chains.

By "universally objective measure" you mean you choose the longer chain? Fully aware that this can later change? Whats point? Having just one chain that is final doesn't need "universally objective measure" doesn't need comparing and makes final a binary option instead of "final" but better wait some more blocks to be sure.

> You have to just hope (trust) that at least 50% are honest an cant be compromised at the same time. How is that any better than (optional, yes completely optional) choosing trusted Nodes?

51% attack exists for all cryptocurrencies. don't try to substitute "colluding 51% of selected validators" with "colluding 51% of global hashrate", you're being disingenious.

i don't have any trust in miners, all they do is send me block signatures and if the signature satisfies proof of work requirements i can be reasonably certain one would have to burn some amount of energy to override that.

you on the other hand have to trust third parties to know which chain is the "right" one exactly because PoS lacks this universally objective measure that is PoW.

> You can very reliably define the "majority of validators" its defined as 80% it doesn't matter if or how many validators colluded.

80% of what? 80% of the couple hundred ips that i will send you as "totally not colluding validator nodes"? you can't even know who's online at any point in time.

> By "universally objective measure" you mean you choose the longer chain? Fully aware that this can later change? Whats point?

universally objective measure is proof of work. you can't fake it without burning similar amount of energy.

> Having just one chain that is final doesn't need "universally objective measure" doesn't need comparing and makes final a binary option instead of "final" but better wait some more blocks to be sure.

who decides what's final? how much does it cost to bribe them? how much does human factor matter? how do they know they have quorum to make such decision? what if there's a network partition and two quorums have finalized two chains?

that's the thing with PoS - it's politics based currency. we've had that for thousands of years. it's not like some genius read satoshi's paper and thought "hey what if we just kind of like vote on which chain is the right one and lets name it proof of stake?", PoS was known long before PoW, it just doesn't solve the problem that bitcoin solves, that's it.

You means all PoW/PoS cryptocurrencies? Because consensus does NOT have something like an 51% attack especially not at 51%. Majority is defined as 80% for a reason. Colluding 51% of selected validators NEVER result in anything comparable to a 51% attack on a PoW network. Neither double spend nor reversing is possible with 51%. I already described the "harm" someone could do with 51%. Temporary Halt progress. Temporary censor/exclude some Tx. That would be bad but it would be detected and could be fixed.

Well I call that trust. You trust miners/mining pool operators to act by the rules. And even if they do you still could be on the wrong chain because of network problems etc. If you only see one chain you don't even know if there is another chain. Hence the waiting for several block for confirmation.

>you on the other hand have to trust third parties to know which chain is the "right" one exactly because PoS lacks this universally objective measure that is PoW.

Consensus isn't PoS there are no chains You don't have to trust any third party you can run your own node and validate the Tx in real time and confirm everything yourself. If the network and your node node would "fork" you would instantly know something is wrong (most likely something with your node).

>80% of what? 80% of the couple hundred ips that i will send you as "totally not colluding validator nodes"? you can't even know who's online at any point in time.

Well how about you read the documentation? Why arguing with me if literally all you arguments just show that you have never read how consensus works but you still wanna tell me why it does not work.

BTW Validators use public-key cryptography to communicate with each other and they know exactly which validators is online. That of course doesn't help at all against colluded validators. But then again like mentioned many times now, colluded validators can not trick any node into doing something wrong. No matter how many. Literally all validators could not trick your own node into accepting a Tx that isn't valid or to revers anything. It's like if suddenly all calculators except yours would calculate some things wrong. As long as you use your own to verify results you can't be tricked.

>who decides what's final? how much does it cost to bribe them? how much does human factor matter? how do they know they have quorum to make such decision? what if there's a network partition and two quorums have finalized two chains?

The answer to all these question is literally the consensus algorithm. Please just go an read how it finds consensus. I can only give some short answers but to fully understand you must read the documentation.

>who decides what's final? In short very simplified: Everyone who wants tells everyone who wants to hear, which valid Tx they would include in the next ledger. Everyone listens to who they want to listen to and skip the Tx that aren't suggested by at least 80% Everyone now has a bunch of Tx that they validated and they know most others agree on. That's it. That's final. Skipped Tx will be proposed for the next ledger.

Since everyone can say whatever they want but also everyone can just ignore what you say, colluded validators can tell sh*t all day long. You could even spin up 1000 Validators (way more thane 80%) and let them all propose wrong Tx. No one would care because no one has a reasons to include invalid Txs ever. An attacker would need to collude existing validators that others already listen to. But as soon as they propose Tx that are not valid everyone would stop listen to them. So you would need to collude over 80% of the existing validators then you could propose a wrong Tx AND reach 80% agreement. Problem is all other not-colluded validators would simply stop and all nodes that validate Txs them-self like the node of an exchange or a node run by a bank etc. they would all stop as well because even majority can not overwrite their code.

You end up with a network of colluded validator that make forward progress but no one listens to them anymore. All the honest player have detected that something is wrong and halted after the last correct ledger. Technically there is now a fork. One chain is halted and one is obviously wrong. Not exactly hard to pick the right one in this case.

>how much does it cost to bribe them?

Who knows? But how much is halting the network worth? It sure could cause damage (trades stop etc.) But it will not case wrong behavior so you can't exactly make money with this like with double spending. You could short and hope the price would drop because of the halt. On the other hand surviving such a large scale attack could also push the price way up. The XRPL never halted but the XLM ledger did (not because of an attack) a few month back for like 2h. It has no visible effect on the price.

>how do they know they have quorum to make such decision?

They don't. Consensus is reached not decided see above and documentation. They only decide if a Tx is valid and they use math to do so.

>what if there's a network partition and two quorums have finalized two chains?

That can not happen because nether partition could reach 80% agreement. The network halts in such situation for as long as needed rather than splitting.

>that's the thing with PoS - it's politics based currency. we've had that for thousands of years. it's not like some genius read satoshi's paper and thought "hey what if we just kind of like vote on which chain is the right one and lets name it proof of stake?", PoS was known long before PoW, it just doesn't solve the problem that bitcoin solves, that's it.

It's still not PoS why are PoW supported always coming up with flaws in PoS lol I already know PoS is flawed but so Is PoW.

> And even if they do you still could be on the wrong chain because of network problems etc. If you only see one chain you don't even know if there is another chain.

this is the key thing you don't understand, i don't even need to respond to the rest of your message because of it.

with PoW even if i see only one chain i can absolutely objectively detect if something cheesy is going on by observing the difficulty of that chain. no network connectivity required. no comparison with other potential chains required. until you understand how is that different from PoS there's no point in discussing benefits and tradeoffs between these systems.

I must disagree with that.

Detecting if something is cheesy in the chain is not enough. The chain you see can be totally fine nothing cheesy you could "objectively detect" yet the chain you don't see is longer and everyone will switch there. Your "objectively detected" nothing is totally pointless in this case.

Or what about Tx censorship. A valid Tx with reasonable fee isn't included because miners/mining pools colluded to not process that Tx. You objectively detected nothing because everything on the chain is completely correct. You can't detect what isn't there.

You still come around with PoS lol dude I never in the whole thread compared PoW to PoS. PoS is totally irrelevant. If it would not exist PoW would still have the same flaws.