Sözlük / İşlemler ve ücretler
SIGHASH_NONE
- SIGHASH_NONE nedir?
- SIGHASH_NONE, bir işlemin girdilerini imzalarken çıktılarının hiçbirini kapsamayan bayraktır; bu da paranın gideceği yeri, işlemi eline geçiren herkese açık bırakır.
Bunu boş bir çek gibi düşünün. SIGHASH_NONE bir girdi harcamayı yetkilendirir ve kimin ödeme alacağı hakkında hiçbir şey söylemez; bu yüzden bir madenci ya da işlemi ileten herhangi bir düğüm, işlem onaylanmadan önce bütün çıktıları yeniden yazabilir. Değeri 2, hiçbir tüketici cüzdanı bunu sunmaz ve kendi işleminizde bir tane görürseniz bir şeyler ters gitmiş demektir.
Nasıl çalışır
Bu özeti oluşturmak, hash hesaplanmadan önce çıktı listesini tamamen atmak anlamına gelir.
Geriye kalan yine de önemlidir: işlem sürümü, imzalanan girdinin outpoint değeri, o girdinin kendi sıra numarası, harcadığı script ve locktime. Diğer bütün girdilerin sıra numaraları sıfırlanır; bu ikinci bir serbestliktir, çünkü ortak imzacıların bu imza zaten varken kendi göreli zaman kilitlerini (relative timelock) ayarlamasına olanak tanır.
Geriye kalmayan ise işin aslıdır. Hiçbir çıktı kapsanmadığı için imza yalnızca bu coinin bu sürümdeki bir işlemde bu zamanda ya da sonrasında harcanabileceğini söyler. Yarım kalmış işlemi elinde tutan kişi değerin nereye gideceğini seçer; buna işlemi ağda gören herkes de dahildir, çünkü onaylanmamış bir işlem yayınlandığı andan itibaren herkese açıktır.
ANYONECANPAY değiştiricisini ekleyin, bayt 0x82 olur; bu, Bitcoin'in üretebileceği en zayıf imzadır: tek bir girdiyi kapsar ve başka hiçbir şeyi kapsamaz.
Bayrak, Ocak 2009 tarihli ilk sürümden beri vardır ve hiç kaldırılmamıştır, çünkü kaldırmak, sonuçları kimse düşünmeden önce kilitlenmiş coinleri mahsur bırakırdı. BIP143 ve BIP341, bu bayrağı sessizce atmak yerine segwit ve Taproot için sadakatle yeniden uyguladı.
Nerede görülür
SIGHASH_NONE neredeyse hiçbir yerde karşınıza çıkmaz, ki tam da beklenmesi gereken budur.
Teorik kullanım, bir tarafın fon sağladığı ve karşı tarafın gideceği yeri seçtiği, karşı tarafın da imzanın dışındaki bir şeyle bağlı olduğu bir protokoldür. Yaygın olarak kullanılan hiçbir Bitcoin uygulaması bu şekilde çalışmaz. Esnek girdilere ihtiyaç duyan yapılar bunun yerine ANYONECANPAY yoluna gider; esnek çıktılara ihtiyaç duyan yapılar ise olası hedeflerin önceden sabitlendiği önceden imzalanmış alternatifleri kullanır.
Yani dolaşımdaki bir SIGHASH_NONE imzası bir hatadır ya da sürmekte olan bir hırsızlıktır. Mempool'lar, harcanabilir tuhaflıkları tarayan botlar tarafından sürekli izlenir ve bunu taşıyan bir işlem orada uzun süre fark edilmeden kalmaz. İmza kodu yazan herkes bayrağı hiç geçmediği bir tam sayı olarak ele almalı, saklama sistemini denetleyen herkes de bayrağın çağıran tarafından sağlanan bir parametre değil sabit olduğunu doğrulamalıdır.
Bitcoin satın alıp elinde tutan biri için çıkarılacak ders kısadır: bununla karşılaşmayacaksınız, cüzdanınız bunu sunmayacak ve bununla imza atmanızı isteyen yazılımdan uzak durmalısınız.
SIGHASH_NONE vs SIGHASH_SINGLE
SIGHASH_NONE sıfır çıktıyı kapsar; SIGHASH_SINGLE tam olarak birini, imzalanan girdiyle aynı indekste yer alan çıktıyı kapsar. Kapsanan bu tek çıktı, imzanın karakterini tamamen değiştirir. SIGHASH_SINGLE ile imzacı kendi ödemesini garanti ederken işlemin geri kalanını açık bırakabilir; bu, takaslar ve pazar yerleri için kullanılabilir bir yapı taşıdır. SIGHASH_NONE imzacıya hiçbir şey garanti etmez; bu yüzden birinin gerçek uygulamaları varken diğeri çoğunlukla olay raporlarında görünür.