De-Fi Dersleri VII - Uniswap V2
Türkçe karşılığı emir defteri yada emir tahtasıdır. Alım satıma konu olan finansal varlıkların fiyat oluşumu bu emir defterleri üzerinden gerçekleştirilir. Bu defterin bir tarafından satıcılar satmak istedikleri fiyattan diğer tarafında ise alıcılar almak istedikleri fiyat üzerinden sıralanır. Aşağıdaki örnekte görüldüğü üzere alıcı ve satıcının buluştuğu noktada (örnekte 11224.9 dolar) ilgili varlık için fiyat oluşur.
7 Haziran 2022

De-Fi Dersleri VI- Uniswap V2
1- Order Book nedir ?
Türkçe karşılığı emir defteri yada emir tahtasıdır. Alım satıma konu olan finansal varlıkların fiyat oluşumu bu emir defterleri üzerinden gerçekleştirilir. Bu defterin bir tarafından satıcılar satmak istedikleri fiyattan diğer tarafında ise alıcılar almak istedikleri fiyat üzerinden sıralanır. Aşağıdaki örnekte görüldüğü üzere alıcı ve satıcının buluştuğu noktada (örnekte 11224.9 dolar) ilgili varlık için fiyat oluşur. Aşağıdaki örnekte kırmızı renk SATICILAR 'ı yeşil renk ise ALICILAR'ı temsil etmektedir.
2- Neden emir defterini (order book) kullanmıyoruz?
Bu defter merkezi sistem üzerinden çalışmaktadır. Alıcılar ve satıcılar, merkezi bir hizmet sağlayıcının verdiği alana giriş yapıp işlemlerini gerçekleştirmektedir. Merkezi token/coin borsalarını düşünün yada direkt borsaları düşünün. Bu işlemlerin ne kadar gerçek olduğunu bilemezsiniz. Belki bu sistemi sağlayan kurum, işlemleri manipüle etmek adına kötü yazılımlar kullanmaktadır.
3- AMM nedir ?
Automated Market Maker (Otomatik Piyasa Yapıcı), merkezi olmayan borsaların(DEX) çalışma prensibine verilen genel addır. Bu piyasalarda her token/coin çiftlerinin oluşturduğu havuzlarda işlem yapılmaktadır.
Her token(coin) çiftinin bir havuzu vardır.
Mesela, BTC-ETHER havuzu, AVAX-ETH havuzu Çiftler arasındaki parite(değişim oranı) burada AMM mantığı ile hesaplanır.
Aşağıda uniswap v3 havuzları görülmektedir.
4- Basit AMM mantığı nasıl işler ?
Havuzdaki tokenların miktarsal çarpımları sabit bir katsayıya eşittir. Sabit fonksiyonu düşünün.
x* y = k x ile y nin çarpımı hep k ya eşittir.
Basit bir örnek x :10 y :20 x*y =200 Diyelim x =5 oldu y de sabit fonksiyonu sağlamak için 40 olur.
5*40=200 5- Uniswap v2 nasıl işler ?
Uniswap v2 havuzlarında AMM sistemi fee ile uygulanmaktadır. İlgili havuzlara token/coin koyanlara bir gelir sağlanması gerektiğinden, uniswap bu teşvik mekanizmasını havızdan yapılan swaplarda fee alarak sağlamaktadır. Bu fee, uniswap v2 de binde 3 'dür.
Kaynak:https://github.com/runtimeverification/verified-smart-contracts/blob/master/uniswap/x-y-k.pdf Bu dokuman üzerinde ilk olarak havuzlarda yapılan swaplarda token miktarlarının nasıl değiştiği gösterilmektedir.
Gözünüz korkmasın, alın size bir uygulama.
ETH/TOKEN havuzunda 1000 ETH ve 10000 Token var x*y=10.000.000 Havuza 4 ether veriliyor karşığında kaç token alalım ki sabit katsayı olan 10.000.000 değişmesin ( x + Δ x ) ( y − Δ y ) = x y (1000 + 4 ) (10000- Δ y )=10.000.000 Δ y =39.84 bulunur Sağlama yapalım (1004) * (9960.16)= 10.000.000 Şimdi bu işlemleri fee ile görelim.
( x + r Δ x ) ( y − Δ y ) = x y Uniswap v2'de fee %0.3 dür.
Buradaki r değeri ise (1-%0.3)=0.997 ETH/TOKEN havuzunda 1000 ETH ve 10000 Token var x*y=10.000.000 Havuza 4 ether veriliyor karşığında kaç token alalım ki sabit katsayı olan 10.000.000 değişmesin ( x + r Δ x ) ( y − Δ y ) = x y (1000 + 0.997*4) (10000- Δ y )=10.000.000 Görüldüğü üzre fee, olayın çerçevesini değiştiriyor. Sistem sizden 4.01 adet ETH vermenizi istiyor bunun karşılığında 39.722 diğer tokendan alıyorsunuz.
Δ y =39.72 bulunur Sağlama yapalım (1003.988) * (9960.278)= 10.000.000 6- Uniswap V2'de fiyat nasıl oluşur ?
Uniswap V2 de fiyatlar her havuzda yapılan değişimlerin birbirine oranlanması üzerinden yapılır.
ETH/TOKEN havuzunda 1000 ETH ve 10000 Token vardı.
Bu durumda 1 ETH = 10 TOKEN Havuza 4 ETH verilip 39.72 TOKEN alındı.
Bu durumda 1 ETH = 9.93 TOKEN Bu matematiği sabit katsayı ile ilişkilendirmek istersek aşağıdaki matematik ortaya çıkacaktır.
P= y/x ise y yerine P*x yazabiliriz; x*y=L² iken x*x*P=L² x=L / sqrt(P) [ x’in fiyatı] P= y/x ise x yerine y/P yazabiliriz; x*y=L² iken y/P * y=L² y= L * sqrt(P) [ y’in fiyatı] 7- Bir Uniswap v2 Havuz Örneği Havuzumuz DAI/ETH havuzu olsun.
Aşağıdaki işlemde havuza 607.21 DAI verilip 0.3209 ETH alınmış inceleyelim.
İncelemek için etherscan e gidelim.
İşlem öncesinde havuzda Reserve0=8.773.553 adet DAI ve Reserve1=4.650 adet ETH varmış.
Havuza 607.21 DAI verilip 0.3209 ETH alınmış .
Şu kodu anlamamız zorunlu. Özür dilerim.
balance0= reserve0 + amount0In balance0= 8.773.553 + 607.21=8.774.143 amount0In=607.21 dönecek amount1In=0 dönecektir.
İşlem sonrası düzeltilmiş değerleri hesaplıyoruz.
balanceOAdjusted ise= 8.774.143 *1000 -(607.21 *3) balance1Adjusted ise= 4.649,95 *1000 - (0*3) geliyoruz balanceOAdjusted* balance1Adjusted >= reserve0* reserve1*(1000^2) [caption id="attachment_31783" align="alignnone" width="410"] Uniswap v2 nedir[/caption] Uniswap Scdevstr Doc.Dr Engin Yilmaz 09062022 Kaynaklar: https://jeiwan.net https://medium.com/@jarekcoding/math-behind-uniswap-swap-part1-88dcc18a9612 https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol https://mirror.xyz/roherrera.eth/BMg6IoBHO8fNuyvmAuSDqjWf3ur-YZEAsNyG-aA1f9Y https://docs.uniswap.org/protocol/V2/concepts/core-concepts/oracles https://v2.info.uniswap.org/pair/0xa478c2975ab1ea89e8196811f51a7b7ade33eb11 https://github.com/runtimeverification/verified-smart-contracts/blob/master/uniswap/x-y-k.pdf İspanyolca İspanyolca Merhaba Nasıl Denir?



