Paralar, bakiyeler ve hesaplar: "ne kadarım var" sorusunun neden üç ayrı yanıtı var

·6 dk okuma·Yazar: SSP Editorial Team
SSP Academy kapağı: UTXO modeli, hesap bakiyeleri ve Solana kirası

Paralar, bakiyeler ve hesaplar: "ne kadarım var" sorusunun neden üç ayrı yanıtı var

Birden çok zinciri destekleyen bir cüzdan açın ve dikkatle bakarsanız tuhaf bir şey fark edersiniz. Bitcoin bakiyesi de Ethereum bakiyesi de ekrandaki birer sayıdan ibarettir, ama altta tamamen farklı biçimlerde hesaplanırlar — Solana'da ise bir üçüncü düzen daha vardır.

Bu önemsiz bir ayrıntı değil. Bitcoin ücretlerinin neden işlem geçmişinize bağlı olduğunu, bir Ethereum işleminin neden başarısız olup yine de paraya mal olabileceğini ve bir Solana hesabının neden öylece sıfıra boşaltılamayacağını açıklar.

UTXO modeli: bakiyeye değil, paralara sahipsiniz

Bitcoin'de hesap yoktur ve bakiye saklanmaz. Sakladığı şey bir harcanmamış işlem çıktıları kümesidir — UTXO'lar — ve her biri, bir harcama koşuluna kilitlenmiş ayrık bir değer parçasıdır.

Nakit parayı düşünün. Cebinizde "47 lira" yoktur; bir 20'lik, iki 10'luk, bir 5'lik ve iki adet 1 liralık vardır. 23 lira ödemek için 20'liği ve 5'liği uzatır, 2 lira geri alırsınız. Banknotu ikiye yırtamazsınız.

UTXO'lar tam olarak böyle çalışır. Her biri bütün olarak harcanmak zorundadır. 1 BTC'lik bir çıktıdan 0,3 BTC ödemek için cüzdanınız BTC'nin tamamını tüketir ve iki yeni çıktı oluşturur: alıcıya 0,3 ve size para üstü olarak yaklaşık 0,7. 1 BTC'lik UTXO artık yoktur.

Dolayısıyla "bakiyeniz" türetilmiş bir rakamdır: cüzdanınız zinciri tarayarak sizin sağlayabileceğiniz koşullara kilitlenmiş çıktıları bulur ve toplar. Bitcoin blok zincirinin hiçbir yerinde belirli bir tutara sahip olduğunuzu söyleyen bir kayıt yoktur.

Bundan üç sonuç çıkar ve üçü de pratiktir:

Ücretler yalnızca tutara değil, geçmişinize bağlıdır. Bayt başına alınır ve harcadığınız her girdi bayt ekler. 50 lirayı tek bir büyük UTXO'dan ödemek ucuzdur; aynı 50 lirayı otuz minik UTXO'yu birleştirerek ödemek pahalıdır, çünkü işlem fiziksel olarak daha büyüktür. Ücretler düşükken UTXO'ları birleştirmenin değeri buradan gelir.

Para üstü, bir yere gitmek zorunda olan gerçek bir çıktıdır. Her cüzdan bunu kendiliğinden halleder, ama zincir analistlerinin adreslerinizi birbirine bağlamak için kullandığı para üstü adresi sezgisellerinin ardındaki mekanizma da budur.

Harcama doğası gereği paraleldir. Farklı UTXO'lar bağımsızdır, dolayısıyla hiçbir şey işlemlerinizi katı bir sıraya sokmaz.

Bitcoin, Litecoin, Dogecoin, Bitcoin Cash, Zcash, Ravencoin ve Flux böyle çalışır. Daha eski model budur ve "anahtarlar sizin değilse paralar da sizin değildir" sözünün en harfi harfine doğru olduğu modeldir: hesap yoktur, yalnızca koşullar iliştirilmiş paralar vardır.

Hesap modeli: bir bakiyeniz ve bir sayacınız var

Ethereum bunu bir kenara attı ve banka defterine daha yakın bir şey kullandı. Zincir bir durum saklar: adreslerden bakiyelere (ve sözleşmeler için saklanan verilere) uzanan devasa bir eşleme. 0,3 ETH göndermek bir sayıdan 0,3 çıkarır ve başka bir sayıya ekler. Girdi yok, çıktı yok, para üstü yok.

Bu daha basittir ve akıllı sözleşmeleri uygulanabilir kılan da budur: bir sözleşmenin okuyup yazabileceği kalıcı depolamaya ihtiyacı vardır, ki dünya ayrık paralardan oluşuyorsa bu zahmetlidir.

Ama hesap modeli, UTXO'ların yaşamadığı bir sorun getirir. Bir işlem yalnızca "Ayşe'den 0,3 düş" demekse, onu gören herkes tekrar tekrar yayınlayıp hesabını boşaltabilir. Çözüm nonce'tur: her işleme dahil edilen, hesap başına bir sayaç; tam olarak bir artmak zorundadır. 7 numaralı işlem ancak 6 numaralıdan sonra ve yalnızca bir kez madenlenebilir.

EVM zincirlerinin böyle davranmasının nedeni nonce'tur:

İşlemleriniz katı biçimde sıralıdır. Takılan bir işlem, aynı adresten sonraki bütün işlemleri engeller, çünkü sıra dışı işlenemezler.

Bir işlem başarısız olsa bile ücretler ödenir. Gaz, başarılan hesaplamanın değil, girişilen hesaplamanın bedelidir. Geri alınan bir sözleşme çağrısı doğrulayıcıların emeğini yine de tüketmiştir, dolayısıyla yine de maliyeti vardır. Bu insanları sürekli şaşırtır ve UTXO dünyasından gerçek bir farktır; orada geçersiz bir işlem yalnızca hiç onaylanmaz ve hiçbir şeye mal olmaz.

Nonce yönetimi gerçek bir altyapı işidir. Sıradan bir cüzdan için görünmezdir. Yayımlamadan önce iki cihazın anlaşması gereken bir çoklu imzada nonce'un ayrılması, izlenmesi ve serbest bırakılması gerekir — nonce'ların ele alınışının iki cihazlı imzalamada bir uygulama ayrıntısı değil, yinelenen bir konu olmasının nedeni budur.

Ethereum, Polygon, BSC, Avalanche, Base ve XDC bu modeli kullanır.

Solana: kira ödeyen hesaplar

Solana da hesap temellidir, ama insanları hazırlıksız yakalayan bir kıvrımı vardır.

Solana'da hemen her şey bir hesaptır — cüzdanınız, tuttuğunuz her jeton, her programın verisi. Bu hesaplar doğrulayıcı belleğini işgal ettiği için, canlı kalmak adına asgari bir bakiye tutmak zorundadırlar. Buna kira muafiyeti denir: yeterince yatırın, hesap süresiz yaşar; altına düşün, geri alınabilir.

Pratik sonucu şudur: bir SPL jetonu tutmak, birileri size o jetonu gönderebilmeden önce, az miktarda SOL ile fonlanmış ayrı bir jeton hesabı gerektirir. Almak bedava değildir. Bu alışılmadıktır ve ihtiyaç duymadan önce anlamaya değer, çünkü "jetonları gönderdim ama hiçbir şey gelmedi" çoğu zaman yalnızca eksik bir jeton hesabıdır.

Çok zincirli bir cüzdan neden üçünü birden modellemek zorunda

Bu zincirleri destekleyen bir cüzdan tek bir dahili "bakiye" kavramını paylaşamaz. Şunlara ihtiyacı vardır:

  • UTXO zincirleri için: her biri tutar ve betiğe sahip bir çıktılar kümesi ve hangilerinin harcanacağına karar veren bir para seçimi mantığı.
  • EVM zincirleri için: tek bir bakiye rakamı, bir nonce ve sıraya saygı gösteren bir kuyruk.
  • Solana için: bir bakiye, ilişkili jeton hesapları kümesi ve kira asgarilerine dair farkındalık.

Güvenlik mimarisi de uyum sağlamak zorundadır. UTXO zincirlerinde SSP'nin iki-of-ikisi bir betiktir: kilidi açmak için iki imza isteyen, zincirin kendi betik kurallarınca dayatılan bir P2WSH çıktısı. EVM zincirlerinde sıradan hesaplar için eşdeğer bir betik sistemi yoktur, dolayısıyla çoklu imza hesap soyutlaması yoluyla gerçeklenir — doğrulama mantığı her iki imzayı da şart koşan bir akıllı sözleşme hesabı. Solana'da ise zincir üstündeki bir programın denetlediği, programdan türetilmiş bir adrestir.

Tamamen farklı üç mekanizma, kullanıcıya dönük tek bir fikir: iki cihaz olmadan hiçbir şey kıpırdamaz. Alttaki gerçeklemelerin birbirine hiç benzememesi, tam da bu güvencenin devralınmış sayılmak yerine her zincirde yeniden kurulup yeniden denetlenmesi gerektiğinin nedenidir.

Bunun sizin için anlamı

Bitcoin ücretleri küçük bir ödeme için yüksek görünüyorsa, girdilerinize bakın. Tutar, kaç parçadan oluştuğu kadar önemli değildir.

Bir Ethereum işlemi takıldığında, aynı adresten sonrakiler onun arkasında sıkışır. Bu bir hata değil, nonce'tur. İlkini çözmek kuyruğu açar.

Başarısız bir EVM işlemi yine de sizden ücret alıyorsa, model tasarlandığı gibi çalışıyordur. Benzetim bundan kaçınmaya yardım eder — imzalamadan önce benzetim yapmanın hesap temelli zincirlerde UTXO zincirlerine göre daha değerli olmasının nedeni budur.

Bir Solana jeton transferi "kaybolduğunda" bir jeton hesabı arayın. Kaybolan bir şey yok; hedef henüz var olmamış olabilir.

Bunların hiçbiri belirli bir cüzdanın tuhaflığı değil. Her zincirin yıllar önce verdiği bir tasarım kararının sonuçları ve hangi modelde olduğunuzu görebildiğiniz anda, başka türlü şaşırtıcı olan pek çok davranış öngörülebilir hale geliyor.

Bu makaleyi paylaş

İlgili makaleler