Zaman, Görelilik ve Bitcoin
Zaman.. Zamanı zihnimizde canlandırırken hep mutlak bir kavram olarak düşünürüz. Tamamen bağımsız ne gözlemciye ne olaylara bağlı olmayan, ölçülebilir ama algılanamaz,evrenimizden bağımsız ve evrenimiz varlığının sonuna gelse dahi akışına devam edicek dolayısıyla evrenden bağımsız değerlendirilmesi gereken, objektif ve onu tecrübe edene bağlı olmayan, Newton Zamanı da dediğimiz bir yaklaşım. Uzun yıllar da bilimde bu yaklaşım hakim oldu ve Newton fiziğinin temelini oluşturdu. Zaman ilerledikçeyse ardık bazı şeyleri açıklayamıyorduk. Bir şeyler yolunda gitmiyordu. Yapılan deneylerin sonuçları beklendiği gibi çıkmıyordu ve herkes neden yapılan ölçümlerin hatalı sonuç verdiğine odaklanmıştı. Belki de gerçekten ölçümlerimiz hatalı ve evreni asla kısıtlı teknolojimizle doğru bir şekilde algılayamayacağız ama bunlar yaşanırken bir kişi sonuçların neden yanlış ölçüldüğüne değil neden böyle çıkmış olabiliceğine kafa yoruyordu.
Albert Einstein uzaydan tamamen bağımsız ele alınan zaman yerine 4 boyutlu uzay-zamanı ortaya atarak zaman algısını tamamen farklı bir noktaya taşıdı. Einstein her şeyin göreli mantıkla ele alınması gerektiğini söylüyor ve buna zamanı da dahil ediyordu ve artık bilim dünyasının literatürüne bir kavram daha giriyordu: Göreli Zaman. Einstein’ın çalışma tarzı genelde düşünce deneyleri üzerinedir ve farklılığı konuları ele alış şeklindedir. Bilim dünyasına kattığı bu kavramların nasıl son zamanlarda fotoğrafının çekilmesiyle gündem olan karadelikler dahil bir sürü gelişmeye temel oluşturduğundan bahsedebiliriz ama burda varılan noktadan ziyade yol önemli diye düşünüyorum.
“I love to travel, but hate to arrive” Albert Einstein
Göreliliğin kapsamı elbette çok büyük ama benden Quantum ve Karadelikler konusuna girmemi bekleyen yoktur sanıyorum. Benim görelilik konusunu Einstein’dan itibaren ele almamın sebebi bunun bilgisayar bilimine has bir düşünce gerekliliğinden ziyade önünü alamayacağımız bir gerçeklik olabiliceğini göstermek. Lafı çok uzatmadan biraz daha deneysel bir zemine geçersek Einstein’ın çalışmalarından sonra hayatımıza giren bir diğer şey eşzamanlılığın göreliliği oldu.
Nedir bu eşzamanlılığın göreleliği? Einstein’ın özel görelilik teorisine göre eğer birbirinden bağımsız iki olay, ayrı iki uzayda gerçekleşiyorsa mutlak manada bu iki olay aynı anda gerçekleşti diyebilmek imkansızdır. Bu iki olayın gerçekleşme zamanı tamamen gözlemcinin referans çerçevesine bağlıdır.
Einstein’ın Treni
Yukarıda attığım link NatGeo’nun Albert Einstein’dan bahseden Genius dizisinden. Einstein’ın meşhur tren düşünce deneyini anlatıyor. Örneğin bir diğer canlandırdıkları örnek de Einstein’ın asansör deneyi.
Vakti olanın serinin tamamını izleyebileceği kaliteli bir yapım. Yazıya dahil etme sebebim sadece çekim kalitesinin çok iyi olması ve izlemesinin keyif vermesi değil tabiki. Yoldan bahsettik ve bir sistemdeki göreli yapıları anlamanın en iyi yolu düşünce deneyleridir.
Şimdi bir düşünce deneyi tasarlayalım. Sarah ve Ben ilkokula giden iki sıra arkadaşı olsun. Birbirleriyle bir iddiaya giriyorlar. Çıkış zili çaldıktan sonra evlerine doğru yarış yapacaklar. İkisi de kendi evine doğru gidecek. En hızlı evine giden yarışı kazanacak. Yarışmada kazananı nasıl belirleyebiliceklerini düşünüyorlar ve şuna karar veriyorlar: eve ulaştıkları zaman, okula götürmeleri yasak olduğu için evde bıraktıkları telefonlarını alıp birbirlerine mesaj atacaklar. Böylece ilk mesaj atan iddiayı kazanacak.
Okul bitiyor, başlıyorlar eve doğru koşturmaya. Sarah eve gelip telefonunu ele alıyor, mesaj gelmediğini görüp kazandığına seviniyor ve Ben’e mesajını atıyor. Bu sırada Ben de eve ulaşmış ve telefonuna bakıp mesaj gelmediğini görüp seviniyor ve Sarah’a mesaj atıyor. Sarah Ben’e ilk mesajı ben attım mızıkçılık yapma derken, Ben Sarah’a neden yalan söylüyorsun diye çıkışmaktadır. O gün birbirleriyle tartışıp küserler. Peki hangisi kazandı, hangisi mızıkçılık yapıyor?
Sarah kendisinin kazandığından emin olduğu için Ben’e madem sen kazandın getir telefonunu bize de görelim gerçekleri diyor. Ben de tabiki kendisinin kazandığından emin olduğu için bu teklifi kabul ediyor ve biryandan da Sarah’ın yalan söylediği açığa çıkacak olmasına rağmen neden bunu istediğini anlamaya çalışıyor. Ertesi gün Sarah’ın evine gidiyor Ben ve ikisini de şok eden bir manzarayla karşılaşıyorlar. Sarah’ın telefonuna baktıklarında ilk mesajı Sarah’ın gönderdiği görünürken Ben’in telefonunda ise ilk mesajı Ben’in attığı görünüyordu. Bu ne anlama geliyordu? Yoksa ellerindeki telefon vasıtasıyla uzay-zaman’da bir değişikliğe mi yol açmışlardı?
Eğer Steins Gate evreninde değilseniz telefonla uzay-zamanda değişiklliğe yol açmanız pek olası değil ama fikir güzel geldiyse çılgın profesör Okabe Rintaro’nun zamanda maceralarını izleyebilirsiniz. Steins Gate evreninde olmadığımıza göre Sarah ve Ben’in farklı sonuçlar görmesine sebep neydi? Tabiki de mesajların ulaşmasında geçen zaman kaybı. Kulağa basit geliyor ama bu kadar yazıyı internette mesajların iletiminin zaman aldığını söylemek için yazmadım tabiki.
Koca evrende mutlak bir zaman bulamazken internet üzerinde bir zaman göreliliği problemine rastlamak sizi şaşırtmamalı zaten. Gerçi bu problemin çerçevesi için interneti seçmek çerçeveyi daraltmak manasına geliyor. Bilgisayarlarımızın içindeki birbiriyle iletişim kuran farklı bileşenler arasında dahi bu zaman problemini çözmemiz gerekiyor. Bu problemi çözmeden ne bilgisayarlarınız çalışır ne Google’ın serverleri çalışır ne de internet çalışır. Bu yüzden de bu soruna yönelik çalışmalar internetin oluşturulmasının dahi ötesine gider.
Peki bu konuların Bitcoin ile ne ilgisi var diyebilirsiniz. Şöyle bir düşünmenizi istiyorum, Bitcoin’i oluştururken Satoshi Nakamoto’nun bu sistem bir Bizans Generalleri Problemi çözümü dediği Bizans Generalleri problemi akademik çalışmalara neden girmiştir? Bugün cryptoda sıklıkla adı geçen pBFT gibi BFT varyantlarının kökeni neden Bitcoin’den çok eskiye dayanır? Bizans Generalleri problemini, BFT kavramını, dağıtık sistemlerdeki konsensus kavramını ortaya atan Turing Ödüllü Leslie Lamport’un çalışmaları hangi temel konuya odaklanıyordu?
Dağıtık sistemler üzerine yaptığı çalışmalarla bugün kullandığımız birçok sistemin temel yapısını oluşturan Leslie Lamport’un bu sistemlerinin hayatımızı etkileyen temel noktası Sarah ve Ben’i birbirine düşüren zaman senkronizasyonu problemiydi. Bu problem bilgisayarların olduğu her yerde çözülmesi gereken bir sorundu. Aklınıza gelebilicek her yer: GPS sistemleri, anakartlar, dağıtık serverler, internetin kendisi. Zaman senkronizasyonu çözülmeden sistemlerin birbiriyle uyumlu çalışmasına imkan yok. İşin diğer bir yanı da hata toleransı tabiki. Hiçbir sistem tamamen hatasız çalışamaz, hatta bilgisayarların üzerine kurulduğu elektriksel sistemden dolayı hata yapmaları doğalarında var bile diyebiliriz. Sistemi buna uygun kurmazsanız bir voltaj dalgalanmasıyla bütün sistem yerle bir olabilir. Leslie Lamport’un yukarıdaki sözünde dediği gibi: “ Bir dağıtık sistemde varlığından haberdar dahi olmadığınız bir bilgisayardaki hata, kendi bilgisayarınızı kullanılmaz hale getirebilir.”
Hata toleransının ve konsensusun yıllardır hayatımızda olan sistemler için de olmazsa olmaz olduğunu dile getirdikten sonra gelelim kendi konumuz olan merkeziyetsiz sistemlere. Buraya kadar anlatılanlar aslında durumun özetinin özetinin özeti olsa da konuyu daha uzun anlatsak dahi gelmemiz gereken sonuç şu: bütün mesele bir zaman senkronizasonu probleminden ibaret. Neden mi? Satoshi’nin Bitcoin’de kurduğu zaman damgaları, POW ve lider seçimi olaylarının tamamı bu dağıtık sistemin asenkron olmasından kaynaklanıyor.
Bir dağıtık ödeme ağı düşünelim. Bir ödemeyi ağa yayınladığım zaman ağın bütün üyelerine bu mesaj aynı anda ulaşıyorsa ağdaki kişilerin tek yapması gereken bu ödemeyi yapmak için yeterli paramın olup olmadığını kontrol etmek. Burası gerçekten önemli. Ödemeyi yaptım, ağa yayınladım ve bitti. Başka hiçbir şeye ihtiyaç yok. 10 lira param vardı. Bu parayı Ali’ye yolladığıma dair ağa mesaj yolladım ve bitti. 10 lira Ali’ye gitti.
Konsensus sistemlerinin bu mesajın güvenliğiyle bir alakası yoktur. Mesajı djital olarak imzaladığım an geçerliliğine dair hiçbir şüpheye yer kalmıyor. Parayı Ali’ye gönderdim ve gitti, artık 0 liram var. Tekrar para harcamaya çalışsam dağıtık ağa transfer mesajını yolladığımda bakıcaklar ki yeterli bakiyem yok, transferi yok sayacaklar. Bu transferi kabul edelim mi ya diye toplanıp karar vermelerini gerektiren bir durum yok. Konsensusa ihtiyaç yok.
Peki problem nerde çıkıyor? Bahsettiğimiz gibi zaman probleminden. Ben bir transferi ağa gönderdiğimde kimine 1 saniyede ulaşıyor kimine 1 dakikada ulaşıyor kimine de 5 dakikada ulaşıyor. Hal böyle olunca Sarah ve Ben’in problemiyle tekrar karşı karşıya kalıyoruz. Nasıl Sarah ve Ben hangisinin ilk mesajı gönderdiğini bilemiyorsa bir dağıtık ağ da benim parayı ilk Ali’ye mi gönderdiğimi yoksa Veli’ye mi gönderdiğimi bilemiyor. Çünkü ağdaki aktörlerin kimilerine ilk olarak Ali’ye yaptığım transferin mesajı ulaşmışken kimine ise Veli’ye yaptığım transferin mesajı ilk olarak ulaşmış. Yani ağdaki gözlemcilerin hepsinin referans çerçevesi birbirinden farklı. Kimine Ali’nin transferi 1:02de ulaşmış Veli’nin transferi 1:08'de, kimine Ali’nin transferi 1:05'de ulaşmış Veli’nin transferi 1:03'de. Hangisi daha doğru? Hiçbirininki diğerinden daha doğru değil. Her bir bakış kendi gözlem noktasına göre doğru. Aralarında ayrım yapmamız mümkün değil.
Genel tabloya tekrar baktığımız zaman örneğin 100 kişinin bulunduğu bir ağdaysak, ağda 100 tane görüş var ve 100ü de birbirinden farklı. Peki bir görelilik problemini çözmenin en kolay yolu nedir? Bir görelilik problemi ele alalım örneğin. Göreli mantık bilim camiasında daha yer edinmemişken yüzyıllarca tartışılan bir meseleye. Güneş mi Dünya’nın etrafında dönüyor yoksa Dünya mı Güneş’in etrafında? Aslına baktığımız zaman ikisi de birbirinin etrafında dönüyor demek en kolayı. Yani merkeze Dünya’yı da alsan Güneş’i de alsan varacağın sonuçlar açısından bir farklılık oluşturmayacaktır. İlla işin derinine girmek istersek amaç ideal bir döüş yörüngesi bulmaksa aslında ikisi de aralarındaki 3. bir noktanın etrafında dönerler. Bu şekilde olaya yaklaştığımız zaman ağın farklı görüşleri de aslında gönderenin gerçekte iki transfer arasında bıraktığı zamanın etrafında bir hata payı gösteriyor. Yani mesaj ulaşmalarındaki gecikmeleri ortalamaya vurarsak gerçekteki duruma yakın bir sonuç buluruz ama bunu yapabilir miyiz sorusunun ötesinde bunu yapmak bize gerçekten bir şey kazandırır mı? Sadece bir referans noktası seçmemiz yeterli aslında. Önemli olan bir olalım birlik olalım. Ağ hangi transferi kabul edeceği konusunda bir noktada buluştuktan sonra hangisinin olacağına yönelik kavga etmeye gerek yok aynı Güneş mi merkezde Dünya mı merkezde tartışmalarında birilerini asmaya gerek olmadığı gibi.
Tekrar transferimizi yaptığımız hayali dağıtık ağa dönelim. Elimizde 100 farklı perspektiften bakan 100 farklı aktör var. Satoshi’nin bu soruna baktığı şekilden bu sefer bunun bir zaman problemi olduğunun farkında olarak bakalım. Satoshi diyor ki referans noktasının bir önemi yok ha Güneş’i merkeze almışız ha Dünya’yı önemli olan bir referans noktasında karar kılmak. Referans noktasını seçmek için bir yöntem düşünmesi gerekiyor. Bu seçim yönteminin önemli bir noktası da doğrulanabilir olması. Yani nasıl transferi yollarken dijital olarak imzaladığımızda kimsenin şüphesi olmuyorsa, seçilen referans noktasına dair de kimsede bir şüphe olmaması gerekiyor. Satoshi bu yöntemi ararken e-mail’lerde kullanılan Adam Back’ın Hashcash’ini buluyor. Diyor ki 100'ünüz de hashcash çözmeye çalışın hanginiz doğru hash’i bulursa referans noktamız o kişidir. O kişi de kendi bakış açısına göre hangi transferlerin ilk ulaştığını ağa yayınlasın. Burda temel noktalardan biri şu, referans noktasına transferlerin geçerli olup olmadığına dair bir söz hakkı verilmiyor; bu cryptografik olarak belli zaten, referans noktasının tek görevi zaman senkronizasyonunu sağlamak.
Peki hashcash ile referans noktası seçmek problemi çözdü mü? Hayır. Sarah ve Ben’in zaman problemi bu sefer de hashcash’i çözenler arasında çıkacaktır. Hashcash’i çözebilmek tamamen şansa dayalı bir olay, birbirine yakın zamanlarda iki kişi bu hashcashi çözebilir. Ağ, zamansal olarak senkron olmadığı için de yine aynı şekilde ağın bir kısmına hashcash’i çözenlerin ilki daha önce ulaşırken diğerine hashcashi çözen diğer kişinin mesajı ulaşıyor. Ağın bir kısmında bir referans noktası kabul görmüşken diğer kısmında diğer referans noktası kabul ediliyor. Yani zaman senkronizasyonunu çözmeye çalışırken bir başka zaman senkronizasyonu problemi oluşturduk. Bir paradox’un içine düştük.
Peki bu paradox’u nasıl çözebiliriz? Satoshi pes etmiyor ve diyor ki ağın hangi referansın geçerli olduğuna dair görüş ayrılılığını da tekrar bir referans noktası seçerek çözelim. Yani bir sonraki seçilen referans noktası sadece hangi transferlerin seçileceğine dair bir zamansal referans belirtmiyor aynı zamanda bir önceki referans noktasının kim olduğuna dair de görüş bildiriyor. Her yeni referans noktası bir önceki referans noktasının bilgisini de ulaştırıyor. Bir referans zinciri oluşturuyorlar. Her bir referans kendisinden bir önceki referansa bağlı. Peki bu referans zinciri sorunu çözdü mü? Hala hayır. Çünkü bu sefer de referans’ın referansının kim olduğuna yönelik ağda bir görüş ayrılığı olacaktır. Dediğim gibi bir paradox söz konusu.
Satoshi bu noktadan sonra paradox’u çözebilmeyi başarabilmiş midir? Satoshi bu paradox’u çözememiştir. Oluşturduğu sistemde, gelen referans noktalarına karşı ağda herzaman farklı bir referans noktasını kabul edenlerin olma ihtimali vardır. O yüzden hiçbir zaman bir transferin kesin olarak ağ tarafından kabul edilip edilmediği bilinemez. Bu sıkıntıya rağmen ağın bunca senedir çalışmasındaki sır ise sorunun hiçbirzaman tamamen çözülememesine rağmen her bir referans seçimi sorunun çözümüne giden yolda bir katkı sağlar. Nasıl mı? Her referans noktası seçimi yapıldığında rekabet eden referans noktalarından bir tanesi ağda daha fazla kabul görecektir. Ağda daha fazla kabul gördüğü için de birsonraki hashcashi çözen referans noktasının bir önceki referans noktası olarak onu gösterme ihtimali daha fazlalaşacaktır. Böylece ikinci nesil referans noktaları ağa yayıldığında örneğin ilk dalgada %60a %40 bir dağılım varsa ikinci dalgada %80e %20 üçüncü dalgada %95e %5 şeklinde bir dağılım görülecektir. Çünkü ilk yayılan referans noktasında diğer görüşü kabul etmiş olsa dahi bir aktör, bir süre sonra 2. ve 3. nesil referansların diğer referans noktasını işaret ettiğini görünce ağın diğer referansı ağırlıklı olarak kabul ettiğini anlayıp o da diğer referans noktasını kabul edecektir.
Kısaca en uzun zincir kuralı sürekli referans noktası seçimi yoluyla ağın yaygın görüş noktasına doğru eğilmesini sağlayan bir mekanızmadır. Asla kesin bir sonuca ulaşmaz. Seçilen madenciler birer referans noktasıdır sadece zaman senkronizasyonunda kullanılırlar. Bir transferin 6 block geçtikten sonra kabul edilmesi söylemindeki 6 block ağın yüzdesel olarak yeterince bir noktaya doğru eğildiği kabul edildiği için söylenen keyfi bir rakamdır. %99.9 ihtimalle doğru olsa da ağ senkron olmadığı için %0.1 ihtimalle de olsa daha uzun bir zincirin ağda varolup henüz sana ulaşmamış olma ihtimali vardır.
Sonuç olarak consensus sistemlerinin aslında neden birer zaman senkronizasyonu yapıları olduğunu ve Bitcoin’e neden saat yakıştırması yapıldığını anlatmaya çalıştım. Consensus yapılarının görevinin bu noktaya indirgenebilmesini de fotoğraftaki Turing ödüllü iki adam Whitfield Diffie ve Martin Hellman’a borçluyuz demek isterdim ama aslında bu eşsiz public-key cryptography’sini istihbarat teşkilatları daha önce bulmuştu ama tabiki de böyle önemli bir cryptographic buluşu bilim camiasına açmaktansa gizli tutup kendi mesajlaşma sistemlerinde kullandılar. Whitfield Diffie ve Martin Hellman’a da bu buluşu bilim camiasına bir sır olmaktan çıkardıkları için teşekkür edelim. Yazıyı bitirirken çok tartışılan POW’un Bitcoin’de nasıl bir doğrulanabilir referans seçim mekanızması olarak kullanıldığına tekrar dikkat çekmek istiyorum.
Sizce POW yerine kullanılabilicek alternatif doğrulanabilir bir referans seçim mekanızması var mıdır? POW’u alternatif bir referans seçim mekanızması bulmadan kaldırırsak ağdaki aktörlere teker teker referans noktalarını sorduğumuz bir sistem daha mı hızlı çalışır yoksa daha mı yavaş? Satoshi’nin oluşturduğu sistem referans noktası seçiminde yapılabilicek en güvenli olmasa da hız konusunda en efektif yaklaşım olmasına rağmen diğer sistemlerin hız olarak neden gerisinde kalıyor olabilir? Bu soruların cevapları ve daha fazlası için takipte kalın beraber sorgulayalım.