İçeriğe geç

Hesap Soyutlama: Geçmiş, Bugün, Gelecek

Ethereum'da hesap soyutlaması hakkında bilgi edinin—ne anlama geldiğini ve neden önemli olduğunu öğrenin.

15 dk okuma
Hesap Soyutlama: Geçmiş, Bugün, Gelecek

Ayı piyasası tüm şiddetiyle devam etse de kripto paranın kalıcı olduğundan artık pek az kişi şüphe duyuyor; örneğin MetaMask gibi cüzdanlar zaten milyonlarca kullanıcıya ulaşmış durumda. Yine de şu soru güncelliğini koruyor: "Bir sonraki milyar kullanıcıyı web3'e nasıl kazandırabiliriz?"

Bu soruya verilen yanıtlar, kime sorduğunuza göre değişiyor. Ancak herkesin hemfikir olduğu bazı noktalar var; özellikle kullanıcıların blok zinciri uygulamalarıyla etkileşim deneyiminin iyileştirilmesi gerektiği konusunda. Web3'ü daha kullanıcı dostu hale getirmeden, insanların her gün kullandıkları web2 uygulamalarından vazgeçmeleri için pek az nedenleri olacak.

"Hesap soyutlama" (account abstraction), kullanıcıların Ethereum ile etkileşimini iyileştirmeyi hedefleyen ve kripto topluluğunda giderek daha fazla tartışılan bir öneri. Ancak şu an şunu düşünüyor olabilirsiniz: "Hesap soyutlama tam olarak nedir ve neden önemsemeliyim?"

Bu makale, hesap soyutlamanın geçmişini, bugününü ve geleceğini bağlamına oturtarak konuyu anlamanıza yardımcı olmak için hazırlandı. Konuyla ilgili aklınıza gelebilecek her soruyu yanıtlayacağız; özellikle hesap soyutlamanın kim, ne, neden, nasıl ve ne zaman sorularını ele alacağız.

Temel konuların kısa bir özeti:

  • Programlanabilir, kendi kendine saklama imkânı sunan hesaplar ("akıllı hesaplar"), yeni kullanıcıların web3 ekosistemine katılımındaki sürtünmeyi azaltabilir. Ancak Ethereum'un tasarımından kaynaklanan kısıtlamalar, akıllı hesapların yaygın biçimde benimsenmesini ve kullanılmasını engellemektedir.

  • Hesap soyutlama, güven gerektirmeyen ve sansüre dirençli akıllı hesapların geniş çapta benimsenmesinin önünü açan önemli değişiklikler getiriyor. Hesap soyutlamanın hayata geçirilmesi için farklı yaklaşımlar değerlendiriliyor; her birinin kendine özgü avantajları ve ödünleşimleri bulunuyor.

  • MetaMask, izinsiz inovasyon platformu aracılığıyla hesap soyutlamanın benimsenmesini destekliyor: MetaMask Snaps. MetaMask Snaps sayesinde geliştiriciler, MetaMask'ı genişleterek hesap soyutlamanın avantajlarını dünyanın dört bir yanındaki kripto kullanıcılarına sunabilir.

Hesap soyutlama nedir?

Web3'teki diğer yeni kavramlar gibi hesap soyutlamayı da tanımlamak güç olabilir. Bununla birlikte, önce Ethereum'da hesap soyutlama tartışmasıyla ilgili çeşitli terimleri açıklayarak konuyu daha iyi anlayabiliriz:

  1. Soyutlama (isim): Bilgisayar biliminde (oldukça karmaşık) bir terim olup kabaca, arka planda çalışan süreçler hakkında daha az bilgiyle kullanılabilmesi için bir sistem veya uygulama hakkındaki bilgilerin gizlenmesi anlamına gelir. Aynı zamanda "bir sistemin karmaşıklığını, manipülasyonunu kolaylaştıran bir arayüz sağlayarak gizleme süreci" olarak da tanımlanır.

  2. Hesap (isim): Kullanıcının blok zincirindeki temsili; işlem gönderip alabilir ve diğer zincir üstü hesaplarla etkileşime girebilir. Ethereum'un iki tür hesabı vardır: Harici Sahipli Hesaplar (EOA'lar) ve sözleşme hesapları (diğer adıyla "akıllı sözleşmeler").

2a. Harici Sahipli Hesaplar (EOA): MetaMask gibi cüzdan yazılımları kullanılarak oluşturulan ve bir çift kriptografik genel/özel anahtarla yönetilen Ethereum hesapları. Bir EOA "aktif"tir (işlem başlatabilir ve EVM yürütmesi için gas ücretlerini ödeyebilir). Ancak yalnızca Ether göndermek veya sözleşmelerle etkileşim kurmak gibi temel işlemleri gerçekleştirmekle sınırlıdır.

2b. Sözleşme hesapları: Bir akıllı sözleşme olarak dağıtılan ve özel anahtar yerine kod içindeki mantık tarafından kontrol edilen Ethereum hesapları. Bir sözleşme hesabı "pasif"tir: yalnızca bir EOA'dan gelen işleme yanıt olarak işlem gönderebilir ve gas ücretlerini ödeyemez. Bununla birlikte programlanabilir olup adreste depolanan koda bağlı olarak keyfi mantık yürütebilir.

  1. Cüzdan (isim): Ethereum hesabınızdaki fonları yönetmek için bir arayüz; cüzdanın nasıl çalıştığı, bağlı olduğu hesap türüne göre değişir. MetaMask gibi EOA tabanlı bir cüzdan, işlemleri yetkilendirmek için özel anahtar gerektirir. Öte yandan akıllı sözleşme cüzdanı, bir sözleşme hesabına bağlıdır ve işlemleri yetkilendirmek için keyfi mantık kullanabilir (örneğin çoklu imza şeması kullanarak).

Bu tanımları netleştirdikten sonra artık hesap soyutlamayı tanımlayabiliriz.

Hesap soyutlamanın tanımı

Hesap soyutlama, Ethereum hesaplarının yönetiminde ve davranışında esnekliği artırmaya yönelik bir öneridir. Bunu, kullanıcının Ethereum hesabını (artık akıllı hesap olarak adlandırılan) tanımlayan ve yöneten özel amaçlı akıllı sözleşmeler olan hesap sözleşmeleri sunarak gerçekleştiriyoruz.

Hesap soyutlama sayesinde, güvenlik için yalnızca özel anahtarlara güvenmek yerine akıllı sözleşme cüzdanı kullanarak fonlarınıza programlanabilir erişimin keyfini çıkarabilirsiniz. Bu mümkündür çünkü akıllı hesabınız, coin harcamak ve varlık transfer etmek için özel kurallar içerebilir.

Peki "soyutlama" tüm bunlara nasıl dahil oluyor?

Ağ düzeyinde bakıldığında "hesap soyutlama", hesap türlerinin ayrıntılarının Ethereum protokolü için görünmez olduğu anlamına gelir. Her hesap (kendi kendine saklama hesapları dahil) yalnızca bir akıllı sözleşmedir ve kullanıcılar bireysel hesapların nasıl yönetilip işletileceğini serbestçe belirleyebilir.

Kullanıcı düzeyinde bakıldığında "hesap soyutlama", Ethereum hesaplarıyla etkileşime ilişkin belirli teknik ayrıntıların üst düzey arayüzlerin arkasına gizlenmesi anlamına gelir. Bu durum cüzdan tasarımlarını iyileştirir ve web3 uygulamalarını kullanmanın karmaşıklığını önemli ölçüde azaltır.

Bu açıklama gereklidir; çünkü hesap soyutlama etrafındaki kafa karışıklığı, (a) neyin soyutlandığını ve (b) soyutlamanın nerede gerçekleştiğini bilmemekten kaynaklanmaktadır. Hesaplar, kullanıcılardan soyutlanmak zorunda değildir (protokolden soyutlansalar bile). Fon almak için hâlâ bir cüzdan adresiniz ve yalnızca sizin harcayabileceğinizi güvence altına alan bir imzalama anahtarınız bulunmaktadır.

Sizin perspektifinizden bakıldığında hesap soyutlama, blok zinciriyle etkileşime ilişkin bazı ayrıntıları soyutlayan akıllı bir hesap kullanmaya daha çok benziyor. Bağlam açısından, bir dapp ile ilk kez etkileşime giren bir kullanıcının deneyimi şöyle görünüyor:

Hesap soyutlama sayesinde cüzdan geliştiricileri, bu süreçleri arka planda yöneten ve web3 kullanım deneyimini basitleştiren sistemler oluşturabilir (kısacası: cüzdanlar "görünmez" hale geliyor). Bazı kullanım senaryoları (daha sonra ayrıntılı ele alacağız) şunlardır: seed phrase/özel anahtar saklamanıza, işlemler için gas ödemenize, hatta kendi başınıza zincir üstü hesap oluşturmanıza gerek kalmaması.

Hesap soyutlamanın faydaları

Daha önce de belirtildiği gibi, hesap soyutlama web3 cüzdanlarını kullanmak ve dapp'lerle etkileşim kurmakla ilişkili sürtünmenin büyük bölümünü ortadan kaldırıyor. Bu durum, web3'ü hem yeni hem de deneyimli tüm kullanıcıların aynı düzeyde esneklik, güvenlik ve kullanım kolaylığından yararlanabildiği web2 idealine yaklaştırıyor.

Özellikle hesap soyutlama, kendi kendine saklama (self-custody) geleceği için büyük çıkarımlar taşıyor. Hesap sözleşmelerinin sunduğu özellikler sayesinde bir web3 cüzdanı kullanmak, bankaya güvenmek zorunda kalmadan bir banka hesabı veya uygulaması kullanmak gibi hissettirecek.

Sonraki bölümlerde hesap soyutlamanın farklı boyutlarına değinerek bunların Ethereum kullanım deneyimini nasıl iyileştirdiğini ele alacağız. Özellikle imza soyutlama, ücret soyutlama ve nonce soyutlama konularını inceleyeceğiz.

İmza soyutlama

Bugün, EOA'nızdan gelen işlemlerin geçerli sayılabilmesi için hesabın özel anahtarı tarafından Eliptik eğri dijital imza algoritması (ECDSA) kullanılarak oluşturulmuş bir imza içermesi gerekiyor. Bu, çoğu EOA'ya basit bir güvenlik modeli kazandırıyor: özel anahtarlar kullanıcının elinde kaldığı sürece fonlar güvende. Ancak bunun birkaç kısıtlaması da var:

  1. EOA'ların güvenliğini sağlamak son derece zordur; özellikle kötü niyetli aktörler özel anahtarları ele geçirmenin yeni yollarını sürekli geliştirdiğinden. MetaMask olarak, kimlik avı (phishing), sosyal mühendislik, sahtekârlık (spoofing), kötü amaçlı yazılım enjeksiyonu ve benzeri saldırıların web3'te kullanıcı güvenliğine yönelik oluşturduğu zorlukları bizzat deneyimledik.

  2. Kendi kendine saklama, aşırı bir spor gibi hissettirilebilir. Normal banka hesabınızın aksine, seed phrase/özel anahtar kaybolursa bir EOA cüzdanını "kurtaramazsınız". Bu durum, herhangi bir çözüm yolu olmaksızın Ethereum hesaplarındaki varlıkları tamamen kaybetmenin sonuçlarıyla yüzleşmek zorunda kalan yeni kullanıcılar için ciddi bir zorluk yaratıyor.

İmza soyutlama, ECDSA imzalarını emanetsiz (non-custodial) hesaplar için varsayılan yetkilendirme mekanizması olmaktan çıkararak bu sorunları çözüyor. Bunun yerine kullanıcılar, cüzdanların işlem başlatmasını yetkilendirmek için özel kurallar tanımlayabilir. Bir başka deyişle, bir işlemin geçerli sayılması için ne gerektiğine siz karar verebilirsiniz.

İmza soyutlamanın hayata geçirilmesi, daha gelişmiş yetkilendirme şemalarının önünü açıyor. Bu sayede web3 cüzdanınızı kullanmak, bir web2 bankacılık uygulamasını kullanmaya benzer, hatta daha iyi bir deneyim sunabilir. İşte bazı kullanım senaryoları:

  1. İşlem limitleri: Akıllı hesabınıza bağlı bir cüzdan, değer önceden belirlenmiş bir limiti aşarsa işlemi reddedebilir (veya ek yetkilendirme talep edebilir). Tanıdık geliyor mu? Gelmeli; bankalar hesaplarınızı ve kredi kartlarınızı dolandırıcılığa, yetkisiz kullanıma ve güvenlikle ilgili diğer durumlara karşı korumak için bunu zaten yapıyor.

  2. Çok taraflı onaylar: Hesabınızın kısmi kontrolünü "koruyucular" olarak adlandırılan güvenilir kişilere devredebilirsiniz. Koruyucular; arkadaşlar, aile üyeleri, hizmet sağlayıcılar veya sahip olduğunuz ayrı bir cihaz (örneğin bir donanım cüzdanı) olabilir. Böylece akıllı hesabınızdan fon çeken işlemler için koruyucu onayı zorunlu kılarak cüzdanınıza web2 tarzı çok faktörlü kimlik doğrulama (MFA) ekleyebilirsiniz.

  1. Anahtar rotasyonu ve iptali: Akıllı hesaplar sayesinde, önceki anahtarın kaybolması veya çalınması durumunda yeni bir imzalama anahtarı oluşturabilirsiniz. Ek güvenlik için kurtarma sürecinde koruyucularınızın hesabınızı dondurmasını sağlayabilir ve anahtar rotasyonu/iptali akışları için onay talep edebilirsiniz (yani sosyal kurtarma). Bu, kredi kartınızın kaybolması/çalınması durumunda banka hesabınıza erişimi kaybetmeden kartı dondurabilmenize benziyor.

  2. Güvenilir oturumlar: Tarayıcınızda bir dapp ile etkileşim kurarken her işlemi onaylamak zorunda kalmaktan sıkıldınız mı? Harika! Akıllı hesabınızla dapp'ler için belirli bir süre boyunca işlemleri otomatik olarak imzalamalarına olanak tanıyan özel "oturum anahtarları" oluşturabilirsiniz. Bu sayede, örneğin bir blok zinciri oyunu oynarken, cüzdan açılır pencereleriyle rahatsız edilmeden dapp'lerle etkileşime girebilirsiniz.

Üst düzeyde bakıldığında, oturum anahtarları hesabınız ile bir dapp arasındaki etkileşimleri kontrol eden bir akıllı sözleşmeye dayanıyor. Oturum anahtarlarının kontrolü her zaman sizde olur ve dapp'in imzalama yetkisini; bakiyenizden ne kadar kesebileceği veya hangi fonksiyonları çağırabileceği gibi konularda düzenleyebilirsiniz.

  1. Otomatik ödemeler: Oturum anahtarları fikrine benzer şekilde, hizmet sağlayıcıların akıllı hesabınızdan (önceden tanımlanmış kurallara tabi olarak) fon "çekmesine" onay verebilirsiniz. Bu, web3 cüzdanınızla yinelenen ödemeler ve abonelikler kurmanızı mümkün kılıyor. Ethereum hesabınızı kullanarak Netflix aboneliği veya fatura ödemesi yapabildiğinizi hayal edin!

Ücret soyutlama

Şu anda her Ethereum işleminin, gönderen EOA'nın yürütme için ne kadar ödemeye razı olduğunu belirten bir "gas ücreti" içermesi gerekiyor. Gas ücretleri, Ethereum'un yerel tokeni olan Ether cinsinden ifade ediliyor. Bu durum, özellikle işlemlerini göndermeden önce ETH temin etmesi gereken yeni kullanıcılar için sorunlar yaratıyor.

Hesap soyutlama, gas ücreti ödeme zorunluluğunu ortadan kaldırmıyor; ancak kullanıcıların gas için nasıl ve ne zaman ödeme yapacağına ilişkin ayrıntıları soyutluyor (ücret soyutlama). Örneğin hesap soyutlama, başka bir hesabın kullanıcının işlemi için gas maliyetini karşıladığı "sponsorlu işlemleri" mümkün kılıyor. Sponsorlu işlemlerin bazı faydaları:

  1. ETH dışı gas ödemeleri: Cüzdanınızdaki ERC-20 tokenlarıyla işlem ücretleri ödeyebilmeyi hiç istediniz mi? Sponsorlu işlemler sayesinde, işlemlerinizin maliyetini önceden karşılaması için ETH'ye sahip bir aktarıcı (relayer) bulabilir ve bunu DAI veya USDC gibi başka bir tokenla geri ödeyebilirsiniz.

  1. Gassız işlemler: Dapp geliştiricileri işlemleri sponsorlayarak yeni Ethereum kullanıcıları için katılım sürtünmesini en aza indirebilir. Temelde "gas" hakkında hiçbir şey bilmeden web3 uygulamalarını kullanabilir ve web2 uygulamalarının sunduğu tek tıklamalı deneyimin aynısından yararlanabilirsiniz.

  1. Sosyal girişler: Bir dapp, sizin adınıza bir sözleşme cüzdanı dağıtarak zincir üstü işlem göndermeden önce cüzdan kurma sorununu çözebilir. En güzel yanı? Cüzdanlar, kullanıcıların e-posta adresi veya Facebook/Twitter hesabı gibi mevcut kimlik bilgileriyle web3 hesabı oluşturmasını sağlamak için kimlik doğrulama altyapısını (örneğin Web3Auth ve WebAuthn) kullanabilir.

Nonce soyutlama

Ethereum'daki akıllı hesapların bir diğer özel özelliği de işlem gruplama (transaction batching). Gruplandırılmış işlemler sayesinde birden fazla işlemi tek bir zincir üstü işlemde birleştirerek dapp'lerle etkileşimin maliyetini ve karmaşıklığını azaltabilirsiniz. İşlem gruplamayı önemli kılan şey şu:

EOA'nız, kaç işlem gönderdiğinizi gösteren "nonce" adlı bir değer saklar (bunu bir işlem sayacı gibi düşünebilirsiniz). Yeni bir işlemin geçerli sayılabilmesi için nonce'u kesinlikle 1 artırması gerekir; bu kural, başka birinin fonlarınızı çalmak amacıyla aynı işlemi "tekrar oynatmasını" engeller (evet, bu gerçekten olabilir).

Ancak bir sorun var. Nonce'lar, işlemleri ilk giren ilk çıkar (FIFO) sırasıyla işlemenizi zorunlu kılıyor. Diyelim ki sırasıyla 0 ve 1 nonce değerlerine sahip iki işleminiz (A ve B) var. Bu durumda A işlemini göndermeniz ve B'yi göndermeden önce onaylanmasını (yürütülmesinin doğrulanmasını) beklemeniz gerekir.

A hâlâ beklemedeyken B'yi göndermek, nonce'un öngörülen aralığın (EOA'nın mevcut nonce'u + 1) üzerinde olacağından B'nin reddedilmesiyle sonuçlanır. Aslında bu, bir cüzdan kullanırken "takılı kalan işlemler" yaşamanızın önemli nedenlerinden biridir.

Nonce soyutlama, Ethereum protokolünün işlemler üzerinde katı bir sıralama dayatması yerine özel tekrar koruma mekanizmaları oluşturmanıza olanak tanır. Örneğin, birden fazla işlemin paralel olarak işlenmesine izin veren bir nonce şeması oluşturabilirsiniz. Bu, tıkanmış/takılı kalan işlemler sorununu çözer ve dapp'lerle etkileşimi önemli ölçüde iyileştirir.

Bununla birlikte, nonce soyutlamanın pratikte uygulanması güçtür ve işlem hash'i benzersizliği gibi güvenlik ve kullanıcı deneyimi açısından kritik bazı değişmezleri potansiyel olarak bozabilir. İşte bu noktada işlem gruplama devreye giriyor:

Akıllı hesaplar aynı anda birden fazla işlemi işleyebildiğinden, karmaşık nonce soyutlama şemalarına duyulan ihtiyaç büyük ölçüde ortadan kalkıyor. Önceki örneğe dönersek, A ve B işlemlerinin Uniswap'ta varlık takas etmek gibi tek bir varsayımsal işlemin parçaları olduğunu düşünebiliriz:

  • A İşlemi: Uniswap sözleşmesinin tokenlarınıza erişmesini onaylayın

  • B İşlemi: Token takasını tamamlayın

İşlem gruplama sayesinde onayla-ve-takas et iş akışını tek bir işlemde birleştirebilirsiniz. Sonuç: dapp'leri kullanırken daha düşük gas ücretleri ve azalan bekleme süreleri. Harika, değil mi?

Hesap soyutlamanın "nasıl"ı

Bu noktada, hesap soyutlamanın kullanıcı hesaplarına özel işlevsellik ve yetkilendirme politikaları eklememize olanak tanıdığını zaten biliyorsunuz. Ancak bunların nasıl mümkün olduğunu henüz gerçekten ele almadık. Bu bölüm, Ethereum'da soyutlamayı hayata geçirmenin farklı yaklaşımlarını tartışıyor (bu çok çekici gelmiyorsa, bir sonraki bölüme geçmekten çekinmeyin).

Hesap soyutlamayı gerçekleştirmenin genel kabul görmüş iki yolu vardır: (a) EOA'ların EVM kodu yürütmesine izin vermek ve (b) akıllı sözleşmelerin işlem başlatmasına olanak tanımak. Bu nedenle pek çok hesap soyutlama önerisinin ya EOA'ların akıllı sözleşme gibi davranmasını ya da sözleşme hesaplarının EOA gibi hareket etmesini istediğini göreceksiniz.

Bu durum doğal olarak bazı soruları gündeme getiriyor:

  • "Bu yaklaşımlar tam olarak birbirinden nasıl farklı?"

  • "Hangi yaklaşımı benimsediğimiz neden önemli?"

Hesap soyutlama: Yaklaşım #1 (EOA'ları kod yürütecek şekilde yükseltmek)

EOA'lara kod yürütme yeteneği kazandırarak kullanıcı kontrollü hesaplara karmaşık işlevsellik ekleyebiliriz. Bu, EOA'ları güçlendirir ve onları akıllı hesaplara dönüştürerek yerel hesap soyutlamasının zeminini hazırlar. Önemli olan şu: bu yaklaşım, yeni bir sözleşme hesabı dağıtma maliyetine katlanmadan programlanabilir bir cüzdanın avantajlarından yararlanmanıza olanak tanır.

EOA'ları sözleşme hesaplarına yükseltmeye yönelik bazı yaklaşımlar, EOA işlemlerinin veri yükünü EVM bayt kodu olarak ele almayı içeriyor. Diğerleri ise bir EOA'nın kontrolünü, EOA adına işlem yapan özel bir hesap sözleşmesine devretmeyi kapsıyor. İkinci durumda, aynı hesap sözleşmesi farklı EOA'lar tarafından yeniden kullanılabilir; bu da farklı sözleşme cüzdanı uygulamalarına duyulan ihtiyacı azaltır.

Aşağıda, "EOA'ları programlanabilir hale getir" kampındaki farklı hesap soyutlama önerilerini, temel özelliklerini ve uygulama durumlarını gösteren bir infografik yer alıyor:

Hesap soyutlama: Yaklaşım #2 (Akıllı sözleşmeleri yükseltmek)

Bu yaklaşımda, sözleşme hesaplarını işlemleri onaylayabilecek ve gas ücretlerini ödeyebilecek şekilde yükseltiyoruz (tıpkı EOA'lar gibi). Bu, EOA gibi davranabilen "güçlendirilmiş sözleşmeler" (yani hesap sözleşmeleri) sunarak hesap soyutlamayı gerçekleştirmenin başka bir yolunu sağlıyor. Ayrıca Ethereum'daki acil bir sorunu da çözüyor: protokol düzeyinde sözleşme cüzdanlarına destek eksikliği.

Şöyle ki; bazı akıllı sözleşme cüzdanları bugün zaten mevcut ve hesap soyutlamanın pek çok avantajını sunuyor. Ancak bu cüzdanları kullanmak son derece güç olabilir; çünkü Ethereum, akıllı sözleşmelere "ikinci sınıf vatandaş" muamelesi yapıyor ve tüm işlemlerin bir EOA'dan başlamasını şart koşuyor.

Bu kısıtlama aynı zamanda akıllı sözleşme cüzdanlarının MetaMask gibi EOA cüzdanlarının güven gerektirmeyen ve kendi kendine saklama niteliğinden yoksun kalması anlamına geliyor. Bağlam açısından, bir akıllı sözleşme cüzdanı oluşturma ve kullanma akışını ele alalım:

  • Yeni bir sözleşme hesabı dağıtın

  • Cüzdan sözleşmenizdeki fonksiyonları çağırmak için işlem gönderin

Sorun zaten açık: artık iki cüzdanı yönetmeniz gerekiyor. Neden? Cüzdanın dağıtım maliyetlerini karşılamak ve ardından gerekli fonksiyonları çağırmak için ETH ile önceden finanse edilmiş bir EOA'ya ihtiyaç duyuluyor.

İşte aktarıcılar (relayer'lar) devreye giriyor: bir ücret karşılığında cüzdanınızın işlemlerini ödeyebilen EOA'lar. Akıllı sözleşme cüzdanı sağlayıcıları, kullanıcılar için işlemlere sübvansiyon sağlamak amacıyla genellikle aktarıcılar işletiyor. Yani aktarıcı, işlem ücretlerinizi karşılamak için kendi cüzdanından ETH ödüyor ve maliyetleri başka bir yerde; belki fiat para veya başka bir token cinsinden sizden tahsil ederek geri kazanıyor.

Bu sistem çoğu durumda iyi çalışıyor: gas ödemenin inceliklerini fazla düşünmeden bir sözleşme cüzdanı oluşturup kullanabiliyorsunuz. Ancak bu aynı zamanda aktarıcının işlemlerinizi sansürlememesine veya kurcalamamasına güvenmenizi gerektiriyor.

Ama bu kripto dünyası ve biz güven gerektirmeyen sistemleri seviyoruz.

Sözleşme hesaplarının işlemleri onaylamasına ve gas ücretlerini ödemesine izin vererek hesap soyutlama, akıllı sözleşme cüzdanı oluşturma ve kullanma sürecini daha güven gerektirmeyen bir hale getiriyor. Daha açık ifadeyle, aktarıcı işleten herkesin sizin adınıza işlem yürütmesine olanak tanıyor. Sadece aktarıcının işlemi yürüttükten sonra cüzdan bakiyenizden fon düşmesini onaylayan bir mesaj imzalamanız yeterli:

Artık akıllı sözleşme cüzdanı kullanma akışı biraz farklı görünüyor:

  • Cüzdan sözleşmesi dağıtmak mı istiyorsunuz? Karşı olgusal dağıtım iş akışlarını kullanarak, sözleşme hesabını dağıtmadan önce fon gönderebilir ve dağıtım maliyetleri için cüzdan bakiyenizden bir aktarıcının EOA'sına ödeme yapabilirsiniz.

  • Cüzdan sözleşmesiyle etkileşim mi kurmak istiyorsunuz? Zincir dışında bir mesaj imzalayın ve hesap sözleşmenize çağrı yapması için bir aktarıcıya bırakın. Mesaj, hesap sözleşmesinin aktarıcının gas maliyetlerini geri ödemesi için bir talimat içerecektir.

Güven gerektirmeyen ve sansüre dirençli akıllı hesapları mümkün kılma fikri, bu kategorideki pek çok hesap soyutlama önerisinin temelini oluşturuyor. Örneğin, şimdiye kadarki en popüler hesap soyutlama önerisi olan ERC-4337; kullanıcıların sözleşme cüzdanı işlemlerini işleme sunabileceği alternatif bir mempool sunarak aktarıcıları merkeziyetsizleştiriyor.

Bu durumda aktarıcılar ("bundler'lar" olarak adlandırılır) akıllı hesap işlemlerini yürütmek için rekabet edebilir; bu da sansür riskini veya cüzdan sağlayıcılarına aşırı bağımlılığı azaltıyor. Aşağıda, "akıllı sözleşmelere EOA özellikleri ver" kampındaki farklı hesap soyutlama önerilerini, temel özelliklerini ve uygulama durumlarını gösteren bir infografik yer alıyor:

Hesap soyutlamanın geleceği üzerine

Vitalik Buterin'in kavramı ilk kez ortaya attığı günden bu yana yıllar geçmesine rağmen, hesap soyutlamayı uygulamanın en iyi yolu konusunda hâlâ bazı görüş ayrılıkları mevcut. Örneğin EIP-3074 ve EIP-5003'ün hayata geçirilmesi, mevcut EOA'ların (MetaMask kullanıcıları dahil) akıllı hesaplara yükseltilmesini sağlayacaktır. Ancak bu öneriler, topluluğun daha acil yükseltmelere odaklanması göz önüne alındığında şimdilik uygulanamaz görünen bir hard fork gerektiriyor.

Buna karşın EIP-4337, Ethereum protokolünde büyük ölçekli değişiklikler gerektirmeden hesap soyutlamayı hayata geçirdiği için geniş destek gördü. Ancak şu anda EOA tabanlı cüzdan kullanan kullanıcılar için bu, varlıkları bir EOA'dan yeni dağıtılmış bir sözleşme hesabına taşımayı gerektiriyor; bugün Ethereum'daki yüksek gas ücretleri göz önüne alındığında bu, potansiyel olarak karmaşık ve maliyetli bir süreç.

MetaMask olarak, hesap soyutlamanın yeni web3 kullanıcıları için sorunsuz bir katılım deneyimi sunmanın anahtarı olduğuna inanıyoruz. Ayrıca EOA'ların kripto'nun benimsenmesini garanti edemeyeceğini de biliyoruz (Ethereum Vakfı araştırmacısı Yoav Weiss'ın renkli ifadesiyle: "Bir sonraki milyar kullanıcı, 12 kelimeyi kâğıda yazmayacak.").

Bu nedenle, MetaMask cüzdanının kullanıcıların tanıdığı ve sevdiği deneyiminden ödün vermeden hesap soyutlamanın avantajlarını sunmanın yollarını düşünmeye başladık. Bu çabanın bir parçası, geliştiricilerin mevcut MetaMask altyapısının üzerine özel özellikler inşa etmesine olanak tanıyan izinsiz inovasyon platformu MetaMask Snaps'e yönelmektir.

Snaps kullanarak geliştiriciler, MetaMask cüzdanınızın işlevselliğini farklı hesap soyutlama kullanım senaryolarını destekleyecek şekilde genişletebilir. Oturum anahtarlarından MetaMask ile oluşturulmuş eksiksiz akıllı hesap entegrasyonlarına kadar; tümü Snaps ile inşa edilmiş olan bu çalışmalarda, geliştiricilerin MetaMask'ı kullanarak hesap soyutlamaya erişimi demokratikleştirme zorluğunu üstlendiğini gördük.

"Mükemmeli iyinin düşmanı yapma." — Voltaire

Mevcut hesap soyutlama önerisi, biraz kusurlu olsa bile, Ethereum'da güven gerektirmeyen ve sansüre dirençli akıllı hesaplara ulaşma yolunda dev bir adım ve yeterli desteği hak ediyor. Ekibimizden Taylor Monahan'ın dediği gibi: "Gönderilmiş yarım bir çözüm, gönderilmemiş mükemmel bir çözümden yine de iyidir."

Bu yüzden hesap soyutlama konusundaki bir sonraki makalemiz, ERC-4337'nin ayrıntılarına derinlemesine bir dalış biçiminde olacak. Önemli olan şu: web3 geliştiricilerinin MetaMask ile hesap soyutlamanın geleceğini inşa etmeye ve bir sonraki milyar kullanıcıyı; tek seferde bir satır kod yazarak nasıl kazanabileceğini ele alacağız.

Takipte kalın!

Patrick McCorry, Simon Brown, Mirko Garozzo, Christian Montoya, Oliver Renwick ve Megan Dias'a bu makalenin önceki taslakları üzerindeki geri bildirimleri için özel teşekkürler. Projenin erken aşamalarında rehberlik ve destek sağlayan Clarissa Watson ve Francesco Andreoli'ye de minnettarlığımı sunuyorum.

Yapay zeka tarafından çevrildi. Hatalar içerebilir. Lütfen her zaman bilgileri doğrulayın.

Çeviriyi değerlendir

Bu makalenin yazarı: