Sözlük / Geliştirici başvuru kaynağı
Pubkey script
Diğer adları: scriptPubKey, Kilitleme scripti.
- Pubkey script nedir?
- Pubkey script, her işlem çıktısına eklenen ve o çıktıdaki bitcoinlerin yeniden hareket edebilmesi için karşılanması gereken koşulları belirten kısa Bitcoin Script parçasıdır.
Bitcoinler bir adreste tutulmaz; her biri bir pubkey script ile korunan çıktılarda bulunur. Bitcoin Core bu alana scriptPubKey der ve sıradan bir modern çıktı için alan 22 ya da 34 bayt uzunluğundadır. Birine bir adres verdiğinizde, ona cüzdanının yazacağı pubkey script tarifini vermiş olursunuz.
Nasıl çalışır
Serileştirilmiş bir işlemdeki her çıktı arka arkaya üç şeyden oluşur: satoshi cinsinden sekiz baytlık değer, bir uzunluk öneki ve pubkey scriptin kendisi. Çıktıda hiçbir şey bir alıcıyı adlandırmaz. Alıcı scriptin kendisidir ve bir adres yalnızca içindeki birkaç baytın sağlama toplamıyla kodlanmış halidir.
Bugün zincirdeki neredeyse her şeyi beş şablon oluşturur. Eski pay-to-public-key-hash kilidi 25 bayt uzunluğundadır ve 20 baytlık bir hash etrafında dört işlem kodunu adlandırır. Pay-to-script-hash kilidi 23 bayttır ve OP_EQUAL ile biter. Native SegWit ise kıyasla bilerek basittir: bir sürüm baytı ve ardından tek bir veri itmesi, tek anahtar için 22 bayt ve script hash için 34 bayt, çıktıda hiç mantık yok. Taproot da 34 bayttır: bir sürüm baytı ve 32 baytlık bir anahtar.
Aktarma politikası bu kısa listeyi tanır ve başka hiçbir şeyi aktarmayı reddeder; bu yüzden kendi çıktı biçiminizi icat edip bir cüzdanın ona ödeme yapmasını bekleyemezsiniz. Burada konsensüs politikadan daha gevşektir, ancak pratikteki sonuç beş şablonun tüm menü olduğudur.
Adı bir fosildir. En erken işlemlerde script gerçekten bir genel anahtar içeriyordu: genesis bloğunun coinbase çıktısı 67 bayttır ve sıkıştırılmamış 65 baytlık bir anahtar ile ardından OP_CHECKSIG içerir; bunu Bitcoin Core yazılımının kaynak kodunda okuyabilirsiniz. Anahtar yerine bir hash'e ödeme yapmak 2011 boyunca norm haline geldi ve bugün pubkey scriptlerin çoğunda hiç genel anahtar yoktur, yalnızca bir anahtara yönelik taahhüt vardır.
Nerede görülür
Herhangi bir düğümden ham bir işlemi çözmesini isteyin: her çıktı dört alanlı bir scriptPubKey nesnesi taşır: insan tarafından okunabilir assembly, ham onaltılık, tür dizesi ve türün eşlendiği adres. Blok gezginleri de aynı şeyi gösterir, genellikle kilitleme scripti ya da çıktı scripti olarak yeniden adlandırılmış halde.
Aynı zamanda bir cüzdanın yalnızca izleme kurulumunun bulunduğu yerdir. Bir adresi içe aktarmak, yazılımınıza zincirde hangi pubkey scriptleri tarayacağını söylemek demektir; bu yüzden bir anahtarın üretebileceği tüm script ailesini tanımlayan bir tanımlayıcı, ciddi araçlarda adres adres içe aktarmanın yerini aldı.
Pratik okuma becerisi kısadır. Script 0 ile başlıyor ve 20 bayt içeriyorsa, birileri onu tek imza ve ucuz bir girdiyle harcayacaktır. 32 bayt içeriyorsa, arkasında göremediğiniz bir sözleşme vardır. 1 ile başlıyor ve 32 bayt içeriyorsa o Taproot'tur ve tek bir anahtar ya da aynı görünüme bürünmüş koşullardan oluşan bütün bir ağaç olabilir.
Pubkey script vs imza scripti
Pubkey script soruyu sorar, imza scripti ise onu yanıtlamaya çalışır; ikisini farklı kişiler farklı zamanlarda yazar. Size para gönderen kişi, verdiğiniz adresten yola çıkarak pubkey scripti yazar ve onun baytlarının parasını öder. İmza scriptini ise siz daha sonra, harcarken yazarsınız ve o baytların parasını kendiniz ödersiniz. Bu yüzden bir Taproot adresine göndermek, gönderene eski bir adrese göndermekten biraz daha pahalıya gelirken, siz bitcoinleri sonunda taşıdığınızda size çok daha fazla tasarruf sağlar. İki script de tek bir birleşik program olarak değil, ayrı ayrı çalışır; bu değişiklik, özgün birleşik yürütmenin sömürülebilir olduğu anlaşıldıktan sonra 2010 içinde yapıldı.