Yazar: witcher_senseAna Konu: Silent payments
GirişMerhabalar. Bu başlıkta Ruben Somsen'in ''Silent Payments'' isimli önerisini okuyacağız. Bu öneri, blokchainde iki taraf arasında yapılan ödemelerin dışarıdan bir gözlemci tarafından izlenebilirliğini daha az şeffaf/gözlenebilir hale getirmeyi amaçlamaktadır ve gizliliği artıran bir tekniktir. Önerinin temelinde ''gizli adresler'' ve ''tekrar kullanılabilir ödeme kodları'' yatmaktadır ve temelde aynı problemi daha şık bir yöntemle çözmeye çalışmaktadır.
Temel FikirKonsept temelde bu şekilde işler: A kullanıcısı bir tanımlayıcı yayınlar (bir genel anahtar-public key) ve B kullanıcısı kendi özel anahtarını-private keyini A'nın yayınlamış olduğu public key file birleştirir ve sadece A'nın harcama/ödeme yapabileceği benzersiz bir adres oluşturur. C kullanıcısı da kendi özel anahtarını A kullanıcısının adresiyle birleştirebilir ve A kullanıcısına ödeme yapabilir. Yani, A kullanıcısı hem B hem de C kullanıcısından ödeme aldığını bilecek ancak B ve C kullanıcısı birbirinden haberdar olmayacak. Bu sistem A kullanıcısının sadece tek bir genel adres kullanarak, birbirinden bağımsız / bağlantısız ödemeler almasını sağlar.
Sistem Nasıl Çalışır?Farzedelimki Bob, Ahmet'e bir silent ödeme gönderecek;
1) Ahmet standart eliptik eğri matematiğini kullanarak benzersiz bir tanımlayıcı oluşturur. (yani public key- genel anahtar)
A = a*G ile;
A - Ahmet'in genel anahtarı-public key (eliptik bir eğri üzerinde bir nokta),
a - Ahmet'in özel anahtarı- private key (gizli tutulması gereken rastgele bir sayı dizisi), ve
G - Üreteç noktası (eliptik eğri üzerinde öndecen tanımlanmış bazı noktalar).
2) Ahmet, bu tanımlayıcı A'yı herkese açık hale getirir, böylece Bob (ve Carol gibi diğer kullanıcılar) ödemelerin nereye gönderileceğini anlar.
3) Bob kendi kontrolünde olan girdilerden public key- genel anahtar içeren birini seçer;
B = b*G ile;
B - Bob'un public key- genel anahtar (eliptik eğri üzerindeki bir nokta),
b - Bob'un private key- özel anahtarı (sadece Bob'un bildiği rastgele bir sayı dizisi
G - Üreteç noktası
4) Bob, Ahmet'in genel anahtarı- public key olan
A'yı alır ve aşağıdaki formülle yeni bir genel anahtar oluşturur.
A' = hash(b*A)*G + A, ile
A' - Bob'un ödemesinin yapıldığı genel anahtar-public key
5) Bob, daha önceden oluşturulmuş bir genel anahtar olan
A' ile ilişkili bir çıktı oluşturur ve Ahmet'e ödeme yapar.
6) b*A = b*a*G = a*b*G = a*B olduğu varsayıldığında, Ahmet aynı genel anahtar-public key
A'yı kendi özel anahtarı- private key a'yı kullanarak aşağıdaki formülle yeniden oluşturabilir:
A' = (hash(a*B) + a)*G, ile
hash(a*B) + a - Ahmet'in genel anahtar-public key A'ya karşılık gelen çıktıdan para harcamasına olanak tanıyan yeni özel anahtarı- private key.
Ancak problem şu ki Ahmet, kendi ödemesini tespit edebilmek için Bob'un
B genel anahtarını-public keyini bilmek zorundadır, bu yüzden mevcut bitcoin adreslerini yeniden oluşturmak için hangi genel anahtarların-public key kendi özel anahtarı-private key
a ile birleştirilebileceğini bulmaya çalışarak sürekli olarak blok zincirini tarar.
Artıları:1) Gönderici ve alıcı arasında herhangi bir etkileşim gerektirmez. Göndericinin ödeme yapması için sadece alıcının genel anahtarından bir adres oluşturması gerekir.
2) Silent Payments, BIP47'de olduğu gibi herhangi bir "duyuru" işlemine gerek olmadan blok alanını daha verimli kullanır. Bu yüzden yapılan bir işlem bir ödemeye denktir ve bu tek seferlik bağışlar için gayet uygundur.
3) Silent transactions- sessiz işlemler, normal işlemlerden ayırt edilemez (örneğin, "Gizli adresler" durumunda olduğu gibi geçici bir genel anahtarı paylaşmak için OP_RETURN çıktıları yoktur), bu da sessiz işlemlerde kullanıcının kalabalığın içinde saklanmasının önemsiz olduğu anlamına gelir - tüm blockchain kümesi anonimdir.
4) İlk sessiz genel anahtardan oluşturulan adresler her zaman kesin/belirleyici ve benzersizdir çünkü her gönderici, alıcının sessiz genel anahtarını-public key ayarlamak için kendi şifreli anahtarlarını kullanır.
5) Silent payments, fon alıcısını kendi Bitcoin node'unu tam çalışır vaziyette tutmaya teşvik eder, bu da otomatik olarak daha fazla merkezi olmayan (decentralized) bir ağla sonuçlanır.
6) İşlemin göndericisi ve alıcısı dışında hiç kimse ödemeden, bu işlemden haberdar olmayacaktır.
7) Silent payments Bitcoin işlemlerinin ikame edilebilirliğini önemli ölçüde geliştirir.
Eksileri:1) Bu ödeme yönteminin en büyük dezavantajı görece yüksek doğrulama maliyetidir. Ödeme alan kişi, kontrolü altından olan private key- özel bir anahtarla hangi bitcoin adreslerinin harcama yapabileceğini önceden bilmediği için, her işlemin her girdisini kontrol etmeli, public key- açık anahtarları hesaplamalı ve karşılaştırmalıdır.
2) Göndericinin adresi yeniden kullanma potansiyeli. Bir göndericinin aynı public key-genel anahtarı paylaşan birden fazla girişi olduğunda, bu girişlerin her biri aynı hesaplanmış adresle sonuçlanacaktır. Adresi tekrar kullanmak olumsuz gizlilik uygulaması olarak kabul edilir ve her ne pahasına olursa olsun kaçınılmalıdır. Bu, hesaplama sürecine ek bilgiler eklenerek hafifletilebilir, ancak özellikle hafif istemciler için ek bir yük oluşturur. Alternatif olarak, bir gönderici tüm girdileri tek bir işlemde harcayabilir, ancak bu aynı zamanda ortak mülkiyeti ortaya çıkarır ve bu da gizliliğe zarar verir.
Referanslar:1]
https://gist.github.com/RubenSomsen/c43b79517e7cb701ebf77eec6dbb46b82]
https://github.com/genjix/bips/blob/master/bip-stealth.mediawiki3]
https://github.com/bitcoin/bips/blob/master/bip-0047.mediawiki4]
https://en.m.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman5]
https://bitcoinops.org/en/newsletters/2022/04/06/6]
https://bitcoinmagazine.com/technical/bitcoin-silent-payments-secret-keys7]
https://bitcoinmagazine.com/technical/improving-bitcoin-privacy-with-silent-payments8]
https://gist.github.com/w0xlt/72390ded95dd797594f80baba5d2e6ee
Bu çeviri AOBT instiyatifi ile yapılmıştır.