Bitcoin Taproot Yükseltmesi Nedir?-banner-imageAkademi

Bitcoin Taproot Yükseltmesi Nedir?

Bitcoin ve Gizlilik

Günümüzde Bitcoin, genellikle anonim bir ödeme ağı olarak algılanmaktadır. Ancak sanılanın aksine açık bir blokzincir olan Bitcoin, muhtemelen dünyadaki en şeffaf ödeme ağıdır. Halka açık olan ve izlenebilen tüm Bitcoin işlemleri, Bitcoin ağında kalıcı olarak saklanmaktadır. Bitcoin adresleri (açık anahtarlar), Bitcoin’lerin nereye gönderildiklerini tanımlamak için kullanılan tek bilgidir. Bu adresler, her kullanıcının cüzdanları tarafından özel olarak oluşturulur. Herhangi bir kişi, Bitcoin ağına bağlanarak ya da bir blok gezgini sitesine girerek ağ üzerinde gerçekleşen tüm işlemleri görüntüleyebilir. Kullanıcıların, genellikle bir hizmet veya mal almak için kimliklerini açıklamaları gerektiğinden, Bitcoin adresleri tamamen anonim kalmaz. Bu nedenle gizlilik, ölçeklenebilirliğin yanı sıra Bitcoin ağının en büyük sorunlarından biri olarak tanımlanmaktadır.

Taproot yükseltmesi, bu sorunlara bir çözüm olarak sunulan, Bitcoin'in gizlilik ve ek olarak ağdaki başka eksikliklerini de çözmeyi amaçlayan bir yumuşak çatallanmadır (soft fork). Etkinleştirme sürecinin Temmuz ayından sonra başlatılacağı bildirilen Taproot yükseltmesini, detaylı olarak inceleyelim.


Bitcoin Taproot Yükseltmesi Nedir?

Taproot yükseltme önerisi ilk olarak Ocak 2018'de, Bitcoin Core geliştiricisi Greg Maxwell tarafından açıklanmıştır. Ekim 2020'de ise protokol geliştiricisi Pieter Wuille, Bitcoin'in bir sonraki soft fork yükseltmesi için bir “çekme talebi (pull request)” göndermiştir. Bu talep, daha fazla geliştiricinin kodu inceleyeceği ve yükseltmenin, protokole dahil edilmeye bir adım daha yaklaştığı anlamına gelmektedir. Yükseltmenin tam olarak uygulanabilmesi için doğrulayıcıların, Taproot’un yeni fikir birliği kurallarını benimsemesi gerekir. Bunun nasıl ortaya çıktığına bağlı olarak etkinleştirme, aylar sürebilmektedir.

Bitcoin'in akıllı sözleşme esnekliğini genişletirken aynı zamanda daha fazla gizlilik sunacak olan Taproot yükseltmesi, SegWit'in (Harici Şahitlik) piyasaya sürülmesinden bu yana Bitcoin protokolü için en çok beklenen teknolojik güncellemelerden biri olarak karşımıza çıkmaktadır. Bitcoin transferi için yeni, daha verimli, esnek ve özel yollar sunan Taproot'un amacı, gizliliği, ölçeklenebilirliği ve güvenliği iyileştirmek için Bitcoin'in komut dosyalarının çalışma şeklini değiştirmektir.

Taproot’un nasıl çalıştığını incelemeden önce ilk olarak Bitcoin işlemlerinin nasıl çalıştığına bakalım. Bitcoin işlemlerinin nasıl çalıştığını detaylı olarak biliyorsanız, direkt olarak “Taproot Nasıl Çalışır? Ne İşe Yarar?” bölümüne geçebilirsiniz.


Bitcoin İşlemleri Nasıl Çalışır?

Bitcoin işlemleri, banka hesabımızda olduğu gibi temel bakiyeleri içermemektedir. Bunun yerine işlemler, girdiler (inputs) ve çıktılardan (outputs) oluşan harcanmamış işlem çıktıları (UTXO'lar) etrafında döner. Her UTXO, bir özel anahtar (private key) ve bununla ilgili işlem verileriyle ilişkilendirilir. Bitcoin'leri başka bir adrese aktardığımızda, kriptografik bir imza ile ispatlayabileceğimiz bir UTXO'nun sahipliğini aktarmış oluruz. İşlemi imzalamak ve yetkilendirmek için, sahibi olduğumuzu kanıtlamak adına özel anahtarımızla ilişkilendirilmiş dijital imzayı sağlarız.

İşlem çıktılarının iki öğesi vardır:

  • Bitcoin miktarı ve,
  • Çıktıyı belirli bir Bitcoin adresine kilitleyerek bu Bitcoin’lerin sahipliğini yeni sahibine aktaran bir kilitleme komut dosyası, ScriptPubKey.

İşlem girdisinin bir parçası olan kilit açma komut dosyası ScriptSig ise, Bitcoin’lerin yeni sahibinin, özel anahtarıyla ilişkili imzasıyla birlikte çıktının kilidini açmasını ve ardından Bitcoin'leri harcayabilmesini sağlamaktadır. Sahip olunmayan UTXO'ların harcanmayacağından emin olmak için her girdideki kilit açma komut dosyası, karşılık gelen kilitleme komut dosyasıyla birlikte yürütülür. Doğrulayıcılar, UTXO setlerini izler ve doğrular, bu da her bir kişinin yalnızca sahip olduğu Bitcoin’leri harcayabilmesini sağlar.

Pay-to-Public-Key Hash (P2PKH), Bitcoin işlemlerinin en yaygın şeklidir ve Bitcoin’lerin başka bir Bitcoin adresine gönderilmesini sağlar. Diğer bir gelişmiş işlem türü ise Pay-to-Script-Hash (P2SH) işlemidir. P2SH için kullanım senaryoları, SegWit gibi çoklu imza (multi-signature) işlemlerini içerir. Ayrıca, karmaşık akıllı sözleşmeler oluşturmak için çeşitli harcama koşullarını da birleştirilebilir. Bir P2SH işlemindeki kilitleme komut dosyası, “redeem script” ile değiştirilir. Tüm komut dosyaları, Bitcoin’lerin sahibi bunları harcadığında veya Bitcoin’leri kilitleyen komut dosyası kullanıldığında herkesin görebileceği şekilde blokzincirde ortaya çıkar. Blokzincire dahil edilen komut dosyasının hashini kullanarak, herkes bu Bitcoin’leri harcamak için gereken komut dosyasının koşullarını kontrol edebilir.

P2SH adresleri, “1” ile başlayan P2PKH adreslerinin aksine “3” ile başlar. Sonuç olarak, P2SH işlemlerinin bir dezavantajı, çoklu imza kullanımı yapan adreslerin içindeki tüm olası koşulları ortaya çıkarmasıdır.

Screenshot_2.png

Kaynak: Bitcoin Rich List

Bitcoin Rich List’den alınan verilerde de görüldüğü üzere P2PKH ve P2SH adresleri kolayca ayırt edilebilir. Yukarıda “3” ile başlayan adresler, çoklu imza adresleri olarak tanımlanır. Bu adreslerin, SegWit veya Lightning Network kullanımı yaptığı düşünülebilir. “1” ile başlayan adresler ise P2PKH adresleridir ve SegWit, bu adreslerde etkin değildir.

Bu sebeple P2SH işlemleri, çoklu imza işlemleri ile P2PKH işlemleri arasındaki ayrımı mümkün kılar. Ağ katılımcıları aynı zamanda ne tür bir cüzdanın kullanıldığını da belirleyebilir. Yukarıda da bahsettiğimiz gibi Bitcoin ağının en büyük sorunlarından biri, gizlilik olarak tanımlanmaktadır.

Bitcoin işlemlerinin nasıl işlediğini anladığımıza göre, Taproot’un çalışma şekline bakabiliriz.


Taproot Nasıl Çalışır? Ne İşe Yarar?

Bitcoin protokolünde yapılacak olan güncellemeler için Bitcoin İyileştirme Önerileri (BIP), geliştiriciler tarafından ağa sunulmaktadır. BIP’ler, ağda yeni fikirlerin önerilme, bu fikirlerin tartışılma ve geliştirilme sürecini içermektedir. Bu öneriler sayesinde protokolde gerekli yükseltmeler fikir birliği yoluyla uygulanmaktadır. Taproot da bu önerilerden biridir.

Bitcoin İyileştirme Önerileri (BIP) olarak bilinen güncellemeler arasında, Schnorr İmzaları (BIP 340), Taproot (BIP 341) ve Tapscript (BIP 342) de bulunmaktadır. Yukarıda da bahsettiğimiz gibi Taproot’u ortaya atan protokol geliştiricisi Pieter Wuille, aslında bu önerileri üç kısım olarak ağa sunmuştur. Bu üç BIP, iki yıl önce SegWit’in (Harici Şahitlik) etkinleştirilmesinden bu yana ilk kez, Bitcoin'de şimdiye kadar gerçekleştirilen en büyük yükseltmeleri temsil etmektedir. Topluluğa göre bu üç öneri, Bitcoin'in işlevselliği, ölçeklenebilirliği ve gizliliği açısından önemli avantajlara sahiptir.

Schnorr İmzaları, Taproot'a önemli özellikler katmaktadır. Alman Matematikçi ve Kriptograf Claus Schnorr tarafından 1989'da geliştirilen Schhnorr İmzaları, basit ve kısa imzaları verimli bir şekilde oluşturmayı sağlamaktadır. Bitcoin işlemlerinin nasıl çalıştığına dair önceki bölümde açıkladığımız gibi, bir komut dosyası dili, kripto para harcamalarını kontrol eder ve kripto paraların sahipliğini devretmek için dijital imzaların kullanılmasını içerir. Bitcoin, Eliptik Eğri Dijital İmza Algoritması’nı (ECDSA) kullanarak bu kriptografik imzaların kontrol edilmesini sağlamaktadır. Schnorr, farklı bir şifreleme şeması kullanarak karmaşık bir Bitcoin işlemi içerisine birden çok anahtar alabilir ve tek bir benzersiz imza oluşturabilmektedir. Dolayısıyla, işleme dahil olan birden fazla taraf, tek bir Schnorr imzasında toplanabilmektedir.

Daha anlaşılır olması adına, çoklu imza (multi-signature) işlemlerinden bir örnek gösterelim. Bilindiği üzere çoklu imza, bir grup kullanıcının tek bir belgeyi imzalamasını sağlayan dijital bir imza şemasıdır. Aşağıdaki diyagramda gösterildiği gibi, yapılan bir işlem için olan girdilerinin bir parçası olarak N = 3 imza bulunmaktadır. Çoklu imza işlemleri, N sayıda olan imza sahiplerine ihtiyaç duyar ve her imzanın doğrulanması gerekmektedir. Yani normalde, çoklu imzalı bir anahtarın UTXO'sunun ScriptSig (Kilit Açma Komut Dosyası) sahipliğini kanıtlamak için N sayıda ECDSA imzası gerekmektedir. ScriptSig'in boyutu, N sayıda imzaya göre doğrusal olarak artar, bu da bu işlemlerin boyutunu ve ücretlerini artırır. Ayrıca, bir gözlemci A, B ve C kişisinin bir işlemi imzaladığını bilecek ve kullanılan çoklu imza kurulumunu da belirleyebilecektir.

2.jpg

Schnorr İmzaları ile ise, N imzaları tek bir imzada toplanır. Bu sayede, tüm N tarafları için yalnızca bir imza üretilir ve ScriptSig (Kilit açma komut dosyası), katılımcının imzalarının bir toplamını temsil eden bir imzaya sahip olur. Böylelikle, bir gözlemci artık bir işlemin imzasını bir kişiye veya birçok kişiye bağlayamaz.

1.jpg

Bununla birlikte Taproot, Merkelized Abstract Syntax Trees (MAST) adlı bir yapıyı da entegre etmektedir. MAST, ilk olarak 2016 yılında Bitcoin Core geliştiricisi Dr. Johnson Lau tarafından önerilmiştir. Yeni bir “şahit (witness)” programının kullanılmasını öneren MAST, Merkle ağacını kullanmaktadır.

Taproot, işlem koşullarını Merkle kökünün (Merkle root) arkasına gizlemek için bir MAST yapısını kullanır. MAST’in, Schnorr ile kombinasyonu sayesinde blokzincirde hiç kimse ek koşulların var olduğunu görmez. Bu sayede, P2PKH ve P2SH işlemlerinin aynı görünmesi sağlanır.

MAST ve Schnorr imzalarının entegrasyonunu daha iyi anlayabilmek için çoklu imza gerektiren Lightning Network’den bir örnek verelim. A ve B kişisinin Lightning Network kanalı açacağını ve bu kanal üzerinden Bitcoin işlemlerini gerçekleştireceğini düşünelim. Sağ tarafta görüldüğü üzere Merkle ağacının kullanımıyla A ve B kişisinin dijital imzalarının kullanıldığı komut dosyaları hashlenerek Merkle kökünde birleştiriliyor (Hash 1 & 2). Schnorr imzaları burada devreye girerek (Sol tarafta) A ve B kişisinin imzalarını tek bir imzada birleştiriyor. Sonrasında ise Schnorr ile birleştirilmiş imzalar, Merkle kök hashiyle birleştiriliyor ve bir “yeniden ayarlanmış açık anahtar (tweaked public key)” oluşturuyor. Böylelikle çoklu imza işlemleri, normal bir P2PKH işlemi gibi gözüküyor.

3.jpg


Taproot Yükseltmesinin Avantajları

  • Artırılmış Gizlilik: Çoklu imza (multi-sig) gerektiren karmaşık işlemleri zincir üzerinde P2PKH işlemlerinden ayırt edilemez hale getiren Taproot, bir işlem çıktısı için gereken koşullar hakkında zincirde ortaya çıkan bilgileri en aza indirgemeyi amaçlamaktadır.
  • Azaltılmış İşlem Ücretleri: SegWit veya Lightning Network gibi çoklu imza gerektiren karmaşık Bitcoin işlemleri yapmak için gereken işlem veri boyutları Taproot sayesinde önemli ölçüde azaltılmaktadır. Bu da daha düşük işlem maliyetlerine yol açacaktır.
  • Ölçeklenebilirlik: Taproot sayesinde tek bir imza kullanılarak karmaşık işlemler gerçekleştirilebildiği için, birleştirilmiş anahtarlar ve imzalar için kullanılan bayt sayısı, kaç imzalayanın dahil olduğuna bakılmaksızın tam olarak aynı kalmaktadır. Çoklu imzaların kullanıldığı P2SH işlemlerinde ise her bir ek açık anahtar (public key) için en az 8,5 bayt gerekmektedir.

Taproot’un çözmeyi amaçladığı sorunlara bakacak olursak, gizlilik ve ölçeklenebilirlik konusunda Bitcoin ağına önemli derecede katkı sağlayacağı anlaşılmaktadır. Bitcoin ağının en büyük iki sorununa odaklanılması ve Schnorr imzaları ile MAST gibi etkili çözümlerin entegre edilmesiyle, Taproot’un Bitcoin protokolü için en çok beklenen teknolojik güncellemelerden biri olması normaldir.

Bu yazının yazıldığı tarih itibariyle (24 Mayıs 2021) Taproot için toplam Bitcoin madencilik havuzlarının %85,75’i protokol yükseltmesi için sinyal vermektedir ve bu havuzlar arasında en büyük 10 Bitcoin (BTC) madencilik havuzundan dokuzu bulunmaktadır.

Screenshot_4.png

Kaynak: Taproot.watch