Sözlük / İşlemler ve ücretler
Serileştirilmiş işlem
Diğer adları: Ham işlem, Raw transaction.
- Serileştirilmiş işlem nedir?
- Serileştirilmiş işlem, bir cüzdanın ağa teslim ettiği tam bayt dizisidir; her düğümün tek bir baytı bile değiştirmeden ayrıştırdığı, hash'ini hesapladığı ve aktardığı onaltılık biçimdir.
Tanımlandığı belge: BIP-144.
Bir işlemi kullanıcı dostu yapan her şey, adresler, yerel para biriminizdeki tutarlar, etiketler, cüzdanınızın eklediği süslemedir. Gerçekte yolculuk eden şey kompakt bir ikili veri bloğudur, basit bir ödeme için tipik olarak 200 ile 250 bayt arasındadır ve tamamen kendi kendine yeterlidir. Bu onaltılık dizeyi çevrimdışı bir bilgisayardan çevrimiçi herhangi bir bilgisayara kopyalayın, ödeme oradan yayınlanabilir.
Nasıl çalışır
Serileştirme, alan adları olmayan sabit bir sıradır, bu yüzden ayrıştırıcılar tamamen konuma ve uzunluk öneklerine güvenir.
İkili veri bloğu, dört baytlık sürümle başlar. Segregated witness işlemleri ardından iki baytlık bayrak ekler, 0x00 ve 0x01, ki eski ayrıştırıcılar bunu sıfır girdili bir işlem olarak okuyup reddederdi; yeni biçimin eskiyle bir arada var olmasını sağlayan kasıtlı bir hiledir. Sırada compactSize tamsayısı olarak girdi sayısı gelir, ardından her girdi: harcanan çıktıyı adlandıran 36 bayt, uzunluk önekli bir kilit açma betiği ve dört baytlık bir sıra numarası. Çıktı sayısı bunu izler, ardından her çıktı satoshi cinsinden sekiz baytlık bir tutar artı uzunluk önekli bir kilitleme betiği olarak gelir. Witness verisi, varsa, sona yakın durur ve son dört bayt her zaman locktime'dır.
Sayılar little endian, yani en küçük bayt önce olacak şekilde saklanır; 100.000 satoshilik bir tutarın onaltılık dizede a0 86 01 00 00 00 00 00 olarak görünmesinin nedeni budur. Hash'ler iç bayt düzeninde saklanır, bu bir blok gezgininin size gösterdiğinin tersidir, dolayısıyla ham veri içindeki işlem kimlikleri geriye doğru görünür.
Bu tek yapıdan iki hash çıkar. İşlem kimliği, serileştirme üzerinden işaretçi, bayrak ve witness çıkarılmış halde hesaplanan çift SHA-256'dır; imzaları sonradan bozulmaya karşı bağışık kılan budur. BIP141 içinde tanımlanan witness işlem kimliği witness dahil her şeyin hash'ini alır ve düğümler bunu aktarım muhasebesi için kullanır. Bir girdili, iki çıktılı yerel SegWit ödemesi yaklaşık 222 ham bayta serileşir ve kabaca 141 sanal bayt sayılır, çünkü witness kısmı indirimlidir.
Nerede görülür
Ham biçim, tek bir uygulamanın dışına çıktığınız anda ortaya çıkar; çoğu insan için bu, çevrimdışı imzalamak ya da bir ödemeyi kurtarmak anlamına gelir.
Donanım cüzdanları ve ağdan yalıtılmış kurulumlar tamamlanmış bir işlemi onaltılık olarak ya da aynı baytları taşıyan bir QR kod olarak dışa aktarır ve göndermek için bunu bir blok gezginindeki yayın formuna yapıştırırsınız. Bitcoin Core komut satırı bunu iki yönde de kullanır: createrawtransaction ve signrawtransactionwithwallet onaltılık üretir, decoderawtransaction onaltılığı okunabilir JSON'a geri çevirir ve sendrawtransaction bunu ağa gönderir. Destek talepleri genellikle işlem kimliği yerine ham onaltılığı ister, çünkü onaltılık işlemi yalnızca adlandırmakla kalmaz, içeriğini de kanıtlar.
Bir güvenlik notu. İmzalanmış bir ham işlem hamiline ait bilgidir: onaltılığı elinde tutan herkes onu yayınlayabilir ve hiçbir yanı gizli değildir. Yardım isterken bunu herkese açık bir foruma yapıştırmayın, ödemenin yapılmasına razı değilseniz.
Serileştirilmiş işlem vs işlem kimliği
Serileştirilmiş işlem belgedir; işlem kimliği ise onun dosya adıdır. Biri ekranda beş yüz karaktere kadar çıkabilen birkaç yüz baytlık onaltılıktır, diğeri her zaman tam olarak 64 onaltılık karakterdir.
İnsanlar bunları karıştırır çünkü ikisi de uzun onaltılık diziler gibi görünür. Test, uzunluk ve dizenin ne yapabildiğidir. 64 karakterlik bir dize bir gezginde aranabilir, o kadar. Daha uzun bir dize alanlara çözülebilir ve tamamen imzalanmışsa, elinde tutan herkes tarafından, ona gönderdiğiniz bir yabancı dahil, yayınlanabilir.