Vitalik: Uniswap v2 fiyat oracle makinesi yıldırım kredisi saldırılarına direnebilir

Uniswap, geleneksel sipariş defteri borsalarına çok popüler bir alternatif haline geldi ve iki para birimi arasındaki göreli fiyatları ölçmenin yaygın bir yöntemi haline geldi (genellikle 'fiyat oracles' olarak anılır) ). Uniswap'in temel fikri çok basit olmasına rağmen, gerçek etkisinin oldukça iyi olması biraz şaşırtıcı: "gerçek dünyada", çok daha büyük borsalara kıyasla, Uniswap'in İki varlığın göreli fiyatları.

Uniswap'ın istikrarı da şaşırtıcı çünkü kişisel kazanç için fiyatları manipüle etmeye çalışan kötü aktörlerden etkilenmiş gibi görünmüyor. Bu sonuçlar Uniswap kullanıcılarının sezgileri olabilir çünkü performansına vahşi doğada şahit olmuşlardır. Şüpheciler için, analizimiz "Uniswap iyi bir kahin" koşulu için matematiksel bir çerçeve oluşturur. Yakın zamanda yayınlanan bir makalede (Cryptoeconomic Systems 2020 tarafından kabul edilmiştir), Uniswap'in bir analizini yaptık ve konferans öncesinde bazı sonuçları daha geniş bir kitleyle paylaşmayı umuyoruz.

Sabit ürün pazarları (Sabit ürün pazarları)

Uniswap, sabit ürün otomatik pazarlamacısının (genellikle sabit ürün AMM'si olarak anılır) özel bir durumudur. Fikir şu şekildedir: Bazı "A" jetonlarının (R gibi jetonlar dahil) ve "B" jetonlarının bir miktar rezervinin (R 'gibi jetonlar dahil) olduğu bir sözleşmemiz (veya takas) var .

"B" jetonlarını satın almak isteyen bir temsilci, yedek ürünü sabit tutmak için yeterince "A" jetonu yatırmalıdır. Başka bir deyişle, temsilci rezervden "B" 'jetonunu satın almak isterse, temsilci "A" jetonunun 'sini rezerve koymalıdır, böylece yeni yedek ürün eski yedek ürünle aynı olur:

Denklem (1), kullanacağımız miktarı türetmek için kolayca kullanılabilir. Örneğin, "A" madeni parasının Uniswap fiyatı m, "B" madeni parasının tanımına göre, belirli miktarda jeton "B" ile "A" madeni parası satın almanın marjinal fiyatıdır.

Bu, "B" madeni parası ile sonsuz sayıda "A" madeni para satın almanın ortalama fiyatına eşdeğerdir. Bunu, = 0'daki fiyatın eğimi olarak çizebiliriz:

Bir sonraki bölümde, Uniswap'in marjinal fiyatını gerçek piyasa fiyatı ile ilişkilendireceğiz (spoiler: ücret olmaması durumunda ve genel varsayımlar altında bunlar eşittir).

Not: Şu an itibariyle, sabit ürün formülü (Denklem (1)) herhangi bir işlem ücreti içermemektedir. Basitlik uğruna, makalenin geri kalanında bu davanın ücretsiz olduğunu varsayacağız, ancak burada yaptığımız ifadelerin çoğu, temelde yüklenen davadaki beklentilerle tutarlıdır.

Arbitraj ve bize söyledikleri

Uniswap'in fiyatının referans pazarın fiyatına göre olması gerektiğini göstermek için, bu pazarların nasıl etkileşimde bulunduğunu varsaymamız gerekir.

Finansal matematikte çok yaygın ve basit bir yöntem, arbitraj olmamasıdır. Diğer bir deyişle, risk almadan ve sadece bu iki piyasa arasında işlem yapmadan ücretsiz para kazanmanın imkansız olduğunu varsayacağız.

Bu nedenle, eğer m m ise (burada m referans piyasa fiyatıdır), o zaman aracının pozitif bir kar elde edebilmesi için yeterince küçük bir işlem olması gerektiğini, yani bu varsayım altında m = m olduğunu kanıtlayabiliriz.

Bunu kanıtlamak için m olduğunu varsayıyoruz > m, Sonra, m 'yu tanımlayarak, suff gibi yeterince küçük bir jeton "A" girişi vardır, şöyle:

"A" madalyonunun değeri verildiğinde, coin ', "B" madalyonunun çıktısıdır.

Benzer şekilde, piyasa için, m gibi yeterince küçük işlemler vardır, ancak < (çünkü m > m), açık piyasada trading ile '' ticareti yaparak ve ardından Uniswap'ta 'ile ile ticaret yaparak kolayca kar elde edebiliriz, yani kârımız pozitiftir (çünkü ' '- ' > 0). Bu türetme tamamen katı olmasa da, temelde matematiksel kanıtları izlediğini unutmayın.

Çünkü m yapabiliriz < Benzer bir ifade m'de yapıldı, dolayısıyla arbitraj koşullarında m = m olduğu sonucuna vardık. Bu, arbitraj ve işlem maliyetlerinin olmadığını varsayarsak Uniswap'in piyasa fiyatının gerçek piyasa fiyatına eşit olması gerektiği anlamına gelir. ! Elbette, arbitraj varsayımı sadece pratikte kabaca geçerlidir, bu nedenle Uniswap, özellikle bir blokta veya birkaç blokta gerçek piyasa fiyatından sapabilir. . Daha ayrıntılı bir analiz, birçok piyasa modelinde gerçek piyasa fiyatının, aracı tabanlı simülasyonla doğrulanan Uniswap fiyatına çok yakın olacağını göstermektedir. Ayrıntılar için makalenin 2. bölümüne bakın. Not: Benzer (ancak daha zayıf) bir ifade, işlem ücretleri olduğunda geçerlidir: m m ¹m, burada (1-) işlem ücretlerinin yüzdesidir. Daha önce bahsedildiği gibi, ayrıntılar için lütfen makalenin 2. bölümüne bakın.

Uniswap'in mükemmel özellikleri

Uniswap ayrıca, uygulamada muhtemelen iyi bir kahin olacağına dair inancımızı güçlendiren bazı iyi özelliklere sahiptir.

daha spesifik olarak: (a) Uniswap rezervlerini sadece piyasada coin ticareti yaparak tüketmek imkansızdır (B) Piyasaya likiditeyi artırmak doğru yaklaşımdır, çünkü belirli bir para biriminin işlem maliyetini azaltır ve oracle'ı manipüle etme maliyetini artırır.

Rezerv sınırı

Uniswap coinleri tüketen bir işlem olmadığını kanıtlamak zor değil. K = RR olduğundan, AM-GM eşitsizliği (ortalama eşitsizlik) aracılığıyla şunu elde ederiz:

Bu, hemen olası rezervlerin toplamının k çarpımının karekökü ile sınırlandığı anlamına gelir. Tanım gereği, k her işlemden sonra sabittir, bu nedenle rezervlerin toplamı her zaman 0'dan uzaktır.

Likiditeyi artırın ve işlem maliyetlerini azaltın

Bu gerçeği kanıtlamanın birkaç yolu vardır, ancak en basit nokta, "A" madeni parasının girdisi verildiğinde şunu elde ederiz:

Arbitraj olmaması durumunda R = mR olduğu gerçeğini kullanırsak, B madeni parasının çıktısı şuna eşittir:

Sabit bir marjinal fiyat m için, R 'de artar (paydanın R'in arttıkça azaldığına dikkat edin). Bu nedenle, mevcut rezervler ne kadar yüksekse, belirli bir girdi için çıktı o kadar büyük olur. Bu, Uniswap protokolünü kullanan birçok kullanıcı için oldukça sezgiseldir.Daha fazla likidite havuzu olması durumunda, gördükleri slip daha küçüktür.

Fiyat manipülasyonu pahalıdır (büyük değişiklikler yaparken)

Aslında, Uniswap fiyatlarını herhangi bir sabit miktara değiştirmenin maliyeti, birçok pratik durumda pahalı olabilecek rezerv miktarı ve blok sayısı ile doğrusal olarak ilişkilidir. Çok küçük veya kısa vadeli fiyat dalgalanmalarının nispeten ucuz olacağını fark etmiş olsak da . Şimdi, saldırganın Uniswap m fiyatını belirli bir miktarda p'ye değiştirmek istediğini varsayalım. > m (burada m piyasa fiyatıdır), bu durumda bu tek işlemin maliyeti (örneğin, tek bir blok için) en azından:

(Türetme için, makalenin ek E'sine bakın), p (1 + ) m ve olduğunu varsayarsak > 0, o zaman C (p), p (p > m) bir artış, aldığımız maliyet en azından:

Bildiğimiz kadarıyla

Hem de

K en az 1 / (322) olduğunda. C () 'nin bu alt sınırını bulmak biraz zordur ve ilgili argümanlar makalenin Ek E'sinde görülebilir. Daha önce bahsedildiği gibi, bu alt sınır, sabit bir faktörle ilgilidir, ancak burada verilen sabit K, çok zayıf bir alt sınırdır (bu nedenle, bu özel seçim, kesin bir sayı olarak değil, yalnızca bir kural olarak kullanılmalıdır).

Aslında, maliyet ve rezerv R arasında doğrusal bir ilişki vardır. Bu gerçek, sağlamlık için büyük likidite havuzlarının önemini göstermektedir. . Öte yandan, küçük olduğunda maliyetin karesi alındığından, bir saldırganın Uniswap'te bildirilen fiyatı çok fazla para harcamadan uzun bir süre için hafifçe manipüle etmesi mümkündür. .

Örneğin, rezerv havuzunda R = 1000 ETH ise, saldırgan fiyatı =% 1 oranında değiştirebilir, bu da blok başına yaklaşık C (.01) manip 0.025 ETH'dir (buradaki alt sınır oldukça zayıftır ve C (.01) verir. 0,002 ETH).

Lütfen bu tür bir manipülasyonun pratikte mümkün olduğuna dikkat edin. Bu nedenle, herhangi bir anlaşmanın bu oracle'lar tarafından bildirilen fiyatlarda çok ince değişikliklere veya çok kısa zaman dilimlerine dayanmaması gerektiği konusunda uyaracağız. İçinde bildirilen fiyat .

Başka bir deyişle, büyük fiyat ayarlamaları yapmaya çalışırken, manipülasyon hızlı bir şekilde pahalı hale gelebilir, bu da Uniswap piyasasında büyük ölçekli manipülasyon gözlemlemememizin nedenlerinden biridir.

sonuç olarak

Uniswap nispeten basit olmasına rağmen, iyi bir teorik yapıya sahip gibi görünüyor, bu da pratikte merkezi olmayan bir piyasa ve fiyat kahini olarak istikrara sahip olabileceğini gösteriyor. Ayrıca, yukarıdaki ifade Uniswap'te büyük bir rezerv havuzuna sahip olmanın önemini vurgulamaktadır, çünkü tüm sonuçlar bir şekilde ona bağlıdır.

Daha önce de bahsedildiği gibi, yukarıdaki tam makaledeki ifadenin sadece küçük bir kısmıdır.Ayrıntılar ve ispatlar ile ilgilenen okuyucular makaleyi okumalıdır!

ek

15 Şubat 2020'de bZx saldırısı gerçekleştiğinde, saldırgan sözleşme fonlarını tüketmek için bZx akıllı sözleşme mantığındaki bir güvenlik açığını kullandı. Yukarıdaki sonuç koşullarının önemini yinelemek istiyoruz.

Bildiğimiz kadarıyla, bu saldırı oracle işlemlerine dayanmıyor, tek bir blokta yürütülen birden fazla işlemi içeriyor.

Özellikle, saldırı bir blokta gerçekleştirilebiliyorsa, manipülasyon maliyeti çok düşüktür (maliyet temelde yalnızca işlem maliyetidir), bu nedenle çoğu durumda oldukça uygulanabilirdir, çünkü yukarıda verilen sınırlar geçerli değildir. .

Bu, "Yüksek manipülasyon maliyeti" bölümündeki uyarımızın önemini vurgulamaktadır:

(a) Sözleşmenin Uniswap fiyatlarındaki küçük değişikliklere dayanması akıllıca olmayabilir (bu saldırı, maliyetin oldukça ucuz olduğunu kanıtlar); (b) Sözleşme, Uniswap tarafından kısa bir süre içinde bildirilen fiyata dayalı olmamalıdır;

Şampiyonlar Ligi soğuk! Atletico açılışta 3 dakika Liverpool'u mağlup etti, Simeone'nin büyülü yenilmez rekoru devam etti.
önceki
Çinli ve Taylandlı oyuncuların benzer yetenekleri var mı? Muhabir, Chiang Rai United koçunun görüşlerini kabul ediyor, bir kişi ulusal güvenliğin alt sınırıdır.
Sonraki
Nitelikli durum açıktır! Guoan, AFC Şampiyonlar Ligi 1-0'i kazandı veya ilerlemek için Seul ile el ele verdi
Salgınla mücadelede özel "savaş alanı" en iyi savaştır
Sun Xingmin sağ kolunu kırdı! Mourinho, üç belirleyici savaşı, Spurs'u veya iki şeritli yenilgiyi tersine çeviremeyebilir
Fujian'daki bir aileden altı hasta tedavi edildi ve taburcu edildi: minnettarlıkla dolu
Mourinho intikamı memnuniyetle karşılıyor mu? Chelseanin üç generali yaralandı, Tottenhamın iki savaşı "ülkeyi belirledi"
16 ardışık damla! Ülke genelinde 0 yeni ekleme! Netizen: Öğretmen Tony'nin beni çağırdığını gördüm
Karıştırmak mı? Milli futbol kadrosuna 11 kişinin eklendiği ortaya çıktı.Li Tie ve Lippi bire soğuk değil
90'lar sonrası bu grubun "iki tarafı" insanları sıkıntıya sokuyor.
En son Premier Lig sıralaması: Manchester United, Chelsea'yi 7. yendi, beşinci sıranın bir sonraki turu çehresini değiştirebilir
Shandong'lu adam, topluluğa girişi engellediği ve salgını önleyen personeli kucakladığı için bir yıl hapis cezasına çarptırıldı.
Chelsea'yi çifte öldür! Manchester United'ın büyülü rekoru devam ediyor, Lampard şimdi bir çaylak ve iki savaşta 6 bomba attı
Dört kişilik bir aile "enfeksiyon kaptıktan" sonra nasıl kendilerini kurtarmaya başladı?
To Top