
İşlem simülasyonu: bir işlem imzalamadan önce ne yapacak
Adres doğru. Tutar doğru. İkisini de kontrol ettiniz. Ve işlem hâlâ sandığınız şey değil.
Bu bir varsayım değil. Dikkatli bir insanın karıştığı kripto kayıplarının çoğunun olağan biçimi bu. Kimse onu bir yabancıya para göndermeye ikna etmedi. Görünen bütün parçaları doğru olan, sonuçları ise bambaşka bir yerde duran bir şeyi onayladı — bir token harcama iznindeydi, bir sözleşme çağrısındaydı, yüz kez gördüğü bir adresin tek bir karakterindeydi.
Simülasyon, bu boşluğu kapatma girişimidir: imzanız onu gerçek kılmadan önce size işlemin içeriğini değil etkilerini göstermek.
Kastettiğiniz şeyle imzaladığınız şey arasındaki boşluk
Bir işlem bir cümle değildir. Bayttır.
O baytlar düz bir transfer olduğunda, söyledikleriyle yaptıkları arasındaki boşluk küçüktür: bir adres, bir tutar, bir ücret. Bir sözleşme çağrısı olduklarında boşluk devasa olabilir. approve bir izin gibi görünür. Başka bir adresin tokenlarınızı hareket ettirmesine dair kalıcı bir haktır ve ERC-20 standardında çağrının hiçbir yeri ne kadarını ne kadar süreyle sorusunu sınırlamayı zorunlu kılmaz. Bir kez imzalanmış tek bir onay, aylar sonra boşaltılabilir.
İmzalarken baktığınız arayüzün o baytları bir cümleye çevirmesi gerekir. O çeviri saldırı yüzeyidir. Çeviriyi imzanızı isteyen taraf üretiyorsa, her şeyi söyleyebilir.
Bir prova, bir vaat değil
Simülasyon, işlemi yayına vermeden zincirin güncel durumuna karşı çalıştırmak ve neyin değiştiğini kaydetmek demektir.
SSP Enterprise'da bu, bir teklif oluşturulduğunda, henüz kimse imzalamadan gerçekleşir. Simülasyon, teklifin kurucusunun ürettiğinden inşa edilir — alıcılar, tutarlar, token sözleşmesi ve SSP'nin kendi birleştirdiği çağrı verisi — asla bir istemcinin verdiği ham imzalı hex'ten değil. Yalnızca okuma yaparak çalışır. Farklı zincir ailelerini üç motor karşılar:
- EVM zincirleri bir düğüme karşı salt-okuma bir çağrı yürütür ve ortaya çıkan bakiye değişimleriyle çözümlenmiş çağrıyı geri okur.
- UTXO zincirleri hiç düğüme ihtiyaç duymaz. Girdiler ve çıktılar zaten bilinir; dolayısıyla öncesi-sonrası, seçilmiş coinler üzerinde aritmetiktir ve alıcılar size dönen para üstü mü yoksa gerçekten dışarısı mı diye sınıflandırılır.
- Solana, kurucunun ürettiği imzasız işlemi çözümler ve ağın kendi
simulateTransactionçağrısını, imza doğrulaması kapalı olarak çalıştırır; sonra sonuçtan kasanın önceki ve sonraki token bakiyelerini okur.
Geri gelen şey bir önizlemedir: her varlığın bakiyesi öncesinde neydi, sonrasında ne olacak ve — EVM'de — çağrının gerçekte ne olduğu, bir metoda ve argümanlarına çözümlenmiş hâliyle.
İki şey değildir. Bir garanti değildir: zincirin durumu hareket eder ve teklif anında çalıştırılan bir simülasyon, zincirin o anki fotoğrafıdır. Ve bir kapı değildir. Tasarımın daha ilginç yarısı da bu; ona döneceğiz.
Söylenmeye değer on dört şey
Yalnızca sayı gösteren bir önizleme, sorunu yine sizin fark etmenizi ister. Bu yüzden önizlemeye uyarılar eşlik eder; dört önem derecesinde, on dört tane.
Onaylar — en çok cüzdanı boşaltan kategori. Sınırsız ya da sınırı olmayan bir izin kritiktir. İzin listenizde olmayan bir adrese verilen sıfırdan farklı her harcama onayı yüksektir. Ve bir sözleşme yerine kişiye ait bir hesabı onaylamak yüksektir, çünkü bunu yapmanın neredeyse hiçbir meşru nedeni yoktur: izinleri sözleşmeler harcar, insanlar değil.
Alıcılar — kuruluşunuzun kişilerinde ya da kasanın beyaz listesinde bulunmayan bir alıcı işaretlenir. Kasanızın daha önce hiç göndermediği bir alıcı da öyle. Tek başına ikisi de yanlış değildir. İkisi de ikinci bir okumayı hak eder.
Sözleşme riski — kaynağı doğrulanmamış bir hedef sözleşme, son yedi gün içinde dağıtılmış bir sözleşme, bir sözleşmeye hiç değilse yerel değer gönderilmesi ve bir sağlayıcının doğrudan kötücül diye işaretlediği herhangi bir adres.
Yürütme — işlemin simülasyonda geri dönmesi, yani zincirde başarısız olup ücreti çöpe atacak olması. Ya da simüle edilen çıkışın teklifin beyan ettiği tutarlarla uyuşmaması: kasanın ekranda yazandan fazlasını ya da azını kaybetmesi.
Bozulma — ve açıkça etiketlenmiş hâliyle, simülasyonun hiç çalışamadığı durum. Ulaşılamayan bir düğüm "kullanılamıyor" üretir; sessizlik değil, uydurma bir temiz kâğıdı hiç değil.
Bu önem dereceleri arasındaki ayrım, sayıdan daha çok şey ifade eder. Kritik ve yüksek, muhtemelen göründüğü şey olmayan bir işlemden söz eder. Orta ve bilgi, alışılmadık bir işlemden söz eder ki meşru işlemler ara sıra alışılmadıktır.
Adres zehirlenmesi: dikkatli insanları yenen saldırı
Bir uyarı kendi başlığını hak ediyor, çünkü tam da güvenlik tavsiyelerinin çoğunun önerdiği alışkanlığı hedef alıyor.
Adres zehirlenmesi şöyle işler. Bir saldırgan, hâlihazırda işiniz olan bir adresin ilk altı ve son dört karakterini paylaşacak biçimde üretilmiş bir adresten kasanıza minicik ya da sıfır değerli bir işlem gönderir. Hiçbir şey çalınmaz. Aslında hiçbir şey yapılmaz bile. İşlem, benzeri adresin geçmişinizde görünmesi için vardır.
Sonra — günler sonra, aynı karşı tarafa yeniden ödeme yaparken — adresi, dikkatli insanların yeniden yazmak yerine yaptığı gibi kendi işlem geçmişinizden kopyalarsınız. Dikkatli insanların denetlediği gibi denetlersiniz: ilk birkaç karakter, son birkaç karakter. İkisi de tutuyor. Orta tutmuyor ve para ortaya gidiyor.
SSP, her teklif alıcısını kasanızın zaten bildiği adreslere karşı, tam da insan gözünün yaptığı önek-sonek karşılaştırmasıyla denetler ve taklit edilen adresin adını veren kritik bir uyarı çıkarır. Aynı denetim gelen geçmiş üzerinde ters yönde de çalışır; böylece zehirli bir adres, siz onu kullanmak üzereyken değil, geldiği anda işaretlenir.
SSP'yi hiç kullanmasanız bile bu saldırıyı bilmenin nedeni şu: diğer bütün adres saldırılarını durduran doğrulama alışkanlığı, tam da bu saldırının yenmek için kurulduğu alışkanlıktır. Ya adreslerin tamamını karşılaştırın ya da hiçbir şeyi.
Uyarılar neden sunucuda hesaplanır — ve neden yine de hiçbir şeyi engellemez
Uyarı kümesine sunucu tarafında karar verilir; hakikat kaynağı olarak kuruluşunuzun kişileri ve kasanın beyaz listesi kullanılır. Bu bilinçlidir: neyin izinli sayılacağına bir istemci karar verebilseydi, ele geçirilmiş bir istemci her şeyin izinli olduğuna sessizce karar verebilirdi.
Yine de bunların hiçbiri bir işlemi durduramaz. Simülasyon imzalamayı ya da yayını asla koşula bağlamaz. Hata veren, zaman aşımına uğrayan ya da bir düğüme erişemeyen bir sağlayıcı "kullanılamıyor" döner ve teklif tümüyle imzalanabilir kalır. Alt sistemin tamamı hataya karşı yalıtılmıştır ki önizlemedeki bir çökme bir teklifi asla karaya oturtamasın.
Bu tuhaf bir tercih gibi duyulacak, o yüzden gerekçeyi açıkça söylemek gerekiyor. Engelleyebilen bir önizleme, engellemeye zorlanabilen bir önizlemedir — bir düğümü devirerek, sahte bir kritik üreterek, yazılımın bozulduğu bin yoldan herhangi biriyle. Yol gösterici bir servis hastalandığı için kımıldayamayan para, kısmen kaybettiğiniz paradır. Parayı koruyan şey çoklu imzadaki eşiktir; simülasyon, anahtarları tutan insanları bilgilendirmek için oradadır. Bir işlemi gerçekte ne durdurur bu savın uzun hâlidir.
Sunucuyla cihazınız anlaşmazlığa düştüğünde
Yukarıdakilerin tamamı sunucunun okuması. Cihazınız kendi okumasını yapar.

SSP Wallet size imzalanacak bir teklif gösterdiğinde baytları kendisi çözümler ve kendi bulduğunu gösterir — sunucunun özetini değil. Sonra ikisini karşılaştırır. Sunucunun çözümlenmiş çağrısı, cihazın türettiğinden farklı bir alıcı kümesi ima ediyorsa, cihaz kendi kritik uyuşmazlık uyarısını çıkarır ve sunucunun önizlemesini görsel olarak geri plana atar.
Cihazın çözümlemesi asıl olandır. Denetim kasten temkinlidir: eksik ya da bekleyen bir sunucu simülasyonu bir bozulmadır, bir çelişki değil ve öyle bildirilmez. Ayrıca yalnızca sunucunun çözümlenmiş bir çağrı ürettiği EVM zincirleri için geçerlidir; UTXO zincirlerinde karşılaştırılacak bir şey yoktur ve cihazın kendi çözümlemesi tek başına ayakta durur.
Hangi cüzdanı kullanırsanız kullanın, akılda tutulacak özellik bu. İkinci bir görüş, ancak birinciyi ele geçiren aynı eylemin ele geçiremeyeceği bir yerden geliyorsa bir değer taşır. Aynı sunucudan gelen iki özet, tek özettir.
Bir risk şeridini, onu görmezden gelmeyi öğrenmeden okumak
Uyarılar, duvar kâğıdına dönüşene kadar işe yarar. Birkaç alışkanlık onları işlevsel tutar.
Önce önem derecesini, sonra ayrıntıyı okuyun. Kritik ve yüksek, durup bakmaya değer. Yeni bir tedarikçiye yapılan ilk ödemede orta ya da bilgi düzeyinde bir uyarı, sistemin doğru çalışmasıdır; endişe nedeni değil.
Her onay uyarısını tam bir duruş olarak alın. Transferler ne taşıyacaklarını söylüyorlarsa onu taşırlar. Onaylar ise işlemden sonra da yaşayan bir hak verir. Kalıcı bir izin vermeyi düşünmüyorduysanız yanıt hayırdır.
Ekrandan çok cihaza inanın. İkisi ayrışıyorsa, elinizdeki telefon, bir saldırganın ayrıca ele geçirmesi gereken donanım üzerinde çalışandır.
"Kullanılamıyor"u "sorun yok" diye okumayın. Kimsenin denetlemediği anlamına gelir. Bu, özellikle büyük ya da alışılmadık bir ödemede kendiniz daha dikkatli bakmanız için bir nedendir.
Buradaki her şey imzadan önceki ana dair. Sonrasında olanlar için — kim imzalayabilir, kaç imza gerekir ve hangi işlemler iki cihazı yeniden ister — ilk kurumsal kasanızı kurmakla ve kritik işlemler ile yeniden imzalamayla başlayın. Bu uyarıların etrafında şekillendiği saldırı kalıpları içinse, kripto kullanıcılarını hedef alan kimlik avı saldırıları sorunun insan yarısını kapsıyor.


