Automated Market Maker Algoritmaları
Bildiğimiz üzere borsalar belirli bir varlığın alıcısı ve satıcısının buluştuğu yerlerdir. Belirli bir varlığın çeşitli fiyatlardan alış ve satış emirlerinin bulunduğu listeye ise emir defteri denir. Alıcı ve satıcı fiyatta anlaştığında ise ticaret gerçekleşir. Bu yönteme çoğumuz merkezi borsalardan aşina olsak da dXdY veya Deversifi gibi merkeziyetsiz borsalar da bu yöntemi kullanmaktadır. Emir defteri tabanlı merkezi ve merkeziyetsiz borsaların temel farkı; merkezi borsalarda alım satım borsanın kendi cüzdanında gerçekleşirken merkeziyetsiz borsalarda ise size ait cüzdanlarda gerçekleşmektedir.
Emir defteri tabanlı merkeziyetsiz borsaları da on-chain ve off-chain olarak sınıflandırabiliriz. On-chain demekten kastımız emirlerin doğrudan blockchainde tutulmasıdır fakat bu yöntem yüksek işlem (gas) ücretleri yüzünden birçok ağda mümkün olmamaktadır. Off-chain borsalarda ise emirler klasik web 2.0 çözümleri ile blockchain dışında tutulmaktadır. Emirler blockchain dışında eşleşse de sizin ticaretiniz blockchain üzerinde size ait cüzdanlarda gerçekleşir. Bu yöntem, işlemlerde düşük gecikme süreleri sunar ve yüksek gas fiyatlarından kaçınmayı sağlar. Ancak tam bir merkeziyetsizlikten bahsetmemiz mümkün değildir.
Likidite Havuzu Kullanan Merkeziyetsiz Borsalar ve Automated Market Makers (AMMs)
Daha önce bahsetmiş olduğumuz emir defteri (Order Book Based) ile çalışan merkezi ya da merkeziyetsiz borsaların aksine otomatik market yapıcıya (Automated Market Makers) sahip merkeziyetsiz borsalarda emir defteri yoktur bunun yerine likidite havuzu kullanılır.
Likidite havuzlarını, merkeziyetsiz borsaların akıllı kontratlarında bulunan iki veya daha fazla kripto para çiftini tutan rezervler olarak düşünebiliriz. Örnek olarak ETH/DAI likidite havuzunu ele alırsak bu havuzda Ether ve DAI çifti bulunur. Siz bu havuzda işlem yapmak isterseniz havuza Ether ekleyerek havuzdan DAI alabilir ya da havuza DAI ekleyerek havuzdan Ether alabilirsiniz. Bu sayede bir kripto varlığı, havuzda likidite olduğu sürece 7 gün 24 saat boyunca takas edebilirsiniz.
Bu havuzlara daha önceden belirlenmiş ağırlıklarda (örneğin Uniswapta bu ağırlık %50 ETH — %50 DAI şeklindedir) kripto varlıklarını kilitleyen kişilere likidite sağlayıcı (Liquidity Provider) denmektedir. Bu kişilerin havuza kilitledikleri kripto varlıklar likiditeyi oluşturur. Bu varlıklar sayesinde AMM tipi borsalarda takas yapabiliriz.
Burada akla ilk gelen soru neden insanlar durduk yere fonlarını bir havuza kilitleyerek bu havuzun likit olmasını sağlıyorlar şeklinde olabilir. Bilindiği üzere merkezi borsalar alıcı ile satıcının buluştuğu yerlerdir. Alıcı ve satıcı fiyatta anlaşırsa da ticaret gerçekleşir ve her bir ticaret için borsalar belirli miktarda komisyon alarak kazanç elde ederler. Bu kazanç doğrudan merkezi borsanın kendisine gitmektedir. Merkeziyetsiz borsalarda ise insanların kripto varlığını bu havuz çifti içerisinde değiş-tokuş edebilmesi için likidite havuzunda kripto varlık bulunmalıdır. Havuza likit kripto varlık sağlanması için ise bir teşvik mekanizması gerekmektedir. Bu teşvik mekanizması da yine işlemlerden alınan komisyonlardır. Ancak bu sefer bu komisyonlar bir merkezi borsaya değil de likidite havuzuna kripto varlık sağlayan herkese gitmektedir. İsteyen herkes likidite sağlayıcı olabilir ve fonlarını merkeziyetsiz borsaların akıllı kontratlarına kilitleyerek burdan gelir elde edebilmektedir.
AMM’ler ile borsada alım satım işlemi gerçekleştiren kişiler, Coinbase veya Binance gibi merkezi bir borsada likidite sağlayan merkezi bir piyasa yapıcısına ihtiyaç duymadan emirlerini sorunsuz bir şekilde gerçekleştirebilirler. AMM’lerde emirler, alım satım fiyatlarını algoritmik olarak hesaplayan bir akıllı sözleşme aracılığıyla otomatik olarak yürütülür.
Mevcut AMM türleri nelerdir ?
AMM’ler likidite havuzundaki varlıkları algoritmik olarak fiyatlandırmak için kullanılan matematiksel fonksiyonlardır. Şu anda farklı varlıklardaki çeşitli fiyatlandırma stratejilerine uyum sağlayabilen birden fazla AMM algoritması kullanılmaktadır. Yeni eklenecek varlık çiftleri için bu algoritma özelleştirilebilir.
Dilerseniz bu algoritmalardan bazılarını aşağıda inceleyelim:
I-Constant Product Market Makers
Bu algoritma ilk olarak Uniswap ve Bancor tarafından popülerleştrildi. Formülde gördüğümüz x havuzdaki ilk tokenin miktarını y ise diğer tokenin miktarını göstermektedir. Bu iki miktarın çarpımı ise ilk likidite sağlayıcısı tarafından belirlenmiş sabit bir k sayısına eşittir. Bu k sayısı likidite ekleme ve çıkarma işlemleri dışında değişmez. ETH/ DAI havuzu örneğinden devam edersek, bu havuzda işlem yapmak isteyen bir kişi havuzdan ETH alıp havuza DAI eklediğinde DA Iarzını artırmış ETH arzını da azaltmış olacaktır. Bu arzdaki değişim ne olursa olsun iki token miktarının çarpımı k sabit sayısı olarak kalacaktır. Ancak bu formülün doğası gereği eğer yapılan işlemin boyutu havuzun boyutuna göre büyükse fiyat kaymaları yaşanabilmektedir bu durumu formülün grafiğinde de rahatlıkla görebiliriz. Bir tokenin miktarı sonsuza gittiğinde k’yı sabit tutmak için diğer token miktarının sıfıra yakınsamaktadır. Fiyat kayması (Price Impact) olarak adlandırılan durum tam olarak budur. Havuzdaki likidite büyüklüğüne göre büyük hacimlerde işlem yapmaya çalışırsak algoritmaya göre fiyat kayması ile karşılaşırız.
.
II-Constant Sum Market Maker
Sabit toplamlı piyasa yapıcı algoritması yukarıda gördüğümüz gibidir. Burada yine x havuzdaki token çiftinden ilkinin miktarını temsil ederken y ise havuzdaki diğer tokenin miktarını temsil eder. Bu iki token miktarının toplamı ise yine bir k sabit sayısına eşittir. Bu formül bize tokenlerimizi swaplarken sıfır fiyat kayması (zero slippage) sağlasa da ne yazık ki kısıtlı bir likidite sağlar, eğer bu token çiftimizin fiyatı başka yerde daha yüksek ya da daha düşük bir fiyatta işlem görüyorsa burada bir arbitraj fırsatı doğar ve bundan faydalanmak isteyen kullanıcılar likidite havuzunun tamamını boşaltabilir. Bu durumu fonksiyonun grafiğinden de rahatlıkla görebiliriz. Grafikte x ekseni havuzdaki bir tokenin miktarını y ekseni de diğer tokenin miktarını göstermektedir. X ekseninde sağa ya da y ekseninde yukarı gittiğimizde bir tokenin miktarının k sabitine; diğer token miktarının da sıfıra eşit olduğu bir durum vardır. Bu da token çiftinden birinin artık likiditesi kalmamış demektir. Bu durum çoğu otomatik market yapıcı için istenen bir durum değildir.
III-Constant Mean Market Maker
Sabit ortalamalı market yapıcı algoritması olarak Türkçe’ye çevirebileceğimiz fonksiyonun matematiksel ifadesi yukarıdaki gibidir. Bu algoritma ilk kez Balancer tarafından popülerlik kazanmıştır. Bu fonksiyon bize likidite havuzu yaratılırken ikiden fazla token ile birlikte standart %50-%50 dağılım oranından farklı oranlara sahip likidite havuzu oluşturmaya imkan verir. Bu fonksiyonda R havuzdaki her bir varlığın rezerv miktarını temsil eder. W havuzdaki varlıkların oransal ağırlığını temsil eder ve bunların geometrik ağırlıklı ortalaması ise bir k sabitine eşittir. Örneğin üç farklı x, y ve z tokeni
eşit ağırlıklarda likidite havuzunda bulunuyorsa formülü (x*y*z)^(1/3) = k şeklinde yazabiliriz.
Kaynak : Balancer Whitepaper
IV-Stableswap Invariant
Bu algoritmadaki formül daha önce bahsettiğimiz sabit çarpımlı market yapıcı ve sabit toplamlı market yapıcı algoritmalarının bir melezidir. Bu algoritma ilk kez Curve Finance tarafından popülerleştirilmiştir. Bu denklemi incelediğimizde x likidite havuzunda bulunan her bir varlığın rezerv miktarını temsil etmektedir, n ise havuzdaki varlık sayısını temsil eder. D havuzdaki varlığın değerini temsil eden değişmezdir ve A kaldıraca benzer bir etki sağlayan ve likidite sağlayıcılar için karlı olacak fiyat aralıklarını etkileyen ayarlanabilir bir katsayıdır. Denklemin grafiğini incelediğimizde portföy nispeten dengeli olduğunda düşük fiyat kayması (lower slippage) ve fiyat kaymasından doğan geçici kayıpları (impermanent loss) önlemek için sabit toplamlı market yapıcı eğrisine yakınsar. Bunun tam tersi durumda ise sınırsız likiditeden faydanalanmak için sabit çarpımlı market yapıcı eğrisine yakınsar. Bu algoritma yalnızca birbirine fiyatının oranı 1 olan (DAI/USDC veya wBTC/sBTC) varlık çiflerinde kullanılır.