Helios Binası: Ethereum PlatoBlockchain Veri Zekasına tamamen güvenilmez erişim. Dikey Arama. Ai.

Helios Binası: Ethereum'a tamamen güvenilmez erişim

Blockchain kullanmamızın ana nedenlerinden biri güvensizliktir. Bu mülk, zenginliğimize ve verilerimize kendi egemenliğimizle erişmemize olanak sağlamayı vaat ediyor. Çoğunlukla Ethereum gibi blok zincirleri bu sözü yerine getirdi; varlıklarımız gerçekten bize ait. 

Ancak kolaylık olsun diye yaptığımız tavizler var. Böyle bir alan, merkezi RPC (uzaktan prosedür çağrısı) sunucularının kullanımıdır. Kullanıcılar genellikle Ethereum'a Alchemy gibi merkezi sağlayıcılar aracılığıyla erişir. Bu şirketler, başkalarının zincir verilerine kolayca erişebilmesi için bulut sunucularında yüksek performanslı düğümler çalıştırıyor. Bir cüzdan, token bakiyelerini sorguladığında veya bekleyen bir işlemin bir bloğa dahil edilip edilmediğini kontrol ettiğinde, bunu neredeyse her zaman bu merkezi sağlayıcılardan biri aracılığıyla yapar. 

Mevcut sistemdeki sorun, kullanıcıların sağlayıcılara güvenmeye ihtiyaç duyması ve sorgularının doğruluğunu doğrulamanın bir yolu olmamasıdır.

Keşfet heliosGeliştirdiğimiz ve Ethereum'a tamamen güvenilmez erişim sağlayan Rust tabanlı bir Ethereum hafif istemcisi. Helios - Ethereum'un hafif istemci protokolünü kullanan, son geçiş için hissesini kanıtı — güvenilmeyen merkezi bir RPC sağlayıcısından gelen verileri doğrulanabilir şekilde güvenli, yerel bir RPC'ye dönüştürür. Helios, tam bir düğüm çalıştırmadan orijinalliklerinin doğrulanmasını mümkün kılmak için merkezi RPC'lerle birlikte çalışır. 

Taşınabilirlik ve merkezi olmayan yönetim arasındaki tercih yaygın bir sıkıntı noktasıdır, ancak halka açık hale getirdiğimiz ve daha fazlasını yapabileceğimiz müşterimiz yaklaşık iki saniye içinde senkronize edilir, depolama gerektirmez ve kullanıcıların güvenli zincir verilerine erişmesine olanak tanır. herhangi bir cihaz (cep telefonları ve tarayıcı uzantıları dahil). Ama ne merkezi altyapıya güvenmenin potansiyel tuzakları? Bu yazıda bunların nasıl uygulanabileceğini ele alıyoruz, tasarım kararlarımızı gözden geçiriyoruz ve ayrıca başkalarının da katkıda bulunabileceği birkaç fikrin ana hatlarını çiziyoruz. codebase.

Merkezi altyapının tuzakları: Ethereum'un "karanlık ormanındaki" teorik yaratıklar

(Teorik) bir yaratık gizleniyor karanlık orman. Bu, Ethereum bellek havuzunda avını aramıyor, bunun yerine güvendiğimiz merkezi altyapıyı taklit ederek tuzaklarını kuruyor. Bu tuzağa yakalanan kullanıcılar hiçbir hata yapmazlar: En sevdikleri merkezi olmayan borsayı ziyaret ederler, makul bir kayma toleransı belirlerler ve her zamanki gibi token alıp satarlar… Her şeyi doğru yaparlar ama yine de yeni bir tür borsanın kurbanı olurlar. Sandviç saldırısı, Ethereum'un karanlık ormanının tam girişine titizlikle kurulmuş bir tuzak: RPC sağlayıcıları.

Detaylandırmadan önce, merkezi olmayan borsalarda işlemlerin nasıl çalıştığına bakalım. Kullanıcılar bir takas işlemi gönderdiğinde, akıllı sözleşmeye hangi tokenlerin takas edileceği, takas tutarı ve en önemlisi, işlemin gerçekleşmesi için kullanıcının alması gereken minimum token sayısı gibi çeşitli parametreler sağlarlar. Bu son parametre, takasın bir "minimum çıktıyı" karşılaması veya geri dönmesi gerektiğini belirtir. Bu genellikle "kayma toleransı" olarak bilinir, çünkü işlemin bellek havuzuna gönderilmesi ile bir bloğa dahil edilmesi arasında meydana gelebilecek maksimum fiyat değişikliğini etkili bir şekilde belirler. Bu parametre çok düşük ayarlanırsa kullanıcı daha az token alma olasılığını kabul eder. Bu durum aynı zamanda bir saldırganın teklifi iki kötü amaçlı takas arasında etkili bir şekilde sandviçlediği sandviç saldırısına da yol açabilir. Takaslar spot fiyatı yükseltir ve kullanıcının ticaretini daha az avantajlı bir fiyatla gerçekleştirmeye zorlar. Saldırgan daha sonra küçük bir kar elde etmek için hemen satış yapar.

Bu minimum çıktı parametresi gerçeğe uygun değere yakın ayarlandığı sürece sandviç saldırılarına karşı güvende olursunuz. Peki ya RPC sağlayıcınız merkezi olmayan borsa akıllı sözleşmesinden doğru bir fiyat teklifi sunmazsa? Bir kullanıcı daha sonra daha düşük bir minimum çıktı parametresi ile bir takas işlemi imzalaması için kandırılabilir ve daha da kötüsü, işlemi doğrudan kötü niyetli RPC sağlayıcısına gönderir. Sağlayıcı, bu işlemi düzinelerce botun sandviç saldırısını gerçekleştirmek için yarıştığı halka açık bellek havuzuna yayınlamak yerine, bunu durdurabilir ve saldırı işlem paketini doğrudan Flashbot'lara göndererek karı kendileri için güvence altına alabilir.

Bu saldırının temel nedeni, blockchainin durumunu alması için başka birine güvenmektir. Deneyimli kullanıcılar geleneksel olarak bu sorunu kendi Ethereum düğümlerini çalıştırarak çözerler; bu, en azından sürekli çevrimiçi bir makine, yüzlerce gigabayt depolama alanı ve sıfırdan senkronizasyon için yaklaşık bir gün gerektiren, zaman ve kaynak açısından yoğun bir çabadır. Bu süreç kesinlikle eskisinden daha kolay; gruplar gibi ARM'de Ethereum Düğümlerin düşük maliyetli donanımlarda (harici bir sabit diskin bağlı olduğu Raspberry Pi gibi) çalıştırılmasını mümkün kılmak için yorulmadan çalıştık. Ancak bu nispeten minimum gereksinimlere rağmen, bir düğümü çalıştırmak çoğu kullanıcı için, özellikle de mobil cihaz kullananlar için hala zordur.

Merkezi RPC sağlayıcı saldırılarının tamamen makul olmasına rağmen genellikle basit kimlik avı saldırıları - ve tarif ettiğimiz şey henüz gerçekleşmedi. Alchemy gibi daha büyük sağlayıcıların geçmiş performansları bize onlardan şüphe etmemiz için çok az neden verse de, tanımadığınız RPC sağlayıcılarını cüzdanınıza eklemeden önce biraz daha araştırma yapmakta fayda var.

Helios ile tanışın: Ethereum'a tamamen güvenilmez erişim

Ethereum, hafif istemci protokolünü (son zamanlarda Proof of Stake'e geçişle mümkün kılındı) tanıtarak, blockchain ile hızlı bir şekilde etkileşime geçmek ve RPC uç noktalarını minimum donanım gereksinimleriyle doğrulamak için heyecan verici yeni olanaklar açtı. O tarihten bu yana geçen ay içinde Birleştirme, birbirinden bağımsız olarak yeni bir hafif istemci grubunun ortaya çıktığını gördük (Çobanyıldızı, yağmur bulutuve JavaScript tabanlı Kevlar) aynı hedefe hizmet etmek için farklı yaklaşımlar benimsemiştir: tam düğüm kullanmadan verimli ve güvenilir erişim.

Çözümümüz Helios, yaklaşık iki saniye içinde senkronize edilen, depolama gerektirmeyen ve Ethereum'a tamamen güvenilmez erişim sağlayan bir Ethereum hafif istemcisidir. Tüm Ethereum istemcileri gibi Helios da bir yürütme katmanı ve bir konsensüs katmanından oluşur. Diğer istemcilerin çoğundan farklı olarak Helios, her iki katmanı da sıkı bir şekilde birleştirir, böylece kullanıcıların yalnızca tek bir yazılım parçasını kurup çalıştırması gerekir. (Erigon doğrudan arşiv düğümlerine yerleşik bir fikir birliği katmanı hafif istemcisi ekleyerek de bu yönde ilerliyor). 

Peki nasıl çalışıyor? Helios konsensüs katmanı, mevcut blokla doğrulanabilir bir şekilde senkronizasyon sağlamak için önceden bilinen bir işaret zinciri blok karmasını ve güvenilmeyen bir RPC'ye olan bağlantıyı kullanır. Helios yürütme katmanı, hesap bakiyeleri, sözleşme depolama, işlem makbuzları ve akıllı sözleşme çağrı sonuçları gibi zincir durumu hakkındaki keyfi bilgileri kanıtlamak için bu kimliği doğrulanmış işaret zinciri bloklarını güvenilmeyen bir yürütme katmanı RPC'si ile birlikte kullanır. Bu bileşenler, tam bir düğüm çalıştırmaya gerek kalmadan kullanıcılara tamamen güvenilir bir RPC sunmak için birlikte çalışır.

…Uzlaşma katmanında

Konsensüs katmanı ışık istemcisi işaret zinciri ışık istemcisine uygundur şartnameve işaret zincirinin senkronizasyon komitelerinden yararlanır (Altair sert çatalındaki Birleştirme öncesinde tanıtılmıştır). Senkronizasyon komitesi, yaklaşık 512 saatlik süreler boyunca hizmet veren 27 doğrulayıcıdan oluşan rastgele seçilmiş bir alt kümedir. 

Bir doğrulayıcı senkronizasyon komitesinde olduğunda, gördüğü her işaret zinciri blok başlığını imzalar. Eğer komitenin üçte ikisinden fazlası belirli bir blok başlığını imzalarsa, o bloğun kanonik işaret zincirinde olması kuvvetle muhtemeldir. Helios mevcut senkronizasyon komitesinin yapısını biliyorsa güvenilmeyen bir RPC'den en son senkronizasyon komitesi imzasını isteyerek zincirin başını güvenle takip edebilir. 

BLS'ye teşekkürler imza toplama işleminde yeni başlığı doğrulamak için yalnızca tek bir kontrol gerekir. İmza geçerliyse ve komitenin üçte ikisinden fazlası tarafından imzalanmışsa bloğun zincire dahil olduğunu varsaymak güvenlidir (tabii ki zincirden yeniden düzenlenebilir, ancak izleme bloğunun kesinliği sağlayabilir) daha sıkı garantiler).

Ancak bu stratejide bariz bir eksik parça var: mevcut senkronizasyon komitesinin nasıl bulunacağı. Bu, güven adı verilen bir güven kökü elde etmekle başlar. zayıf öznellik kontrol noktası. Adının sizi korkutmasına izin vermeyin - bu sadece geçmişte bir noktada zincire dahil edildiğini garanti edebileceğimiz eski bir blok karma anlamına gelir. Kontrol noktasının tam olarak kaç yaşında olabileceğinin arkasında ilginç bir matematik var; En kötü durum analizi yaklaşık iki haftayı önerirken, daha pratik tahminler aylar sürdüğünü gösteriyor. 

Kontrol noktası çok eskiyse, teorik saldırılar Bu, düğümleri yanlış zinciri takip etmeleri için kandırabilir. Zayıf bir öznellik kontrol noktası elde etmek protokol için bant dışıdır. Helios'a olan yaklaşımımız, kod tabanına sabit kodlanmış (kolayca geçersiz kılınabilen) bir başlangıç ​​kontrol noktası sağlar; daha sonra, düğüm her senkronize edildiğinde gelecekte kontrol noktası olarak kullanmak üzere en son sonlandırılan blok karmasını yerel olarak kaydeder. 

Uygun bir şekilde, işaret zinciri blokları benzersiz bir işaret blok karması üretmek için özetlenebilir. Bu, bir düğümden tam bir işaret bloğu istemenin ve ardından onu karma hale getirerek ve bilinen bir blok karması ile karşılaştırarak blok içeriğinin geçerli olduğunu kanıtlamanın kolay olduğu anlamına gelir. Helios, bu özelliği zayıf öznellik kontrol noktası bloğu içindeki iki çok önemli alan da dahil olmak üzere belirli alanları getirmek ve kanıtlamak için kullanır: mevcut senkronizasyon komitesi ve bir sonraki senkronizasyon komitesi. Kritik olarak, bu mekanizma hafif istemcilerin blok zincirinin geçmişi boyunca hızlı ilerlemesine olanak tanır.

Artık zayıf bir öznellik kontrol noktamız olduğuna göre mevcut ve sonraki senkronizasyon komitelerini alıp doğrulayabiliriz. Mevcut zincir başkanı, kontrol noktasıyla aynı senkronizasyon komitesi dönemindeyse, imzalı senkronizasyon komitesi başlıkları ile yeni blokları hemen doğrulamaya başlarız. Kontrol noktamızın arkasında birkaç senkronizasyon komitesi varsa şunları yapabiliriz:

  1. Gelecekte bir senkronizasyon komitesi oluşturacak bir bloğu almak ve doğrulamak için kontrol noktamızdan sonraki bir sonraki senkronizasyon komitesini kullanın.
  2. Yeni bir sonraki senkronizasyon komitesini getirmek için bu yeni bloğu kullanın.
  3. Hala gerideyseniz 1. adıma dönün.

Bu sürecin her yinelemesi, zincirin 27 saatlik geçmişini hızlı bir şekilde ileri sarmamıza, geçmişteki herhangi bir blok hash ile başlamamıza ve mevcut blok hash'iyle senkronize olmamıza olanak tanır.

…Yürütme katmanında

Yürütme katmanı hafif istemcisinin amacı, konsensüs katmanı tarafından doğrulanan işaret bloğu başlıklarını almak ve bunları, doğrulanmış yürütme katmanı verilerini sağlamak için güvenilmeyen bir yürütme katmanı RPC'si ile birlikte kullanmaktır. Bu verilere daha sonra yerel olarak Helios tarafından barındırılan bir RPC sunucusu aracılığıyla erişilebilir.

Durumun Ethereum'da nasıl depolandığına dair hızlı bir girişle başlayarak, bir hesabın bakiyesini almanın basit bir örneğini burada bulabilirsiniz. Her hesapta sözleşme kodu karması, nonce, depolama karması ve bakiye gibi birkaç alan bulunur. Bu hesaplar büyük, değiştirilmiş bir Merkle-Patricia ağacı durum ağacı denir. Durum ağacının kökünü biliyorsak, doğrulama yapabiliriz. merkle ispatları ağaçtaki herhangi bir hesabın varlığını (veya hariç tutulduğunu) kanıtlamak için. Bu kanıtların sahtesini yapmak gerçekten imkansızdır.

Helios, fikir birliği katmanından kimliği doğrulanmış bir durum köküne sahiptir. Bu kökü kullanma ve Güvenilmeyen yürütme katmanı RPC'ye yapılan merkle kanıt istekleri, Helios, Ethereum'da depolanan tüm verileri yerel olarak doğrulayabilir.

Yürütme katmanı tarafından kullanılan her türlü veriyi doğrulamak için farklı teknikler uyguluyoruz; birlikte kullanıldığında bunlar, güvenilmeyen RPC'den alınan tüm verilerin kimliğini doğrulamamıza olanak tanır. Güvenilmeyen bir RPC verilere erişimi reddedebilir ancak artık bize yanlış sonuçlar sunamaz.

Helios'u vahşi doğada kullanma

Taşınabilirlik ve merkezi olmayan yönetim arasındaki tercih yaygın bir sıkıntı noktasıdır; ancak Helios çok hafif olduğundan, kullanıcılar güvenli zincir verilerine herhangi bir cihazdan (cep telefonları ve tarayıcı uzantıları dahil) erişebilir. Helios'u her yerde çalıştırabilme yeteneği, donanımları ne olursa olsun daha fazla kişinin güvenilir Ethereum verilerine erişmesini mümkün kılar. Bu, kullanıcıların Helios'u MetaMask'ta RPC sağlayıcıları olarak kullanabileceği ve başka hiçbir değişiklik yapmadan dapp'lere güvenle erişebileceği anlamına gelir. 

Ayrıca Rust'un WebAssembly desteği, uygulama geliştiricilerinin Helios'u Javascript uygulamalarının (cüzdanlar ve dapp'ler gibi) içine yerleştirmesini kolayca mümkün kılar. Bu entegrasyonlar Ethereum'u daha güvenli hale getirecek ve merkezi altyapıya güvenme ihtiyacımızı azaltacaktır.

Topluluğun neler sunacağını görmek için sabırsızlanıyoruz. Ancak bu arada Helios'a katkıda bulunmanın birçok yolu var; kod tabanına katkıda bulunmak istemiyorsanız, Helios'un avantajlarından yararlanmak için onu entegre eden bir yazılım da oluşturabilirsiniz. Bunlar bizi heyecanlandıran fikirlerden sadece birkaçı:

  • Hafif istemci verilerinin RPC yerine doğrudan P2P ağından alınmasını destekler
  • Eksik RPC yöntemlerinden bazılarını uygulayın
  • Helios'un WebAssembly'ye derlenen bir sürümünü oluşturun
  • Helios'u doğrudan cüzdan yazılımına entegre edin
  • WebAssembly ile web sitesine yerleştirilmiş Helios'tan veri getiren token bakiyelerinizi görüntülemek için bir web kontrol paneli oluşturun
  • Helios'un fikir birliği katmanının mevcut bir yürütme katmanı tam düğümüne bağlanabilmesi için motor API'sini uygulayın

Kod tabanına göz atın Başlamak için hata raporlarınızı, özellik isteklerinizi ve kodlarınızı memnuniyetle karşılıyoruz. Daha fazlasını geliştirirseniz bizimle paylaşın Twitter, Telegramveya Farcaster @a16zcrypto.

***
Burada ifade edilen görüşler, alıntı yapılan bireysel AH Capital Management, LLC (“a16z”) personelinin görüşleridir ve a16z veya iştiraklerinin görüşleri değildir. Burada yer alan belirli bilgiler, a16z tarafından yönetilen fonların portföy şirketleri de dahil olmak üzere üçüncü taraf kaynaklardan elde edilmiştir. a16z, güvenilir olduğuna inanılan kaynaklardan alınmış olsa da, bu tür bilgileri bağımsız olarak doğrulamamıştır ve bilgilerin mevcut veya kalıcı doğruluğu veya belirli bir duruma uygunluğu hakkında hiçbir beyanda bulunmaz. Ayrıca, bu içerik üçüncü taraf reklamlarını içerebilir; a16z, bu tür reklamları incelememiştir ve burada yer alan herhangi bir reklam içeriğini onaylamaz.

Bu içerik yalnızca bilgilendirme amaçlıdır ve yasal, ticari, yatırım veya vergi tavsiyesi olarak kullanılmamalıdır. Bu konularda kendi danışmanlarınıza danışmalısınız. Herhangi bir menkul kıymete veya dijital varlığa yapılan atıflar yalnızca açıklama amaçlıdır ve yatırım tavsiyesi veya yatırım danışmanlığı hizmetleri sağlama teklifi teşkil etmez. Ayrıca, bu içerik herhangi bir yatırımcıya veya muhtemel yatırımcılara yönelik değildir veya bu içerik tarafından kullanılması amaçlanmamıştır ve a16z tarafından yönetilen herhangi bir fona yatırım yapma kararı verilirken hiçbir koşulda bu içeriğe güvenilemez. (Bir a16z fonuna yatırım yapma teklifi, yalnızca tahsisli satış mutabakatı, abonelik sözleşmesi ve bu tür bir fonun diğer ilgili belgeleri ile yapılacaktır ve bunların tamamı okunmalıdır.) Bahsedilen, atıfta bulunulan veya atıfta bulunulan herhangi bir yatırım veya portföy şirketi veya a16z tarafından yönetilen araçlara yapılan tüm yatırımları temsil etmemektedir ve yatırımların karlı olacağına veya gelecekte yapılacak diğer yatırımların benzer özelliklere veya sonuçlara sahip olacağına dair hiçbir garanti verilemez. Andreessen Horowitz tarafından yönetilen fonlar tarafından yapılan yatırımların bir listesi (ihraççının a16z'nin kamuya açıklanmasına izin vermediği yatırımlar ve halka açık dijital varlıklara yapılan habersiz yatırımlar hariç) https://a16z.com/investments adresinde bulunabilir. /.

İçerisinde yer alan çizelgeler ve grafikler yalnızca bilgilendirme amaçlıdır ve herhangi bir yatırım kararı verirken bunlara güvenilmemelidir. Geçmiş performans gelecekteki sonuçların göstergesi değildir. İçerik yalnızca belirtilen tarih itibariyle konuşur. Bu materyallerde ifade edilen tüm tahminler, tahminler, hedefler, beklentiler ve/veya görüşler önceden bildirilmeksizin değiştirilebilir ve farklı olabilir veya başkaları tarafından ifade edilen görüşlere aykırı olabilir. Ek önemli bilgiler için lütfen https://a16z.com/disclosures adresine bakın.

Zaman Damgası:

Den fazla Andreessen Horowitz