UTXO Nedir? UTXO Modeli Nasıl Çalışır?

UTXO veya Unspent transaction output, Satoshi Nakamoto’nun dünyanın ilk kripto para birimi olan Bitcoin için geliştirdiği blok zinciri teknolojisinin düzgün çalışmasını sağlayan merkezi kavramlardan biridir

UTXO

UTXO veya Unspent transaction output, Satoshi Nakamoto’nun dünyanın ilk kripto para birimi olan Bitcoin için geliştirdiği blok zinciri teknolojisinin düzgün çalışmasını sağlayan merkezi kavramlardan biridir.

Bitcoin yaratılmadan on yıllar önce, tamamen dijital bir para yaratma saplantısı birçok insanın kafasını rahatsız etti. Satoshi Nakamoto, bir dizi teknik sayesinde bu büyük sorunu çözerek ilk tamamen dijital merkezi olmayan parayı yaratabildi. Bu yazıda UTXO’ların ne olduğunu ve Bitcoin’lerinizin protokol blok zinciri içinde güvenli bir şekilde seyahat edebilmesi için işlemler oluşturmada oynadıkları büyük rolü açıklayacağız.

UTXO Nedir, Nasıl Çalışır?

Bitcoin işlemleri girdi ve çıktılardan oluşur. Girdiler ve çıktılar seti, gönderilecek para birimleri ve kriptografik imzalarla birlikte, genellikle HASH ID olarak adlandırılan bir işlem karması ile sonuçlanır.

Girişler, keseyi alan ve daha önce kullanılmamış bir işlemin HASH ID’sidir, yani UTXO’dur, çıktı ise UTXO’nun oluşturulacağı ve daha sonra bir işlemde kullanabileceğiniz hedef adrestir. Aynı adres sonsuz UTXO’lara sahip olabilir. Bu nedenle UTXO’lar bir dizi işlem olarak tanımlanır.

Bir kişinin işlem göndermesi gerektiğinde, UTXO tarafından beslenmesi gerekir. Yani, aldığınız ve henüz harcamadığınız işlemler. Bu, bir kişinin aynı işlem için bir veya daha fazla UTXO kullanabileceği anlamına gelir. Aslında, bu UTXO’lar cüzdanınızdaki bir veya daha fazla adresin parçası olabilir. Ve daha da ileri gidersek, UTXO ile farklı cüzdanların adreslerinden bir işlem bile oluşturulabilir, yeter ki her biri kendi açık özel anahtarıyla imzalanmış olsun.

Tüm bunlar tek bir yere götürür: Bir UTXO yalnızca bir kez kullanılabilir. Ve bu, para birimlerinin birden fazla kullanılmamasını garanti eden araç setinin bir parçası olduğu için blok zinciri teknolojisinin işleyişinde esastır.

Bu mekanizmayı, harcanmamış kripto paraları belirlemek için kullanmanın güvenilirliği öyledir ki, Bitcoin’de dolaşımda kaç tane kripto para olduğunu bu şekilde sayabilirsiniz. Yaptığınız şey, UTXO’daki, yani harcanmamış işlemlerdeki tüm paraları toplamaktır.

UTXO
UTXO

UTXO ve Bitcoin’deki önemi

Bitcoin’de tüm işlemler bu girdi ve çıktı yapısına sahiptir. Bir Bitcoin işleminin “Girişlerinde”, cüzdanımız veya cüzdanımızla yönettiğimiz bakiyenin kökenlerini görebiliriz. “Gidiş” bölümündeyken paramızı nereye gönderdiğimizi görebiliriz. Buna ek olarak, iade edilen kalan parayı da görebiliyoruz. Bitcoin blok zinciri herkese açık ve şeffaf olduğu için tüm bunlar herkes tarafından görülebilir ve izlenebilir.

Yakından bakarsanız, bu model paranın nasıl ve hangi koşullar altında kullanılabileceği üzerinde tam kontrol sahibi olmanızı sağlar. Her şeyden önce, Bitcoin’de bir bakiye kullanmak için, o bakiyenin cüzdanınızda bir UTXO olarak kabul edilmesi gerekir. Diğer bir deyişle, birisinin bir ödeme yapması gerekir (bir çıkış veya UTXO), böylece bu ödeme sizin girişiniz olur ve böylece harcayabileceğiniz bakiyeniz olur.

Bu özyinelemeli bir süreçtir. Yani, mayınlı bir blok sonucunda kripto paranın üretildiği andan itibaren tekrar eder. Örneğin, bir kripto para birimi işlemi, aslında madenci tarafından bu bakiyeyi kontrolü altındaki bir adrese göndermek için oluşturulan bir UTXO’dur. Böylece bu çıkış işlemi, madenci için daha sonra harcanabilecek bir para girişi olur. Aynı işlem diğer Bitcoin kullanıcıları için tekrarlanır. Bununla UTXO’ların Bitcoin işlemlerinin önemli bir parçası olduğunu görebiliriz ve onlar olmadan operasyonlarının imkansız olacağını görebiliriz.

Bir UTXO’nun Bitcoin Üzerinde Nasıl Çalıştığına İlişkin Bir Örnek

Bitcoin’de bir UTXO’nun çalışmasını şu şekilde görebiliriz:

Ali, Eles’in 1 BTC değerindeki arabası için ödeme yapmak istiyor ve cüzdanında toplam 1,5 BTC var. Ali’nin bakiyesi, 0,8 BTC ile A ve 0,7 BTC ile B olmak üzere iki yöne bölünmüştür.

Böylece Ali, Eles’e gider ve 1 BTC için ödeme yapar. Bu noktada Ali’nin cüzdanı, bakiye iki yöne bölündüğü için 1 BTC’yi doğrudan gönderemez. Böylece her iki bakiyeyi de alır ve bunları ödeme işleminin girdilerine dönüştürür. Daha sonra Eles’in adresini alır ve ona 1 BTC göndermesini atar, ayrıca değişim adresine toplam 0,4995 BTC atar ve geri kalanı madencilik komisyonu olarak kalır.

Ali işlemini gönderdikten sonra, ağ tarafından işlenecek ve onaylanacak ve geri döndürülemezliğe giden yola başlayacak. Ve bu noktada, işlem UTXO’larının nerede olduğunu görmek kolay olacaktır.

Örnekte tespit edebildiğimiz ilk UTXO, Ali’nin terazileridir. 0,8 BTC ve 0,7 BTC bakiyesi olan bu adresler, kontrolleri altında bulunan ve Eles’e ödeme yapmalarına izin veren iki UTXO’dur. Ali bu bakiyelerin kontrolünde olduğundan, bu örnekte yaptığı gibi UTXO’larını yeni bir ödeme için “Biletlere” dönüştürebilir.

Ağ, Ali’nin işlemini onayladıktan hemen sonra durum değişir. Artık Ali, başlangıçta sahip olduğu bakiyelerin kontrolü altında değil ve bunun yerine, işlemi öncekilerin üzerine yazan yeni UTXO’lar üretti. Söz konusu yeni UTXO’lar, önce Eles’in adresi ve içinde Ali’den aldığı 1 BTC ile temsil edilir. İkincisi, değişim adresi ve Ali’nin ağdan aldığı 0,4995 BTC için, çünkü yaptığı ödemeden geriye kalan bu. Söylediğimiz gibi, Ali’nin sahip olduğu 1,5 BTC’yi tamamlamak için geri kalanı prensipte madenci için bir komisyon ödemesi olarak kalıyor.

Bitcoin Komut Dosyaları ve UTXO’larla İlişkisi

UTXO’nun Bitcoin’deki tüm çalışması, tüm işlemleri Bitcoin’de yazmak için kullanılan programlama dili olan Bitcoin betiği tarafından garanti edilir. Her işlemin aşağıdakileri yapmamızı sağlayan ilişkili bir komut dosyası vardır:

  1. Kullanılan bakiyenin gerçekten bize ait olduğunu doğrulayın.
  2. Gönderilen bakiyelerin yalnızca onları gönderdiğimiz kişi tarafından harcanabileceğinden emin olun.

Peki ama bu operasyonlar nasıl yapılıyor? Bunu aşağıda açıklıyoruz:

Bakiyenin bizim olduğunu doğrulamak

Bitcoin’de bir bakiye kullanabilmenin ilk görevi, bu bakiyenin gerçekten bizim olduğunu göstermektir. Bunu yapmak için akılda tutulması gereken ilk şey, bir girişe dönüştürdüğümüz her UTXO’nun (harcayacağımız bakiye) aslında bize bu BTC’ye erişim sağlayan önceki bir işlemin çıkışı olduğudur. Yani, tüm Bitcoin bakiyelerinin kendisiyle ilişkilendirilmiş bir UTXO’su vardır ve söz konusu UTXO’nun bununla ilişkili bir engelleme komut dosyası vardır.

Bu engelleme komut dosyası, söz konusu UTXO’nun bakiyesinden yararlanabilmemiz için açmamız gereken dijital bir asma kilittir. Bitcoin’deki engelleme komut dosyaları çeşitlidir, ancak en yaygın olanı P2PKH’dir (Pay to Public Key Hash). Ayrıca P2SH (multisig) olmasına rağmen, P2PK (en ilkel olanı). Bu engelleme komut dosyası, UTXO’da belirtilen adresle sonuçlanan özel anahtarla açılabilir.

Yani söz konusu komut dosyasının kilidini açmak için yapmamız gereken Bitcoin adresini almak, özel anahtarımızı almak ve söz konusu adresin ortak anahtarını oluşturmak. Sonunda dijital imzamızı damgalıyoruz ve tüm bu doğrulanmış verilerle, söz konusu adresin bakiyesi, kullanabilmemiz için kilidi açılıyor. Yani node’lar işlemi kabul edecek ve madencileri bekleyen mempool’a koyacaktır .

Aksine, bunu yapmazsak, işlem nodelar tarafından basitçe reddedilir ve bakiyeyi kullanamayız. Bu işleme kilit açma komut dosyası denir. Tabii ki, bu şifreleme işlemi bir cüzdanın kullanıcıları için otomatik ve şeffaftır, tüm işlem cüzdanın kendisi tarafından gerçekleştirilir, ancak artık içinde ne olduğunu biliyorsunuz. Bu şemada, işlemin bu kısmı her Bitcoin Komut Dosyasının komut dosyasında açıklanmıştır.

Kilit Komut Dosyası Oluşturma

UTXO’larımızı harcayabileceğimizi kanıtlayarak, yeni hedefe yönelik UTXO için bir kilit komut dosyası oluşturarak işlem oluşturma sürecine devam ediyoruz. Bu durumda, cüzdanın yaptığı, bizim için daha önce oluşturulana benzer bir komut dosyası oluşturmaktır; bu, bu yeni UTXO’yu harcayabilecek tek kişinin, adresleri kontrol eden özel anahtarlara sahip olan kişi olduğunu gösterir.

Bu şekilde oluşturulan, bitcoinlerin bir adresten diğerine geçerken, onları ele geçiren son kişi tarafından kullanılmasının engellendiği bir doğrulama zinciridir.

Gördüğünüz gibi, Bitcoin’de her şeyin iyi tanımlanmış bir nedeni vardır ve bu, tüm parçalarının kripto para birimlerinin doğru çalışmasına izin vermesine izin verir. Açık bir protokol olduğundan, protokole dahil olmak isteyen tüm nodelar kuralları aynı şekilde yorumlar.

Tüm işlemler tüm nodelar tarafından gözden geçirilir, çoğunluğu kabul edenler kabul edilir ve hash gücünün çoğunluğunun (madenciler tarafından oluşturulan) kabul ettikleri onaylanır. Bu kontroller, protokole uyumu demokratik olarak garanti eder.