Live data from Hacker News

Stellar Consensus Protocol: Proof and Code

stellar.org

71–80 of 99 posts

Re: Stellar Consensus Protocol: Proof and Code

#71
post #21

I'm excited for the ideas here and have been following Stellar. But I'm hugely disappointed to see that they went with C and C++ for their new core codebase. This is the kind of code that needs strong safety, security, and correctness guarantees, and here in 2015 we have several mature languages with better safety & correctness guarantees. C# and Java are both mature and mainstream, and either would have been a sane…

C/C++ are going to be tied to some runtime libraries but that doesn't seem like as big an externality as being tied to a particular version of an entire VM. You may prevent certain classes of of programming error with a memory-managed language but at the cost of fine-grained control of your memory, and when it comes to security software in general and key management in particular you expose yourself to a whole other…

FWIW, Go has no VM, and neither does Rust. They compile real binaries.

And Rust gives you fine-grained memory control without sacrificing safety -- unlike the others it has no garbage collector, and instead proves allocation safety at compile time. In Rust you can know for sure exactly where your key has been copied and when it will get deallocated (to the extent that any program running in virtual memory on normal hardware can know that).

Although I agree that these are the less mature choices, and it's reasonable to reject them for that reason.

Re: Stellar Consensus Protocol: Proof and Code

#72
post #60

Earlier quoted context omitted.

At it's core, the question of whom to trust is of course crucial, as there are clearly at least straw-man answers that have undesirable effects. But the trust topology affects more than safety, it affects the scenarios in which a consensus protocol is useful. E.g., if I issue some scrip and trade it on the Stellar network, I don't necessarily want to depend on mining rigs in other parts of the world for my ledger saf…

> I don't necessarily want to depend on mining rigs Indeed, the security model provided by Bitcoin consensus system may not be fit for any particular purpose. But it has one, and so we can think about it and decide what purposes it may or may not be fit for, and think about under what conditions it will be safe or not safe. > is to leave such policy questions up to the market and see what kind of architecture emerges…

I'm out of my league here technically, but I'm having a hard time seeing how your critiques don't apply to the entire market economy just as well.

The collective actions of all participants result in an effective price model, the causes of which are unknown to any of its participants and likely unknowable to any one human mind, and which changes over time in ways that are highly opaque.

In the market at large, participants certainly don't need to understand the global ramifications of their actions, only the local ones. I don't see why that isn't the case here as well.

(For what it's worth I want to point out that like Walter, I really enjoyed reading this discussion, even if much of it is over my head.)

Re: Stellar Consensus Protocol: Proof and Code

#73
post #21

I'm excited for the ideas here and have been following Stellar. But I'm hugely disappointed to see that they went with C and C++ for their new core codebase. This is the kind of code that needs strong safety, security, and correctness guarantees, and here in 2015 we have several mature languages with better safety & correctness guarantees. C# and Java are both mature and mainstream, and either would have been a sane…

Meh, Bitcoin seems to be doing ok with C++.

It's certainly had a few issues, though I haven't looked closely enough to know which are due to the lack of memory safety, etc: https://en.bitcoin.it/wiki/Common_Vulnerabilities_and_Exposu...

Re: Stellar Consensus Protocol: Proof and Code

#75

I'm finding the graphic novel explaining federated consensus to be really entertaining: https://www.stellar.org/stories/adventures-in-galactic-conse...

It's actually AMAZING! I've actually been pretty deeply embedded in the crypto community for a while and have spent some amount of time with the Stellar folk, and I after reading the gn I understand Stellar (and even the blockchain) significantly better! At least in a way that requires a lot less cognitive overhead to mentally tinker with.

Re: Stellar Consensus Protocol: Proof and Code

#76
post #60

Earlier quoted context omitted.

> I don't necessarily want to depend on mining rigs Indeed, the security model provided by Bitcoin consensus system may not be fit for any particular purpose. But it has one, and so we can think about it and decide what purposes it may or may not be fit for, and think about under what conditions it will be safe or not safe. > is to leave such policy questions up to the market and see what kind of architecture emerges…

I'm out of my league here technically, but I'm having a hard time seeing how your critiques don't apply to the entire market economy just as well. The collective actions of all participants result in an effective price model, the causes of which are unknown to any of its participants and likely unknowable to any one human mind, and which changes over time in ways that are highly opaque. In the market at large, partic…

> In the market at large, participants certainly don't need to understand the global ramifications of their actions, only the local ones. I don't see why that isn't the case here as well.

The primary reason why that does not apply here is because nobody is selling "the market at large" to you as a cryptographically-secure decentralized consensus system. And besides, those ledgers are edited all the time by Authorities; it's irrelevant to this topic.

Edit: you are attempting to reason by analogy about a pricing system, and then trying to apply it to proof-of-work consensus? May I ask why?

Re: Stellar Consensus Protocol: Proof and Code

#77
post #76

Earlier quoted context omitted.

I'm out of my league here technically, but I'm having a hard time seeing how your critiques don't apply to the entire market economy just as well. The collective actions of all participants result in an effective price model, the causes of which are unknown to any of its participants and likely unknowable to any one human mind, and which changes over time in ways that are highly opaque. In the market at large, partic…

> In the market at large, participants certainly don't need to understand the global ramifications of their actions, only the local ones. I don't see why that isn't the case here as well. The primary reason why that does not apply here is because nobody is selling "the market at large" to you as a cryptographically-secure decentralized consensus system. And besides, those ledgers are edited all the time by Authoritie…

No, the market economy is sold as a surplus-maximizing decentralized price system. I was attempting to reason by analogy. You've pointed to a difference between the two, but haven't given an explanation of why that difference is sufficient reason for the analogy to break. I'm happy to believe that it is, but am as yet uneducated as to why.

Edit in response to your edit: It just occurred to me that most of the critiques that nullc was making were in very direct correspondence to critiques one could make of the price system. I have no idea if this analogy is useful, but it seemed awfully coincidental.

Re: Stellar Consensus Protocol: Proof and Code

#78

I find this kind of stuff fascinating, but lack the CS and/or mathematics background to understand the discussion beyond the basics. I think I grasp the concepts outlined in the graphic novel linked elsewhere in these comments, but the whitepaper is too deep for me. Any pointers for someone looking to gain an amateur understanding of this, or is this a topic of sufficient complexity that it precludes an amateur under…

Here's an overview that attempts to explain it in a less CS/math way and a more general and approachable way: https://medium.com/a-stellar-journey/on-worldwide-consensus-...

Re: Stellar Consensus Protocol: Proof and Code

#79
post #45
post #22

Earlier quoted context omitted.

Well in bitcoin, of course, trust would map to computing power.

In Bitcoin we can make a pretty concrete statement about computing power that one can reason about; the blocking attacker will not be successful without a majority of it. Whats the similar statement for 'trust' which is sufficient for security? Obviously "attacker is partitioned from the network" is sufficient, but not very plausable. I'm sure there is a better statement possible, but its not clear to me what it is.

Why wouldn't this be plausible? Let's say one day China had enough of Bitcoin, and used their essentially limitless resources to gain enough hashing power at will, to block transactions or rewrite them or what have you. Entirely plausible with Bitcoin (in this case, China doesn't care about the coin reward and therefore is not a "rational attacker" as the popular game theoretic model of Bitcoin security presupposes).

Now let's look at the Stellar model in this same situation. We've got a bunch of large company nodes that are probably Gateways (for the sake of argument say JCB, Wells Fargo, Barclays, and Bank of Brazil). We've got a ton of other nodes that belong to research universities, and then we have a bunch of "non-profit" or hobbyist or whistle blower nodes. There's a nice graph topology between all of these. Then one day China comes along and decides its had enough. How does it attack the network in this case? By hacking enough organizations to take control of their nodes? Seems a bit more unlikely than it gaining 51% of hashing power on the Bitcoin network...

Re: Stellar Consensus Protocol: Proof and Code

#80
post #21

I'm excited for the ideas here and have been following Stellar. But I'm hugely disappointed to see that they went with C and C++ for their new core codebase. This is the kind of code that needs strong safety, security, and correctness guarantees, and here in 2015 we have several mature languages with better safety & correctness guarantees. C# and Java are both mature and mainstream, and either would have been a sane…

I'm not sure I'd call Java for systems programming is a "sane" choice, but ok!

I think with a very modern C++ approach and very careful coding you can rock out. Yeah not everyone has this, but the losses from using Java is just so huge!

Post reply on HN