Qtum Tasarım Bölüm 1 — UTXO nedir?

Batuhan Tastekin
6 min readSep 21, 2021

Qtum, Bitcoin’in UTXO modelini ve Ethereum’un EVM’sini tek bir benzersiz platformda bir araya getiriyor. Bu seride, bu bileşenlerin her birine bakacağız ve Qtum’un bu ikisini nasıl büyük bir başarıyla birleştirdiğini göreceğiz. Bugün, UTXO’lara odaklanalım.

Bitcoin ve UTXO

Bitcoin’in en heyecan verici yönlerinden biri, işlemlerinin arkasındaki mekaniktir. Bitcoin, henüz harcanmamış ve yeni işlemler oluşturmak için kullanılabilecek çıktı işlemlerini sürekli olarak izlemek için Harcanmamış İşlem Çıktısını veya UTXO’yu kullanır. Bu uygulamanın güzelliği, tam düğümlerin, tüm blok zincirini taramadan işlemleri doğrulamak için UTXO setinin bir kopyasını kolayca tutabilmesidir.

Bitcoin’de İşlemler Nasıl Çalışır?

Günlük işlemlerin nasıl çalıştığını düşünün. Diyelim ki bir bakkaldasınız ve bir cebiniz dolusu faturanız ve bir önceki alışverişinize göre bozuk paranız olduğunu varsayalım, bu şekilde işler:

  • Önceki işlemlerinizden kalan değişiklikle ödemeyi yaparsınız.
  • Kasiyer paranızı alır ve paranızı size geri verir.
  • Şimdi değişikliği gelecekteki işlemler için kullanacaksınız.

Bitcoin işlemlerinin arkasındaki temel kavram budur.

Alice’in Bob’a biraz BTC gönderdiğini varsayalım. Bu durumda:

Bölüm 1: İşlem Girdisi

Cüzdanı, önceki işlemlerden veya harcanmamış UTXO’lardan kalan artık değişikliği alacaktır. Bu artık değişiklik UTXO olarak adlandırılır. Alice’in cüzdanı, Alice’in göndermek istediği miktarı karşılayabilecek farklı UTXO işlemlerini aramak için UTXO setini otomatik olarak tarar.

Dolayısıyla, Alice 1 BTC göndermek isterse, cüzdan UTXO setini kontrol eder ve üç işlem bulur:

  • T(0) = 0,5 BTC
  • T(1) = 0,3 BTC
  • T(2) = 0.35 BTC

Bu üç UTXO, yaklaşık 1,1 BTC’ye tekabül ediyor, bu da neredeyse 1 BTC işlemini karşılamaya yetiyor.

Yani, T (Girdi) = T(0) + T(1) + T(2)

Bölüm 2: İşlem Çıktısı

İşlemin çıktı kısmı, Bob’un işlemin kendi kısmını aldığı yerdir. Alice başlangıçta 1 BTC’den fazla göndermeyi amaçladığından, çıktı kısmı böyle görünüyor.

T(Çıkış) = T (Bob 1 BTC alır) + Değişim.

“Değişiklik” şimdi Alice’in UTXO setine geri dönüyor. Bu arada, 1 BTC Bob’un UTXO’su olur.

Bitcoin’de İşlemlerin Temel Özellikleri

  • Göndericinin madencilere bazı işlem ücretleri vermesi gerektiğinden, T(Girdi) T(çıktı)’dan büyük olmalıdır. İşlem ücretleri, T(girdi) ve T(Çıktı) arasındaki farktır.
  • Gönderenin, T(Giriş) değerine kadar eklemek için yeterli UTXO’ya sahip olması gerekir. Bunu yapmazlarsa, cüzdanları işlemi reddeder.
  • Alice, işlemde UTXO’larını gönderme hakkına sahip olduğunu kriptografik imzasını kanıtlamalıdır.
  • Alice, BTC’yi Bob’un genel adresine gönderir. Daha sonra bu BTC’leri gelecekte harcamak için özel anahtarıyla açabilir.

UTXO’ya Genel Bakış

Pekala, tüm bunları bir araya getirelim ve UTXO’lar hakkında neler öğrendiğimizi görelim:

  • Harcanmamış çıktılar, bir işlem için girdi olarak kullanılır.
  • Bir işlem gerçekleştiğinde girdiler harcanır ve çıktılar yeni UTXO’lar olarak oluşturulur.
  • İşlem çıktısı sırasında, alıcı BTC’nin kendi payını alır ve değişiklik, göndericinin bir sonraki işlemi için UTXO olur.
  • Alıcının aldığı miktar, UTXO setinin bir parçası olur.
  • Her UTXO, sahibine ait ilgili bir imzaya sahiptir. Bitcoin sisteminde, imzanın geçerli sayılabilmesi için belirli bir işlem sırasında mevcut olması gerekir.
  • Bir çıktı harcandı olarak işaretlendiğinde, önceki sahibin artık ona sahip olmadığı için bu çıktıyı “harcama hakkına” sahip olmadığı anlamına gelir.
  • Bitcoin, her işlemde sürekli olarak UTXO’lar oluşturur ve kaldırır. Güncellenmiş bir UTXO seti, Bitcoin blok zincirinin yeni bir durumu olarak görülebilir. Bu, kullanıcıların madeni para sahipliğini kolayca izlemelerine yardımcı olur.
  • UTXO’lar karışmaz. Bu nedenle, biri size art arda iki işlem gönderirse, bir yerine iki UTXO alırsınız.
  • Bir UTXO’yu bölmek mümkün değildir. Örneğin, Alice’in 0,3 BTC göndermek istediğini ancak 0,1 BTC ve 1 BTC UTXO’ya sahip olduğunu varsayalım. Cüzdanı 1 BTC UTXO’dan bir miktar almak yerine yine de 1.1 BTC gönderecek. Bu adım, çifte harcamayı ortadan kaldırmaya yardımcı olur.
  • Bazı basit cüzdanlar (Qtum Web Cüzdanı gibi) bir değişiklik adresi kullanmayacak ve bu nedenle değişiklik gönderen adrese iade edilecektir. Qtum Core cüzdanı (Qtum-Qt) varsayılan olarak değişiklik adreslerini kullanır, ancak kullanıcılar cüzdanı değişiklik adreslerini kullanmayacak şekilde yapılandırabilir, bu durumda değişiklik gönderen adrese iade edilir.

UTXO ve Adres Değişikliği

Daha ileri gitmeden önce, UTXO yapısının temel bileşenlerinden birini anlayalım — Adresi Değiştir.

İşlemlerinizden kalan BTC’niz (diğer adıyla değişiklik) her zaman, orijinal UTXO’nuzun gittiği adrese geri dönmez. Bunun yerine, Bitcoin cüzdanınızın bir parçası olan “adresi değiştir” adlı yeni bir adrese gider. Böylece, artık değişiklik cüzdanınızı asla terk etmez, ancak farklı bir adresin parçası olur.

Bu değişiklik, yeni UTXO setinizin bir parçası olur.

Peki Satoshi bu özelliği neden Bitcoin’e kodladı? Kullanıcıların takma adlı kalmasına yardımcı olmak için. Bildiğiniz gibi, Bitcoin blok zinciri halka açıktır ve açıktır. Kullanıcı varlığının korunmasına yardımcı olmak için “adresi değiştir” gibi bir özellik gereklidir. Değişiklik doğrudan orijinal kullanıcı adresine giderse, tüm mali geçmişlerini izlemek oldukça kolay hale gelir.

UTXO ile Çifte Harcamayı Düzeltme

Çift harcama, dijital para birimi sisteminin çözmesi gereken bir sorundur. Basitçe söylemek gerekirse, çift harcama, belirli bir dijital para birimini aynı anda birden fazla harcama olasılığıdır. Fiziksel nakit söz konusu olduğunda, aynı banknotu belirli bir zamanda birden fazla harcayamayacağınız için bu sorun özünde çözülür.

Merkezileştirilmiş dijital transferler, merkezi yönetişim nedeniyle çift harcamayı hala azaltabilir. Ancak, merkezi olmayan para transferleri ne olacak? Satoshi Nakamoto Bitcoin’i yarattığında, çözmeleri gereken en büyük sorunlardan biri çifte harcamaydı. Bunu, UTXO’lar ve blok zincirinin bir kombinasyonunu kullanarak yaptılar.

UTXO Çifte Harcamayı Nasıl Düzeltir?

  • Bir kullanıcı BTC aldığında, miktar blok zincirine UTXO olarak kaydedilir.
  • Bir kullanıcının sahip olduğu her Bitcoin, çeşitli işlemlerde ve bloklarda UTXO olarak kaydedilebilir.
  • Bir Bitcoin işlemi oluşturulduğunda ve ağa yayınlandığında, işlemi alan düğüm işlemin bir UTXO’da olup olmadığını kontrol ederek bunu doğrular.
  • UTXO’da işlem çıktısı artık mevcut değilse, bu zaten gönderildiği anlamına gelir, bu nedenle doğrulama başarısız olur ve Bitcoin çift harcamayı önler.

UTXO ve Hesap Modeli

Artık UTXO’nun nasıl çalıştığına dair adil bir fikrimiz olduğuna göre, bunu Ethereum tarafından kullanılan Hesap Modeli ile karşılaştıralım. UTXO modelini nakit olarak düşünüyorsanız, Hesap modeli bir banka kartı kullanmaya benzer. Para göndermek istediğinizde banka ne kadar paranız olduğunu takip eder ve işlemi yapacak kadar paranız olup olmadığını kontrol eder.

Ethereum cüzdanınızı yaptığınızda ve ilk işleminizi aldığınızda, bir hesap eklenir ve tüm ağda yayınlanır. Ethereum’daki her hesap, diğer adresleri aramak için bir bakiye, depolama ve kod alanına sahiptir.

UTXO ve Hesap Modeli: Farklar

Teknik konulara girmeden önce, ikisi arasındaki temel felsefi farklılıkları karşılaştıralım.

  • UTXO bir doğrulama modelini takip eder. Kullanıcı, durum geçişinin sonuçlarını belirtmek için bir işlem gönderir. Düğümler, işlem girdilerinin harcanıp harcanmadığını ve imza verilerinin her şeyi doğru bir şekilde doğrulayıp doğrulamadığını sürekli olarak doğrulamalıdır.
  • Hesap modeli, kullanıcıların işlemlerini gönderdiği ve düğümlere durum geçişlerinin nasıl görünmesi gerektiği konusunda talimat verdiği bir hesaplama modelidir. Ağ daha sonra bu durum değişikliğinin geçerli olup olmadığını kontrol eder.

Pekala, şimdi iki model arasındaki temel işlevsellik farklılıklarına bakalım. Özellikle — Ölçeklenebilirlik, Gizlilik ve Akıllı Sözleşme Yetenekleri.

Ölçeklenebilirlik

İkisi arasındaki farkı anlamak için araştırmamız gereken en temel nokta ölçeklenebilirliktir.

#1 Blok zinciri Boyutu

  • Hesap modeli, bir kullanıcının toplam bakiyesine bağlı birkaç UTXO yerine bellek depolamanızı gerektirir.
  • Hesap modelindeki işlemler de yalnızca gönderici, alıcı, tutar ve dijital imzayı belirttiğinden daha küçüktür.
  • Senkronize etmek için daha az veri gerektirdiğinden, bir hesap sisteminde yeni düğümleri çevrimiçi hale getirmek daha hızlıdır.

#2 Devlet ve Ödeme Kanalları

Devlet ve Ödeme kanalları, veri alışverişini temeldeki blok zincirinden özel bir güvenilmez çift yönlü iletişim kanalları ağına taşıyan 2. katman teknolojileridir. Şu an itibariyle ödeme kanalının en gelişmiş versiyonu Bitcoin’in yıldırım ağı. Daha önce de belirttiğimiz gibi UTXO modeli, durum kanalları için ideal bir doğrulama modelidir.

#3 Parçalama

Durum kanalları bir katman-2 ölçeklendirme çözümü olsa da, parçalama katman-1'dir. Basitçe söylemek gerekirse, zincirin tüm durumu daha küçük parçalara veya parçalara bölünür ve ardından paralel olarak hesaplanır. Yine, UTXO modeli bunu oldukça basitleştirir, çünkü harcanabilir harcamaları toplama ve tanımlama süreci istemci tarafında gerçekleşir ve bu da genel sistem stresini azaltır.

Gizlilik

İnceleyeceğimiz ikinci alan gizliliktir ve hem UTXO hem de hesap modellerinin burada belirli avantajları vardır.

  • UTXO işlemlerini takip etmek zordur. Hesap modeliyle karşılaştırıldığında, UTXO’daki madeni paraların kaynağına kadar izlenmesi daha zordur ve dikkatli araştırma için gelişmiş zincir analizi gerektirir.
  • Hesap işlemleri, bu hesaplar yerleşik bir karıştırıcı ile birlikte geldiğinden daha iyi takas imkanı sunar. Bir hesapla ilişkili tüm paralar karıştırılır ve bir gözlemci, gelen işlemlerden hangisinin harcandığını belirleyemez.

Akıllı Sözleşme Yetenekleri

UTXO modelindeki akıllı sözleşmeler, hesap modelini kullanmaktan daha karmaşıktır. Başlangıçta bu model yalnızca basit işlemler için ve karmaşıklığı mümkün olduğunca ortadan kaldırmak için kullanılıyordu. Hesap modelinin burada açık bir avantajı var. Basit toplama ve çıkarma modeli, geliştiricilerin durum bilgisi gerektiren veya birden çok tarafı içeren işlemler oluşturmasına olanak tanır.

Qtum gibi hibrit modeller, UTXO tabanlı bir sistemde akıllı sözleşmeleri etkinleştirmek için Ethereum Sanal Makinesini (EVM) kullanmak için UTXO modeli ile hesap modeli arasında çeviri yapmak için AAL’yi (Hesap Soyutlama Katmanı) kullanarak bu zayıflığı ortadan kaldırır.

Hazır bahsetmişken.

EVM’leri öğrenmek için lütfen yakında buraya gelin!

--

--