This commit is contained in:
mvonsteinkirch 2023-02-08 09:08:45 -08:00
parent bf818f2682
commit d3a292bfd1
133 changed files with 26 additions and 40 deletions

View file

@ -0,0 +1,30 @@
## oracles
<br>
### tl;dr
<br>
* price oracles are any defi tool showing an asset's price. they can either on or off chain.
* oracles should provide a trustless way of getting extrinsic (off-chain) information, and some key functions such as: collecting data from an off-chain source, transfering the data on-chain with a signed message, and making the data available by putting it in a smart contracts storage.
* oracle exploitation can generate profit opportunities (e.g., through arbitrage or liquidation, multi-block)
<br>
---
### in this repo
* [TWAP](twap.md)
* [TWAMM](twamm.md)
* [chainlink](chainlink.md)
---
### resources

View file

@ -0,0 +1,20 @@
## chainlink
<br>
### tl; dr
<br>
* a decentralized oracle network consisting of three key smart contracts:
* a reputation contract: keep track of data providers' performance.
* an order-matching contract: selects bids from oracles using the reputation contract.
* an aggregation contract—and an off-chain registry of data providers.
* one of the main challenges with such a decentralized approach is the formulation of the aggregation function.
* chainlink proposes calculating a weighted response, allowing a validity score to be reported for each oracle response.
<br>
---
### resources

View file

@ -0,0 +1,21 @@
## twamm designs
<br>
### tl; dr
* a new type of automated market maker, or AMM, that helps traders on Ethereum efficiently execute large orders.
* time weighted amm designs prevent sandwich attacks by executing transactions lazily.
* in twamm, orders are executed as if they were placed between blocks. this way, an attcker would need to straddle blocks in order to take advantage of the victim's slippage tolernace (which is riskier than simply including txs around the victim's).
<br>
---
### resources
* [twamm by paradigm](https://www.paradigm.xyz/2021/07/twamm)
* [twamm reference implementation in python](https://github.com/para-dave/twamm)
* [some properties of twamm](https://github.com/pcaversaccio/reentrancy-attacks)

View file

@ -0,0 +1,37 @@
## TWAP oracles
### tl; dr
<br>
* an assets time-weighted average price (TWAP) is the measure of an assets average price over a predetermined period of time (any specified duration).
* TWAP trading algorithms seek to optimize average price while executing over a specified time period.
* generally used to execute large orders that are expected to have significant market impact.
<br>
---
### tl; dr oracle attacks
<br>
* on pos ethereum, block builder building successive block might be able to manipulate oracles for multi-block MEV extraction, as proposers know one epoch (32 blocks or 6 minutes and 24 seconds) ahead if they are the next block proposer.
* with mev-boost, an attacker could observe the set of upcoming proposers. if they finds two successive proposers that have both been proposing blocks, then the attacker can anticipate the attack.
* a potential attack vector is on lending protocols, where an attacker can borrow assets that are immediately undercollateralized.
<img width="791" src="https://user-images.githubusercontent.com/1130416/209031792-52d7671e-480e-497b-9736-4e22e1810fab.png">
<br>
___
### resources
* [multi- block MEV by flashbots](https://collective.flashbots.net/t/multi-block-mev/457/2?u=nerolation)
* [statistical analysis on ethereum k-consecutive block proposal](https://alrevuelta.github.io/posts/ethereum-mev-multiblock)
* [uniswap v3 twap oracles](https://uniswap.org/blog/uniswap-v3-oracles)
* [multi-block mev, by chainsecurity](https://chainsecurity.com/oracle-manipulation-after-merge/)