Bitcoin Hangi Problemi Nasıl Çözüyor? Bölüm 1
# Bitcoin Hangi Problemi Nasıl Çözüyor? Bölüm 1 İktisat · Bitcoin Hangi Problemi Nasıl Çözüyor?, 1. bölüm · 14 Ağu 2026 · 32:52 Bağlantı: https://kokfinans.org/video/bitcoin-hangi-problemi-nasil-cozuyor-bolum-1 YouTube: https://www.youtube.com/watch?v=d7CtCJJVrx0 Bitcoin'in arkasındaki teknoloji şu problemi çözer: merkezi bir otorite olmadan, birbirine güvenmeyen katılımcılar aynı defter üzerinde nasıl uzlaşabilir? İki General ve Bizans Generalleri problemleri, FLP imkânsızlığı ve Sybil saldırısı, dağıtık sistemlerde kesinliğin değil ancak yüksek olasılığın mümkün olduğunu gösterir. Bitcoin bu saldırıya proof of work ile direnir. ### Problemin tanımı: merkezsiz bir defter Bitcoin genellikle parasal niteliği ve borsadaki fiyat hareketleri üzerinden tartışılır; oysa asıl devrim teknik tarafta yatar. Amacımız, blockchain'in hangi sorunu nasıl çözdüğünü aşırı teknik ayrıntıya girmeden, herkesin anlayabileceği bir dille ortaya koymak. Temel soru şu: Ortada hiçbir merkezi yapı yokken milyonlarca insan birbirine para gönderecek, birbirinin defterini tutacak; bu güvenilirlik nasıl sağlanacak? Bu soru iktisadi görünse de aslında bilgisayar bilimleri ve matematiğin konusudur ve çözümler de oradan çıkmıştır. Bir köy bakkalını düşünelim. Köydeki herkes borç-alacak kayıtlarını bakkalın defterinde tutar; tıpkı bir ülkede Merkez Bankası'nın ya da bankaların, maaş ve para transferlerimizin kaydını kendi merkezlerindeki defterde tutması gibi. Bu merkezi yapı güveni genel olarak sağlar ama **tek bir merkeze bağlı olduğu için hataya açıktır**: merkezdeki bir hata bütün kayıtların yanlış olmasına, silinmesine ya da yok olmasına yol açabilir. ### Dağıtık sistem ve konsensüsün şartları Merkezi kaldırmak istersek herkesin kendi defterini tutması gerekir; dağıtık sistem budur. Fakat bu kez yeni sorular doğar: Herkesin defteri nasıl senkron kalacak? Biri defterine sahte kayıtlar yazarsa bunu kim doğrulayacak? Karışıklık kötü niyetten de, basit bir hatadan da kaynaklanabilir. Bu sorunu çözmek için **konsensüs (mutabakat) algoritmaları** geliştirilir. Bir konsensüs mekanizmasının üç şartı vardır: 1. **Uzlaşma:** Herkesin defterinde aynı kayıtların bulunması için ortak bir fikir birliğine varılmalı. 2. **Geçerlilik:** Deftere yalnızca belirli formatta (alıcı, gönderen, miktar, tarih, açıklama) geçerli ticari kayıtlar yazılabilmeli. 3. **Sonluluk:** Bir noktada "defterin son hali budur" denebilmeli; karar yıllarca askıda kalmamalı. Bu şartları bir WhatsApp analojisiyle somutlaştıralım. On kişilik bir arkadaş grubu akşam hangi restorana gideceğine karar verecekse ortak bir grup merkezi bir yer işlevi görür; herkes birbirinin oyunu görür. Grup yoksa ve herkes birbiriyle ayrı ayrı, farklı zamanlarda yazışıyorsa sistem dağıtık hale gelir. Kararın akşam altıya kadar verilmesi gerekir (sonluluk), konuşmaların restoran seçimiyle ilgili olması gerekir (geçerlilik) ve sonunda çoğunluğa göre uzlaşılmalıdır. Bir de interneti yavaş, bodrum katında çalışan, mesajları geç giden arkadaşlar eklendiğinde durum tamamen kaotikleşir. Blockchain'in ve Bitcoin'in çözdüğü problem tam olarak budur. ### İki General Problemi İlk adım İki General Problemi. Birbirini göremeyen ve yalnızca ulak aracılığıyla haberleşebilen iki general, şehre aynı anda saldırmak zorundadır. Biri "şafakta saldıralım" mesajı gönderse de ulağın yolda öldürülüp öldürülmediğinden ya da mesajın değiştirilip değiştirilmediğinden emin olamaz. Karşı taraf "mesajını aldım" diye onay gönderse bu kez o onayın ulaşıp ulaşmadığı belirsizdir; onayın onayı da aynı sorunu doğurur ve bu zincir sonsuza kadar uzar. Mesaj sayısı arttıkça güven artar; örneğin tek mesajda yüzde 50 olan olasılık bir onayla yüzde 70'e, birkaç turdan sonra yüzde 98'e çıkabilir. Ama yüzde 98 hiçbir zaman yüzde 100 değildir. SMS ile "akşam altıda buluşuyoruz" yazıp cevap alamamak da aynı mantığı taşır. Sonuç: Doğrudan iletişimi olmayan, bir mesaj kanalına bağımlı iki taraf hiçbir zaman yüzde yüz kesinlikle bilgi gönderemez; **her zaman bir olasılığa razı olmak zorundayız.** ### Bizans Generalleri Problemi ve 1/3 kuralı İkinci problem, bir şehri kuşatmış beş Bizans generalinin saldırma ya da geri çekilme kararını birlikte vermesi gerektiği senaryodur. Bir kısmı saldırıp bir kısmı çekilirse ordu bertaraf olur; bu, verilebilecek en kötü karardır. Herkes diğer dört generalden gelen mesajları kendi kararıyla birleştirip oy çokluğuna göre hareket ettiğinde sorun çıkmaz. Ancak aralarına hainler girerse durum değişir: Hain, grubun bir kısmına "saldır", bir kısmına "geri çekil" diyerek kuvveti böler. İki hainli bir örnekte bazı generaller saldırır, bazıları çekilir ve ordu dağılır. Komutan ve teğmenler analojisinde de aynı belirsizlik ortaya çıkar: Komutandan "saldır" emri alan bir teğmen, diğer teğmenden "komutan bana geri çekil dedi" haberini alınca ulağın mı hata yaptığını yoksa bir hain mi olduğunu bilemez. Bir hain varken çoğunluğa güvenerek karar verilebilir; hain sayısı arttığında tereddüt aşılamaz hale gelir. Problem şu formülle ifade edilir: **n ≥ 3h + 1** (h hain sayısı). Örneğin bir hain için 3×1+1 = 4 sonucuna ulaşılır. Kısacası hainler sistemin üçte birinden fazlaysa güven tesis edilemez. Blockchain dokümanlarındaki "1/3" ibaresi buradan gelir. ### FLP imkânsızlığı: kesinlik değil olasılık 1985'te ortaya konan FLP imkânsızlığı, asenkron bir ağda tek bir düğümün bile çökmesinin deterministik karar almayı imkânsız kıldığını matematiksel olarak ispatlar. Asenkron ağ, katılımcıların farklı uzaklıklarda olduğu, mesajların farklı zamanlarda gönderilip ulaştığı ağdır; düğüm ise bir general, bir kişi ya da dağıtık mimarideki bir sunucudur. Deterministik karar "evet ya da hayır", kesin ve bir takvime bağlı karar demektir. Bir telefon görüşmesinde karşı taraftan ses gelmediğinde hattın mı koptuğunu, mikrofonun mu bozulduğunu bilemeyiz; ne kadar beklesek cevap geleceğini de hiçbir zaman kesin olarak bilemeyiz. Mesaj bir saniyede de, bir günde de ulaşabilir. Dünyanın farklı yerlerinde, farklı internet hızlarıyla çalışan bir dağıtık sistemde bir düğümün elektriği gitse ya da çevrim dışı olsa bile sistem deterministik olamaz: > Her şey olasılık hesabına döner. ### Açık internet ve Sybil saldırısı 1999'da geliştirilen PBFT (Practical Byzantine Fault Tolerance) algoritması, hainler üçte bir veya daha azken üç turlu bir oylamayla yüksek olasılıkla mutabakat sağlanabileceğini gösterdi. Ancak buraya kadarki bütün problemler **kapalı devre** sistemlerdir; katılımcı sayısı bellidir. Açık internette ise her an yeni bir cüzdan açılabilir, yeni bir düğüm girip çıkabilir; beş kişi yerine beş yüz bin kişi, bir milyon madenci olabilir. Bu dinamizm içinde 1/3 sınırını hesaba katmak mümkün değildir. Burada **Sybil saldırısı** devreye giriyor. Adını, çoklu kişilik bozukluğu yaşayan Sybil adlı bir hastadan alır; Glass filmi ve 46 Yok Olan dizisi de benzer temaları işler. Sisteme giriş maliyeti düşük olduğunda bir saldırgan çok sayıda sahte düğümle girip hain oranını üçte birin üzerine çıkarabilir ve mutabakatı engelleyebilir. "Yılın en iyi öğretmeni" gibi açık çevrimiçi anketler ve Tesla'nın Supercharger istasyonu için düzenlediği anket buna iyi bir örnektir: Geçici e-posta adresleriyle bir kişi yüzlerce, binlerce oy kullanabilir. ### Proof of work'e giriş ve sonraki bölüm Ön bilgi olarak: Bitcoin bu saldırıyı **proof of work** ile çözer. Madenciliğin çok enerji tüketmesinin nedeni, sisteme giriş maliyetini yükseltmektir: Üçte bir hain oranına ulaşmak için pahalı madencilik makineleri almak ve tüm sistemin harcadığı elektriğin üçte birinden fazlasını harcamak gerekir. Bu milyarlarca dolar tuttuğu ve karşılığında elde edilecek şey bununla orantılı olmadığı için saldırı uygulanabilir olmaktan çıkar. Serinin sonraki bölümlerinde hash algoritmalarını, kriptografiyi ve proof of work'ün ayrıntılarını; blockchain'in Sybil saldırısını nasıl engellediğini ve hızlı, güvenilir bir mutabakata nasıl ulaştığını ele alacağız. ## Bölümler - 00:00 — Giriş - 02:13 — Merkezi defter: bakkal örneği - 04:01 — Dağıtık sistem ve güven sorunu - 05:10 — Konsensüsün şartları - 08:51 — İki General Problemi - 13:20 — Bizans Generalleri Problemi - 20:08 — n ≥ 3h + 1 ve 1/3 kuralı - 21:38 — FLP imkânsızlığı - 26:04 — PBFT ve açık internet - 28:13 — Sybil saldırısı - 31:14 — Proof of work'e giriş Etiketler: bitcoin, blockchain, dağıtık sistemler, konsensüs, bizans generalleri problemi, sybil saldırısı [00:00] Selamünaleyküm. Rabbi yessir ve la tuassir. Rabbi tenvin bilhar. Allah'ım zorlaştırma, kolaylaştır, işlerimi hayırla sonuçlandır. [00:10] Bugünkü videoda blockchain ve Bitcoin üzerine bazı konuşmalar yapacağım. Çünkü Bitcoin genel olarak parasal niteliği bakımından, borsadaki fiyat hareketliliği bakımından vesaire bu tarz [00:23] yönlerinden, iktisadi yönlerinden çokça tartışılıyor, konuşuluyor, biliniyor. [00:29] Fakat işin teknik kısmından veya normal paraya göre Bitcoin aslında nasıl bir devrim yarattı? İçerisinde nasıl bir teknoloji var? Ve bu teknoloji neden daha önce yoktu? Tam olarak neyi [00:42] çözüyor? Nasıl çözüyor? Buna dair açıklayıcı ama herkesin de anlayabileceği bir video yapma kararı aldım. Bu videoda aslında Bitcoin'in çalışma mantığını arkasındaki esas teknoloji olan blockchain'in nasıl [00:56] çalıştığını, hangi sorunları çözdüğünü, nasıl bir mekanizmaya sahip olduğunu [homurdanır] herkesin anlayabileceği bir dilde aşırı teknik detaya kaçmadan sayısalcı birisinin rahatlıkla aa demek [01:09] ki problem buymuş, bunu çözüyormuş, faydası buymuş. Olay da demek ki bu şekildeymiş diye tüm kavramları anlayabileceği tarihi bir şekilde anlatacağım bir video olacak. Aslında burada eee bilgisayar bilimleri denilen [01:23] işte computer science diye de geçen bilim dalının yani bilgisayardaki bu algoritmalar, yazılımlar eee bunun üzerine t önceden beri makaleleri var, çalışmaları var. Matematikle de iç içe geçen bir konu bu. Çünkü burada aslında [01:38] problem şu. Ortada hiçbir merkezi yapı olmadan milyonlarca insan birbirine para gönderecekler. Birbirlerinin defterlerini tutacaklar. Ekonomik hareketlilik yapacaklar ama merkezi bir [01:51] yer bunu kaydetmeyecek. Bu güvenilirlik nasıl sağlanır? Bu aslında iktisadi bir soru gibi gözükse de bilgisayar bilimlileri ve matematiğin konu alanına giriyor ve buralardan zaten çözümler [02:04] çıkmış durumda. İmkansız gibi görünen bu problemi blockchain ve Bitcoin birleşerek çözdüler. Biz de burada aslında önce problemi tanımlayacağız. [02:13] Daha sonra da nasıl çözüldüğünü aşama anlatacağız. Şimdi öncelikle mesela bir köy düşünelim. [02:21] Burada bir bakkal olsun değil mi? Bakkal nesi vardır? Şu da defteri olsun. [02:28] Şimdi bakkalın bir defteri vardır. D olsun ismi. Köyde bir sürü eee insanlar var. Köyde bir sürü kişi var. Böyle insanlar var. [02:42] Şimdi normalde ne oluyor? Bu insanlar tüm defterlerini, tüm kayıtlarını merkezi bir yer olan bakkalda tutuyorlar. Yani bakkal aslında kimin bana ne kadar borcu var, benim kime ne [02:55] kadar borcum var? Merkezi bir yerde bunu tutabiliyor. Bunu farklı örneklerle de anlatabiliriz. Devletler içer içinde mesela Merkez Bankası bu kayıtları tutuyor veya bankalar içinde biz tüm [03:08] para transferlerimizi bankalar üzerinden yapıyoruz. Birilerine parayı bankadan gönderiyoruz. Maaşımızı oradan alıyoruz vesaire. Tüm bu kayıtlar nerede tutuluyor? Bankanın merkezindeki defterde tutuluyor. Aslında böyle bir [03:21] analoji yapabiliriz. Dolayısıyla merkezi bir yerden bir defter tutma durumu var ve bu güveni genel olarak sağlıyor. Ama hataya açık bir sistem. Neden? Tek bir merkeze bağlıyız. Merkezdeki herhangi [03:34] bir hata tüm bu işlemlerin yanlış olmasına veya yok olmasına, silinmesine çeşitli problemlere sebep olabilir. [03:44] Çünkü tek bir merkezde olduğu için. Peki biz bu merkezi dağıtmak istersek nasıl olacak? Yani ben merkezin bu hata yapma olasılığına karşı merkezi kaldırmak [03:59] istiyorum. O zaman ne yapabilirim? [04:01] Merkezi kaldıracağım. Merkez olmasın. O zaman bu defterlerin birilerinde durması lazım. O zaman dedik ki herkes kendi defterine sahip olsun. Herkes kendi defterini kendisi tutsun. Dağıtık sistem bu demek. Yani herhangi bir merkezi [04:14] olmayacak. Herkes kendi defterini kendisi tutacak. Ben Ahmet'ten Ali'ye işte para gönderdim. Defterlerini herkes işleyecek. Tamam da herkesin defteri nasıl aynı senkronlukta olacak? Veya ben defterime herkes bana işte Ahmet bana [04:28] 100 lira verdi, Veli bana 100 lira verdi, Ayşe bana 100 lira verdi diye sahte kayıtlar da yazabilirim. Daha sonra bunu kim doğrulayacak? Ayşe geldiğinde aa benim defterimde bu yazmıyor. Sen senin defterinde benim sana borcum yazıyor ama bende yazmıyor [04:43] deyip nasıl anlaşacaklar? Herkes kendi dfterini tutsun. dağıtık olsun, merkezde olmasın. Tamam ama burada bir güvenilirlik sorunu var ve karışıklık çıkma ihtimali var. Bu karışıklık kötü niyetten de kaynaklanıyor olabilir. E [04:56] herhangi birisinin yaptığı hatadan kaynaklanıyor da olabilir. Bu problem nasıl çözülecek? Aslında temelde problemin tanımı bu. Dağıtık sistemlerdeki bilgi güvenliği, herkesin eşit bilgiye sahip olması, herkesin [05:10] senkron bilgiye sahip olması nasıl çözülebilir? Bunun için konsensus algoritmaları geliştiriliyor. Konsensüs dediğimiz şey nedir? Mutabakattır aslında. [05:24] Konsensus yani mutabakat. Bunun için ne gerekiyor? Bir kere uzlaşma gerekiyor. [05:38] Yani herkes diyecek ki, eee, bu kayıt defterlerimize olduğu konusunda uzlaşıyoruz. Yani bir ortak fikir birliğine varmaları lazım ki herkesin defterinde aynı kayıtlar olabilsin. [05:50] Geçerlilik yani defterde saçma sapan şeyler, kimisi işte resim çizer, kimisi şarkı sözü yazar, öyle şeyler değil kardeşim. Bu defter sadece ticari kayıtlar için kullanılacak. Geçerli bir kayıt ve bu kayıt formatı şu şekilde olacak. alıcı, [06:04] satıcı, miktar, tarih ve e gönderim açıklaması gibi bir format. Sadece bu formatta yazılır. Dolayısıyla geçerli olup olmadığı eee sadece geçerli şeyler, kayıtlar bu defterlerde yer alabilmeli [06:17] ve sonlu olması yani bitebilmesi gerekiyor. Bu da şu demek. Hepimiz şimdi aynı kayıtlar üzerinde uzlaşmamız gerekiyor. Ya uzlaşmak için konuşmamız gerekiyor. Eee birbirlerin birbirimizde sende bu var mı, bende bu var mı dememiz [06:31] gerekiyor. Ama bir noktada da karar vermemiz lazım. Yani defterin final halini tamam burada anlaştık artık dememiz lazım. Yıllarca, yüzyıllarca bu karar vermeden devam etmemeli bir noktada. Tamam defterin son hali budur, [06:41] kayıtlar budur, karar verdik şeklinde. [06:44] Eee sonunu bitebilmesi lazım bu kararların. Değilse hep askıda kalır, hep havada kalır. Defter hiçbir zaman stabil duruma geçemez. Şey gibi düşünebiliriz. Bir analiz yapacak olursak mesela bir WhatsApp'tan arkadaşlarla biz 10 kişilik bir grubuz. [06:56] Bir eee yemeğe gideceğiz. Normalde bir grubumuz olsaydı merkezi bir yer oluyor değil mi? grup WhatsApp grubunda merkezi bir yer oluyor. Eee gruptan yazıyoruz arkadaşlar yemeğe hangi restorana gidelim? Balık restoranına mı gidelim? [07:09] Et restoranına mı gidelim diye soruyoruz. Mesela merkezden grupta herkes birbirinin yazdığını gördüğü için tıpkı bakkal örneğindeki gibi, tıpkı banka örneğindeki gibi güvenilirlik %100 sağlanabiliyor. Herkes oyunu veriyor. [07:20] Herkes ortak gruptan görüyor. İşte et restoranına gidiyoruz. Peki grubumuz yoksa ama 10 tane de arkadaşsak yani herkes birbiriyle özel olarak mesajlaşacak. Böyle bir durumda yani dağıtık sistem olmuş oluyor. Merkezde bir grubumuz yok. Herkes birbiriyle [07:34] bağımsız mesajlaşabilir ve farklı zamanlarda ve istediği zamanlarda mesajlaşabilir. E bu durumda biz hangi restorana gideceğimize nasıl karar vereceğiz? Buradaki sonlu bitebilmesi demek yani bizim bu akşam bu restorana gitmemiz lazım. Böyle yani bu [07:49] karar verme aşaması günlerce, haftalarca hatta yıllarca sürmemesi lazım. Bu akşama kadar en geç saat 6'ya kadar akşam bu kararın verilmesi gerekiyor. [07:58] Sonluğu demek o demek. geçerlilik demek. [08:00] Yani bu konu üzerinde fikir beyan edilmesi lazım. Gidip arkadaşlar konsere ha nereye gidiyoruz değil yani şu an biz bu akşama kadar bir an önce hangi restoranda yemek yiyeceğimize karar vermemiz lazım. O yüzden geçerli mesajlaşmalar yapmamız gerekiyor. [08:12] Uzlaşmada en son bir noktada da çoğunluğun kararına göre de bir uzlaşma yaşamamız gerekiyor. İşte böyle bir analoji ile durumu anlayabiliriz. Bu arkadaş grubu mesajlaşarak nasıl doğru sonuca güvenilir bir şekilde ulaşabilir? [08:26] Problem bu aslında. Bu arkadaş grubunda bir de şey düşünün. İşte interneti yavaş olan, e işte dağlık bir bölgede şu an olan veya işte internetin çekmediği bir bodrum katında olan, orada çalışan bir arkadaş düşünün. İş yerine internetin e [08:39] zar zor çektiği, onun mesajı geç gidiyor, geç geliyor. Bu tarz problemleri de hesaba kattığımızda tam bir kaotik durum söz konusu. Bu arkadaşların bir şekilde güvenilir bir şekilde uzlaşmasını sağlamamız lazım. [08:49] Çözmemiz gereken problem bu. [08:51] Blockchain'in Bitcoin'in de çözdüğü problem bu aslında. Şimdi bu problemi parçalara bölelim. Yavaş yavaş ilerlemeye çalışalım. İki general problemi denilen bir problem var. [09:04] Şimdi bu iki general probleminde olay şu. [09:10] İki tane generalimiz var. [09:14] Birbirlerini görmüyorlar. Sadece eee ulakla birbirlerine mesaj gönderebiliyorlar. Şimdi böyle bir durumda bir karar almaları gerekiyor. [09:24] İkisi de şehre aynı anda saldırmaları gerekiyor. Bunun için de ortak hareket etmeleri gerekiyor. İşte şafakta mı saldıracağız, akşam mı saldıracağız, öğlen mi saldıracağız? Yani bunun bir kararının verilmesi gerekiyor. Bu iki [09:37] general acaba güvenilir bir şekilde nasıl mesajlaşabilirler? [09:42] E problemin tanımı bu. Şimdi mesela bu generalimiz mesaj gönderir. Örneğin Şafak'ta saldıralım. [09:52] Tamam. Eee mesajı gönderdi ama mesajın gidip gitmediğinden hiçbir zaman emin olamaz. Değil mi? Acaba yolda başına bir şey mi geldi? Ulan eee mesaj doğru gitti mi? Ya da yolda belki düşmanlar tarafından adamım öldürüldü veya mesajı [10:06] değiştirildi. Farklı bir mesaja çevrildi. Bundan bundan hep şüphe duyacak. Hiçbir zaman kesin emin olamayacak mesajın ulaşıp ulaşmadığına. [10:13] Peki tamam. O zaman mesajın oluşup oluşmadığından emin olması için buradaki arkadaş buna bir mesaj daha yollasın. [10:20] Mesajını aldım. [10:23] Okey desin mesela. Yani şafakta saldıracağının mesajını aldım. Okey desin. Bu sefer de bu arkadaş acaba benim eee bu okeyleme mesajımı diğer general aldı mı? Yolda ulağın başına bir şey geldi mi? İşte yolda şey kesildi mi? [10:37] Yani çünkü okeyi almadıysa bu sefer bu arkadaş tam emin olamayacağı için yine saldırmayabilir. Çünkü bu arkadaşın saldırması için karşıdan okey mesajının gelmesini beklediğini biliyor ya değil mi? O zaman mesela bu arkadaş okeyini [10:51] aldım sorun yok atsın. Okeyini aldım. [10:56] Okey. [10:58] Bu sefer yine bu mesajın tam olarak gidip gitmediğinden emin olamayacak. Bu da okeyini aldım. Okeyi aldıktan sonra saldırırım ben. Sorun yok diye düşündü. [11:05] düşünüyorsa mesela aralarında böyle anlaştılarsa gitmeden önce bu sefer bu mesaj kesin geldi mi gitti mi o belli değil. Bu sefer onu tekrar okeyini aldım. Okeyini aldım. [11:19] Okey. Ya bu sonsuza kadar bu şekilde gidebilir ve hiçbir zaman iki generalde tam olarak %100 bir şekilde karşının mesajı alıp almadığına emin olamıyor. [11:29] Yani buradaki problemin tanımı şu. %100 bir şekilde kesin eminim karşısı mesajı aldı. Şafak'ta %100 saldırıyoruz. [11:36] Buradaki kesinliğin %100 olması yani eee ikinciden sonra 3üncü 5 6 7 mesaj 8 mesajdan sonra artık bir sürü mesajlar gidip gelmiş. Ya dersin ki demek ki ha mesaj gidip gelmesinde çok problem [11:50] olmuyor. Çünkü 3 4 5 defa bayağı mesaj yolladık birbirimize. Demek ki iletişimde problem yok. %98 eee biz birbirimizin mesajını alabiliyoruz ve sorun yok deyip saldırabilirler. Bakın ama %98 hiçbir zaman %100 değildir. Her zaman [12:03] ihtimaldir. Bu problemin tanımı şudur. [12:05] Doğrudan birbiriyle iletişimi olmayan bir mesaj kanalı vasıtasıyla iletişimi olan iki kişi hiçbir zaman %100 kesinlikte bilgi gönderemezler. Mesaj sayısı arttıkça olasılığı artar. Mesela bir mesajda sadece şu mesajda mesela [12:19] olasılık %50 iken bir okey mesajı geldiğinde %70'e çıkarır. Birkaç defa daha yaptıklarında %98'lere doğru olasılık çıkar ama hiçbir zaman %100 olmaz. E problemin tanımı bu. Yani yine WhatsApp üzerinden gidecek olursak [12:32] arkadaşınıza mesela yazıyorsunuz. [12:35] WhatsApp yokken eskiden SMS'lerle yazılıyordu. Mesela yazıyorsun akşam 6'da buluşuyoruz planladığımız gibi. [12:42] Sorun yok. Eee değil mi yazıyorsun karşıdaki cevap vermiyor. Şimdi burada ne düşünebilirsin? Ya yoğun olduğu için cevap vermemiş olabilir. Mesaj gitmemiş olabilir. Görmüş ama eee okeylememe ihtiyacı hissetmemiş olabilir. Emin [12:54] olamıyorsun değil mi? Bu sefer evet yazıyor mesela ama senin onu görüp görmediğinden yine emin olamaz. [13:00] Muhtemelen gördüğünü düşünüyordur. SMS'e güvendiği için öyle düşünüyordur ama sen hala onu görmemiş olabilirsin. Yani e mantık aynı. Hiçbir zaman %100 bir eminlikte olamayız. Her zaman bir olasılığa razı olmak zorundayız. Yüksek [13:14] bir olasılık olabilir bu ama günün sonunda bu bir olasılıktır. Şimdi bir problem daha var. [13:20] O da Bizans generalleri problemi denilen bir problemimiz daha var. Şimdi buradaki problem şu. Bir sürü Bizans generali olduğunu 5 tane mesela general [13:35] var diye düşünelim. Ortada da bir şehir var. [13:39] Bu Bizans generalleri bu şehri kuşatmışlar. Şehrin surları var vesaire. [13:47] Şimdi bunların eee bir karar vermesi gerekiyor. Şehre saldıralım mı yoksa geri mi çekilelim? Yani uzlaşarak bir karar vermeleri gerekiyor. Aynı kararı da uygulamaları gerekiyor. Eğer bir kısmı saldırırsa, bir kısmı geri [14:00] çekilirse ordu bertaraf olur. [14:02] Verebilecek en kötü karar budur. En yanlış karar da budur. Dolayısıyla herkes uzlaşıyla ya saldıracaklar ya geri çekilecekler. Toplu şekilde bunu nasıl yapabilirler? Yine birleriyle sadece e ulaklar vasıtasıyla eee haberleşme yapabiliyorlar. Aynı mantık [14:17] buralarda da devam ediyor. [14:22] Acaba bu konsensusa nasıl varabilirler ve aralarında hainler varsa acaba ne olur? Kaç tane haine bu sistem direnebilir? Bu problemin çözmeye çalıştığı şey bu. Şimdi düşünelim. [14:37] Mesela herkesin bir kendi kararı var değil mi burada? Eee, öncelikle onları yazalım. Mesela bu saldır diyor. Örneğin kendi kararı bu. Yani bunun saldır desin, bu, saldır desin. [14:50] Bu da saldır desin. Bu geri çekil desin mesela. [14:54] Değil mi? Normalde yani herkese diğer dört generalden mesaj gelecek. Herkesin elinde diğer dört generalden gelen mesaj olacak. Değil mi? Buna gelen mesajlar ne olacak? Saldır. Saldır. Bakın buradan saldır geldi. Buradan saldır geldi. Bir [15:09] saldırı daha geldi. Öbüründen de geri çekil mesajı geldi. Bunun elindeki mesajlar böyle. Hepsinin elindeki mesajları yazalım. Bu saldır geldi. [15:17] Saldır saldır geri çekil geldi. Aynı mesajlar. Bu saldır saldır saldır geri çekil. Bu saldır saldır saldır geri çekil. Bu saldır saldır saldır saldır. [15:28] Diğerlerinden saldır geldi. Kendi kararı da geri çekildi. Şimdi hepsi oy çopuna göre kararını verecek. Bakıyor. O saldırmamız gerekiyor. Oy çotuna göre bakıyor. Kendi kararına dahil ediyor. [15:37] Beş tane oy var. Saldırmam gerekiyor. [15:39] Saldırmam gerekiyor. Hepsi bakın saldırması gerektiğini anlıyorlar ve şehre saldırıyorlar. Tamam. Buraya kadar sorun yok. Peki şöyle bir durumda ne olur diyor. Bu problemin tanımlamaya [15:53] çalıştığı şey de bu. Ben bazı generalleri hain yaparsam mesela bu iki general hain olsun. Hain ne yapar? [16:03] hain grubun bir kısmına saldır der. Bir kısmına geri çekil der. Böylece ordunun bir kısmına saldırıp bir kısmını geri çekerek kuvveti böler ve ordunun dağılmasına yol açar. Hainin yapacağı [16:15] şey budur. Peki diyorlar ki kaç tane hain olursa sistem dayanabilir? Şimdi öncelikle mesela hain eee senaryosunu da biz bu yaptığımız örnekte inceleyelim. [16:27] Bu hain dolayısıyla bir kısmına saldır diyecek. Bir kısmına da geri çekil diyecek. [16:33] eee 4 tane kişiye mesaj attığı için şu ikisini eee mesela geri çekil desin. [16:40] Şunlar kalsın ama bunlara da saldır desin mesela. Buna saldır buna da saldır dedi. Değil mi? Değiştirdi fikrini. [16:47] Çünkü yarısına öyle yarısına böyle dedi. [16:49] Kendi fikri yok. Duruma göre bakacak. [16:52] Peki bu arkadaş eee ne yapıyor? Bu da aynısını yapacak. Normalde kendi fikri artık yok. E saldır diyordu buna. saldır demiş olsun. Buna saldır demiş olsun ama [17:03] bunlara da geri çekil demiş olsun. [17:13] Şimdi ne oldu bu? Baktı iki tane geri çekili var. 3 tane saldırı var. Allah Allah. Biraz arada kaldı. Oy çokluğu gibi düşünüyor ama eee geri çekilme şeyi de fazla. Şimdi bu bakıyor. Aynı şekilde geri çekil. Bu full saldırma modunda. [17:25] Yani herkes saldırı demiş. Harika diyor. [17:27] Tam orduları hazırlıyor. Bu ikisi de duruma göre bakılar. Mesela geri çekiliyor. Bu bu kendisi. Bu da geri çekiliyor. Ordu dağılıyor görüldüğü gibi. Ya burada bu problemin tanımladığı [17:38] şey şu. Ben kaç tane haine karşı hala doğru karar, güvenilir karar bu şekilde arada kalmalı değil de daha konsensüa dayalı eee güvenilir bir karar verebilirim. Şu şekilde de bir analoji [17:53] kuruluyor buna. [17:56] İşte komutan var ve iki tane de teymeni var. Komutan eee bir karar alacak. [18:04] Teymenlere kararı verecek. Teymenler de kendi arasında konuşuyorlar değil mi? [18:11] Şimdi bu sistem diyor ki eğer teymenin bir tanesi hainse mesela komutan ne dedi? Diyelim ki saldır saldır emrini verdi. Ama bu teymen buna [18:25] diyor ki komutan bana geri çekil dedi diyor. [18:33] Komutan bana geri çekil dedi diyor buna. [18:38] E bu diyor ki Allah komutan saldır dedi bana ama diğer teymen geri çekil dediğini diyor. Acaba aradaki ulak mı hata yaptı yoksa bir hain mi var? Bir şey mi var? Yani tereddütte kalacak. Eee [18:51] tam olarak doğru kararı veremeyecek değil mi? Mesela bunu şeye çevirelim. [18:59] Eee yine 5'e çevirelim. 4 teymen e bir komutan gibi düşünebiliriz. Yine bir tane mesela hain olsun. Şimdi bu bu [19:09] arkadaşa diğerlerinden gelen haber ne? [19:14] Saldırı gelecek şu arkadaştan. Diğer dürüst arkadaştan da saldırı gelecek. [19:17] Bir tanesinden de hain arkadaştan da geri çekil diye bir şey gelecek. Bu diyecek ki Allah komutan saldır diyor ama bir tane geri çekil haberi geldi. [19:25] Eee acaba o ulakta mı problem var? Yani saldır haberinin çokluğuna göre bu diyecek ki ha bir tanesinde sadece geri çekiliyor. Demek ki onun ulağı problemli. E veya onan haber yanlış gitti. Sorun yok. Çoğunluk saldırı dediğine göre ben galiba e saldıracağım [19:40] diye düşünebilir. Yani bu bir güven derecesi. Bir tane daha geri çekili olsaydı ama burada iki saldırı iki geri çekili olsaydı e örneğin bir tane daha hain olsaydı bu sefer ne olacaktı? Eee tereddütte kalacaktı değil mi? İki saldır iki geri [19:54] çekil. Aa acaba bir problem mi var? [19:57] Şimdi komutandan böyle geldi. Diğer arkadaşlar komutanın böyle söylediğini söylüyor. Eee hiçbir zaman emin olamayacaktı. çok tereddütte kalmış olacaktı. İşte bu eee [boğazını temizler] Bizans generalleri [20:08] problemi matematiksel olarak şu formülü üretti. [20:14] N> = 3h + 1. Şimdi bu ne demektir? Bu şu demek. [20:22] H hain sayısı benim bu formüle göre yani güvenilir bir sistem kurabilmem için en azından olasılıksal olarak kesinlik zaten hiçbir zaman olmadığını söylemiştik ama olasılıksal olarak yüksek oranda [20:36] güvenilir bir sistem kurabilmem için hain sayısını şuraya yazıyoruz. Mesela bir hainin olduğu sistemde 3 x 1 + 1 kaç yapıyor? 4 eee dör tane dürüst adama [20:48] ihtiyacım var demek oluyor. Yani kısacası şöyle de söylüyor. Hainler sistemin 1/3'ünden fazlaysa [21:02] güven kesinlikle tesis edilemez. [21:07] Formülün söylediği şey bu. O yüzden eee tüm bu blockchain eee teknik dokümanlarında her yerde bu tarz güvene dayalı bu bu problemlerde dağıtık sistemlerde 1/3 ibaresini göreceğiz. [21:18] Çünkü 1/3 hain varsa güven tesis edilemiyor. Bu 1/3'ü matematiksel olarak bu Bizans generalleri probleminden bulunmuş bir oran. Şimdi bir diğer [21:33] konseptimize geçiyoruz. [21:38] PLP imkansızlığı denilen bir kuramı ortaya attılar 1985'te. [21:46] Bu ne demek? Bu aslında matematiksel olarak bir şeyin ispatı. O da şu. [21:51] Asenkron bir a'da asenkron a ne demek? [21:54] Üstten örnek verelim. Şimdi ben birbirimle eee sürekli mesajlaşıyorum ya. Bunlar hep birbirleriyle aslında mesajlaşıyorlar. Birbirlerine mesaj gönderiyorlar. [22:04] eee dağıtık sistemlerde böyle olur değil mi? Herkes birbirine e her şekilde mesajlarını gönderir. [22:11] Şimdi böyle asenkron demek de şu ya herkes farklı zamanlarda çünkü uzaklıkları farklı aralarındaki mesajın gideceği zaman farklı, mesajı tam gönderme zamanları farklı, asenkron yani senkron hareket etmiyorlar. Farklı zamanlarda farklı uzaklıklara mesajlar [22:24] göndermeye çalışıyorlar. Farklı zamanlarda geliyor dolayısıyla mesajlar. [22:28] Bu FLP teoremi diyor ki bu tarz asenkron bir sistemde bir tane düğümün çökmesi düğüm dediği işte bir general veya bir insan veya sistemdeki [homurdanır] dağıtık e mimarideki bir sunucu, bir [22:41] oyuncu düğüm denilen şey bu oluyor. Bir tane düğümün çökmesi deterministik karar almayı imkansız kılar. Şimdi bu ne demek? Deterministik eee karar ne demek? [22:54] Yani deterministik karar demek kesin karar demek. 0 ve 1 demek. Evet ve hayır demek. Tam demek. Doğru demek. Yani ben asenkron bir sistemdeysem bir düğüm çöktüğü anda artık deterministik karar alamıyorum. Probabilistik yani [23:08] olasılıksal karar alabilirim yalnızca. [23:11] Çünkü şöyle bir şey var. Şimdi bu bir düğüm olsun. [23:15] Bu da bir düğüm olsun. [23:17] Şimdi asenkron olduğu için bir zaman kıstası bir sınırım yok değil mi? Bu mesaj bir saniyede de gidebilir, bir günde de gidebilir, bir yılda da teknik olarak gidebilir. Şimdi ben şöyle düşünürsem işte telefon açtık. Analoji [23:30] yapacak olursak konuşuyoruz, konuşuyoruz. Telefonda ben konuşuyorum, konuşuyorum işte mesajı yolluyorum, yolluyorum değil mi? [23:36] Konuşmam. Karşı tarafa mesaj yollamak. [23:37] Yolluyorum, yolluyorum, yolluyorum karşıdan çıt çıkmıyor. Konuşmuyor abi adam. Adamdan ses alamıyorum. Bir süre sonra derim ki Allah hat mı koptu? Adama mı bir şey oldu? Mikrofonu mu bozuldu? [23:49] Bir problem mi var? şey yapamam. Emin olamamaya başlarım değil mi? Bir süre sonra karşıdan bana haber gelmeye başlamayınca. Dolayısıyla süre arttıkça eee benim güven derecem olasılıksal olarak azalır karşıya. Yani bilgimin [24:04] karşıya gidip gitmediğine emin olamam. [24:06] Ya işte biraz daha bekleyeyim belki cevap gelir. Biraz daha bekliyorum mesela cevap verir belki diye. Biraz daha bekliyorum. Biraz daha bekliyorum. [24:12] Yani bu beklemenin sınırı ne? Nerede beklersem cevap gelecek kadar beklemiş olurum? [24:18] Bunu hiçbir zaman deterministik olarak, kesin olarak bilemem, değil mi? [24:22] Deterministik demek şu demek işte. E mesela saat 13.30'da bana cevap geleceğini biliyorum. Yani belirli olması demek bir şeyin belirli olması, kesin olması yani eee bir plan dahilinde olması, bir bir takvim dahilinde olması, [24:36] bir zaman çizelgesinin olması anlamına geliyor. Determistik olması burada olasılıksal. Biraz daha beklesem cevap gelebilir. Evet, gelmeye debilir ama yani hiçbir zaman bundan emin olamam. [24:46] İşte FLP imkansızlığı bunu söylüyor. [24:49] Dağıtık sistemde bir düğüm bile sorun yaşasa, çökse e ulaşılamasa ona deterministik [25:02] hesaplama imkansızdır. [25:08] Her şey olasılık hesabına döner diyor. Matematiksel olarak bunun ispatları var. işte ispatını yapıyor. Daha sonrasında bizim buradan anlayacağımız şey şu. Bizim sistemimizde dağıtık bir sistem olduğu için bu [25:23] şekilde ve mesajlar asenkron olduğu için farklı zamanlarda belli bir çizelge dahilinde olmadığı için herkes mesaj geldiğinde başkasına yayınlıyor mesajı. [25:31] Farklı zamanlarda, farklı uzaklıklarda dünyanın farklı yerlerindeki farklı internet hızlarında bu oluyor. O zaman asenkron bir ağdayız. E bir düğüm bile bir internet problemi yaşasa, bir offline olsa, bir elektrikleri gitse, [25:43] bir şey olsa demek ki benim sistemim deterministik olamaz. Yani bu tarz dağıtık sistemler eee bir çizelge, bir takvime, bir kesinliğe asla ulaşamaz. [25:52] Her zaman olasılıksal hareket ederler ve her zaman eee sonuç olasılıksaldır. Bunu matematiksel olarak ifade eden bir teorem bu. Şimdi gelelim konsensus algoritmalarına. [26:04] Konsensus neydi? Fikir birliğine bak. [26:07] Varma, uzlaşı sağlama. Şimdi bu problemleri çözmeye çalışan çeşitli algoritmalardan bahsedeceğiz. Buna PBFT denilen 1999'da bir çözüm bulal failure tolerant diye [26:20] bir e algoritma. Bu temelde burada da şu 1/3 ve daha az hain varsa sistemi ben mutabakata bağlayabiliyorum [26:34] dedi. Bunu da üç turlu oylama algoritması denilen bir şeyle yaptı. Şimdi algoritmanın çok detaylarına gerek yok. Yani şunu dedi. [26:44] Hala 1/3 kuralı geçerli. Bu tüm algoritmalarda geçerli. 1/3 ve daha az hain varsa ben bir şekilde yüksek olasılıkta işte 95 neyse 98 90 üzeri eee olasılıklarda [26:58] mutabakatı sağlıyorum. Konsensusa vardırıyorum dedi. Tamam. Peki ama şöyle bir problemimiz var. Bizim burada tanımladığımız tüm problemler kapalı devre sistemler. Yani oyuncu sayısı [27:11] belli. Ne diyoruz? İşte 7 kişinin olduğu bir ortamda iki kişi hainse filan. Yani kişi sayısı belli, ortam belli, her şey belli. Yani sistem kapalı devre. Peki açık internette nasıl olacak bu? [27:26] Her an bir düğüm sisteme katılabilir, çıkabilir. [27:38] Tamamen serbest ortam değil mi? Açık internet. Ben bu algoritmamı internete açtığım zaman dağıtık mimari yeni bir cüzdan açılır. [27:48] Yeni bir düğüm hemen girer çıkar. Yani 5 kişi var, 7 kişi var. Şu an sistemde. [27:51] İşte 500.000 kişi var. 1 milyon madenci var. Madenciler de bir düğümdür. İşte bu dağıtık sistemdeki her bir oyuncu aslında bir düğüm olmuş oluyor. [28:00] İstenilen kadar düğüm girer, çıkar, offline olur, elektriği gider. Yani sürekli dinamizm var, değil mi? Hep bir dinamizm var. Ben 1/3'ü geldi mi çıktı mı ya onu hesap etme onu şey yapma. eee sağlama tüm algoritmamı ona göre yazma [28:13] şansım yok. Açık internette ben eee bu şeyi nasıl çözeceğim? Şimdi burada bir zaten önce atak eee tanımı var. Önce onu tanımlayalım. Cible attack denilen bir atak türü var. Cle demek ya cible [28:27] bir psikolojik hastanın ismi. [28:30] Bu hasta çoklu kişilik bozukluğuna sahipmiş. kendisini 11 farklı çeşit kişi gibi çeşitli zamanlarda eee rol alıyor. [28:38] Yani role play gibi yapıyor ama bu kendi hissediyor bunu. Sürekli karakter değiştiriyor. Yani bir çok iyi biri oluyor, bir çok kötü biri oluyor, bir çok neşeli biri oluyor. Yani bambaşka insanlara eee evriliyor her gün gibi. [28:50] Buna dair filmler vardı. Glass diye bir film vardı veya işte 46 yok olan diye de bir dizi vardı. Orada da adam iki farklı karaktere bürünüyordu. İşte gündüz farklı, akşam farklı falan gibi. [28:59] İzlediyseniz bilirsiniz. Yani sibil hata şu demek aslında. Buradan geliyor ismi bu farklı karakterlerden. [29:04] Abi internete açık sistem bu. Doğru. O zaman ben yeterince serbest değil mi? İstediğim kadar hemen düğün bulurum, sunucu bulurum, eee işte bilgisayar bulurum, bir şey bulurum. [29:18] yeterince fazla yani sisteme giriş maliyeti düşük olduğundan yeterince fazla düğüm ile sisteme girip [29:32] 1/3 hain çokluğuna hemen ulaşır. [29:42] sistemin mutabakata, konsensusa erişmesini engelleyebilirim. [29:51] Atağın olayı bu. Bu atak temelde bunu söylüyor. Sisteme giriş maliyetim eee çok düşük veya ben bir sürü bilgisayar sistemde 100 bilgisayar var değil mi? Ben hemen 50 tane bilgisayar [30:05] bulup sisteme sokup, açık internet değilim ya, e maliyetim de düşük, 50 tane bilgisayar bulup hemen sisteme sokup hain sayısına 1/3 hain sayısından fazla olabildiğim için sistemin artık konsensüa erişmesini, mutabakata erişmesini engelleyebiliyorum. Buna [30:18] sivil hata deniliyor. Şey gibi düşünebiliriz. Şimdi analoji vermemiz gerekirse yine mesela işte yılın en iyi öğretmeni anketi yapılıyor arkadaşlar. [30:25] Herkes oy versin. İnternete açık bir anket yapılıyor. Hemen ne yapılıyor? [30:29] İşte bu Tesla falan da hangi ile Tesla süper Chararjer kuralım diye bir anket yayınlamıştı mesela. Bu tarz online anketlerde Türkler ne yapıyor? Yani sadece mail hesap açıp hemen oy verebiliyorsun ya. Bir kişi 100 tane mail açıp 100 tane oy kullanabiliyor. [30:42] İşte bu civil atak. Yani normalde senin bir oy kullanman lazım. Ama sisteme giriş maliyeti o kadar düşük ki hatta işte 10 dakikalık geçici email siteleri falan var değil mi? Oradan bir email alıyorsun hemen kaydolup oy veriyorsun. [30:54] Bizdekiler işte yüzlerce bir kişi yüzlerce binlerce oy verebiliyor. [30:58] Ayıracağı vakte göre değişir. Bu sivil hata. Sisteme girmek kolay. Herhangi bir maliyeti yok. Birazcık zaman ayırarak, birazcık kaynak ayırarak sistemi direkt manipüle edebiliyorum ve bozabiliyorum. [31:08] Bunun analojisi bu. Buna sivil hatağı deniliyor. Bizim bu dağıtık sistemlerde bu sivil atağını da çözmemiz gerekiyor. [31:14] Ve eee Bitcoin bu sivil atağına karşı mesela madencilik. Bu madenciler ne yapıyor? Çok fazla enerji harcıyor diyoruz değil mi? çok elektrik tüketiyor. Çok fazla böyle algoritmik işlemler yapıyor. Bu neden var? Buna proof of work deniliyor. Bu neden var? [31:28] Aslında ön bilgi veriyorum şu anda. [31:30] Proof of work deniliyor. Bu neden oluyor? Çünkü sisteme giriş maliyetini yükseltmek istemiş Bitcoin ki sivil atağına uğramasın. Yani sibil atağını böyle çözüyor. Senin sistemin 1/3 hain çokanna ulaşabilmen için bir sürü eee [31:42] çok pahalı Bitcoin madencilik makinelerından alman lazım. Onlardan kurman lazım. Ve yetmiyor. Elektrik harcaman gerekiyor. Sistemin, tüm sistemin harcadığı elektriğin 1/3'ünden daha fazlasını senin harcaman gerekiyor. [31:55] Bu zaten milyarlarca dolar yaptığı için ama karşılığında o kadar fazla bir şey alamayacağın eee için feible olmamaya başlıyor. Sibil hatağını da bu şekilde engellemiş oluyor Bitcoin. Bu videoyu burada sonlandırmış olalım çok uzamaması [32:09] için. Eee, aslında temel bilgi problemi, dağıtık sistemlerdeki olasılıksal problemler bunlar. Bitcoin'in şimdi bunlara ve blockchain'i bunlara çözümleri bir sonraki eee, videoda [32:22] verebiliriz. İşte burada e hash algoritmaları, kriptografi nasıl kullanılıyor? [32:28] İşte demin bahsettiğim, ön bilgi verdiğim proof of work algoritmalarıyla sibil atakları nasıl engelleniyor? [32:33] Burada olay şu. Sibil hatağını engelleyeceksin. Bir de hızlı bir konsensusa varma, mutabakata varma algoritması geliştireceksin ve bunu güvenilir bir şekilde inşa edeceksin. Bu problemi bu şekilde çözüyor blockchain e [32:47] ve Bitcoin. Diğer videolarda da bunlara değiniriz. Teşekkür ederim. Yeah.Bitcoin'in arkasındaki teknoloji şu problemi çözer: merkezi bir otorite olmadan, birbirine güvenmeyen katılımcılar aynı defter üzerinde nasıl uzlaşabilir? İki General ve Bizans Generalleri problemleri, FLP imkânsızlığı ve Sybil saldırısı, dağıtık sistemlerde kesinliğin değil ancak yüksek olasılığın mümkün olduğunu gösterir. Bitcoin bu saldırıya proof of work ile direnir.
Problemin tanımı: merkezsiz bir defter
Bitcoin genellikle parasal niteliği ve borsadaki fiyat hareketleri üzerinden tartışılır; oysa asıl devrim teknik tarafta yatar. Amacımız, blockchain'in hangi sorunu nasıl çözdüğünü aşırı teknik ayrıntıya girmeden, herkesin anlayabileceği bir dille ortaya koymak. Temel soru şu: Ortada hiçbir merkezi yapı yokken milyonlarca insan birbirine para gönderecek, birbirinin defterini tutacak; bu güvenilirlik nasıl sağlanacak? Bu soru iktisadi görünse de aslında bilgisayar bilimleri ve matematiğin konusudur ve çözümler de oradan çıkmıştır.
Bir köy bakkalını düşünelim. Köydeki herkes borç-alacak kayıtlarını bakkalın defterinde tutar; tıpkı bir ülkede Merkez Bankası'nın ya da bankaların, maaş ve para transferlerimizin kaydını kendi merkezlerindeki defterde tutması gibi. Bu merkezi yapı güveni genel olarak sağlar ama tek bir merkeze bağlı olduğu için hataya açıktır: merkezdeki bir hata bütün kayıtların yanlış olmasına, silinmesine ya da yok olmasına yol açabilir.
Dağıtık sistem ve konsensüsün şartları
Merkezi kaldırmak istersek herkesin kendi defterini tutması gerekir; dağıtık sistem budur. Fakat bu kez yeni sorular doğar: Herkesin defteri nasıl senkron kalacak? Biri defterine sahte kayıtlar yazarsa bunu kim doğrulayacak? Karışıklık kötü niyetten de, basit bir hatadan da kaynaklanabilir. Bu sorunu çözmek için konsensüs (mutabakat) algoritmaları geliştirilir. Bir konsensüs mekanizmasının üç şartı vardır:
- Uzlaşma: Herkesin defterinde aynı kayıtların bulunması için ortak bir fikir birliğine varılmalı.
- Geçerlilik: Deftere yalnızca belirli formatta (alıcı, gönderen, miktar, tarih, açıklama) geçerli ticari kayıtlar yazılabilmeli.
- Sonluluk: Bir noktada "defterin son hali budur" denebilmeli; karar yıllarca askıda kalmamalı.
Bu şartları bir WhatsApp analojisiyle somutlaştıralım. On kişilik bir arkadaş grubu akşam hangi restorana gideceğine karar verecekse ortak bir grup merkezi bir yer işlevi görür; herkes birbirinin oyunu görür. Grup yoksa ve herkes birbiriyle ayrı ayrı, farklı zamanlarda yazışıyorsa sistem dağıtık hale gelir. Kararın akşam altıya kadar verilmesi gerekir (sonluluk), konuşmaların restoran seçimiyle ilgili olması gerekir (geçerlilik) ve sonunda çoğunluğa göre uzlaşılmalıdır. Bir de interneti yavaş, bodrum katında çalışan, mesajları geç giden arkadaşlar eklendiğinde durum tamamen kaotikleşir. Blockchain'in ve Bitcoin'in çözdüğü problem tam olarak budur.
İki General Problemi
İlk adım İki General Problemi. Birbirini göremeyen ve yalnızca ulak aracılığıyla haberleşebilen iki general, şehre aynı anda saldırmak zorundadır. Biri "şafakta saldıralım" mesajı gönderse de ulağın yolda öldürülüp öldürülmediğinden ya da mesajın değiştirilip değiştirilmediğinden emin olamaz. Karşı taraf "mesajını aldım" diye onay gönderse bu kez o onayın ulaşıp ulaşmadığı belirsizdir; onayın onayı da aynı sorunu doğurur ve bu zincir sonsuza kadar uzar.
Mesaj sayısı arttıkça güven artar; örneğin tek mesajda yüzde 50 olan olasılık bir onayla yüzde 70'e, birkaç turdan sonra yüzde 98'e çıkabilir. Ama yüzde 98 hiçbir zaman yüzde 100 değildir. SMS ile "akşam altıda buluşuyoruz" yazıp cevap alamamak da aynı mantığı taşır. Sonuç: Doğrudan iletişimi olmayan, bir mesaj kanalına bağımlı iki taraf hiçbir zaman yüzde yüz kesinlikle bilgi gönderemez; her zaman bir olasılığa razı olmak zorundayız.
Bizans Generalleri Problemi ve 1/3 kuralı
İkinci problem, bir şehri kuşatmış beş Bizans generalinin saldırma ya da geri çekilme kararını birlikte vermesi gerektiği senaryodur. Bir kısmı saldırıp bir kısmı çekilirse ordu bertaraf olur; bu, verilebilecek en kötü karardır. Herkes diğer dört generalden gelen mesajları kendi kararıyla birleştirip oy çokluğuna göre hareket ettiğinde sorun çıkmaz. Ancak aralarına hainler girerse durum değişir: Hain, grubun bir kısmına "saldır", bir kısmına "geri çekil" diyerek kuvveti böler. İki hainli bir örnekte bazı generaller saldırır, bazıları çekilir ve ordu dağılır.
Komutan ve teğmenler analojisinde de aynı belirsizlik ortaya çıkar: Komutandan "saldır" emri alan bir teğmen, diğer teğmenden "komutan bana geri çekil dedi" haberini alınca ulağın mı hata yaptığını yoksa bir hain mi olduğunu bilemez. Bir hain varken çoğunluğa güvenerek karar verilebilir; hain sayısı arttığında tereddüt aşılamaz hale gelir. Problem şu formülle ifade edilir: n ≥ 3h + 1 (h hain sayısı). Örneğin bir hain için 3×1+1 = 4 sonucuna ulaşılır. Kısacası hainler sistemin üçte birinden fazlaysa güven tesis edilemez. Blockchain dokümanlarındaki "1/3" ibaresi buradan gelir.
FLP imkânsızlığı: kesinlik değil olasılık
1985'te ortaya konan FLP imkânsızlığı, asenkron bir ağda tek bir düğümün bile çökmesinin deterministik karar almayı imkânsız kıldığını matematiksel olarak ispatlar. Asenkron ağ, katılımcıların farklı uzaklıklarda olduğu, mesajların farklı zamanlarda gönderilip ulaştığı ağdır; düğüm ise bir general, bir kişi ya da dağıtık mimarideki bir sunucudur. Deterministik karar "evet ya da hayır", kesin ve bir takvime bağlı karar demektir.
Bir telefon görüşmesinde karşı taraftan ses gelmediğinde hattın mı koptuğunu, mikrofonun mu bozulduğunu bilemeyiz; ne kadar beklesek cevap geleceğini de hiçbir zaman kesin olarak bilemeyiz. Mesaj bir saniyede de, bir günde de ulaşabilir. Dünyanın farklı yerlerinde, farklı internet hızlarıyla çalışan bir dağıtık sistemde bir düğümün elektriği gitse ya da çevrim dışı olsa bile sistem deterministik olamaz:
Her şey olasılık hesabına döner.
Açık internet ve Sybil saldırısı
1999'da geliştirilen PBFT (Practical Byzantine Fault Tolerance) algoritması, hainler üçte bir veya daha azken üç turlu bir oylamayla yüksek olasılıkla mutabakat sağlanabileceğini gösterdi. Ancak buraya kadarki bütün problemler kapalı devre sistemlerdir; katılımcı sayısı bellidir. Açık internette ise her an yeni bir cüzdan açılabilir, yeni bir düğüm girip çıkabilir; beş kişi yerine beş yüz bin kişi, bir milyon madenci olabilir. Bu dinamizm içinde 1/3 sınırını hesaba katmak mümkün değildir.
Burada Sybil saldırısı devreye giriyor. Adını, çoklu kişilik bozukluğu yaşayan Sybil adlı bir hastadan alır; Glass filmi ve 46 Yok Olan dizisi de benzer temaları işler. Sisteme giriş maliyeti düşük olduğunda bir saldırgan çok sayıda sahte düğümle girip hain oranını üçte birin üzerine çıkarabilir ve mutabakatı engelleyebilir. "Yılın en iyi öğretmeni" gibi açık çevrimiçi anketler ve Tesla'nın Supercharger istasyonu için düzenlediği anket buna iyi bir örnektir: Geçici e-posta adresleriyle bir kişi yüzlerce, binlerce oy kullanabilir.
Proof of work'e giriş ve sonraki bölüm
Ön bilgi olarak: Bitcoin bu saldırıyı proof of work ile çözer. Madenciliğin çok enerji tüketmesinin nedeni, sisteme giriş maliyetini yükseltmektir: Üçte bir hain oranına ulaşmak için pahalı madencilik makineleri almak ve tüm sistemin harcadığı elektriğin üçte birinden fazlasını harcamak gerekir. Bu milyarlarca dolar tuttuğu ve karşılığında elde edilecek şey bununla orantılı olmadığı için saldırı uygulanabilir olmaktan çıkar. Serinin sonraki bölümlerinde hash algoritmalarını, kriptografiyi ve proof of work'ün ayrıntılarını; blockchain'in Sybil saldırısını nasıl engellediğini ve hızlı, güvenilir bir mutabakata nasıl ulaştığını ele alacağız.
00:00Selamünaleyküm. Rabbi yessir ve la tuassir. Rabbi tenvin bilhar. Allah'ım zorlaştırma, kolaylaştır, işlerimi hayırla sonuçlandır.
00:10Bugünkü videoda blockchain ve Bitcoin üzerine bazı konuşmalar yapacağım. Çünkü Bitcoin genel olarak parasal niteliği bakımından, borsadaki fiyat hareketliliği bakımından vesaire bu tarz
00:23yönlerinden, iktisadi yönlerinden çokça tartışılıyor, konuşuluyor, biliniyor.
00:29Fakat işin teknik kısmından veya normal paraya göre Bitcoin aslında nasıl bir devrim yarattı? İçerisinde nasıl bir teknoloji var? Ve bu teknoloji neden daha önce yoktu? Tam olarak neyi
00:42çözüyor? Nasıl çözüyor? Buna dair açıklayıcı ama herkesin de anlayabileceği bir video yapma kararı aldım. Bu videoda aslında Bitcoin'in çalışma mantığını arkasındaki esas teknoloji olan blockchain'in nasıl
00:56çalıştığını, hangi sorunları çözdüğünü, nasıl bir mekanizmaya sahip olduğunu [homurdanır] herkesin anlayabileceği bir dilde aşırı teknik detaya kaçmadan sayısalcı birisinin rahatlıkla aa demek
01:09ki problem buymuş, bunu çözüyormuş, faydası buymuş. Olay da demek ki bu şekildeymiş diye tüm kavramları anlayabileceği tarihi bir şekilde anlatacağım bir video olacak. Aslında burada eee bilgisayar bilimleri denilen
01:23işte computer science diye de geçen bilim dalının yani bilgisayardaki bu algoritmalar, yazılımlar eee bunun üzerine t önceden beri makaleleri var, çalışmaları var. Matematikle de iç içe geçen bir konu bu. Çünkü burada aslında
01:38problem şu. Ortada hiçbir merkezi yapı olmadan milyonlarca insan birbirine para gönderecekler. Birbirlerinin defterlerini tutacaklar. Ekonomik hareketlilik yapacaklar ama merkezi bir
01:51yer bunu kaydetmeyecek. Bu güvenilirlik nasıl sağlanır? Bu aslında iktisadi bir soru gibi gözükse de bilgisayar bilimlileri ve matematiğin konu alanına giriyor ve buralardan zaten çözümler
02:04çıkmış durumda. İmkansız gibi görünen bu problemi blockchain ve Bitcoin birleşerek çözdüler. Biz de burada aslında önce problemi tanımlayacağız.
02:13Daha sonra da nasıl çözüldüğünü aşama anlatacağız. Şimdi öncelikle mesela bir köy düşünelim.
02:21Burada bir bakkal olsun değil mi? Bakkal nesi vardır? Şu da defteri olsun.
02:28Şimdi bakkalın bir defteri vardır. D olsun ismi. Köyde bir sürü eee insanlar var. Köyde bir sürü kişi var. Böyle insanlar var.
02:42Şimdi normalde ne oluyor? Bu insanlar tüm defterlerini, tüm kayıtlarını merkezi bir yer olan bakkalda tutuyorlar. Yani bakkal aslında kimin bana ne kadar borcu var, benim kime ne
02:55kadar borcum var? Merkezi bir yerde bunu tutabiliyor. Bunu farklı örneklerle de anlatabiliriz. Devletler içer içinde mesela Merkez Bankası bu kayıtları tutuyor veya bankalar içinde biz tüm
03:08para transferlerimizi bankalar üzerinden yapıyoruz. Birilerine parayı bankadan gönderiyoruz. Maaşımızı oradan alıyoruz vesaire. Tüm bu kayıtlar nerede tutuluyor? Bankanın merkezindeki defterde tutuluyor. Aslında böyle bir
03:21analoji yapabiliriz. Dolayısıyla merkezi bir yerden bir defter tutma durumu var ve bu güveni genel olarak sağlıyor. Ama hataya açık bir sistem. Neden? Tek bir merkeze bağlıyız. Merkezdeki herhangi
03:34bir hata tüm bu işlemlerin yanlış olmasına veya yok olmasına, silinmesine çeşitli problemlere sebep olabilir.
03:44Çünkü tek bir merkezde olduğu için. Peki biz bu merkezi dağıtmak istersek nasıl olacak? Yani ben merkezin bu hata yapma olasılığına karşı merkezi kaldırmak
03:59istiyorum. O zaman ne yapabilirim?
04:01Merkezi kaldıracağım. Merkez olmasın. O zaman bu defterlerin birilerinde durması lazım. O zaman dedik ki herkes kendi defterine sahip olsun. Herkes kendi defterini kendisi tutsun. Dağıtık sistem bu demek. Yani herhangi bir merkezi
04:14olmayacak. Herkes kendi defterini kendisi tutacak. Ben Ahmet'ten Ali'ye işte para gönderdim. Defterlerini herkes işleyecek. Tamam da herkesin defteri nasıl aynı senkronlukta olacak? Veya ben defterime herkes bana işte Ahmet bana
04:28100 lira verdi, Veli bana 100 lira verdi, Ayşe bana 100 lira verdi diye sahte kayıtlar da yazabilirim. Daha sonra bunu kim doğrulayacak? Ayşe geldiğinde aa benim defterimde bu yazmıyor. Sen senin defterinde benim sana borcum yazıyor ama bende yazmıyor
04:43deyip nasıl anlaşacaklar? Herkes kendi dfterini tutsun. dağıtık olsun, merkezde olmasın. Tamam ama burada bir güvenilirlik sorunu var ve karışıklık çıkma ihtimali var. Bu karışıklık kötü niyetten de kaynaklanıyor olabilir. E
04:56herhangi birisinin yaptığı hatadan kaynaklanıyor da olabilir. Bu problem nasıl çözülecek? Aslında temelde problemin tanımı bu. Dağıtık sistemlerdeki bilgi güvenliği, herkesin eşit bilgiye sahip olması, herkesin
05:10senkron bilgiye sahip olması nasıl çözülebilir? Bunun için konsensus algoritmaları geliştiriliyor. Konsensüs dediğimiz şey nedir? Mutabakattır aslında.
05:24Konsensus yani mutabakat. Bunun için ne gerekiyor? Bir kere uzlaşma gerekiyor.
05:38Yani herkes diyecek ki, eee, bu kayıt defterlerimize olduğu konusunda uzlaşıyoruz. Yani bir ortak fikir birliğine varmaları lazım ki herkesin defterinde aynı kayıtlar olabilsin.
05:50Geçerlilik yani defterde saçma sapan şeyler, kimisi işte resim çizer, kimisi şarkı sözü yazar, öyle şeyler değil kardeşim. Bu defter sadece ticari kayıtlar için kullanılacak. Geçerli bir kayıt ve bu kayıt formatı şu şekilde olacak. alıcı,
06:04satıcı, miktar, tarih ve e gönderim açıklaması gibi bir format. Sadece bu formatta yazılır. Dolayısıyla geçerli olup olmadığı eee sadece geçerli şeyler, kayıtlar bu defterlerde yer alabilmeli
06:17ve sonlu olması yani bitebilmesi gerekiyor. Bu da şu demek. Hepimiz şimdi aynı kayıtlar üzerinde uzlaşmamız gerekiyor. Ya uzlaşmak için konuşmamız gerekiyor. Eee birbirlerin birbirimizde sende bu var mı, bende bu var mı dememiz
06:31gerekiyor. Ama bir noktada da karar vermemiz lazım. Yani defterin final halini tamam burada anlaştık artık dememiz lazım. Yıllarca, yüzyıllarca bu karar vermeden devam etmemeli bir noktada. Tamam defterin son hali budur,
06:41kayıtlar budur, karar verdik şeklinde.
06:44Eee sonunu bitebilmesi lazım bu kararların. Değilse hep askıda kalır, hep havada kalır. Defter hiçbir zaman stabil duruma geçemez. Şey gibi düşünebiliriz. Bir analiz yapacak olursak mesela bir WhatsApp'tan arkadaşlarla biz 10 kişilik bir grubuz.
06:56Bir eee yemeğe gideceğiz. Normalde bir grubumuz olsaydı merkezi bir yer oluyor değil mi? grup WhatsApp grubunda merkezi bir yer oluyor. Eee gruptan yazıyoruz arkadaşlar yemeğe hangi restorana gidelim? Balık restoranına mı gidelim?
07:09Et restoranına mı gidelim diye soruyoruz. Mesela merkezden grupta herkes birbirinin yazdığını gördüğü için tıpkı bakkal örneğindeki gibi, tıpkı banka örneğindeki gibi güvenilirlik %100 sağlanabiliyor. Herkes oyunu veriyor.
07:20Herkes ortak gruptan görüyor. İşte et restoranına gidiyoruz. Peki grubumuz yoksa ama 10 tane de arkadaşsak yani herkes birbiriyle özel olarak mesajlaşacak. Böyle bir durumda yani dağıtık sistem olmuş oluyor. Merkezde bir grubumuz yok. Herkes birbiriyle
07:34bağımsız mesajlaşabilir ve farklı zamanlarda ve istediği zamanlarda mesajlaşabilir. E bu durumda biz hangi restorana gideceğimize nasıl karar vereceğiz? Buradaki sonlu bitebilmesi demek yani bizim bu akşam bu restorana gitmemiz lazım. Böyle yani bu
07:49karar verme aşaması günlerce, haftalarca hatta yıllarca sürmemesi lazım. Bu akşama kadar en geç saat 6'ya kadar akşam bu kararın verilmesi gerekiyor.
07:58Sonluğu demek o demek. geçerlilik demek.
08:00Yani bu konu üzerinde fikir beyan edilmesi lazım. Gidip arkadaşlar konsere ha nereye gidiyoruz değil yani şu an biz bu akşama kadar bir an önce hangi restoranda yemek yiyeceğimize karar vermemiz lazım. O yüzden geçerli mesajlaşmalar yapmamız gerekiyor.
08:12Uzlaşmada en son bir noktada da çoğunluğun kararına göre de bir uzlaşma yaşamamız gerekiyor. İşte böyle bir analoji ile durumu anlayabiliriz. Bu arkadaş grubu mesajlaşarak nasıl doğru sonuca güvenilir bir şekilde ulaşabilir?
08:26Problem bu aslında. Bu arkadaş grubunda bir de şey düşünün. İşte interneti yavaş olan, e işte dağlık bir bölgede şu an olan veya işte internetin çekmediği bir bodrum katında olan, orada çalışan bir arkadaş düşünün. İş yerine internetin e
08:39zar zor çektiği, onun mesajı geç gidiyor, geç geliyor. Bu tarz problemleri de hesaba kattığımızda tam bir kaotik durum söz konusu. Bu arkadaşların bir şekilde güvenilir bir şekilde uzlaşmasını sağlamamız lazım.
08:49Çözmemiz gereken problem bu.
08:51Blockchain'in Bitcoin'in de çözdüğü problem bu aslında. Şimdi bu problemi parçalara bölelim. Yavaş yavaş ilerlemeye çalışalım. İki general problemi denilen bir problem var.
09:04Şimdi bu iki general probleminde olay şu.
09:10İki tane generalimiz var.
09:14Birbirlerini görmüyorlar. Sadece eee ulakla birbirlerine mesaj gönderebiliyorlar. Şimdi böyle bir durumda bir karar almaları gerekiyor.
09:24İkisi de şehre aynı anda saldırmaları gerekiyor. Bunun için de ortak hareket etmeleri gerekiyor. İşte şafakta mı saldıracağız, akşam mı saldıracağız, öğlen mi saldıracağız? Yani bunun bir kararının verilmesi gerekiyor. Bu iki
09:37general acaba güvenilir bir şekilde nasıl mesajlaşabilirler?
09:42E problemin tanımı bu. Şimdi mesela bu generalimiz mesaj gönderir. Örneğin Şafak'ta saldıralım.
09:52Tamam. Eee mesajı gönderdi ama mesajın gidip gitmediğinden hiçbir zaman emin olamaz. Değil mi? Acaba yolda başına bir şey mi geldi? Ulan eee mesaj doğru gitti mi? Ya da yolda belki düşmanlar tarafından adamım öldürüldü veya mesajı
10:06değiştirildi. Farklı bir mesaja çevrildi. Bundan bundan hep şüphe duyacak. Hiçbir zaman kesin emin olamayacak mesajın ulaşıp ulaşmadığına.
10:13Peki tamam. O zaman mesajın oluşup oluşmadığından emin olması için buradaki arkadaş buna bir mesaj daha yollasın.
10:20Mesajını aldım.
10:23Okey desin mesela. Yani şafakta saldıracağının mesajını aldım. Okey desin. Bu sefer de bu arkadaş acaba benim eee bu okeyleme mesajımı diğer general aldı mı? Yolda ulağın başına bir şey geldi mi? İşte yolda şey kesildi mi?
10:37Yani çünkü okeyi almadıysa bu sefer bu arkadaş tam emin olamayacağı için yine saldırmayabilir. Çünkü bu arkadaşın saldırması için karşıdan okey mesajının gelmesini beklediğini biliyor ya değil mi? O zaman mesela bu arkadaş okeyini
10:51aldım sorun yok atsın. Okeyini aldım.
10:56Okey.
10:58Bu sefer yine bu mesajın tam olarak gidip gitmediğinden emin olamayacak. Bu da okeyini aldım. Okeyi aldıktan sonra saldırırım ben. Sorun yok diye düşündü.
11:05düşünüyorsa mesela aralarında böyle anlaştılarsa gitmeden önce bu sefer bu mesaj kesin geldi mi gitti mi o belli değil. Bu sefer onu tekrar okeyini aldım. Okeyini aldım.
11:19Okey. Ya bu sonsuza kadar bu şekilde gidebilir ve hiçbir zaman iki generalde tam olarak %100 bir şekilde karşının mesajı alıp almadığına emin olamıyor.
11:29Yani buradaki problemin tanımı şu. %100 bir şekilde kesin eminim karşısı mesajı aldı. Şafak'ta %100 saldırıyoruz.
11:36Buradaki kesinliğin %100 olması yani eee ikinciden sonra 3üncü 5 6 7 mesaj 8 mesajdan sonra artık bir sürü mesajlar gidip gelmiş. Ya dersin ki demek ki ha mesaj gidip gelmesinde çok problem
11:50olmuyor. Çünkü 3 4 5 defa bayağı mesaj yolladık birbirimize. Demek ki iletişimde problem yok. %98 eee biz birbirimizin mesajını alabiliyoruz ve sorun yok deyip saldırabilirler. Bakın ama %98 hiçbir zaman %100 değildir. Her zaman
12:03ihtimaldir. Bu problemin tanımı şudur.
12:05Doğrudan birbiriyle iletişimi olmayan bir mesaj kanalı vasıtasıyla iletişimi olan iki kişi hiçbir zaman %100 kesinlikte bilgi gönderemezler. Mesaj sayısı arttıkça olasılığı artar. Mesela bir mesajda sadece şu mesajda mesela
12:19olasılık %50 iken bir okey mesajı geldiğinde %70'e çıkarır. Birkaç defa daha yaptıklarında %98'lere doğru olasılık çıkar ama hiçbir zaman %100 olmaz. E problemin tanımı bu. Yani yine WhatsApp üzerinden gidecek olursak
12:32arkadaşınıza mesela yazıyorsunuz.
12:35WhatsApp yokken eskiden SMS'lerle yazılıyordu. Mesela yazıyorsun akşam 6'da buluşuyoruz planladığımız gibi.
12:42Sorun yok. Eee değil mi yazıyorsun karşıdaki cevap vermiyor. Şimdi burada ne düşünebilirsin? Ya yoğun olduğu için cevap vermemiş olabilir. Mesaj gitmemiş olabilir. Görmüş ama eee okeylememe ihtiyacı hissetmemiş olabilir. Emin
12:54olamıyorsun değil mi? Bu sefer evet yazıyor mesela ama senin onu görüp görmediğinden yine emin olamaz.
13:00Muhtemelen gördüğünü düşünüyordur. SMS'e güvendiği için öyle düşünüyordur ama sen hala onu görmemiş olabilirsin. Yani e mantık aynı. Hiçbir zaman %100 bir eminlikte olamayız. Her zaman bir olasılığa razı olmak zorundayız. Yüksek
13:14bir olasılık olabilir bu ama günün sonunda bu bir olasılıktır. Şimdi bir problem daha var.
13:20O da Bizans generalleri problemi denilen bir problemimiz daha var. Şimdi buradaki problem şu. Bir sürü Bizans generali olduğunu 5 tane mesela general
13:35var diye düşünelim. Ortada da bir şehir var.
13:39Bu Bizans generalleri bu şehri kuşatmışlar. Şehrin surları var vesaire.
13:47Şimdi bunların eee bir karar vermesi gerekiyor. Şehre saldıralım mı yoksa geri mi çekilelim? Yani uzlaşarak bir karar vermeleri gerekiyor. Aynı kararı da uygulamaları gerekiyor. Eğer bir kısmı saldırırsa, bir kısmı geri
14:00çekilirse ordu bertaraf olur.
14:02Verebilecek en kötü karar budur. En yanlış karar da budur. Dolayısıyla herkes uzlaşıyla ya saldıracaklar ya geri çekilecekler. Toplu şekilde bunu nasıl yapabilirler? Yine birleriyle sadece e ulaklar vasıtasıyla eee haberleşme yapabiliyorlar. Aynı mantık
14:17buralarda da devam ediyor.
14:22Acaba bu konsensusa nasıl varabilirler ve aralarında hainler varsa acaba ne olur? Kaç tane haine bu sistem direnebilir? Bu problemin çözmeye çalıştığı şey bu. Şimdi düşünelim.
14:37Mesela herkesin bir kendi kararı var değil mi burada? Eee, öncelikle onları yazalım. Mesela bu saldır diyor. Örneğin kendi kararı bu. Yani bunun saldır desin, bu, saldır desin.
14:50Bu da saldır desin. Bu geri çekil desin mesela.
14:54Değil mi? Normalde yani herkese diğer dört generalden mesaj gelecek. Herkesin elinde diğer dört generalden gelen mesaj olacak. Değil mi? Buna gelen mesajlar ne olacak? Saldır. Saldır. Bakın buradan saldır geldi. Buradan saldır geldi. Bir
15:09saldırı daha geldi. Öbüründen de geri çekil mesajı geldi. Bunun elindeki mesajlar böyle. Hepsinin elindeki mesajları yazalım. Bu saldır geldi.
15:17Saldır saldır geri çekil geldi. Aynı mesajlar. Bu saldır saldır saldır geri çekil. Bu saldır saldır saldır geri çekil. Bu saldır saldır saldır saldır.
15:28Diğerlerinden saldır geldi. Kendi kararı da geri çekildi. Şimdi hepsi oy çopuna göre kararını verecek. Bakıyor. O saldırmamız gerekiyor. Oy çotuna göre bakıyor. Kendi kararına dahil ediyor.
15:37Beş tane oy var. Saldırmam gerekiyor.
15:39Saldırmam gerekiyor. Hepsi bakın saldırması gerektiğini anlıyorlar ve şehre saldırıyorlar. Tamam. Buraya kadar sorun yok. Peki şöyle bir durumda ne olur diyor. Bu problemin tanımlamaya
15:53çalıştığı şey de bu. Ben bazı generalleri hain yaparsam mesela bu iki general hain olsun. Hain ne yapar?
16:03hain grubun bir kısmına saldır der. Bir kısmına geri çekil der. Böylece ordunun bir kısmına saldırıp bir kısmını geri çekerek kuvveti böler ve ordunun dağılmasına yol açar. Hainin yapacağı
16:15şey budur. Peki diyorlar ki kaç tane hain olursa sistem dayanabilir? Şimdi öncelikle mesela hain eee senaryosunu da biz bu yaptığımız örnekte inceleyelim.
16:27Bu hain dolayısıyla bir kısmına saldır diyecek. Bir kısmına da geri çekil diyecek.
16:33eee 4 tane kişiye mesaj attığı için şu ikisini eee mesela geri çekil desin.
16:40Şunlar kalsın ama bunlara da saldır desin mesela. Buna saldır buna da saldır dedi. Değil mi? Değiştirdi fikrini.
16:47Çünkü yarısına öyle yarısına böyle dedi.
16:49Kendi fikri yok. Duruma göre bakacak.
16:52Peki bu arkadaş eee ne yapıyor? Bu da aynısını yapacak. Normalde kendi fikri artık yok. E saldır diyordu buna. saldır demiş olsun. Buna saldır demiş olsun ama
17:03bunlara da geri çekil demiş olsun.
17:13Şimdi ne oldu bu? Baktı iki tane geri çekili var. 3 tane saldırı var. Allah Allah. Biraz arada kaldı. Oy çokluğu gibi düşünüyor ama eee geri çekilme şeyi de fazla. Şimdi bu bakıyor. Aynı şekilde geri çekil. Bu full saldırma modunda.
17:25Yani herkes saldırı demiş. Harika diyor.
17:27Tam orduları hazırlıyor. Bu ikisi de duruma göre bakılar. Mesela geri çekiliyor. Bu bu kendisi. Bu da geri çekiliyor. Ordu dağılıyor görüldüğü gibi. Ya burada bu problemin tanımladığı
17:38şey şu. Ben kaç tane haine karşı hala doğru karar, güvenilir karar bu şekilde arada kalmalı değil de daha konsensüa dayalı eee güvenilir bir karar verebilirim. Şu şekilde de bir analoji
17:53kuruluyor buna.
17:56İşte komutan var ve iki tane de teymeni var. Komutan eee bir karar alacak.
18:04Teymenlere kararı verecek. Teymenler de kendi arasında konuşuyorlar değil mi?
18:11Şimdi bu sistem diyor ki eğer teymenin bir tanesi hainse mesela komutan ne dedi? Diyelim ki saldır saldır emrini verdi. Ama bu teymen buna
18:25diyor ki komutan bana geri çekil dedi diyor.
18:33Komutan bana geri çekil dedi diyor buna.
18:38E bu diyor ki Allah komutan saldır dedi bana ama diğer teymen geri çekil dediğini diyor. Acaba aradaki ulak mı hata yaptı yoksa bir hain mi var? Bir şey mi var? Yani tereddütte kalacak. Eee
18:51tam olarak doğru kararı veremeyecek değil mi? Mesela bunu şeye çevirelim.
18:59Eee yine 5'e çevirelim. 4 teymen e bir komutan gibi düşünebiliriz. Yine bir tane mesela hain olsun. Şimdi bu bu
19:09arkadaşa diğerlerinden gelen haber ne?
19:14Saldırı gelecek şu arkadaştan. Diğer dürüst arkadaştan da saldırı gelecek.
19:17Bir tanesinden de hain arkadaştan da geri çekil diye bir şey gelecek. Bu diyecek ki Allah komutan saldır diyor ama bir tane geri çekil haberi geldi.
19:25Eee acaba o ulakta mı problem var? Yani saldır haberinin çokluğuna göre bu diyecek ki ha bir tanesinde sadece geri çekiliyor. Demek ki onun ulağı problemli. E veya onan haber yanlış gitti. Sorun yok. Çoğunluk saldırı dediğine göre ben galiba e saldıracağım
19:40diye düşünebilir. Yani bu bir güven derecesi. Bir tane daha geri çekili olsaydı ama burada iki saldırı iki geri çekili olsaydı e örneğin bir tane daha hain olsaydı bu sefer ne olacaktı? Eee tereddütte kalacaktı değil mi? İki saldır iki geri
19:54çekil. Aa acaba bir problem mi var?
19:57Şimdi komutandan böyle geldi. Diğer arkadaşlar komutanın böyle söylediğini söylüyor. Eee hiçbir zaman emin olamayacaktı. çok tereddütte kalmış olacaktı. İşte bu eee [boğazını temizler] Bizans generalleri
20:08problemi matematiksel olarak şu formülü üretti.
20:14N> = 3h + 1. Şimdi bu ne demektir? Bu şu demek.
20:22H hain sayısı benim bu formüle göre yani güvenilir bir sistem kurabilmem için en azından olasılıksal olarak kesinlik zaten hiçbir zaman olmadığını söylemiştik ama olasılıksal olarak yüksek oranda
20:36güvenilir bir sistem kurabilmem için hain sayısını şuraya yazıyoruz. Mesela bir hainin olduğu sistemde 3 x 1 + 1 kaç yapıyor? 4 eee dör tane dürüst adama
20:48ihtiyacım var demek oluyor. Yani kısacası şöyle de söylüyor. Hainler sistemin 1/3'ünden fazlaysa
21:02güven kesinlikle tesis edilemez.
21:07Formülün söylediği şey bu. O yüzden eee tüm bu blockchain eee teknik dokümanlarında her yerde bu tarz güvene dayalı bu bu problemlerde dağıtık sistemlerde 1/3 ibaresini göreceğiz.
21:18Çünkü 1/3 hain varsa güven tesis edilemiyor. Bu 1/3'ü matematiksel olarak bu Bizans generalleri probleminden bulunmuş bir oran. Şimdi bir diğer
21:33konseptimize geçiyoruz.
21:38PLP imkansızlığı denilen bir kuramı ortaya attılar 1985'te.
21:46Bu ne demek? Bu aslında matematiksel olarak bir şeyin ispatı. O da şu.
21:51Asenkron bir a'da asenkron a ne demek?
21:54Üstten örnek verelim. Şimdi ben birbirimle eee sürekli mesajlaşıyorum ya. Bunlar hep birbirleriyle aslında mesajlaşıyorlar. Birbirlerine mesaj gönderiyorlar.
22:04eee dağıtık sistemlerde böyle olur değil mi? Herkes birbirine e her şekilde mesajlarını gönderir.
22:11Şimdi böyle asenkron demek de şu ya herkes farklı zamanlarda çünkü uzaklıkları farklı aralarındaki mesajın gideceği zaman farklı, mesajı tam gönderme zamanları farklı, asenkron yani senkron hareket etmiyorlar. Farklı zamanlarda farklı uzaklıklara mesajlar
22:24göndermeye çalışıyorlar. Farklı zamanlarda geliyor dolayısıyla mesajlar.
22:28Bu FLP teoremi diyor ki bu tarz asenkron bir sistemde bir tane düğümün çökmesi düğüm dediği işte bir general veya bir insan veya sistemdeki [homurdanır] dağıtık e mimarideki bir sunucu, bir
22:41oyuncu düğüm denilen şey bu oluyor. Bir tane düğümün çökmesi deterministik karar almayı imkansız kılar. Şimdi bu ne demek? Deterministik eee karar ne demek?
22:54Yani deterministik karar demek kesin karar demek. 0 ve 1 demek. Evet ve hayır demek. Tam demek. Doğru demek. Yani ben asenkron bir sistemdeysem bir düğüm çöktüğü anda artık deterministik karar alamıyorum. Probabilistik yani
23:08olasılıksal karar alabilirim yalnızca.
23:11Çünkü şöyle bir şey var. Şimdi bu bir düğüm olsun.
23:15Bu da bir düğüm olsun.
23:17Şimdi asenkron olduğu için bir zaman kıstası bir sınırım yok değil mi? Bu mesaj bir saniyede de gidebilir, bir günde de gidebilir, bir yılda da teknik olarak gidebilir. Şimdi ben şöyle düşünürsem işte telefon açtık. Analoji
23:30yapacak olursak konuşuyoruz, konuşuyoruz. Telefonda ben konuşuyorum, konuşuyorum işte mesajı yolluyorum, yolluyorum değil mi?
23:36Konuşmam. Karşı tarafa mesaj yollamak.
23:37Yolluyorum, yolluyorum, yolluyorum karşıdan çıt çıkmıyor. Konuşmuyor abi adam. Adamdan ses alamıyorum. Bir süre sonra derim ki Allah hat mı koptu? Adama mı bir şey oldu? Mikrofonu mu bozuldu?
23:49Bir problem mi var? şey yapamam. Emin olamamaya başlarım değil mi? Bir süre sonra karşıdan bana haber gelmeye başlamayınca. Dolayısıyla süre arttıkça eee benim güven derecem olasılıksal olarak azalır karşıya. Yani bilgimin
24:04karşıya gidip gitmediğine emin olamam.
24:06Ya işte biraz daha bekleyeyim belki cevap gelir. Biraz daha bekliyorum mesela cevap verir belki diye. Biraz daha bekliyorum. Biraz daha bekliyorum.
24:12Yani bu beklemenin sınırı ne? Nerede beklersem cevap gelecek kadar beklemiş olurum?
24:18Bunu hiçbir zaman deterministik olarak, kesin olarak bilemem, değil mi?
24:22Deterministik demek şu demek işte. E mesela saat 13.30'da bana cevap geleceğini biliyorum. Yani belirli olması demek bir şeyin belirli olması, kesin olması yani eee bir plan dahilinde olması, bir bir takvim dahilinde olması,
24:36bir zaman çizelgesinin olması anlamına geliyor. Determistik olması burada olasılıksal. Biraz daha beklesem cevap gelebilir. Evet, gelmeye debilir ama yani hiçbir zaman bundan emin olamam.
24:46İşte FLP imkansızlığı bunu söylüyor.
24:49Dağıtık sistemde bir düğüm bile sorun yaşasa, çökse e ulaşılamasa ona deterministik
25:02hesaplama imkansızdır.
25:08Her şey olasılık hesabına döner diyor. Matematiksel olarak bunun ispatları var. işte ispatını yapıyor. Daha sonrasında bizim buradan anlayacağımız şey şu. Bizim sistemimizde dağıtık bir sistem olduğu için bu
25:23şekilde ve mesajlar asenkron olduğu için farklı zamanlarda belli bir çizelge dahilinde olmadığı için herkes mesaj geldiğinde başkasına yayınlıyor mesajı.
25:31Farklı zamanlarda, farklı uzaklıklarda dünyanın farklı yerlerindeki farklı internet hızlarında bu oluyor. O zaman asenkron bir ağdayız. E bir düğüm bile bir internet problemi yaşasa, bir offline olsa, bir elektrikleri gitse,
25:43bir şey olsa demek ki benim sistemim deterministik olamaz. Yani bu tarz dağıtık sistemler eee bir çizelge, bir takvime, bir kesinliğe asla ulaşamaz.
25:52Her zaman olasılıksal hareket ederler ve her zaman eee sonuç olasılıksaldır. Bunu matematiksel olarak ifade eden bir teorem bu. Şimdi gelelim konsensus algoritmalarına.
26:04Konsensus neydi? Fikir birliğine bak.
26:07Varma, uzlaşı sağlama. Şimdi bu problemleri çözmeye çalışan çeşitli algoritmalardan bahsedeceğiz. Buna PBFT denilen 1999'da bir çözüm bulal failure tolerant diye
26:20bir e algoritma. Bu temelde burada da şu 1/3 ve daha az hain varsa sistemi ben mutabakata bağlayabiliyorum
26:34dedi. Bunu da üç turlu oylama algoritması denilen bir şeyle yaptı. Şimdi algoritmanın çok detaylarına gerek yok. Yani şunu dedi.
26:44Hala 1/3 kuralı geçerli. Bu tüm algoritmalarda geçerli. 1/3 ve daha az hain varsa ben bir şekilde yüksek olasılıkta işte 95 neyse 98 90 üzeri eee olasılıklarda
26:58mutabakatı sağlıyorum. Konsensusa vardırıyorum dedi. Tamam. Peki ama şöyle bir problemimiz var. Bizim burada tanımladığımız tüm problemler kapalı devre sistemler. Yani oyuncu sayısı
27:11belli. Ne diyoruz? İşte 7 kişinin olduğu bir ortamda iki kişi hainse filan. Yani kişi sayısı belli, ortam belli, her şey belli. Yani sistem kapalı devre. Peki açık internette nasıl olacak bu?
27:26Her an bir düğüm sisteme katılabilir, çıkabilir.
27:38Tamamen serbest ortam değil mi? Açık internet. Ben bu algoritmamı internete açtığım zaman dağıtık mimari yeni bir cüzdan açılır.
27:48Yeni bir düğüm hemen girer çıkar. Yani 5 kişi var, 7 kişi var. Şu an sistemde.
27:51İşte 500.000 kişi var. 1 milyon madenci var. Madenciler de bir düğümdür. İşte bu dağıtık sistemdeki her bir oyuncu aslında bir düğüm olmuş oluyor.
28:00İstenilen kadar düğüm girer, çıkar, offline olur, elektriği gider. Yani sürekli dinamizm var, değil mi? Hep bir dinamizm var. Ben 1/3'ü geldi mi çıktı mı ya onu hesap etme onu şey yapma. eee sağlama tüm algoritmamı ona göre yazma
28:13şansım yok. Açık internette ben eee bu şeyi nasıl çözeceğim? Şimdi burada bir zaten önce atak eee tanımı var. Önce onu tanımlayalım. Cible attack denilen bir atak türü var. Cle demek ya cible
28:27bir psikolojik hastanın ismi.
28:30Bu hasta çoklu kişilik bozukluğuna sahipmiş. kendisini 11 farklı çeşit kişi gibi çeşitli zamanlarda eee rol alıyor.
28:38Yani role play gibi yapıyor ama bu kendi hissediyor bunu. Sürekli karakter değiştiriyor. Yani bir çok iyi biri oluyor, bir çok kötü biri oluyor, bir çok neşeli biri oluyor. Yani bambaşka insanlara eee evriliyor her gün gibi.
28:50Buna dair filmler vardı. Glass diye bir film vardı veya işte 46 yok olan diye de bir dizi vardı. Orada da adam iki farklı karaktere bürünüyordu. İşte gündüz farklı, akşam farklı falan gibi.
28:59İzlediyseniz bilirsiniz. Yani sibil hata şu demek aslında. Buradan geliyor ismi bu farklı karakterlerden.
29:04Abi internete açık sistem bu. Doğru. O zaman ben yeterince serbest değil mi? İstediğim kadar hemen düğün bulurum, sunucu bulurum, eee işte bilgisayar bulurum, bir şey bulurum.
29:18yeterince fazla yani sisteme giriş maliyeti düşük olduğundan yeterince fazla düğüm ile sisteme girip
29:321/3 hain çokluğuna hemen ulaşır.
29:42sistemin mutabakata, konsensusa erişmesini engelleyebilirim.
29:51Atağın olayı bu. Bu atak temelde bunu söylüyor. Sisteme giriş maliyetim eee çok düşük veya ben bir sürü bilgisayar sistemde 100 bilgisayar var değil mi? Ben hemen 50 tane bilgisayar
30:05bulup sisteme sokup, açık internet değilim ya, e maliyetim de düşük, 50 tane bilgisayar bulup hemen sisteme sokup hain sayısına 1/3 hain sayısından fazla olabildiğim için sistemin artık konsensüa erişmesini, mutabakata erişmesini engelleyebiliyorum. Buna
30:18sivil hata deniliyor. Şey gibi düşünebiliriz. Şimdi analoji vermemiz gerekirse yine mesela işte yılın en iyi öğretmeni anketi yapılıyor arkadaşlar.
30:25Herkes oy versin. İnternete açık bir anket yapılıyor. Hemen ne yapılıyor?
30:29İşte bu Tesla falan da hangi ile Tesla süper Chararjer kuralım diye bir anket yayınlamıştı mesela. Bu tarz online anketlerde Türkler ne yapıyor? Yani sadece mail hesap açıp hemen oy verebiliyorsun ya. Bir kişi 100 tane mail açıp 100 tane oy kullanabiliyor.
30:42İşte bu civil atak. Yani normalde senin bir oy kullanman lazım. Ama sisteme giriş maliyeti o kadar düşük ki hatta işte 10 dakikalık geçici email siteleri falan var değil mi? Oradan bir email alıyorsun hemen kaydolup oy veriyorsun.
30:54Bizdekiler işte yüzlerce bir kişi yüzlerce binlerce oy verebiliyor.
30:58Ayıracağı vakte göre değişir. Bu sivil hata. Sisteme girmek kolay. Herhangi bir maliyeti yok. Birazcık zaman ayırarak, birazcık kaynak ayırarak sistemi direkt manipüle edebiliyorum ve bozabiliyorum.
31:08Bunun analojisi bu. Buna sivil hatağı deniliyor. Bizim bu dağıtık sistemlerde bu sivil atağını da çözmemiz gerekiyor.
31:14Ve eee Bitcoin bu sivil atağına karşı mesela madencilik. Bu madenciler ne yapıyor? Çok fazla enerji harcıyor diyoruz değil mi? çok elektrik tüketiyor. Çok fazla böyle algoritmik işlemler yapıyor. Bu neden var? Buna proof of work deniliyor. Bu neden var?
31:28Aslında ön bilgi veriyorum şu anda.
31:30Proof of work deniliyor. Bu neden oluyor? Çünkü sisteme giriş maliyetini yükseltmek istemiş Bitcoin ki sivil atağına uğramasın. Yani sibil atağını böyle çözüyor. Senin sistemin 1/3 hain çokanna ulaşabilmen için bir sürü eee
31:42çok pahalı Bitcoin madencilik makinelerından alman lazım. Onlardan kurman lazım. Ve yetmiyor. Elektrik harcaman gerekiyor. Sistemin, tüm sistemin harcadığı elektriğin 1/3'ünden daha fazlasını senin harcaman gerekiyor.
31:55Bu zaten milyarlarca dolar yaptığı için ama karşılığında o kadar fazla bir şey alamayacağın eee için feible olmamaya başlıyor. Sibil hatağını da bu şekilde engellemiş oluyor Bitcoin. Bu videoyu burada sonlandırmış olalım çok uzamaması
32:09için. Eee, aslında temel bilgi problemi, dağıtık sistemlerdeki olasılıksal problemler bunlar. Bitcoin'in şimdi bunlara ve blockchain'i bunlara çözümleri bir sonraki eee, videoda
32:22verebiliriz. İşte burada e hash algoritmaları, kriptografi nasıl kullanılıyor?
32:28İşte demin bahsettiğim, ön bilgi verdiğim proof of work algoritmalarıyla sibil atakları nasıl engelleniyor?
32:33Burada olay şu. Sibil hatağını engelleyeceksin. Bir de hızlı bir konsensusa varma, mutabakata varma algoritması geliştireceksin ve bunu güvenilir bir şekilde inşa edeceksin. Bu problemi bu şekilde çözüyor blockchain e
32:47ve Bitcoin. Diğer videolarda da bunlara değiniriz. Teşekkür ederim. Yeah.