
Stellar Protocol: A Federated Model for Internet-Level Consensus (2016) [pdf] - bushido
https://www.stellar.org/papers/stellar-consensus-protocol.pdf
======
neuronexmachina
I was curious about how this was different from Ripple's approach, I thought
this was interesting:

> Generally, membership in Byzantine agreement systems is set by a central
> authority or closed negotiation. Prior attempts to decentralize admission
> have given up some of the benefits. One approach, taken by Ripple, is to
> publish a “starter” membership list that participants can edit for
> themselves, hoping people’s edits are either inconsequential or reproduced
> by an overwhelming fraction of participants. Unfortunately, because
> divergent lists invalidate safety guarantees [Schwartz et al. 2014], users
> are reluctant to edit the list in practice and a great deal of power ends up
> concentrated in the maintainer of the starter list. Another approach, taken
> by Tendermint [Kwon 2014], is to base membership on proof of stake. However,
> doing so once again ties trust to resource ownership. SCP is the first
> Byzantine agreement protocol to give each participant maximum freedom in
> choosing which combinations of other participants to trust.

~~~
mirekrusin
"... gives maximum freedom ..." nice way of putting the fact that there's
basically no consensus; i've got even better idea, with more freedom -
everybody can write whatever they want into append only database and they have
freedom to choose which bits make sense.

~~~
StavrosK
Multiple commenters here are saying that Stellar has no consensus. Is that
true? How could such a big issue be overlooked?

~~~
grandmczeb
> Is that true?

No.

If you’re worried about it, read the linked paper. The mechanics (and
assumptions) are covered in painstaking detail.

------
runeks
There’s a great, three year old HN thread about the Stellar protocol, starting
with a critique by Gregory Maxwell ( _nullc_ ) here:
[https://news.ycombinator.com/item?id=9342348](https://news.ycombinator.com/item?id=9342348)

~~~
Torn
Stellar was re-written in 2015, so I suspect this critique will be of the
legacy Ripple protocol

~~~
xwvvvvwx
The linked comment thread is on this post announcing SCP:

[https://www.stellar.org/blog/stellar-consensus-protocol-
proo...](https://www.stellar.org/blog/stellar-consensus-protocol-proof-code/)

------
narrator
Leader election in distributed systems is still an unresolved problem AFAIK
except for proof of work. The problem is what does the leader have to give up
to be a leader? The economic value of being the leader must be balanced by the
work to become the leader otherwise there is an opportunity for arbitrage. For
instance, if the value of leadership is X and the cost to do a Sybil or other
attack is X/10 the network will be eventually attacked that way.

~~~
alistproducer2
In distributed ledgers, it doesn't matter who the leader is. The system only
has to ensure that leadership is distributed in such a way that it is
statistically infeasible or economically unprofitable to rewrite history.

PoW distributes the leadership (block creation) via crypto puzzles. PoS tries
to use economic incentives to make bad behavior more expensive than good.

There's work being done (which I personally believe is the right way to go) in
using a leader election-based system that works like a lottery (Algorand[0] is
an example). The basis of such a system is going to be the creation of non-
biasable pseudo-random number generation.

Along these lines one of the more intriguing projects is called RandHound[1].
It's a way of creating distributed randomness (according to the paper's
title). I think chains secured via lottery leader selection protocol has more
promise than PoS.

Edit: for clarity

A lottery-based system works because the "winning numbers" (imagine a winner
being a node whose public key when XOR'd with the winning number is below a
certain value) are known to all (a protocol like randhound ensures that all
nodes know the winning number). A winner's bundle of transactions are
validated as his/her's by cryptograpic signature (which can be verified using
the same public key that is used to confirm this person is truly a winner).
Those are the broad strokes. Obviously there's a lot more to getting it to
work. I've been working on it for months and still haven't gotten around to
putting it down on paper.

[0]: [https://arxiv.org/abs/1607.01341](https://arxiv.org/abs/1607.01341)

[1]:
[https://eprint.iacr.org/2016/1067.pdf](https://eprint.iacr.org/2016/1067.pdf)

~~~
jcfrei
> There's work being done (which I personally believe is the right way to go)
> in using a leader election-based system that works like a lottery
> (Algorand[0] is an example).

Probably what you meant but I still wanted to mention it: Bitcoin (or most PoW
schemes) work like a lottery. Think of each attempt at generating a nonce
below the required difficulty as a lottery ticket. The more nonces you
generate (the more hashes per second you compute) the higher your chance of
winning. The system works because people who spent lots of money on lottery
tickets in the past (and maybe won one or two times) are incentivized to keep
the lottery running in an honest manner (so their prize keeps its value - if
they haven't spent it).

> Along these lines one of the more intriguing projects is called
> RandHound[1]. It's a way of creating distributed randomness (according to
> the paper's title). I think chains secured via lottery leader selection
> protocol has more promise than PoS.

Another notable mention is dfinity (dfinity.org). They have a very interesting
technology stack and I'm hoping for discussions about it in the future on HN.

~~~
alistproducer2
Yes and no. A true lottery predictably periodic - it happens in rounds. PoW
puzzles are async and so the chain can fork. The second property of the crypto
puzzle kicks in here - the statistically predictable number of hashes
necessary to solve the puzzle which can then be used to calculate an average
time necessary to create a valid block. With a forking chain, it's this time
gap that secures the chain against rewrites. So yes, PoW is used to distribute
block creation among the network but it differs from a true lottery system in
that it is not synchronized into rounds.

~~~
jcfrei
Ah, I see now how the terminology is applied. Thanks for the clarification.

------
bbayer
Stellar is one of the robust and undervalued asset. It has great potential and
I think this year we will see lots of intereting things built on top of
Stellar.

~~~
econner
But why should XLM have any value? Isn’t it just a means to transfer other
things?

~~~
hobofan
Because any value that is not directly cashed out of XLM stays in XLM.

One application that uses XLM as its native currency is SatoshiPay[0] (that's
how I got to know Stellar).

[0]: [https://satoshipay.io/](https://satoshipay.io/)

------
jondubois
When I read white papers, there is only one question I need answered and I
feel that the Stellar whitepaper just dances around that question:

Does the algorithm fundamentally require that every transaction have to
eventually pass through every node in the network?

The idea of quorum slices seems to imply 'no' but the whitepaper doesn't
appear to make any attempt to connect the concept of quorum slices with actual
transactions.

Can anyone answer that question?

~~~
mazieres
Yes. Every validator in Stellar has a copy of the complete ledger. However,
different validators may be authoritative for different types of token. Say
bank_A runs a validator and issues digital dollars on Stellar, while bank_B
runs a validator and issues digital euros on Stellar. Each validator will
store both banks' token holdings and prevent double spends. However bank_A
should offer to redeem its digital dollars for real currency only when the
redemption transaction commits on its own validator, and similarly for bank_B.

Running a validator protects a token issuer against double redemptions, as
might happen in a mining-based blockchain where anonymous miners fork the
blockchain and thus create twice as many tokens. That's fine for pure crypto
tokens, where you can create Ethereum [classic] or Bitcoin cash out of thin
air. But if you were using colored coins or ERC20 tokens to represent claims
on bank deposits, these forks would be a problem.

------
bitcurious
Where can one actually buy some? I have some BTC/LTC I'd like to trade for
stellar but it seems all of the reputable exchanges that trade it are closed
to new registrants. Any suggestions?

~~~
fiatjaf
Stronghold[0] works great with me.

[0]: [https://stronghold.co/](https://stronghold.co/)

~~~
pjkundert
Trading into a very thin market there, though.

------
suckmydang
When Stellar's codebase was still just a fork of Ripple (entire codebase was
completely re-written from scratch in 2015), it experienced many divergent
forks of the network due to weaknesses in the Ripple consensus protocol. Those
weaknesses have been eliminated in the new SCP described in this paper, but
AFAIK Ripple still has these systemic problems. The new Stellar codebase is
actually a joy to work with.

~~~
desireco42
I know their api is really nice and I was surprised how easy was to work with
it, whether it is a test net or public.

~~~
nullstyle
Thanks for the kind words! (disclosure: I designed most of the API)

We're not done yet. IMO it's still not easy enough to build great software on
top of our work.

~~~
jcfrei
Are there future plans to add smart contracts (with a "Turing-complete"
virtual machine) to Stellar? I think that the Stellar consensus protocol with
its speed would be perfect for overcoming the current limitations of Ethereum.

~~~
hossbeast
Turing completeness is not a virtue in a smart contracts language.

