Medium üzerinden oku: Link
Merhaba bu benim bloğumdaki ilk yazım ve eğer sürçü lisan eylersem affola diyerek Blockchain serimin ilk yazısına başlamak istiyorum. Belki bu zamana kadar Bitcoin’den, Cryptocurrencyler’den, finans haberlerinden, sağdan, soldan adını sıkça duyduğumuz bu teknolojiyi yüksek ihtimal pek çok kez merak ettiniz, araştırdınız fakat konseptini anlamanıza rağmen, arkadaki teknolojinin nasıl çalıştığını kavrayamadınız. Bu çok normal çünkü bu teknoloji farklı ve karşılaştırabileceğiniz bir örneği yok. Bu yüzden sizden bu yazıyı sabırla okumanızı, anlamaya çalışmanızı diliyorum. Bu yazımda sizlerle öncelikle blockchain ve bitcoin teknolojisinin ne olduğunu kısa tarihi ile birlikte anlatacağım. Daha sonra ise meraklıları için bu teknolojinin nasıl çalıştığını tekniksel olarak bitcoin üzerinden sizlere aktaracağım. Bu kısımda teknik ifadeleri çokça göreceksiniz fakat; IT ile ilgili olmasanız bile okumanızı öneriyorum, belki işinize yaramayabilir ama bu devrimsel teknolojinin nasıl çalıştığını öğrenerek ufkunuzu genişletecektir. Blockchain Nedir? Bitcoin Nedir? Blockchain nasıl çalışır? Bitcoin üzerinden anlatım.
Tamamını okumak için — https://bitcoin.org/bitcoin.pdf
Bitcoin ve Blockchain’in finans sektörüne etkisi ve hatta gelecekte toplumlara varacak etkilerini burada uzun uzun anlatabilirim fakat ben fazla uzatmadan öncelikle bu teknolojinin nasıl çalıştığını sizlere anlatmak istiyorum.
Yukarıdaki görsel bir Bitcoini gönderme işleminin nasıl gerçekleştiğini anlatıyor. Biraz karışık gibi görünebilir ama bu işlemi 3 ana basamakta toplayabiliriz. -Transaction’ın yaratılması, -Transaction’ın onaylanması, -Bloğun zincire eklenmesi. 1.Transaction’ın yaratılması: Transaction türkçede işlem demek.Öncelikle Bitcoin’e sahip olabilmek ve işlem yapabilmek için bir cüzdan uygulamasına ihtiyacımız var. Bu cüzdan uygulamasını indirdiğimizde bize öncelikle açık ve gizli olmak üzere iki tane adres verir. Açık adres sizin kullanıcı isminiz gibi düşünebilirsiniz. Biri size Bitcoin göndermek için bu açık adresinize ihtiyaç duyar. Gizli adresiniz ise sadece sizin bilmeniz gereken bir şifre olarak düşünebilirsiniz. Bu adresi birine Bitcoin göndermek istediğimizde kullanıyoruz.
Örnek bir cüzdan uygulaması. Açık ve Gizli anahtarlar QR kod olarakta gösterilebiliyor. Bitcoin’de, diyelim ki Ali Ayşe’ye 2 Bitcoin göndermek istiyor. Bunu gerçekleştirmesi için cüzdan uygulamasında Ayşe’nin public adresini ve göndereceği Bitcoin miktarını girmesi yeterli. Peki arka tarafta bu cüzdan uygulaması ne yapıyor? Öncelikle bu cüzdan sizin adınıza bir transaction yaratır. Aslında bu transaction’ı bir nevi banka çeki olarak da düşünebiliriz. Nasıl ki banka çeklerinin üstünde alıcının ismi, para miktarı ve imza bulunuyorsa Bitcoin transactionlar’ı da aynı şekilde işler. Bitcoin Blockchain’inde kişilerin Bitcoin bakiyeleri tutulmaz. Kişilerin kaç Bitcoin’i olduğu daha önce adreslerine gönderilmiş Bitcoin’lerin toplamı ile belli olur. Bu durumda cüzdan uygulaması zincir üzerinde daha önce Ali’ye gönderilmiş Bitcoin’leri bulmak üzere bir araştırmaya çıkar. Bu araştırma Ali’nin göndermek istediği Bitcoin miktarına ulaşıncaya kadar devam eder.
Görselde görülen örnekteki gibi cüzdan uygulaması daha önce Ali’nin açık anahtarına gönderilmiş transactionlarını 2 Bitcoin’e ulaşana kadar bulmuş. Fakat bulduğu transactionları topladığımızda 2.5 Bitcoin yapıyor. Bu sebeple göndermek istediği 2 Bitcoin’i Ayşe’ye geri kalan 0.5 Bitcoin’i de kendi açık adresine gönderecek şekilde bir transaction yaratır. Bu transactionı yaratmamız için son aşamaya geldik: ‘İmzalama aşaması’. Bu aşamada bu transaction’ın gerçekten Ali’den çıktığının kanıtlanması gerekiyor. Bunun içinse dijital imza adında kriptografik bir yöntem kullanılır. Cüzdan uygulaması Ali’nin gizli anahtarını ve bu transaction’ı belirli bir metottan geçirerek bir imza yaratır. Bu imza gelecekte Blockchain ağı üzerindeki kişiler tarafından, bu transactionın gerçekten Ali tarafından yaratıldığını kanıtlamak için kullanılacaktır. Son olarak cüzdan uygulaması bu yaratılan transaction’ı Blockchain ağına onaylanması için gönderilir.
Eğer bu imza kendilerine ‘true’ dönerse bu transaction onaylanan transaction havuzunun içine koyulur. Bir sonraki adım ise bu transaction’ı artık zincire eklemektir.
Daha öncede söylediğim gibi tek bir blockchain zinciri ağ üzerindeki tüm node’larda aynı olacak şekilde tutulur. Bu sebeple eğer bir blok eklenecekse bunu tüm node’lara yayılması gerekir. Ve bu işlemin zor olması gerekir. Çünkü eğer blok ekleme işleminin kolay olduğunu düşünürsek herkes zincire aynı anda blok eklemeye çalışacak ve bunun sonucunda zincirde dallanmalar meydana gelecektir. Bunu engellemek için Satashi Nakamoto ‘Proof of Work’ adında bir yöntem geliştirmiştir. Bu aslında bir çeşit bilmecedir ve blok eklemek isteyen miner’ların bu bilmeceyi çözmesi beklenmektedir. Bilmeceyi ilk çözen bir sonraki bloğu eklemeye hak kazanacak ve bunun karşılığında ödül alacaktır. Öncelikle proof of work mantığının nasıl çalıştığını anlatmadan önce SHA256 algoritması nasıl çalışılır size göstermek istiyorum.SHA256 kendisine verilen bir dosyayı belirli bir algoritmadan geçirerek geri dönüşü imkansız olan 256 bit uzunlukta bir özetini oluşturur. Bu dosya örneğin bir roman veya 1 cümlede olsa bile ortaya her zaman 256 haneli tahmin edilemez hash özeti çıkacaktır.
Yukarıdaki örnekte gördüğümüz üzere ‘blockchain’ yazısını sha256 algoritmasından geçirdiğimizde karşımıza sabit uzunlukta bir hash özeti çıktı. Fakat bu ‘blockchain’ yazısının baş harfini büyük yazdığımızda yada sonuna ‘s’ harfi koyduğumuzda tamamen farklı yine aynı uzunlukta bir hash özeti çıkacaktır. Bitcoinde’ki proof of work’te ise bu bloğu yani text dosyasın içinde sizin için ayrılan proof of work numarası(nonce) diye bir bölüm var ve siz bu kısma sürekli bir sayı koyup SHA-256 algoritmadan geçiriyorsunuz. Ta ki sistemin sizden istediği örneğin ‘ilk 20 hanesi sıfır olan bir özet bul’ koşulunu sağlayana kadar. Bu sıfır olan hane sayısı daha az veya fazla da olabilir. Yine bunu sistem her iki haftada bir bu problemin çözülme süresi on dk ortalama olacak şekilde ayarlar. Eğer Blockchain ağına daha fazla bilgisayar katılmış ve problemler kısa sürede çözülmeye başlayacaktır. Sistem bu sefer ilk 22 hanesi sıfır olan bir hash özeti isteyecektir. Aşağıdaki linkten çok daha net bir şekilde bu kısmı anlayabilirsiniz. https://anders.com/blockchain/block.html Bu proof of work numarasını ilk bulan kişi cevabını ve eklemek istediği bloğu networke yayar. Network’teki kişiler yani minerlar bu cevabın doğruluğundan emin olduktan sonra bu bloğu kendi zincirlerine ekleyip bir sonraki bloğu eklemek için yarışa devam ederler. Burada eğer 2 kişi aynı anda proof of work numarası bulursa ne olur diye sorabilirsiniz. Bu durumda zincir üzerinde bir çatallanma meydana gelir. Bu durumda daha sonra eklenecek 6 bloğa kadar beklenir. Eğer 6 blok sonunda hangisi daha uzunsa o zincir temel alınarak devam edilir. Proof of work numarasını bulmak için çok fazla bilgisayar gücü harcanır. Bu sebeple blok ekleyen kişi ödüllendirilir. Bu ödül Bitcoin ilk çıktığında 50 BTC olarak belirlenmiş fakat her 210bin blokta(ortalama 4 yıl) bu ödül yarıya düşmektedir. Bitcoin mining’te buradan gelmektedir. Bitcoin sistemi ilk çıktığında sıfır Bitcoin varken blok eklendikçe verilen ödüllerle birlikte 16 milyon civarına gelmiştir. Bu ödül sistemi bölünerek en son 21 milyon da son bulacak şekilde tasarlanmıştır. Peki 21 milyona ulaştığında Minerlar yine para kazanabilecekler mi? Evet hala kazanmaya devam edeceler. Minerlar block ödülünün yanında ekledikleri transaction’ların bahşişlerini de ödül olarak kazanırlar. Bitcoin’de işlem sayısı sınırlıdır. Çünkü her bir bloğun 1 mb boyutu vardır ve sınırlı sayıda transaction sığabilir. Transaction’ı çabuk onaylanmasını isteyen kişiler yaptıkları işlemde transactionın yanına küçük bir miktar bahşiş koyarlar. Miner’lar ise ekleyecekleri transactionlar blok boyutunu doldurana kadar, bahşiş miktarı yüksek transactionları onaylayacaklardır. Bitcoin’de en olası saldırı double-spend saldırısıdır. Yani bir kişinin aynı Bitcoini aynı anda iki farklı kişiye göndererek harcamasıdır. Bu saldırıyı Bitcoin proof of work sayesinde üstünden gelir. Çünkü bu saldırıyı yapmak isteyen kişinin toplam bilgisayar gücünün en az %51 ine sahip olması gerekir. Buna sahip olsa bile sonraki 6 blok boyunca diğer miner’larla olan yarışı kazanması gerekecektir. Böyle bir saldırı yapmak çok fazla bilgisayar gücü gerektirecektir. Gerçekleşmesi çok düşük olan böyle bir saldırının maliyetini aşağıda görebilirsiniz.
https://gobitcoin.io/tools/cost-51-attack/ Miner olmak: Bitcoin’de isteseniz sizde Blockchain veritabanını indirebilir kendi bilgisayarınıza indirip, node olarak katılıp Bitcoin mine etmeyi deneyebilirsiniz. Fakat Bitcoin ağı üzerindeki bilgisayar gücünden dolayı ev bilgisayarınız ile bu işlemi yapmanız neredeyse imkansızdır. Artık Bitcoin’in bilgisayar gücünün büyük bir kısımı mining havuz şirketleri tarafından işgal edilmiştir. Bu şirketler müşterilerinin bilgisayar güçlerini kiralamakta ve elde edilen toplam Bitcoin’i müşterilerine dağıtan bir sistem.
Son olarak, Bitcoin Blockchain’in sadece küçük bir ürünü. Birçok icat, bulunduğu sektörlerden çok farklı alanlara evrildiler. Blockchain bir ödeme aracı olarak icat edildi fakat günümüzde akıllı kontratlar ile birlikte birçok alanda kullanımı başlamış durumda. Bir sonraki yazımda sizlere Blockchain’in türlerini, avantaj-dezavantajlarını, lightining network’ü, akıllı kontratları ve kullanım alanlarını anlatacağım. Sorunuz varsa lütfen sormaktan çekinmeyin. Sağlıcakla kalın.