WAVES Open-blockchain financial platform. Blockchain for the people.
We’re glad to announce the launch of WAVESLottery — a blockchain-powered lottery running on Waves Platform. We asked @deepred (Marco A.), Waves Community moderator and one of the lottery’s creators, some questions about the project and gambling on blockchain.
— First, could you please describe the purpose and functionality of your project? How did the idea of WAVESLottery emerge?
— The purpose is to create the first game on WAVES. Blockchain isn’t just trading you can do whatever you want and that’s just another user case. I started accepting WAVES in my restaurant last year, I’ve always been interested in the Waves ecosystem and I built the WAVESNotify BOT for the community. Then, I introduced Waves to two friends of mine (developers) and they found blockchain was really intriguing. They started developing stuff using the Waves blockchain. Almost every other crypto has a lottery game and WAVES was really missing a lottery or some sort of game. We thought the idea was cool and we started developing the whole thing, I discussed with a few members of the community and everyone of them was excited about it and here we are.
— What are the mechanics behind the WAVESLottery? How do users participate, what do they have to do, etc.?
— There are four Lotteries, each one with a different bet: 0,10 0,25 0,50 and 1 waves. Each lottery lasts 180 blocks so approx three hours. Users just have to send their bets to the WAVESLottery address. More bets mean more tickets, so the higher the chances to win. When the lottery ends, the system will calculate the winners and send the corresponding winnings to the them. Winners will be chosen using an algorithm that takes in consideration the next block size after lottery ended to ensure there’s no way to previously predict the winner. We’re awaiting for smart contracts before moving the algorithm there.
— What are your expectations about the launch of the project? Is there any feedback from the community yet?
— We have huge expectations from the community, we tried to make it accessible to anyone creating four different bets. It is the first lottery on WAVES, a young, but super fast and super cheap blockchain. Being that fast and that cheap is one of the most important things for a blockchain, especially when it comes to games. The feedback from our friends and beta testers were all positive when we conducted our testnet and then mainnet test so we are positive the community will like it. Dimitri from myTrackNet even sponsored 50.000 mTNT Tokens as a SPECIAL BONUS to the PLATINUM lottery.
— What is your overall opinion about gambling on the blockchain?
— Online gambling saw strong growth in the last few years and when it comes to being transparent and fraud-free, there is nothing better than embracing blockchain to allow the player to be 100% aware of what is going on behind the scenes. We believe the upcoming Smart Contracts on WAVES will definitely boost gambling projects’ development. We think that games like WAVESLottery might help us lose the focus on the price (especially during bear market) and focus on the endless possibilities of this amazing platform.
About the Team
- @deepred (Marco A.), a long time Waves Moderator and the developer behind WAVESNotifyBOT
- @daidalos (Marco D.P.), NodeJS, python, MongoDB Backend Developer and the brain behind WAVESLottery
You can find the team on the official WAVESLottery Telegram Channel.
There are 4 lotteries available:
BRONZE —> Bet 0.10 $WAVES
SILVER —> Bet 0.25 $WAVES
GOLD —> Bet 0.50 $WAVES
PLATINUM —> Bet 1.00 $WAVES
You can check the lottery status on the homepage at any time. When the lottery is ACTIVE (active lotteries will be shown with a BLUE background) you can place your bet by sending the exact bet amount to the address 3PQ33PFjvpWyFftoBRjQEZ55b2SBEToYaoo (or to its alias ‘waveslottery’.)
When a lottery ends (completed lotteries will be shown with a RED background) the winners will be calculated within a minute and the payout will start shortly after.
Winners & Payout
The Jackpot is the sum of every bet placed by all the players of the same lottery (-3.00% WAVESLottery fee) There is a minimum of 1 winner and a maximum of 5 winners. Payouts will be sent automatically approximately 1 minute after the lottery ends based on the rules below.
Lottery with 1 to 5 Players:
Lottery with 6 to 10 Players:
Lottery with 11 to 15 Players:
Lottery with 16 to 20 Players:
Lottery with more than 20 Players:
WAVESLottery only accepts the exact bet amount for each lottery, all the exceeding balances or bets placed when the lottery is STOPPED will be lost and will not be added to the jackpot.
For Example: If you wish to bet 3 times on the GOLD Lottery, DO NOT send 1.50 $WAVES in a single transaction, split it in three 0.50 $WAVES transactions.
Seeing a perspective in initiatives like WAVESLottery, Waves Platform decided to donate and support WAVESLottery with a 300 $WAVES bounty that will be used as a Jackpot! Every day (for 30 days) there will be a 10 $WAVES BONUS on the PLATINUM Lottery. What are you waiting for? Try to win some $WAVES on WAVESLottery!
Waves Platform Development Updates
Here is a brief update on current development activities and plans on Waves Platform.
Waves Node team have grown to 12 people. Now we have 9 Scala developers, 2 QA-engineers and 1 analyst. Two Scala developers, Alexander Makoed and Mikhail Potanin, joined in last month.
The team sticks to a stable and effective development process and smooth release cycle. In general, we are able to deliver one release with several new features per month. In order to avoid frequent mandatory upgrades, we decided to roll out mandatory MainNet releases once per two months. The rule is simple: releases will be done every odd month (May, July, Sep, Nov, Jan…). Although new features will appear on TestNet more frequently, during two-months preparation we will do frequent TestNet releases to collect comprehensive feedback.
Since we had our last release in March, next release is scheduled for May. We already have a scope of features we’re planning to deliver in May. Some of them are already on TestNet:
- DataTransaction allows using Waves blockchain as a key-value store, which can be useful in many use cases. Simple API includes setting values of integer, boolean and byte array types to your account by a specific key. Values set by DataTransaction can be accessed from API and smart account. Oracles and escrows will benefit from this feature the most, allowing them to lock and unlock some tokens on the account, with the usage of predefined condition and data in the blockchain. The feature is already on TestNet, we are testing it and collecting feedback. Before MainNet releases its API, rules or data structures may be adjusted.[On TestNet]
- Node storage optimization. We’re continuing optimizing LevelDB-based storage of Waves node. We’ve made one more step to make it more compact, so it’ll require less memory and its code will be simpler. Also, the state build will become faster. This resulted in blockchain rebuild time decreased twice and MainNet’s database now taking 10gb instead of 13gb. Moreover, the state build time takes much less time now. Node upgrade to this version will require state rebuild. [On TestNet]
- Fair Proof-of-Stake. As you know, Waves initially used Nxt-like PoS algorithm, which allowed us to bootstrap fast by using already working solution. For us, it has an obvious downside — miners with larger balances get more blocks than others, although, ideally, we would like all forged blocks to be strictly proportional to miner’s balance. Currently, we’re compensating the imbalance by distributing more Miner Reward Tonkens to small and medium miners. We did some research and came up with an idea to adjust the formula in order to fix the issue, whilst keeping its main advantage untouched, so every node will be able to forge blocks using its balance. This will stimulate further decentralization and bring more rewards to miners. [In Development]
- Burn any asset. Currently, only asset issuer can burn the asset. The idea is to allow everyone to burn some amount of an asset on their balance. It may be useful in some cases. [In Development]
- New transaction format is a technical feature, which adds version to a transaction format. Also, transactions of a new version have a collection of proofs instead of a single signature field. This will allow us to implement multi-signature accounts, atomic swaps and other features related to smart accounts. [On Testnet]
Another feature we’re planning to deliver in the nearest future is Sponsored Transaction proposal, which allows using custom assets as transaction fees more systematically, whilst fixing some issues.
The asset fees is a core feature of the platform but are also very controversial. Security is the major issue we’re going to tackle, so the system won’t get clogged with fee transactions. Also, we’d like to bring more fees to miners and leasers, whilst keeping transactions cheap for projects on Waves and preserving usability for autonomous project’s clients. You can check some feedback on this question, for example, here.
The latest proposal named Sponsored Transactions (or Autonomous Assets) is under discussion now. We have already received both a lot of positive feedback and some concerns from the community. In general, we think that this solution is the best of all possible options. We will go ahead with it, maybe with some adjustments.
The most anticipated of the upcoming Waves features are Smart Contracts. To be clear, they’ll include a number of different features:
- Smart Accounts — Lightweight scripts (similar to bitcoin, but more expressive), which allow solving basic security-related cases, like multisigs and different locks, whilst executing transactions for a fixed or statically predictable price. The script, attached to some account, then just validates outgoing transactions.
- Smart Assets. The idea is that some operations with a specific asset will be limited by a simple validation script. This is an experimental feature, we are still in process of designing and prioritizing it.
- Turing-complete decentralized applications. We are going to extend our base language to Turing-complete one, making possible the creation of decentralized applications (DApps) on the blockchain. Theoretically, such applications can do literally anything. Combined with our low-cost, easy to use and standardized assets, such DApps will bring great benefits for projects on Waves.
We are to release Smart Accounts on TestNet in April or May and prepare it for MainNet release in July. Together with that, we are going to start working on Atomic Swaps and multi-sign wallets to be able to release them soon after activation of smart accounts on MainNet. You can find Waves smart-contracts whitepaper preview here.
Waves Client team is now busy working on multiple features. The localization is one of them. The Client will be translated into Turkish and Chinese languages. Other languages can be easily added by our community.
In a few months, we are going to release Waves Wallet 1.0, which means the end of beta testing. In order to do that, we need to fix a number of things, implement token burn function, and complete DEX redesign. As for the DEX user interface, our goal is to make a top-level crypto-exchange, so we will work on it continuously. First changes will include a redesign of the watch-list and addition of trade history widget. New crypto-gateways to Monero and Dash will also be integrated.
An authorization with Waves wallet, when using a third-party application, is one more useful feature, we are currently working on. As a next step, it will allow a public application to initiate payments and other transactions safely, without accessing client’s private key, which is stored in a wallet.
A technical improvement, which will increase wallet stability and performance, is a new backend database. It will store and index transaction data from blockchain. This will be an open-source component, available for third-party developers.
The mobile team is working on a new version of mobile applications. Android and iOS apps will get a renewed modern design, thus becoming full-featured clients for Waves blockchain.
Relations with Developers
The most important thing for us now is to get more developers involved in the development of the projects and tools for Waves. If you are a developer, probably you’ve already met Inal Kardanov — our new team member, responsible for relations with developers’ community. He will lead technical ambassadors programme, organize developers’ meetups and advocate community interests in the core team.
The next big thing coming is the Waves community forum. In general, we’re going to make the team’s structure and the development process more transparent for the community, whilst enabling more smooth discussion of issues. These steps will provide o more early feedback on the features. A big step in this direction is a launch of Waves community forum, which will be announced very soon. All the proposals, new features, roadmaps, projects on Waves and new events will be discussed there.
How Blockchain Will Influence Business
Blockchain technology is here to stay — hardly anybody would doubt that. Yet public opinion currently most closely associates blockchain with cryptocurrencies and ICOs, so the potential of various technological benefits both for people and business is distorted. We have already spoken about the benefits of blockchain for the people, so let’s switch to the opportunities that blockchain brings for businesses.
No matter what size your company is, blockchain solutions will provide you with capabilities for easing (and even eliminating) most of the annoying routine procedures, enhancing your overall business model and increasing profits. As it was already said in the article “How to Invest in an ICO”, blockchain does not perform miracles or provide you with cheat codes to hack the realities of doing business. It is a system with a set of tools that make investing and doing business more efficient. The question is who uses these tools, and how.
To start, let’s draw a distinction between three ways in which blockchain solutions are being implemented in business now. The first implies that conventional companies — predominantly large ones — are redesigning their current structures, gradually implementing blockchain instruments. For example, FedEx is testing a new blockchain tracking system. Another example is Walmart and IBM launching a blockchain Food Safety Alliance for the Chinese market.
In both cases, there’s a centralized entity — FedEx and Walmart — but the services it provides are far more secure, transparent and faster than today’s traditional solutions since the two utilize blockchain technology. (The best comparison from the blockchain world itself is the Waves decentralized exchange, within which tokens are traded trustlessly, whilst the process is underpinned by a centralized matcher.) Blockchain instruments, used by large companies, run on smart contract mechanisms and decentralized data distribution, meaning any action is executed at the right time and any entity is totally traceable, providing businesses with a significant reduction in operational costs and real-time data updates.
Another set of applications involves the creation of completely decentralized services from the ground up. In this case, you can choose between FedEx, that uses blockchain in its services, or a DApp (decentralized application), that lets literally anyone be a delivery agent, just as anyone can be a cab driver with Uber. The key difference between a DApp and a traditional App is a higher level of security and transparency. A DApp is based on the use of smart contracts, which cannot be tampered with. Transactions within smart contracts are immediately executed when all the conditions of the deal are met. Also, services can be evaluated by voting on the blockchain — a fraud-proof and open voting mechanism.
Finally, there will be conservative businesses that simply use out-of-the-box blockchain instruments without implementing them in their core structures.
To sum up, in the future we will see the emergence of the following types of businesses:
- Conventional businesses that use ready-made blockchain solutions without incorporating them directly into company’s structure/model: they will use existing DApps/blockchain businesses as contractors and providers of services.
- Centralized businesses, with an existing structure, that utilize in-house/co-developed blockchain instruments: while remaining centralized in structure, they will alter their business and management schemes by implementing blockchain solutions, exclusively designed for the company’s needs.
- Fully decentralized business platforms within which anyone can become a service provider.
The fact that large corporations are adopting blockchain is nothing special. What’s more important is that being low-cost, secure and easily accessible, blockchain solutions are already offering high-quality new perspectives for small and medium business development. If you realize the importance of adapting to new business realities, you should definitely hop on the train of the blockchain revolution. Read more about the areas of business that are being influenced by blockchain here: “The Future of DApps”.
Waves Smart Contracts. What to Expect and When
Cryptocurrencies are blockchain cash, but the same decentralised approach can be taken to computer code — resulting in apps that run trustlessly and automatically, with no chance of failure.
Bitcoin has established blockchain technology as a trustless way of sending cash online. But ‘cash’ in this context simply means information. That information can represent other things too, giving the blockchain a far wider set of use cases than financial transfers alone. In addition to making peer-to-peer payments, it’s also possible to write and run software on the blockchain.
Ethereum was the first smart contracts platform, and is still the best known and largest by market cap. It features so-called ‘Turing-complete’ smart contracts — which means that theoretically Ethereum can be used to run any programme. There are many projects being developed on Ethereum, from multi-sig wallets to sophisticated e-commerce platforms that aim to replace marketplaces like Amazon and eBay with a decentralised model.
Whilst Ethereum’s approach to smart contracts makes them extremely powerful, they’re also inaccessible to the vast majority of everyday users. Anyone who wants to create any smart contract functionality has to know how to programme them. Moreover, the costs of getting it wrong can be enormous. There have been a number of thefts and exploits as a result of badly-written smart contracts, some resulting in tens of millions of dollars in lost funds.
The Waves Approach
Waves is taking a different approach to smart contracts. Whilst the platform is ultimately planning to develop highly-versatile Turing complete contracts, their initial iteration will include limited functionality. The idea is to release smart contracts that cover the most popular use cases, built into the client so that everyone can deploy them, regardless of whether they have any programming knowledge or understanding of smart contracts themselves.
This basic functionality will include account controls such as multi-sig accounts and the ability to lock tokens for a certain amount of time, to prevent them being moved. This will cover the majority of everyday usage safely.
Once this mass-use functionality has been thoroughly tested, Waves will release Turing-complete smart contracts. Like Ethereum’s smart contracts, these can be used for just about any use case. Also, smart accounts will be introduced.
A conventional account can only sign transactions before sending them to the blockchain. The idea of a smart account is the following: before the transaction is submitted for inclusion in the next block, the account checks if the transaction meets certain requirements, defined in a script. The script is attached to the account so the account can validate every transaction before confirming it.
The main requirement for our smart accounts is that they can be run for the price of normal transactions with a predefined fee, without any additional ‘gas’ or other costs. This will be possible due to the statically predictable execution time. Since Waves has been built on top of an account-based model like Ethereum or Nxt (instead of Bitcoin’s input/output system), we can set security scripts on accounts.
In our vision, smart accounts cannot send transactions themselves or transfer funds according to given conditions but can read data from the blockchain (for example, the height of a block or signatures from the transaction) and return the result of a predicate obtained on the basis of this data.
The language of smart accounts should be as simple as possible so that it is accessible to beginners or ordinary users who are not familiar with a particular language paradigm. Language grammar will be human-readable and user-friendly. We are consciously not going to provide users with the ability to write functions, recursions, and loops of indefinite nesting. We have explained earlier that we avoid constructions whose complexity cannot be predicted in advance and that cannot be executed in a definite number of steps. That is the reason why we also have no collections or ‘for each’ constructions.
If we plan to apply constraints on all operations for a specific asset, we cannot use a smart account. In our paradigm, we have smart assets for this purpose: the script will be attached to the asset and will work in a similar way. Transactions for such assets are valid only if the script returns True. For example, a script can verify proofs from a transaction, check if a notary/escrow approves the transaction, and that operations with the asset aren’t locked for a specified time. The script for the token is invoked upon the following operations with an asset:
The main focus for the first version of smart accounts will be different security, integration, and crowdfunding cases. An example of a security use case is multi-signature accounts. A multi-signature account is useful for contracts that need to be jointly owned, or shared, or when binding an agreement between multiple parties, or all of these. With its help, counterparties who do not trust each other can freeze a certain amount of tokens on the blockchain until the condition of having the required number of participants’ signatures is fulfilled.
The next group of use cases is integration, such as Oracles. An Oracle is the application that is responsible for connection to a given data source. It can place externally-sourced data on the blockchain as a series of transactions, but cannot change the data in them. Other people can receive money from a given account if this data meets the right conditions. Conversely, if we want to remove a third party from an operation, a smart contract can be involved in the creation of an Atomic Swap — the next step in decentralisation. An Atomic Swap is a direct trade between two users of different cryptocurrencies, the honesty of which is guaranteed by a single contract in all relevant blockchains that cancels the transfer of funds back to the participants if the agreed exchange has not taken place. (‘Atomic’ in this definition means that an operation will either be performed completely, or it will not be executed at all.)
Crowd sale processes like selling tokens on an exchange can be implemented trustlessly on Waves DEX without smart contracts. However, smart accounts can help investors after an ICO. For example, they can be used to control fund use via escrow, token holder voting, etc.