Blog Article
Author
Stellar Development Foundation
Publishing date
Stellar
Stellar is a decentralized protocol for sending and receiving money in any pair of currencies. This means users can, for example, send a transaction from their Yen balance and have it arrive in Euros, Yen, or even bitcoin. We're expecting to support the usual categories of transactions: payments to a merchant, remittances back home, or rent splits with a roommate.
You can hold a balance with a gateway, which is any network participant you trust to accept a deposit in exchange for credit on the network. Stellar also comes with a built-in digital currency, referred to as the stellar, which we're giving away for free. The currency will have value (as determined by the market); however, its primary function is providing a conversion path between other currencies.
We hope that people will build applications on top of Stellar to help bridge the gap between digital and traditional currencies.
We're developing Stellar as part of a nonprofit organization, the Stellar Development Foundation. The code is open-source, and anyone is welcome to join the project. If you're interested in following Stellar development or helping us build the network, just jump into our IRC room (#stellar-dev on Freenode), or browse the forums. You can start building applications on top of Stellar now; see Stellar Client (the code behind our hosted web client) or Stellar Viewer (the code behind the account viewer) for some working examples.
The following are some of the people involved:
We provide an open-source hosted web client, where the keys are encrypted client-side to your password so we don't have access to your funds. The supply of stellar will increase at 1% per year.
The network has been initialized with a supply of 100 billion stellars. 5% will be used to fund operations of the nonprofit (its spending, including employee compensation, will be public), and the remaining 95% of the stellars will be distributed for free as quickly as we can manage. We want anyone to be able to get onto the network, and we're correspondingly going to apportion the giveaway as follows for more details):
We're starting the main giveaway now. Note that we're still ensuring the stability of our own systems, so we may have to limit the rate of stellar distribution at first.
Stellar is built on the concept of gateways—entities that let people get into and out of the network. (For some related background, it may be worth reading Stripe's recent cryptocurrency blog post.)
You need to trust the gateways you use, but you don't need to trust the other participants in the network. This is similar to trusting your local bank to hold a deposit on your behalf. In Stellar, you explicitly decide how much you'd like to trust a gateway by setting policies such as “I trust this gateway to hold a deposit of up to 100 CAD on my behalf”.
Currency balances are represented as credits from the gateway. For example, a user could deposit 100 USD into an appropriate gateway via ACH, and the gateway would issue a “(100, USD, <gateway>)” credit to the user's Stellar account. The credit issuance will only succeed if the user has already marked themselves as trusting the gateway for at least 100 USD.</gateway>
Credits can be traded between users without involving the gateway.
Cashing out of the network requires invoking the promise represented by a gateway's credits. You return those credits to the issuing gateway, and the gateway sends you the corresponding currency. Because the currency return is external to the network, you need to trust the gateway to follow through on their commitment (just as you trust your bank to return your deposit upon request).
Since it's a distributed and open network, anyone is able to start their own gateway, and to take their pick of gateways to trust.
Stellar bakes a distributed exchange into the protocol. You can think of the exchange as a single large pool of offers of the form “I'll trade (100, EUR, <gateway>) for (79, </gateway>GBP, <othergateway>)”. Anyone on the network can issue a new offer, accept an outstanding one, or cancel an offer they created.</othergateway>
Outstanding orders to convert between a gateway's local currency and stellar let anyone on the network send local currency credits to that gateway's users. Behind the scenes, there might be a series of conversions along the way. For example, a user might submit a transaction which converts EUR credits to stellar and then converts those stellar to AUD credits. Ultimately, the user will have sent EUR, the recipient will have received AUD, and two exchange orders will have been fulfilled.
Under the hood, Stellar uses its own distributed ledger, which is maintained by a consensus algorithm rather than mining. Each node in the network communicates with a set of other nodes that it believes will not collude (such as nodes run by universities, governments, and companies). Importantly, it doesn't need to trust the nodes themselves — it just needs to believe the nodes won't work together to produce the same malicious result. Consensus is then reached by an iterative process, which results in each new ledger being decided upon every few seconds. Correspondingly, transactions confirm nearly instantly, and no mining is needed.
We'll be releasing a paper soon documenting and exploring a provably-correct version of this algorithm.
The Stellar network is just getting started. Today, you can test it out by sending and receiving stellar (or you can use the API to play with running your own small-scale gateway, such as by issuing credits for minutes of your debugging help). We're working with a few currency exchanges to help them become the first Stellar gateways; once they're done, you'll be able to transact in the currencies they provide. In the long term, there will be gateways to cover every payment method that people choose to support.
In the meanwhile, we'll keep building, and we hope you'll join us.