Comments (7)
@Choicethoery - once the price ratio is set, the liquidity providers cannot change it. Every subsequent significant price move will incur loses for the liquidity providers. The only rational choice for the liquidity provider is to remove liquidity once the rate becomes incorrect or to do arbitraging himself (thus, taking the assests from other co-providers on that contract).
Ok, was not correct in my statement above. If there is only one liquidity provider, to avoid losses he/she can adjust the price ratio by transferring directly Tokens or Ether (selfdestruct(uniswap_contract) ) to the contract :)
from v1-contracts.
Using the MakerDAO oracles would be a good way to reduce the risks associated with centralization.
The gas cost increase might be substantial.
The incentive is there for liquidity providers to provide an accurate price so I'm not sure how much the possible arbitrage is so much the primary problem as much as simply increasing liquidity participants.
from v1-contracts.
@gonchs It's an interesting thought but... I'm not particularly interested in adding points of centralization. At least not to the base system. Custom pools - exchange contracts that integrate the same interface but are not deployed from the factory - are the best place to experiment on this. Custom pools are able to trade against the public pools using the tokenToExchange
functions.
@Choicethoery Maker price oracles are not particularly decentralized yet. Once Uniswap gets a large enough liquidity pool it could become a good MakerDAO price oracle.
from v1-contracts.
@haydenadams - the problem is, that if only rational (arbitrage) traders are using the UniSwap, the UniSwap will always loose funds on any price movement. UniSwap can only work if there is enough "end user" trading who need the token exchange, but do not care about the price too much.
But in this case, one should wonder if the 0.3% fee is enough. The fee should depend on the price volatility of the assets traded (the higher volatility, the higher the fee) - one could take historical price movements of assets pair and simulate the losses from arbitrage, and decide what kind of fee would cover for those losses.
The only solution I could think to fix this is using an Oracle to set the price - it would be much cheaper than the services of arbitrage traders.
I also created an alternative proposal for an Oracle - see issue #19
from v1-contracts.
The incentive is there for liquidity providers to provide an accurate price so I'm not sure how much the possible arbitrage is so much the primary problem as much as simply increasing liquidity participants.
@Choicethoery - once the price ratio is set, the liquidity providers cannot change it. Every subsequent significant price move will incur loses for the liquidity providers. The only rational choice for the liquidity provider is to remove liquidity once the rate becomes incorrect or to do arbitraging himself (thus, taking the assests from other co-providers on that contract).
from v1-contracts.
@gundas One thing I'm interested in setting up is a smart contract that allows a swaps + liquidity deposits to be made synchronously to allow liquidity providers to deposit liquidity at an exact specified rate.
from v1-contracts.
Centralization is no way!
from v1-contracts.
Related Issues (20)
- contracts-vyper instruction HOT 1
- getTokenToTokenPrice HOT 2
- Tokens that do no return bools do not work HOT 1
- vNext Feature Request: Moving Average Price Feed Data HOT 3
- Unknown list type HOT 1
- Market limit orders for Uniswap HOT 7
- How important is the `min_liquidity` argument when adding liquidity
- UIP 1: Optional Permissioned Liquidity Pools HOT 2
- Add support for EIP1155
- ERC-777 token support HOT 2
- Doesn’t woks with ᴇʀᴄ20 tokens which always returns nothing. HOT 1
- What will happen in case of REVERT inside DELEGATE_CALL? HOT 4
- Support for latest Vyper compiler HOT 4
- End to End encryption of Uniswap to prevent front running HOT 3
- Bytecode: deployedBytecode or constructor?
- ABI removeLiquidity return values name collision
- Can't compile contracts on master branch, are other branch contracts okay to test on local testnet? HOT 1
- Add ERC-20 compatibility check when creating a new exchange HOT 1
- Missing ETH after failed attempt to add additional funds to UBT/ETH Liquidity pool HOT 2
- 如何将一个地址中的代币转移到另外一个地址中?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from v1-contracts.