9 ms·
Stellar Protocol: A Federated Model for Internet-Level Consensus (2016) [pdf]
- neuronexmachina 9y agoI 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.
- mpfundstein 9y agoEli5 please ! ;-)
- throwacide 9y agoIn other words you can implement arbitrary dynamic trust, Opening up the possibility of arbitrary hierarchies, and much more efficient and robust mechanisms of establishing truth. Authorities could be designed arbitrarily and evolve on top of this core protocol. This so far sounds closer to tcp/ip foundation. Bitcoin would be more like Series of children with a dynamic system of never ending strings and Styrofoam cups. I bet there is already CS research theory ready to apply to this design. (Easier said than done and I am just guessing really).
- titanomachy 9y agoSomehow I don't think you've met very many 5-year-olds.
- cantrip 9y agoWhat part of this is interesting to you? This paragraph does not explain how they are different from Ripple's approach only that they are in fact different.
- zeroxfe 9y ago> This paragraph does not explain how they are different from Ripple's approach only that they are in fact different. I think the last line sums it up: "SCP is the first Byzantine agreement protocol to give each participant maximum freedom in choosing which combinations of other participants to trust." As opposed to Ripple, where the trust is heavily biased towards the starter membership list, making it more centralized than one would want.
- cantrip 9y agoHow exactly does that work? To me, the statement says essentially "you can trust us more than Ripple" with no explanation as to why.
- zeroxfe 9y agoThe explanation is in the PDF. OP was just pointing out the high-level description of how it's different. Obviously, the devil's in the details.
- deleted 9y ago[deleted]
- runeks 9y ago> As opposed to Ripple, where the trust is heavily biased towards the starter membership list, making it more centralized than one would want. It’s biased because of a technical issue (consensus must be reached). How does the Stellar protocol solve this technical issue?
- deleted 9y ago[deleted]
- 9y ago
- mirekrusin 9y ago"... 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.
- JonnyNova 9y agoSo, IOTA?
- runeks 9y agoIOTA is not decentralized. Although it allegedly will be in the future.
- StavrosK 9y agoMultiple commenters here are saying that Stellar has no consensus. Is that true? How could such a big issue be overlooked?
- grandmczeb 9y ago> Is that true? No. If you’re worried about it, read the linked paper. The mechanics (and assumptions) are covered in painstaking detail.
- ytjohn 9y agoThat sounds like secure scuttlebutt. Secure Scuttlebutt is a database protocol for unforgeable append-only message feeds. "Unforgeable" means that only the owner of a feed can update that feed, as enforced by digital signing (see Security properties). This property makes Secure Scuttlebutt useful for peer-to-peer applications. Secure Scuttlebutt also makes it easy to encrypt messages. https://scuttlebot.io/more/protocols/secure-scuttlebutt.html https://scuttlebot.io/more/protocols/secure-scuttlebutt.html
- gregknicholson 9y agoThis is a very lucid description of how Secure Scuttlebutt works. SSB is deliberately “against consensus”, which makes it useless as a trustless decision-making tool. So I take your point that this property of Stellar seems to make Stellar useless for its stated purpose. (I haven't read the paper, so I may be very wrong.)
- mazieres 9y agoTo be more precise about this, the Ripple consensus paper (https://ripple.com/files/ripple_consensus_whitepaper.pdf https://ripple.com/files/ripple_consensus_whitepaper.pdf) says in Section 3.3, "Since the UNLs for each server can be different, agreement is not inherently guaranteed by the correctness proof." This of course doesn't mean that Ripple is never safe if UNLs disagree. (A node's UNL in Ripple serves the same function as a node's quorum slices in SCP.) It just means that the analysis from Section 3.2 does not apply. SCP was designed to be decentralized in the sense that we assumed different nodes would want to chose different quorum slices and wanted to achieve the best possible safety for any such choice. A particular concern with Ripple is what would happen if Ripple validators failed not by crashing, but by getting compromised and acting maliciously (so-called Byzantine failure). The Ripple paper states in Section 3.2 that "it would take (4n + 1)/5 Byzantine failures for an incorrect transaction to be confirmed" (where all nodes are assumed to have identical UNLs and n is the size of that UNL). I believe this is an error, as with a quorum size of 80% of n, it is easy to construct a counter-example. Suppose nodes v_1 and v_10 are honest, while v_2, ..., v_9 maliciously deviate from the protocol. Now consider the two 80% sets (v_1, ..., v_8) and (v_3, ..., v_10). Those two sets overlap at only malicious nodes that could prevent v_1 and v_10 from hearing about each other's transactions. The nice thing about SCP is that it is optimally safe (Theorem 13 in the paper). That doesn't mean it guarantees safety under all possible configurations (e.g., two disjoint sets of nodes that don't know about each other). But it means that in any configuration where there exists some protocol that could guarantee safety, SCP will guarantee safety as well. That includes Byzantine failure scenarios. So you could translate UNLs into quorum slices and substitute SCP for Ripple's consensus algorithm, and if RPCA was already guaranteed safe, then SCP will be, too. The converse is not guaranteed; you could choose a configuration that is safe under SCP and risks forking under RPCA.
- suckmydang 9y agoWhen 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 9y agoI 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 9y agoThanks 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.
- desireco42 9y agoWhoa, awesome, well, thank you personally. I find it surprising the UI is pretty rudimentary taking into account how API is easy to work with. I am looking to do something, not 100% what on Stellar Network, mostly due to the fact that I am familiar with it and I like api among other things.
- jcfrei 9y agoAre 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.
- deleted 9y ago[deleted]
- jsmthrowaway 9y ago
- narrator 9y agoLeader 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.
- ketzu 9y agoYou seem to use a very narrow definition of "distributed system" compared to most people. Could you explicitly state your assumptions? Your "distributed system" seems to coontain assumtions such as trustlessness and openness towards new participants. (No sybil attacks with fixed entities)
- narrator 9y agoYes, I was assuming a cryptocurrency situation in which the system is open, new participants can join, and it must work under byzantine fault-tolerant conditions. In a system such as RAFT or PAXOS this isn't the case and thus these systems can properly elect leaders.
- alistproducer2 9y agoIn 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
- bbayer 9y agoStellar 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 9y agoBut why should XLM have any value? Isn’t it just a means to transfer other things?
- hobofan 9y agoBecause 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/
- deleted 9y ago[deleted]
- ChristianBundy 9y agoCould you post your transaction IDs? I've never heard of anything like this.
- joshu 9y agohttps://stellarchain.io/address/GDEQGZ7Y54XPRJOCGSMTTP2Y5WEWGA2RENPFSGXS7G5AUICUZ5BJGOU5 https://stellarchain.io/address/GDEQGZ7Y54XPRJOCGSMTTP2Y5WEW...
- runeks 9y agoThere’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
- garmaine 9y agoI’m not sure that post is about SCP? “Three years old” predates the publication of this protocol.
- Torn 9y agoStellar was re-written in 2015, so I suspect this critique will be of the legacy Ripple protocol
- xwvvvvwx 9y agoThe linked comment thread is on this post announcing SCP: https://www.stellar.org/blog/stellar-consensus-protocol-proof-code/ https://www.stellar.org/blog/stellar-consensus-protocol-proo...
- jondubois 9y agoWhen 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?
- wmf 9y agoAFAIK the current implementation of Stellar has every "full node" record every transaction. In general, consensus and scaling should be orthogonal so you should be able to combine SCP with something like sharding if you think that's a good idea.
- mazieres 9y agoYes. 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 9y agoWhere 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?
- pjkundert 9y agopoloniex.com
- keyle 9y agoI'm not a financial advisor but you can get them on Binance. If you look at the market tab of this site, it gives you an idea of current and old exchanges for that instrument. https://coinmarketcap.com/currencies/stellar/#markets https://coinmarketcap.com/currencies/stellar/#markets
- bushido 9y agoBTC/ETH can also be traded on Stellar's Distributed Exchange. One of the easier to use exchanges that provides a bridge for this is Stronghold.co (US/SFO based)
- fiatjaf 9y agoStronghold[0] works great with me. [0]: https://stronghold.co/ https://stronghold.co/
- pjkundert 9y agoTrading into a very thin market there, though.
- blunte 9y agoBittrex has it, and that's where I've been buying it.