Live data from Hacker News

Stellar Consensus Protocol: Proof and Code

stellar.org

21–30 of 99 posts

Re: Stellar Consensus Protocol: Proof and Code

#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 choice. Go is slightly less mature but also a safe and conservative choice.

(I personally love where Rust is going too, but I could excuse people for not choosing it yet due to immaturit.)

Re: Stellar Consensus Protocol: Proof and Code

#22
post #19
post #16

Earlier quoted context omitted.

(disclaimer: I had early access to the white paper for review) Sybil attacks are not really directly applicable here since each node in the system picks its own quorum slices (basically the set of nodes that it trusts). There is no notion of global reputation and nodes do not need to know every other nodes to participate. Looking at the definition of quorum intersection[0] section 4.1 should give you a sense of the c…

> I believe the same kind of attacks to be plausible with the Bitcoin network This isn't anyone elses understanding. Can you suggest a mechanism by which it would be possible for a minority conspiracy to perpetually exclude a transaction in Bitcoin?

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

Re: Stellar Consensus Protocol: Proof and Code

#23
post #18

"It is the responsibility of each node v to ensure Q(v) does not violate quorum intersection". ::Sigh:: This sounds like it does not even speak to one of the major fundamental issues of their approach; which I pointed out in 2013 ( https://bitcointalk.org/index.php?topic=144471.msg1548672#ms... ) and appeared to play a critical role in Stellar's spontaneously faulting, and has been avoided in ripple by using effectiv…

> "It is the responsibility of each node v to ensure Q(v) does not violate quorum intersection".

Failing to ensure quorum intersection in my quorum slices choice will have local repercussion and may befoul nodes that depend on me but does not prevent global functioning if the rest of the topology has quorum intersection.

I think your argument here is sane, but I also believe that under reasonable circumstance we can expect the Stellar network to be well structured. Yes some edge nodes may get befouled as you would in real life if you would trust an untrustworthy bank or health insurance.

Re: Stellar Consensus Protocol: Proof and Code

#24
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…

When your software aspires to move billions of dollars of value, it would ideally be written in Ada.

That said, I agree that C# and Java are good options.

What's hilarious is all of the Bitcoin startups that are running on node.js and mongodb. Would you put your kids on a flight if you knew the control system was written with javascript and mongodb? Yikes.

Re: Stellar Consensus Protocol: Proof and Code

#25
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…

If a program is formally proven to be correct, it doesn't matter what language it's written in.

Re: Stellar Consensus Protocol: Proof and Code

#26
post #22
post #19

Earlier quoted context omitted.

> I believe the same kind of attacks to be plausible with the Bitcoin network This isn't anyone elses understanding. Can you suggest a mechanism by which it would be possible for a minority conspiracy to perpetually exclude a transaction in Bitcoin?

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

[deleted]

Re: Stellar Consensus Protocol: Proof and Code

#27
post #18

"It is the responsibility of each node v to ensure Q(v) does not violate quorum intersection". ::Sigh:: This sounds like it does not even speak to one of the major fundamental issues of their approach; which I pointed out in 2013 ( https://bitcointalk.org/index.php?topic=144471.msg1548672#ms... ) and appeared to play a critical role in Stellar's spontaneously faulting, and has been avoided in ripple by using effectiv…

You are correct that safety requires overlapping quorums. However, the trust decisions are public, as this is what allows participants to discover quorums. The scenario you describe of two groups of 100 participants overlapping at one node might or might not be a problem. The most likely cause of such a topology is a Sybil attack, in which an attacker with one seat at the table gloms an extra 99 nodes onto the system that nobody trusts. The attackers' 100 nodes might of course diverge if they are so configured, but nobody will care.

A priori, we cannot definitively answer what kind of topology will emerge. But there is certainly precedent for building a robust network out of pairwise relationships, namely inter-domain routing on the Internet.

Re: Stellar Consensus Protocol: Proof and Code

#29

Are they talking about computer verified proofs? I wonder, are researchers able to prove the correctness of distributed algorithms the same way they would prove sequential algorithms (for instance, using some type of Hoare logic and sat solver/ proof assistant).

No. At least for the moment, the proofs are English language only.

Re: Stellar Consensus Protocol: Proof and Code

#30
post #6

Earlier quoted context omitted.

Graydon also created monotone, which was a big influence on git. http://www.monotone.ca/monotone.pdf https://en.wikipedia.org/wiki/Monotone_%28software%29#Monoto...

I think Monotone was an alternative to BitKeeper and BitKeeper was the inspiration of Git and Mercurial. It even seems to suggest that in the link you posted.

Linus played with Monotone before he started git (and it shows)

He is even credited in the changelog: http://lwn.net/Articles/131744/

Post reply on HN