Fraud Proof ve Validity Proof Nedir?
Rollup’lar kullanılan kanıtlara göre ikiye ayrılır: Optimistic Rollup’lar ve zkRollup’lar.
Optimistic Rollup’lar ile zkRollup’ları ayıran çok temel bir fark vardır: Proof.
Optimistic Rollup’lar Fraud Proof gönderirken zkRollup’lar Validity Proof gönderir. Peki Fraud Proof ile Validity Proof arasında ne fark vardır?
Fraud Proof (Dolandırıcılık Kanıtı)
Fraud Proof’un blok zincirinde kullanım alanı çoğunlukla Optimistic Rollup’lardır. Fraud Proof’ların temel faydası, her State (Blok zincirde yapılan bütün işlemlerin tutulduğu kayıt defteri) geçişi için değil, yalnızca işler ters gittiğinde gerekli olmalarıdır. Yani, daha az hesaplama gücü kullanırlar ve ölçeklenebilirlik açısından kısıtlı bir ortama daha uygundurlar. Peki Fraud Proof’lar nasıl çalışır?
Fraud Proof’lar zincirin durumunu batchler (Gönderilen dataların ve Proof’un olduğu paket) halinde Ethereum mainnete yani L1’e bildirir.
Bu bildirilen batchler aslında kanıt olmayıp datalardan ibarettir. Gönderilen dataların hepsi L1 tarafından doğru kabul edilmektedir. Aslında ‘Optimistic’ kelimesinin kökeni de buradan gelmektedir. Çünkü gelen her data doğru ‘kabul edilir.
Peki her şey doğru kabul ediliyorsa, herhangi bir dolandırıcılık durumunda ne olacak?
Bu sebeple Optimistic Rollup’larda ana ağa gönderilen verilere her node’un itiraz edebileceği 7 günlük bir bekleme süresi vardır. L2 ağı üzerinde dürüst tek bir node’un olması ve itiraz etmesi yeterlidir. Bu durumda dürüst aktörün State geçişi kabul edilir ve hatalı veri gönderen aktör cezalandırılır.
Peki tutulan datalar büyüdükçe inceleme uzayacak mı? 7 günlük süre ileride nasıl yetecek?
Hayır uzamayacak. Çünkü itiraz penceresi açıldıktan sonra bütün Rollup incelenmiyor. Sadece itiraz edilen transferin Merkle Ağacı inceleniyor.
Optimistic Rollup’lardan fon çıkarmak istediğimizde 7 günlük sürenin sebebi de budur. Optimistic Rollup’lardan L1’e çıkış yapmak istediğimizde, Rollup’ın kendi köprüsünü (Native Bridge) kullanırsak eğer 7 günlük bir süre başlıyor ve yapılan transferler inceleniyor. Bir hata olmadığı belirlendikten sonra çıkış yapılabilmektedir.
Optimistic Rollup’larda yerel köprülere alternatif Hop Protocol gibi üçüncü parti köprüler ile Optimistic Rollup içerisindeki varlıklar hemen L1’e çekilebilir. Dolayısı ile 7 günlük bekleme süresine ihtiyaç yoktur. Ancak, bu üçüncü parti köprülerin güvenlik varsayımları farklı olabilir.
Validity Proof (Geçerlilik Kanıtı)
zkRollup’lar ise Validity Proof göndermektedir. Validity Proof’ları Fraud Proof’lardan ayıran en büyük kısım ise Validity Proof’ların matematiksel işlemler gerektiren küçük zkProof’lar olmalarıdır. zkRollup içerisinde yapılan bütün işlemler hesaplama gücü ve kriptografi kullanılarak küçük kanıtlar haline getirilir. Bu kanıtlara zkProof denir. zkProof’larda bekleme süresine ihtiyaç duyulmaz çünkü küçük ve non-interactive (etkileşimsiz) yapıdalar. Matematiksel işlemler ile ispat direkt olarak sunulur.
Validity Proof’lar daha basittir. Zincir dışı yapılan matematiksel hesaplama ile oluşturulan kanıtlar ana ağdaki bir akıllı kontrata gönderilir. Ana ağdaki akıllı kontrat, L2 zincirini gelen Proof doğrulandıktan sonra günceller. Validity Proof’ların başlıca avantajı, zincirin her zaman doğru bir L2 State’ini yansıtacak olması ve yeni oluşan State’e güvenilerek derhal kullanılabilmesidir. Başlıca dezavantajı ise, Validity Proof’ların yalnızca işler ters gittiğinde değil her bir State geçişinde gerekli olmasıdır ve bu ölçeklenebilirliği etkilemektedir.
zkRollup’lar, Validity Proof ile birlikte dataları da gönderir. Yukarıdaki görselde StarkEx Rollup’ı State Update ile dataları da göndermektedir. Ethereum üzerindeki Rollup akıllı kontratı, gönderilen her Proof’u denetler ve doğruluğunu kontrol eder. zkRollup, Validity Proof’u Ethereum’a gönderir lakin datayı göndermez ise sistem durur.
Peki sistem durursa varlıklarım çalınabilir mi?
Hayır, sistemin durması halinde dahi varlıkların çalınması mümkün değildir. Çünkü data olmadan Ethereum, çıkışa izin vermeyecektir.
Ne zamana kadar varlıklarım donuk bir şekilde bekleyecek?
Son doğru State’e ulaşılıncaya kadar varlıklara erişilemeyecektir.
Validity Proof gönderilen dataların doğru olduğunu ispatlamak için gerekmektedir. Gönderilen datalar ile birlikte zkProof sunulması ile dataların doğruluğu ispatlanır. Bu sebeple zkRollup’lardan bakiye çıkarmak 10 dakika kadar sürmektedir. Optimistic Rollup’lar gibi 1 hafta beklenmesine gerek kalmamaktadır.