Daha fazla
- Cinsiyet
- Erkek
- Meslek
- Öğrenci
Bitcoin aslında hepimizinde bildiği gibi sanal bir para birimi ve bunun piyasası gerçekten çok büyük. Ben bunu paylaşırken son endeksi 640TL idi. Yani anlayacağınız 3 tanesi 1x 290X veya 1x 780Ti ediyor ki buda gerçekten değerinin çok yüksek olduğunu gösteriyor. Buyrun gelin temel teknik bilgilerine bakalım.
Teknik Bilgiler
İçerik
Bu sayfada, Bitcoin sistemini oluşturan teknolojik bileşenlerden ve bitcoin terminolojisinden bahsedeceğiz. Herşeyden önce Bitcoin teknolojisi, modern kriptoloji teknikleri üzerine inşa edilmiştir. O yüzden, kriptografi biliminde geçen temel bilgilerin ve terminolojinin iyi anlaşılması elzemdir.
Kriptografi
Temel Terminoloji
Bitcoin Ağı ve Blok Zinciri
♦ Deflasyonist yapı:Normal para birimleri, enflasyon karşısında zamanla değer kaybettikleri için 10 ve katları ile genişler (10, 100, 1000 TL gibi). Bitcoin, 21 milyon adetle sınırlı olduğu için, zamanla değer kazanmasıyla birlikte deflasyonist bir yapı sergiler ve ondalık birimlere doğru açılır. En küçük birim, 100 milyonda bir basamağı olan Satoshi’dir. Bu yapı ilk başlarda kafa karışıklığına sebep olabileceğinden kolaylık olması açısından Bitcoin ondalık değerleri şu şekilde adlandırılabilir:
Bir iş ispatı, belli bir hedefi gerçekleştiren zaman ve maliyet açısından zor elde edilen bir veri parçasıdır. Elde edilen verinin hedefi tutturduğu çok basit yollarla kontrol edilebilir olmak zorundadır. Bir iş ispatı üretimi, çok düşük olasılıklı bir rastsal süreç olabilir, böylece hedefe ulaşmak için ortalama olarak çok sayıda deneme ve yanılma yapılmasını gerektirir.
Bu fikrin bir uygulaması istenmeyen epostaları engellemek için kullanılan yöntemdir. Örneğin, her gönderilen eposta içeriğinde To: (Kime) kısmının yer alması gibi. Geçerli bir eposta göndermek isteyenler için bu işlem oldukça basit olacaktır, fakat çok sayıda spam göndermek isteyen birisi için bu iş ispatı işlemi zaman alıcı ve zorlayıcıdır.
Bitcoin’de iş ispatı, blok oluşturmak için kullanılır. Her bir bloğun verisine iliştirilmiş iş ispatı, bu bloğun ağ tarafından kabul edilmesi için zorunlu tutulur. Bu işin zorluğu, Bitcoin ağının ortalama 10 dakikada bir blok oluşturmasını sağlayack şekilde ayarlanır. Başarılı bir blok oluşturmanın olasılığı oldukça düşük olduğundan, ağda yer alan ve bir sonraki blok üzerinde çalışan hangi madencinin bu bloğu oluşturacağı önceden tahmin edilemezdir.
Bir bloğun geçerli sayılabilmesi için, blok özetinin (hash) hedef değerinden küçük olması gerekmektedir. Bu da her bir blok oluşturulmasında bu iş yükünün gerçekleştirildiğini gösterir. Her bir blok kendisinden önce gelen bloğun özetini içerir, böylece her bir blok bir blok zincirini ve hepsi birlikte yüksek oranda bir iş yükünü içerir. Bir bloğu değiştirmek (ancak bir önceki bloğu içeren yeni bir blok oluşturarak mümkündür) kendisinden sonra gelen bütün blokları tekrar oluşturmak ve içerdikleri bütün iş yükünü tekrar yapmakla mümkün olabilir. Bu yöntemle, blok zinciri üzerinde oynama yapılamayacak şekilde koruma altına alınmış olmaktadır.
KAYNAKLAR:
Alıntılanmıştır.
Eğer daha önce yayınlanmışsa özür dilerim..
Teknik Bilgiler
İçerik
- Kriptografi
- Temel Terminoloji
- Bitcoin Ağı ve Blok Zinciri
- İşin İspatı (Proof of Work) nedir?
- Kaynaklar
Bu sayfada, Bitcoin sistemini oluşturan teknolojik bileşenlerden ve bitcoin terminolojisinden bahsedeceğiz. Herşeyden önce Bitcoin teknolojisi, modern kriptoloji teknikleri üzerine inşa edilmiştir. O yüzden, kriptografi biliminde geçen temel bilgilerin ve terminolojinin iyi anlaşılması elzemdir.
Kriptografi
♦ Bir hash (Türkçe kaynaklarda özet şeklinde geçer), verilen herhangi bir sayıyı ya da string ifadeyi sabit uzunlukta bir çıktıya çeviren bir fonksiyondur. Bu çıktıdan, bütün girdi olasılıklarını tek tek denemeksizin tekrar geriye yani orijinal girdiye dönüş imkansızdır. Basit bir örnek olması açısından karekök fonsksiyonunu ele alalım. Girdi sayımız 35706 olsun. Bu sayının karekökü:
olacaktır. Hash fonksiyonumuzun çıktısı da ondalıklı kısmın son sekiz rakamından oluşan ifade olsun. Yani, 83739814 ifadesi.
Şimdi, sadece bu ifadenin elimizde olduğunu düşünürsek 35706 sayısını bulmamız bütün olasılıkları denemedikçe mümkün değildir. SHA-256 gibi çağdaş kriptografik hash fonksiyonları çok daha kompleks ve güvenli işlemlerdir. Hash ifadesi aynı zamanda bu fonksiyonun çıktısı için de kullanılır.
Kod:
188.96031329355907902688292837683938322281843283739814
Şimdi, sadece bu ifadenin elimizde olduğunu düşünürsek 35706 sayısını bulmamız bütün olasılıkları denemedikçe mümkün değildir. SHA-256 gibi çağdaş kriptografik hash fonksiyonları çok daha kompleks ve güvenli işlemlerdir. Hash ifadesi aynı zamanda bu fonksiyonun çıktısı için de kullanılır.
♦ Geleneksel bir şifreleme algoritması, gönderilmek istenen bir mesajı bir şifreleme anahtarı kullanarak okunması zor, rastgele oluşmuş gibi gözüken, geriye dönüşü olmayan yani orijinal mesajı elde etmesi imkansız (şifreyi bilen kişi hariç) bir string çıktıya dönüştüren bir fonksiyondur. Şifreleme sayesinde, özel bir verinin kamusal bir ağ üzerinden gönderiminde başka kişiler tarafından öğrenilmesi riski bertaraf edilmiş olur.
♦ Açık anahtarlı şifreleme (public-key cryptography), her bir özel anahtarın karşılığında bir açık anahtarın olduğu, bu açık anahtar kullanarak özel anahtarın elde edilemediği ve bu iki anahtardan biriyle şifrelenen verinin diğer anahtarla çözülebildiği asimetrik şifreleme yöntemidir. Böylece, gizli tek bir anahtarı paylaşma ihtiyacı olmadan sadece açık anahtarı yayınlayarak insanlar size şifrelenmiş bir mesaj gönderebilir ve bu mesajı sadece siz çözebilirsiniz.
♦ Dijital imza, bir mesaja eklenerek göndericinin açık anahtara karşılık gelen özel şifreye sahip olan kişi olduğunu gösteren imzadır. Böylece özel anahtar açığa çıkmadan bu mesajın belli bir kişiden çıktığı kesinleşmiş olur. Bu yöntem, mesajın hash’inin alınması ve bu hash’in özel anahtarla şifrelenmesi şeklinde çalışır. İmzayı kontrol eden taraf, bu şifrelenmiş hash’i açık anahtar kullanarak çözer ve sonucun mesajın hash’iyle aynı olup olmadığına bakar. Eğer mesaj bir şekilde değiştirilmiş ya da özel anahtar yanlış olursa hash’ler birbirini tutmayacaktır. Bitcoin ağının dışında, dijital imzalar bir göndericiden çıkan mesajların o kişiye ait olup olmadığını kesinleştirmede kullanılır. Kullanıcılar açık anahtarlarını internet üzerinde yayınlarlar, sonra da mesajlarını özel anahtarlarını kullanarak oluştururlar. Alıcı taraf da yukarıda anlatıldığı şekilde doğrulama yapar.
♦ Bitcoin istemcisi, bitcoinleri alma ve gönderme işlemlerini gerçekleştiren bir yazılımdır. En popüler olanı, bitcoin.org adresinden indirilebilen orijinal Bitcoin yazılımıdır. Fakat değişik özellikler ve seçenekler sunan farklı programlar da mevcuttur.
♦ Cüzdan ifadesi iki anlama gelebilir: Bitcoin adreslerinin ve bunlara bağlı olan özel anahtarların tutulduğu wallet.dat dosyası ya da sadece web tarayıcı kullanarak internet üzerinden hizmet sunan cüzdan uygulamaları olabilir.
♦ Bitcoin adresi, 1kqHKEYYC8CQPxyV53nCju4Lk2ufpQqA2 şeklinde 1 rakamı ile başlayan bir karakter dizisidir. Birisine bitcoin göndermek istediğinizde o kişiye ait böyle bir adresi bilmek zorundasınız. Bitcoin adreslerinin ve bunlara ilişkin özel şifrelerin üretilme işlemini Bitcoin istemci programları yaparlar.
♦ Özel anahtar, Bitcoin anlamında, bir adrese denk gelen anahtardır. Teknik olarak bir adres de, bu özel anahtara denk gelen açık anahtarın hash’idir. Özel anahtarlar bir dosyada tutulur ve bu adrese gelen bitcoinlerin daha sonra başka adreslere gönderilmesi (yani harcanabilmeleri) için zorunludur. Burada hatırlanması gereken bir özellik de, Bitcoin’in kullandığı şifreleme algoritması sayesinde (ECDSA) sadece özel anahtardan yola çıkarak hem Bitcoin adresi hem de açık anahtar üretilebilir.
♦ İşlem, bitcoinlerin el değiştirdiğini gösteren, alıcının bu bitcoinleri tekrar göndermesine olanak sağlayan, gönderenin ise aynı bitcoinleri tekrar göndermesinin önüne geçen ve Bitcoin ağına duyurulumu yapılan bir mesajdır.
♦ Bitcoin ağı, Bitcoin işlemlerinin duyurulduğu ve blok zincirinin devamlılığının sağlandığı bilgisayar ağıdır.
♦ Blok zinciri, şimdiye kadar yapılmış bütün Bitcoin işlemlerinin yer aldığı herkese açık bir listedir. Böylece hangi bitcoinlerin kime ait olduğu herkes tarafından bilinmiş olur. Ağ üzerinde yer alan tam teşekküllü bazı node’lar bütün blok zincirinin bir kopyasını tutarlar.
♦ Bir blok, blok zincirinin bağımsız bir birimidir. Her bir blok, kendinden önce gelen en son bloğun hash’ini, ağ üzerinde gerçekleşen bütün işlemleri ve nonce adı verilen bir sayıyı içerir. Böylece, blok zincirini ileten bir kimse birbirini tutmayan hash’ler üretmedikçe zincirden herhangi bir bloğu çıkartamaz ya da değiştiremez. Bir blok oluşturmak isteyen kimse, bu blok için belli bir seviyeden (eşik değerinden) küçük olacak bir nonce sayısı bulmak zorundadır. Bu da ancak bütün değerleri tek tek deneyerek istenen hash ifadesinin bulunmasıyla elde edilebilir. Eşik değeri ne kadar küçükse bu işlem o derece zorlaşır. Blok yaratma işleminin bilerek zorlaştırılmasının sebebi, herhangi bir işlem yapan birinin, bitcoinlerini harcadıktan sonra bu işlemi içermeyen bir blok zinciri oluşturup yaymasını böylece bu kaydın silinmesine yol açıp aynı bitcoinleri iki kere harcamasına olanak vermesini engellemektir. Geçerli bir blok oluşturulduğunda, bütün ağ içinde dağıtılır ve bir sonraki blok üzerinde çalışma başlar.
♦ Yaratılış bloğu (genesis block), 4 Ocak 2009 tarihinde yayılan blok zincirinin ilk bloğudur.
♦ Doğrulanmamış işlem (unconfirmed transaction), herhangi bir blok içinde yerini almamış işlemdir. Bir işlem, bir blok içine yerleştirilip blok zincirinin kalıcı bir parçası olduğunda doğrulanmış olur. 6 doğrulama, bu işlemin bir blokta yer aldığını ve zincirde bu bloktan sonra 5 tane daha bloğun olduğu belirtir. Böylece, bu işlemin düzgün gerçekleştiğini gösteren ilave bir güvence sağlanmış olur.
♦ Madenci (miner), blok zincirine ilave edilecek blokları üretmeye çalışan kimsedir. Bu terim aynı zamanda bu işlemi yapmak için kullanılan yazılımlar için de kullanılır. Bu kişiler, Bitcoin protokolü gereğince ödüllendirilirler. Bu ödül, geçerli bir bloğu oluşturan kişiye otomatik olarak verilen 50 yeni bitcoindir. Dolaşımda bulunan bütün bitcoinler bu şekilde oluşur.
♦ Zorluk derecesi, bir bloğun ne kadar zorlukta oluşturulduğunu gösterir (yani hedef sayısının tersi), ortalama olarak 10 dakikada bir geçerli blok oluşturulacak şekilde otomatik olarak ayarlanır.
♦ Maden havuzu (mining pool), madencilerin bir blok oluşturmak üzere birlikte çalışmalarına ve elde edilen gelirlerin eşit şekilde paylaşılmasına olanak veren bir servistir. Böylece madenciler için çok düşük bir ihtimale sahip olan 50 BTC elde etmek yerine az ama güvenilir bir gelirkaynağı oluşmuş olur.
♦ Çifte harcama, aynı bitcoinlerin iki kere harcanmasına yönelik bir girişimdir. Madenciler genellikle bunu engellerler, gene de doğrulanmamış işlemleri kabul eden kullanıcılara karşı ve %51 saldırısıyla bağlantılı olarak böyle bir girişim ihtimal dahilindedir.
♦ Oluşacak toplam Bitcoin sayısı protokol gereği 21 milyonla sınırlandırılmıştır.Seneler içinde kullanımda olacak Bitcoin sayısı aşağıdaki grafikte görülebilir. Eğimdeki azalışlar, her 210,000 blokta bir ödül miktarının yarıya düşmesinden kaynaklanıyor. Yani 50 BTC, 25 BTC, 12.5 BTC, vb. gibi.
♦ Deflasyonist yapı:Normal para birimleri, enflasyon karşısında zamanla değer kaybettikleri için 10 ve katları ile genişler (10, 100, 1000 TL gibi). Bitcoin, 21 milyon adetle sınırlı olduğu için, zamanla değer kazanmasıyla birlikte deflasyonist bir yapı sergiler ve ondalık birimlere doğru açılır. En küçük birim, 100 milyonda bir basamağı olan Satoshi’dir. Bu yapı ilk başlarda kafa karışıklığına sebep olabileceğinden kolaylık olması açısından Bitcoin ondalık değerleri şu şekilde adlandırılabilir:
Kod:
[INDENT]1 BTC = 1 Bitcoin
0,01 (yüzde 1) BTC = 1 Bitcoin sent ( [I]cBTC[/I] ya da [I]bitcent[/I] olarak da kısaltılabilir. )
[/INDENT]
[INDENT]0,001 (binde 1) BTC = 1 mili Bitcoin ( [I]mBTC ya da mbit, milibit, bitmil [/I]olarak da kısaltılabilir.)[/INDENT]
[INDENT]0,000 001 (milyonda 1) BTC = 1 mikro Bitcoin ( µBTC ya da [I]ubit[/I], [I]mikrobit[/I] olarak da kısaltılabilir.)[/INDENT]
[INDENT]0,00 000 001 (yüz milyonda 1) BTC = 1 Satoşi (Şu anki protokolde en küçük birim.)
[/INDENT]
Bu tanımlamalar Bitcoin topluluğu tarafından üzerinde tartışılan ifadelerdir. Konuyla ilgili detaylı yazışmalara şuradan ulaşabilirsiniz.
İşin İspatı (Proof of Work) nedir?
Bir iş ispatı, belli bir hedefi gerçekleştiren zaman ve maliyet açısından zor elde edilen bir veri parçasıdır. Elde edilen verinin hedefi tutturduğu çok basit yollarla kontrol edilebilir olmak zorundadır. Bir iş ispatı üretimi, çok düşük olasılıklı bir rastsal süreç olabilir, böylece hedefe ulaşmak için ortalama olarak çok sayıda deneme ve yanılma yapılmasını gerektirir.
Bu fikrin bir uygulaması istenmeyen epostaları engellemek için kullanılan yöntemdir. Örneğin, her gönderilen eposta içeriğinde To: (Kime) kısmının yer alması gibi. Geçerli bir eposta göndermek isteyenler için bu işlem oldukça basit olacaktır, fakat çok sayıda spam göndermek isteyen birisi için bu iş ispatı işlemi zaman alıcı ve zorlayıcıdır.
Bitcoin’de iş ispatı, blok oluşturmak için kullanılır. Her bir bloğun verisine iliştirilmiş iş ispatı, bu bloğun ağ tarafından kabul edilmesi için zorunlu tutulur. Bu işin zorluğu, Bitcoin ağının ortalama 10 dakikada bir blok oluşturmasını sağlayack şekilde ayarlanır. Başarılı bir blok oluşturmanın olasılığı oldukça düşük olduğundan, ağda yer alan ve bir sonraki blok üzerinde çalışan hangi madencinin bu bloğu oluşturacağı önceden tahmin edilemezdir.
Bir bloğun geçerli sayılabilmesi için, blok özetinin (hash) hedef değerinden küçük olması gerekmektedir. Bu da her bir blok oluşturulmasında bu iş yükünün gerçekleştirildiğini gösterir. Her bir blok kendisinden önce gelen bloğun özetini içerir, böylece her bir blok bir blok zincirini ve hepsi birlikte yüksek oranda bir iş yükünü içerir. Bir bloğu değiştirmek (ancak bir önceki bloğu içeren yeni bir blok oluşturarak mümkündür) kendisinden sonra gelen bütün blokları tekrar oluşturmak ve içerdikleri bütün iş yükünü tekrar yapmakla mümkün olabilir. Bu yöntemle, blok zinciri üzerinde oynama yapılamayacak şekilde koruma altına alınmış olmaktadır.
Örnek: Üzerinde çalışacağımız temel ifade “Selam dunya!” olsun. Hedefimiz ise, bu ifadeyi içeren ve SHA256 özet fonksiyonu çıktısı ’0000′ ile başlayan bir varyasyonunu bulmak olsun. String ifadeyi sonuna nonce adı verilen bir sayı ekleyerek ve her seferinde bu sayıyı artırarak değiştirebiliriz. Bu örnekte hedefimize ulaşmak için 47231 deneme yapmak zorundayız:
Kod:
[COLOR=#3A87AD]"Selam dunya!0" => b05fc163e56af30653bb6c7db7e41d6eb051201e86c11f7e31084d37d9bd853c -
"Selam dunya!1" => 9786191f361c274ae6d9bb51957e72de9f7980447aa621f5b0cce1f641b3b95b -
"Selam dunya!2" => f38275e24080da2d21d48fb3fd4af8e328b3eee39bf5aa9136184e7ae6d55610 -
"Selam dunya!3" => 7bf9c0cf4583630b931ea51ada3421ffdc7040f99ad3539317797df72f9174d9 -
"Selam dunya!4" => 38c2197d4600e9b439c612742eb10e65db438970e23d30a2c3927dc748e3f226 -
..
..
[COLOR=#333399][B]"Selam dunya!47230" => 0000217f336e69b3e8d6fe527a56cfba049a3af06d422374955043a8ce8cd4e4[/B][/COLOR] -[/COLOR]
Modern bilgisayarlarda 47231 adet işlem yapmak zor değildir. Çoğu bilgisayar saniyede 4 milyon adet özet alma işlemi yapabilir. Bitcoin ağı otomatik olarak zorluk derecesini ayarlar, böylece ortalama olarak sabit bir sürede blok oluşması için yapılması gereken iş miktarı da değiştirilmiş olur. Bir sonraki özetin olasılığı bu adresten görülebilir: http://blockexplorer.com/q/probability
Bitcoin olduğunda işler bir derece daha kompleks haldedir. Özellikle, blokta yer alan işlemleri içeren Merkel ağacı başlıkta yer almaktadır. Buna, havadan üretilen ve bizim adresimize gönderilen üretim ücretini içeren işlem de dahildir. Bu ayrıca her bir madencinin farklı bir veri seti üzerinde çalışmasını da garanti eder.
* https://en.bitcoin.it/wiki/Proof_of_work adresinden tercüme edildi.
KAYNAKLAR:
Alıntılanmıştır.
Eğer daha önce yayınlanmışsa özür dilerim..
Son düzenleyen: Moderatör: