EVM Adres Güvenliği: Ethereum, Base, Polygon ve Daha Fazlası
İçindekiler
Ethereum Sanal Makinesi baskın akıllı sözleşme platformu haline geldi ve adres formatı Ethereum'un çok ötesine uzanıyor. Polygon, Arbitrum, Optimism, Base, BNB Chain ve Avalanche hepsi aynı adres sistemini paylaşır. Bu evrensellik güçlüdür ancak her kullanıcının anlaması gereken güvenlik nüansları getirir.
Bu rehber, EVM adreslerinin arka planda nasıl çalıştığını, tek bir özel anahtarın neden her EVM zincirindeki varlıkları kontrol ettiğini, sağlama toplamlarının sizi yazım hatalarından nasıl koruduğunu ve fon kaybına yol açan en yaygın hataları kapsar.
EVM Adresleri Evrenseldir¶
Her EVM uyumlu blokzincir aynı adres formatını kullanır: 0x önekli 40 karakterlik onaltılık bir dize. 0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18 adresi Ethereum, Polygon, Arbitrum, Optimism, Base, BNB Chain, Avalanche ve var olan veya var olacak her EVM zincirinde geçerlidir.
Bu evrensellik tesadüf değildir. EVM adreslerinin nasıl türetildiğinin doğrudan sonucudur. Süreç her yerde aynı şekilde çalışır:
- Rastgele 256 bitlik bir özel anahtar üretin.
- secp256k1 eliptik eğrisini kullanarak açık anahtarı hesaplayın.
- Açık anahtarın Keccak-256 hash'ini alın (0x04 önek baytı hariç).
- Hash'in son 20 baytını (40 onaltılık karakter) tutun.
0xekleyin.
Her EVM zinciri bu türetimi birebir takip ettiğinden, aynı özel anahtar her zaman her zincirde aynı adresi üretir. Adresin kendisinde zincire özgü bir öge yoktur. Adres tamamen özel anahtarın ve secp256k1 eğrisinin bir fonksiyonudur.
Bu, Bitcoin adreslerinin çalışma biçiminden temelden farklıdır. Bitcoin'in sürüm baytlarını ve zincire özgü verileri kodlayan birden fazla adres formatı vardır (Bech32, Base58Check, vb.). Bitcoin ana ağ adresi görsel ve yapısal olarak test ağı adresinden farklıdır. EVM zincirlerinde böyle bir ayrım yoktur --- bu hem kolaylık hem risk kaynağıdır.
Bir Özel Anahtar, Birçok Zincir¶
MetaMask, donanım cüzdanı veya SafeSeed'in Ethereum Tohum İfadesi Oluşturucusu aracılığıyla bir Ethereum cüzdanı oluşturduğunuzda, tohum ifadeniz size her EVM zincirinde aynı anda aynı adrese erişim sağlar. Bu bir özelliktir, ancak önemli güvenlik etkileri vardır.
Avantaj: Tüm EVM zincirlerindeki varlıklarınızı kontrol etmek için yalnızca bir tohum ifadesi veya özel anahtar güvence altına almanız yeterlidir. Polygon, Arbitrum veya Base için ayrı cüzdanlara gerek yoktur. Tohum ifadeleri ve özel anahtarları anlamak bu ilişkiyi netleştirir.
Risk: Özel anahtarınız ele geçirilirse saldırgan her EVM zincirindeki fonlarınıza aynı anda erişir. Sızan tek bir tohum ifadesi, Ethereum'daki ETH'nizi, Polygon'daki MATIC'inizi, Arbitrum'daki ARB'nizi ve o adresin değer taşıdığı diğer EVM zincirlerindeki tüm tokenlarınızı kaybetmeniz anlamına gelir. Bir güvenlik ihlalinin etki alanı, zincire özgü anahtarlara kıyasla çok daha büyüktür.
Bu paylaşılan anahtar modeli aynı zamanda türetim yollarının önemli olduğu anlamına gelir. BIP44 tarafından tanımlanan standart Ethereum türetim yolu m/44'/60'/0'/0/0'dır. Çoğu cüzdan tüm EVM zincirleri için bu yolu kullanır, bu yüzden adresiniz ağlar arasında tutarlı kalır. Bazı cüzdanlar zincire özgü türetim yolları sunar ancak bu pratikte yaygın değildir. Standart dışı bir türetim yolu kullandıysanız belgelediğinizden emin olun. HD cüzdanlar ve türetim yolları hakkındaki detaylı yazımız teknik ayrıntıları kapsar.
Anahtar üretimi için pratik etki: Bir Ethereum cüzdanı ürettiğinizde, tüm EVM ekosistemi için bir cüzdan üretiyorsunuz. O cüzdanın güvenliğine buna göre davranın. Kriptografik olarak güvenli bir kaynaktan uygun entropi kullanın, önemli değer tutacaksanız çevrimdışı üretin ve soğuk depolama en iyi uygulamalarını izleyin.
EIP-55 Karışık Büyük/Küçük Harf Sağlama Toplamları¶
EVM adres güvenliğinin daha ince yönlerinden biri sağlama toplamı mekanizmasıdır. Ethereum adresleri onaltılıktır ve 0-9 ile a-f karakterlerini kullanır. Onaltılık sistem büyük/küçük harfe duyarsız olduğundan 0xab12cd ve 0xAB12CD aynı adresi temsil eder. Bu bir sorun yaratır: yazım hatalarını tespit etmenin yerleşik bir yolu yoktur.
Vitalik Buterin tarafından yazılan EIP-55, adresin büyük/küçük harf yazımına bir sağlama toplamı kodlayarak bunu çözdü. Şöyle çalışır:
- Küçük harfli adresi alın (
0xöneki olmadan). - Bu küçük harfli adresin Keccak-256 hash'ini hesaplayın.
- Adresteki her karakter için: hash'teki karşılık gelen nibble 8 veya üzeriyse karakteri büyük harfle yazın. Aksi takdirde küçük harf bırakın.
Sonuç, büyük/küçük harf deseninin sağlama toplamı görevi gördüğü 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed gibi bir adrestir. Herhangi bir karakteri değiştirirseniz büyük/küçük harf deseni artık eşleşmez ve düzgün uygulayan bir cüzdan adresi geçersiz olarak işaretler.
Bu güvenlik için önemlidir çünkü:
- Pano kaçırma zararlı yazılımları kopyalanan adresleri saldırganın adresiyle değiştirebilir. Değiştirilen adresin sağlama toplamı yanlışsa iyi bir cüzdan sizi uyarır.
- Manuel yazım hataları (adresi elle girme) fonlar boşluğa gönderilmeden önce yakalanır.
- Saldırganın benzer görünen bir adresten küçük işlemler gönderdiği adres zehirleme saldırıları kısmen azaltılır.
SafeSeed'in Ethereum Adres Doğrulayıcısı ile bir EVM adresinin doğru EIP-55 sağlama toplamına sahip olduğunu doğrulayabilirsiniz. Önemli işlemler göndermeden önce her zaman adresleri doğrulayın. Zincirler arası adres formatı farklılıklarına daha geniş bir bakış için kripto adres formatları rehberimize bakın.
Kritik not: EIP-55 sağlama toplamları blokzincirin kendisi tarafından değil, cüzdanlar tarafından uygulanır. Ethereum protokolü büyük/küçük harf fark etmeksizin herhangi bir 20 baytlık adrese yapılan işlemleri kabul eder. Cüzdan yazılımınız EIP-55 doğrulamasını uygulamıyorsa bu korumayı kaybedersiniz. Her zaman sağlama toplamı doğrulaması yapan bakımı iyi yapılmış cüzdan yazılımı kullanın.
Yaygın L2 Çapraz Zincir Hataları¶
Katman 2 ağlarının ve EVM yan zincirlerinin çoğalması yeni kullanıcı hatası kategorileri ortaya çıkarmıştır. Bunları anlamak maliyetli hatalardan kurtarabilir.
Yanlış ağda token göndermek¶
En yaygın hata: Arbitrum'da USDC göndermek istersiniz ama yanlışlıkla Ethereum ana ağında gönderirsiniz (çok daha yüksek gas ücretleri ödeyerek) veya daha kötüsü, alıcının erişimi olmadığı bir ağdaki adrese gönderirsiniz. Adresler zincirler arasında aynı olduğundan cüzdanlar bu hatayı her zaman tespit edemez.
Önleme: Bir işlemi imzalamadan önce cüzdanınızdaki ağ seçicisini her zaman onaylayın. EVM ağlarını birbirinden ayıran teknik tanımlayıcı olan chain ID'yi iki kez kontrol edin.
Hedef zincirde var olmayan bir sözleşme adresine göndermek¶
Ethereum'da 0xABC... adresinde dağıtılmış bir akıllı sözleşme Polygon'da var olmayabilir. Sözleşme dağıtılmamış bir zincirde doğrudan bir sözleşme adresine token gönderirseniz tokenlarınız kimsenin kontrol etmediği harici bir hesap adresine (EOA) gider. Kalıcı olarak kaybolurlar.
Önleme: Bir sözleşmeye gönderiyorsanız sözleşmenin kullandığınız belirli zincirde dağıtıldığını doğrulayın. Etherscan, Polygonscan ve Arbiscan gibi blok gezginleri kendi zincirlerini kapsar.
Köprüyle ilgili kayıplar¶
Varlıkları EVM zincirleri arasında taşımak köprüler gerektirir ve köprüler kripto tarihinin en büyük istismarlarından bazılarının kaynağı olmuştur. Paylaşılan adres formatı köprülemeyi sorunsuz hissettirir, ancak altta yatan mekanikler hiç de basit değildir.
Önleme: Güçlü güvenlik geçmişine sahip köklü köprüler kullanın. E-postalar, DM'ler veya tanıdık olmayan web sitelerinde bulunan bağlantılar aracılığıyla asla köprü kullanmayın. Köprü sözleşme adreslerini resmi belgeler aracılığıyla doğrulayın.
Adres zehirleme saldırıları¶
Saldırgan işlemleriniz için blokzinciri izler, ardından adresinize görsel olarak benzeyen bir adresten (ilk ve son birkaç karakter eşleşen) küçük bir miktar gönderir. Daha sonra işlem geçmişinizden bir adres kopyaladığınızda yanlışlıkla saldırganın benzer adresini kopyalayabilirsiniz.
Önleme: İşlem geçmişinden asla adres kopyalamayın. Her zaman adres defterinizi kullanın veya cüzdanınızdan yeni bir kopya oluşturun. Göndermeden önce herhangi bir adresi SafeSeed'in Ethereum Adres Doğrulayıcısı gibi bir araçla doğrulayın. Yalnızca ilk ve son dört karakteri eşleşen adreslere karşı özellikle dikkatli olun. Tohum ifadesiyle ilgili yaygın kripto dolandırıcılıklarını anlamak daha geniş saldırı kalıplarını tanımanıza yardımcı olur.
EIP-55 uyarılarını görmezden gelmek¶
Bazı kullanıcılar, özellikle komut satırı araçları veya ham işlemler aracılığıyla DeFi protokolleriyle etkileşime girenler, sağlama toplamı doğrulamasını atlarlar. Bu kritik bir güvenlik ağını kaldırır.
Önleme: Her zaman sağlama toplamlı adresler kullanın. Bir araç size tamamen küçük harfli bir adres verirse kullanmadan önce sağlama toplamlı formata dönüştürün.
EVM Adreslerini Güvenli Bir Şekilde Üretmek¶
Tek bir EVM adresinin birden fazla zincirde potansiyel olarak önemli miktarlardaki varlıkları kontrol ettiği düşünüldüğünde, üretim süreci ciddi ilgiyi hak eder.
Kriptografik olarak güvenli rastgelelik kullanın¶
Her EVM adresinin güvenliği özel anahtarı üretmek için kullanılan rastgele sayının kalitesiyle başlar. SafeSeed'in Ethereum Özel Anahtar Oluşturucusu işletim sisteminizin kriptografik rastgele sayı üretecinden rastgelelik kaynağı olarak Web Crypto API kullanır --- her şey tamamen tarayıcınızda çalışır, hiçbir sunucuya hiçbir şey gönderilmez. Kriptoda entropinin ne anlama geldiği ve anahtar üretimi için neden önemli olduğu hakkında daha fazla bilgi edinin.
Yüksek değerli cüzdanlar için çevrimdışı üretin¶
Birden fazla EVM zincirinde önemli değer tutacak bir cüzdan oluşturuyorsanız çevrimdışı üretin. SafeSeed'i indirin, internetten bağlantınızı kesin, tohum ifadenizi oluşturun, fiziksel olarak kaydedin ve yeniden bağlanmadan önce tarayıcıyı kapatın. Ethereum cüzdanını çevrimdışı üretme adım adım rehberimiz tüm süreci anlatır.
Adresleri doğru türetin¶
BIP39 tohum ifadesinden üretirken, Ethereum için doğru türetim yolunu kullandığınızdan emin olun: m/44'/60'/0'/0/0. Yanlış yol kullanmak geçerli bir adres üretecektir, ancak tohum ifadesinden geri yüklediğinizde normal cüzdan yazılımınızın bulamayabileceği bir adres.
Fonlamadan önce doğrulayın¶
Yeni üretilmiş bir adrese kripto para göndermeden önce SafeSeed'in Ethereum Adres Doğrulayıcısı ile doğrulayın. EIP-55 sağlama toplamının doğru olduğunu onaylayın. Önce küçük bir test işlemi göndermeyi, ardından daha büyük miktarları transfer etmeden önce alındığını doğrulamayı düşünün.
Kurulumunuzu belgeleyin¶
Hangi cüzdan yazılımını, türetim yolunu ve ağı kullandığınızı kaydedin. Aynı tohum ifadesinden birden fazla EVM zincirinde varlık tutuyorsanız hangi zincirlerin hangi varlıkları tuttuğunu belgeleyin. Bu bilgi varisler için veya yıllar sonra erişimi geri yüklemeniz gerektiğinde kendi kurtarmanız için kritik öneme sahiptir.
EVM zincirleri arasındaki paylaşılan adres modeli ekosistemin en büyük kolaylıklarından biridir. Aynı zamanda konsantre bir başarısızlık noktasıdır. Nasıl çalıştığını anlayarak, sağlama toplamı doğrulamasına saygı göstererek, yaygın çapraz zincir hatalarından kaçınarak ve anahtarlarınızı güvenli bir şekilde üreterek, kendinizi gereksiz risklere maruz bırakmadan çok zincirli EVM dünyasından tam olarak yararlanabilirsiniz.