Editor's Note: Augur is a predictive market platform on Ethereum, where users can freely create forecasting projects on the platform, inviting others to predict the outcome of an event in the future, and participants must purchase a share of the corresponding results when participating in the forecast. That is, "bet". This article describes a problem encountered by Augur v1 during its operation: some participants will defraud by creating a forecasting project that will ultimately be judged as “invalid”; and present Augur's short-term and long-term solutions.
Auger is a bit like a high-risk chess game: the developer and the community are one side, the attacker and the hacker are the other, fighting each other in the quiz; the malicious player pursues new exploit points, the new attack type, and the developer makes the agreement More robust and safer to fight. Both sides want to be more witty and use wisdom to suppress each other. But unlike chess games, developers can rewrite ongoing games to improve the game. The ultimate goal is to create a win-win game for everyone: the personal incentives of the market participants in the game and the effectiveness and security of the agreement stand on the united front and become a whole. In this game, it is more beneficial to participate in the agreement instead of attacking it, creating an effective market and reporting the results honestly, rather than creating an ineffective market and lying.
Although Augur v1 has achieved considerable success in the past, it has already encountered an imminent problem: invalid market fraud. A malicious player, or at least one dominant trader, deliberately creates an “invalid” forecasting market item and profit at the expense of the interests of other traders. This problem has been exposed before v1, but due to technical issues, scammers can still effectively exploit this vulnerability.
This is a very serious problem and a serious solution is urgently needed. So starting today, we will be releasing a series of updates, which we believe will make invalid market fraud a thing of the past. In general, we hope that these improvements will not only solve this problem well, but also make Augur a more reliable and robust protocol . The first part of these updates was implemented today, and the rest will be available in Augur v2. Before delving into these changes, let us see what these attacks are all about…
In a forecasting market, the trader buys shares, and the revenue that the share ultimately gives to the trader depends on the outcome of an event. In Augur v1's YES/NO market, one can buy two types of shares: YES or NO. If the market outcome is predicted to be YES (the event has occurred), each share of YES can get 1 Ether, while the share of NO is nothing. If the market settles to NO (the event does not occur), each NO share can get 1 Ether, and each YES value is zero. If the result is ambiguous or unverifiable, the market is judged as "Invalid", and the final YES and NO shares are worth .50 Ether.
Fraud with an ineffective market is to create a market that looks effective at first glance, but is actually an ineffective market. The most common practice is to set the closing time of forecasting market items before the actual results are announced. Market creators (or other traders) then place orders to get a cheap YES and/or NO share at less than .50 Ether. Those who fail to see through the scam or ignorant traders may buy these shares, and the scammers can profit from the market settlement.
The same pattern can be applied in the classification market (multiple results) and scalar market (digital results), but the difference is that when the forecast item is judged to be invalid, the value corresponding to the share will be different. For example, if there are 4 results in the classification market, each invalid share means 0.25 Ether, then the scammer will buy YES or NO when the price is below 0.25.
In Augur v1, the forecasting project creator needs to deposit a deposit when creating the project, and the funds can only be recovered when the project is determined to be valid. However, there are times when this margin requirement is too low to curb fraud in the use of an ineffective market.
The ideal solution requires some features:
We need automated solutions that use market forces and incentives or programmable logic instead of manual intervention. For example, because Augur is a decentralized, anti-censorship agreement, the Forecast Foundation cannot manually remove or mark the market.
We need robust solutions that can be adapted to different environments . We can solve problems from different angles, from the creation of invalid markets in the first place to identifying which existing markets may be ineffective.
Finally, we like a wide range of useful solutions, and hope that the solution can have neutral or beneficial side effects. In addition to solving this problem, it can ideally create utility for traders.
Today, we have released a new version of the Augur App that redefines the way the projects are sorted, stimulating market liquidity and effective output. The ranking ranks the items based on the "depth weighted" spread, making the most liquid trading order book most visible.
The normal spread is the difference between the highest bid (the bid price offered by the trader) and the lowest bid price (the seller's offer price). Filtering out markets that have large spreads can hide high-risk fraudulent projects that can cause people to suffer large losses.
However, scammers can also generate larger and more profitable orders by placing a series of dust transactions (ie, orders with small transaction volumes), bypassing simple spread filters and trapping unwarranted transactions. By. Therefore, we must not only consider the width of the spread, but also the depth of it.
– Wide and shallow spread example –
When calculating the difference by depth weighting, we must not only consider the size of the difference, but also the number of wishes of the buyer and the seller. For example, in this way, a purchase price of 0.49, a sales quantity of only 0.01, a selling price of 0.51, and a selling quantity of 0.1 parts are 10% for .48 and 10 for .52. Market liquidity is poor, although the difference in the previous market is small.
Imagine buying the 15% cheapest share from an order book and then selling it right away. If you sell the proceeds, which accounts for a high percentage of buying expenses (such as 85%), then the liquidity of the market is better than the liquidity you only recover a small percentage (such as 50%). If the spread is large, or if there is a small pile of dust trading, you can only recover a small amount.
– Under the current Augur standard, an example of a narrow and deep spread in the trade order book –
The new liquidity ranking is essentially the implementation of this model. The item will be sorted based on the number of shares you can buy and sell while meeting the liquidity threshold (default is 15%). If you buy a stock worth 100 ETH in a forecasting project, you can recover 85% of your expenses immediately after selling; in another project, you only have to buy 10 ETH to maintain this recycling ratio; then the previous one The ranking of the project is higher than the ranking of the latter. This sorting also filters markets with spreads above 15%. This single feature may not filter out all invalid markets, but it can be a good way to reduce attacks.
This sorting rewards markets with strong liquidity (small spreads and large depths). In other words, the more useful the market for traders, the more visible it is. Previously, traders could brush the project to the front page because the sorting was purely based on the position, which is the amount of bets in the current market. Invalid markets benefit from anomalous network effects, and they seem to have good quotes, so people ran inside to trade, making the market's default order higher.
The new sorting party flips these network effects to support liquidity and efficient markets. It motivates market creators and players to inject more liquidity with smaller spreads.
Experimental invalid market filter
Invalid markets can still avoid the spread filter. Although it won't be as embarrassing as it is in a market without filters, it may still cause damage.
For example, the market above can be improved by a powerful spread filter, but it is not valid! If someone bids for .48ETH, he will lose the .02 ETH + fee for each share, and the scammer will earn .02 ETH + for each share.
Is there any other way to expose that this market is ineffective, or at least provide a red card warning – just by looking at the trade order book?
There is! Under an invalid project, no one will buy or sell at a price that may cause damage. In the YES/NO market, this means that there is no possibility of a bid above $50 and a selling price below .50. Remember, ineffective market fraud is a manipulation of the game, and the market creator knows the final value of the share from the start (for example, each share in the YES/NO market is worth 0.5 ETH). Therefore, if there is any bid price above .50 or a selling price below .50, it can be assumed that the market creator or rational actor will eat the order.
Therefore, our Invalid Market Filter will exclude items that are not in the market and will not cause the order creator to suffer losses when the market is judged to be invalid. The existence of such a transaction is a valid signal for the market, because if the market is ineffective, one or more rational actors should have already eaten these orders.
The filter will also consider the cost. Assuming the market creator charges a 4% fee, even if one spends .52 ETH, because the final price is .50 ETH, the creator can still earn a little when the bid is .52 ETH (.50 – .52+.04 = .02). (Translator's Note: The commission rate required by the market creator will change the price range described above that would cause the creator to lose).
Ineffective market filters are not omnipotent despite the cost. A scammer can post a small transaction as a signal that can cause a loss and pass the filter. However, because there are spread filters that work at the same time, it is quite difficult to profit from invalid fraud, so market creators should think clearly to build an effective market.
Liquidity sorting and invalid market filters are symbiotic, because market creators have to rank higher in liquidity rankings, and they have to increase liquidity, which is more likely to pass invalid market filters. However, invalid market filters can be killed by mistakes: filtering out the actually effective market. So we have an invalid market filter as an experimental feature that users can freely enable or disable. As an experimental filter, our plan is to observe the means of fraud, look at the actions of the scammers, and then adjust as needed.
Tradeable Invalid share
The method mentioned so far, although effective, does not address the root cause of the problem: incentives. They still rely on changes to the user interface and do not touch the protocol. The tradable Invalide Share (Tradable Inavlid), one of our most exciting innovations in v2, is an elegant solution that touches the heart of the problem. It uses market coercive power to suppress the creation of ineffective markets, making it difficult to profit from ineffective markets or become fraudulent.
In Augur v2, Invalid also becomes a clear tradable share. Just as you can buy YES or NO shares, you can also buy "Invalid Shares". Scammers can no longer profit from the YES or NO share in the ineffective market because the YES/NO share of the ineffective market does not receive any return on capital.
The price of the Invalid share and the number of orders in a project will show the risk that the project is judged to be an ineffective market. Therefore, traders can better filter out the ineffective market and consider and hedge the risk that the market is judged to be ineffective in the market in which they trade. When you purchase a YES/NO share, you can also purchase Invalid shares as an insurance.
The real spark of the Invalid share tradable is its wide range of utility. A core feature of a well-designed forecasting market is that the price of the share can indicate the probability of the current perceived outcome. For example, if the YES share of "Andrew Yang will be the Democratic presidential candidate for 2020" is .09 ETH, it indicates that the market believes that there is about 9% of the possibility. Conversely, it is also true: traders decide how many shares to buy and sell based on their own perceived possibilities. So the relationship between price and perceived probability is two-way.
This correspondence was broken in Augur v1. Because people can't know how much the Invalid result is priced in the YES/NO share, nor can they infer the perceived probability from the price. Even if the probability of the result is 0%, if the related item may be judged to be invalid, then the YES share may have a positive price. When Invalid also becomes a tradable result, people become more cautious, and the probability of predicting each outcome of a project becomes very clear. This has pushed Augur a step closer to its long-term goal of becoming a public facility, with a strong predictor of any outcome in the world.
Floating formula for Invalid margin
When you create a market on Augur, you have to provide an "Invalidity Margin" and you can get back the deposit if and only if the market is cleared. The price of the margin is dynamically adjusted based on the number of recent ineffective markets. The more ineffective markets in the near future, the higher the margin rate for creating a market, the more expensive it is to create a forecasting project; on the contrary, the decline in the number of ineffective markets will drive the margin rate down.
The problem with v1 is that margin requirements fall back too quickly, making the cost of creating an inefficient market low. In v2, we changed the formula, so the margin requirement should not fall by more than 15% in a single week. Because the higher the margin rate of a forecasted project, the less likely it is to be an ineffective market. Slower loop speeds may help stop the creation of ineffective markets, while allowing users to filter projects by creating margin rates at the market.
"Struggling against existing facts can never change things. To change something, build a new model and make existing models obsolete" – Buckminster Fuller
We believe that these changes will make invalid market fraud a failed game and eventually disappear. Invalid market scammers will face some choices: finding new points of attack, leaving Augur, or starting to create effective markets and contributing productive liquidity (it seems that most prolific ineffective market creators on Augur have begun to create some Effective market). Anyway, this is a victory. If they find a new attack point, we can continue to fight fraud until Augur reaches the golden age. It would be better if they used their skills to create an effective market.
Augur's invaluable advantage between the agreement and its users is that Augur has a tens of thousands of members around the world who are enthusiastic about the project and hope for its success. The community has also been helping to develop and improve some solutions. In particular, we pay great tribute to the people on the #game-theory channel on Augur Discord.
We also want to thank many members of the Augur community for their efforts to educate others about the risks of an ineffective market, and sometimes even to deal with fraudsters. Finally, although we will never forgive their actions, we still have to say thank you to the ineffective market creators, thank you for telling us where Augur needs to be improved.
Just as we take a big step forward to solve this problem, we believe that we can meet any challenge through the hard work and resourcefulness of developers and communities.
Write to the market creator
To add liquidity to your forecasting project, you must first let the user see your project. Your market will contain a trading order book, and the difference between the highest bid and the lowest bid in the order book (including the market handling fee) is less than 15%. For example, a binary or classified market with a bid of 0.55 and a spread of 0.63 is 8%, so it can appear (note: it will not be hidden). For the 0.55 bid, the 0.75 bid market will not appear. The smaller the difference and the stronger the liquidity, the higher the market ranking, and more people can see the market.
In addition, in order for your market to appear on the default market page, after the transaction fee is included, the order book must have a value in which the order bid is higher than/the bid price is lower than the item result quantity divided by the price range. For example, in a YES/NO market, the highest bid price is 0.48 and the lowest bid price is 0.52. This market will be filtered out because the bid price is not higher than 0.50 and the selling price is not lower than 0.50. For markets with a bid of 0.52 and a bid of 0.55, the market will not be filtered out.
So, in Augur V1, until a better solution works in V2, avoid creating a market with truly uniform odds, but create a market with a slight (or large) weakness to make sure they don't Filtered by the invalid market filter unexpectedly.
Original link: https://www.augur.net/blog/reliable-markets/
Author: Ben Davidow
Translation & Proofreading: haiki & Ajian