Two news for today: version 0.8.0t is released and trustless exchange is launched.
Both are for testnet.
Download the new version from
https://github.com/byteball/byteball/releases, Android should auto-update, and the link to the exchange is at
https://byteball.org. Only the new version will work with the exchange.
The exchange allows to exchange public assets issued on Byteball platform, including bytes. Blackbytes are not covered as they are a private asset.
The exchange is not built-in (as in Nxt, Ripple, and Bitshares), it is an application built on smart contracts. It is the first application on our network that uses smart contracts. By keeping the exchange out of the core, we achieve that we don't have to add complexity to the core, as well as greater flexibility in how the exchange can work.
The exchange is centralized and trustless. Centralized means that there can be many centralized exchanges competing with each other and trying to deliver better product. Centralized also means that it is run as a business and can be properly managed and marketed. Trustlessness means that the exchange operator can't steal customer's money, nor can he lose it if the exchange is hacked or mismanaged. This is achieved by very simple smart contracts that every user can see and verify, and he doesn't need to be a developer to understand them:
To create an order to exchange asset A to asset B, a customer sends his asset A to an address that can be spent:
- by the customer himself after a timeout, or
- by the exchange operator if the same transaction simultaneously sends asset B to the customer (in the specified amount)
The first clause allows the customer to cancel the order and take his money back. The 2nd clause doesn't give the operator arbitrary control over asset A: the operator can use asset A only if he simultaneously pays asset B to the customer. This is the key difference from conventional trustful exchanges -- the operator is bound by the contract.
The operator then matches this order with a reverse order from another customer and signs for both sides of the deal simultaneously.
This is what a typical dialog with exchange operator looks like (yes, it is a chatbot, you've already got used to):
Before paying, the customer is presented with a user readable description of the contract:
HXY5... is the asset we are buying (chips).
W272... is the exchange address (actually, it doesn't matter who owns this address as long as the asset is sent to us).
Before the order is executed, the customer can see everything about this smart contract address in his wallet -- its balance and history, and can spend from this address (after the timeout specified in the contract). The address is presented as a subwallet, it is easy to navigate to and from.
For those who have experience with conventional exchanges, there are a few differences that may seem odd. Due to how the smart contracts work, there is no partial matching of orders. To overcome this, orders are split into a small number of standard sized orders. The standard lot sizes are powers of 2, which allows to match equal-sized orders, as well as some common combinations thereof, such as one large order against two half-sized orders (e.g. 32=16+16). (Instead of powers of 2, we could also use Fibonacci numbers as standard lot sizes because each size would be equal to the sum of two smaller sizes, e.g. 13=8+5). That's why when you create an order you usually pay to several addresses. These sub-orders can match at different time and you'll receive your assets in several standard-sized portions. Also, placing an order is not instant, you have to wait that the transaction that funds it becomes final. Obviously, there is no margin trading, and there are no charts in chat. So, if you are a day trader, it is not for you. If you need to occasionally buy or sell assets, I think this tool is quite good for you.
Try it for yourself, the new UI is available after upgrading to 0.8.0t, and the link to start a chat with the exchange bot is at
https://byteball.org. Remember, this will work with testnet wallet only.
Please retweet
https://twitter.com/ByteballOrg/status/811007135148572672