top of page
[Ben bir sonlu karakter uzayıyım]
Levent Korkmaz
Bitcoin hesap numarasının karakterlerinin sonlu uzayı
(Ben bir soğuk cüzdanım ve tüm soğuk cüzdanlar sıcaktır.)
Ekip arkadaşlarım Anthony Boivin ve Takashi Ohno beraber Bitcoin kullanmak yeni bir proje tasarladık. Projemiz için reifd.info satın aldım. Yeni projemizde yatırım yapacak kişilerin korunması için Bitcoin hesap güvenliğiyle ilgili araştırmalar yaptım. Araştırmalarım sonucunda bulduğum güvenlik açığı ürkütücü.
Bitcoin, Ethereum,Ripple, Tüm Ethereum dao, Assets güvenlik açığından etkilendiklerini gördüm. Chain ile tasarlanmış coin ve diğerleri etkileniyor. Yani tüm Chain teknolojisi bu güvenlik açığından etkisi altında. Bu güvenlik açığı ile tüm yatırımcıların paralarının tamamı çalınabilir. Hemde yatırımcı tüm güvenlik önlemleri yerine getiriği halde.
Yatırımcımın güvenliği için reifd.info projemi durdurmak zorunda kaldım. Umarım güvenik açığı için en kısa sürede güncellemeler yapılır ve biz Projemizi yatırımcıya güvenle sunarız. Önce dürüstlük ve güvenlik sonra ticaret.
*öncelikle Bitcoin hesap güvenlikle ilgili neler yapmamız gerektiğini herkesin düşündüğü gibi düşünelim:
Bitcoin ve Ethereum hesabımın güvenlğini sağlamak için Private key numarasının güvenliğini sağlamalıyım. Hesap numaramın Private key ini güvenli bir yerde saklamalıyım . Soğuk cüdan kullanmalıyım. Electrum ile Multi -Signature wallet oluşturmalıyım. Private key’i kağıda yazdırıp güvenli bir yerde tutmalıyım. Cüzdanımı güçlü bir şifre ile korumalıyım. Paramı Birkaç hesap numarasına tutmalıyım. Cüzdanımın yedeğini almalıyım.
Şİmdi sorumuzu soralım 1) Private key numarasının güvenliği ve diğer güvenlik önlemleri benim Bitcoin, Ethereum, Ripple hesap numaralarımda bulunan paralarımın güvenlini sağlar mı?
Aslında Ripple için bu soru anlam ifade etmez. Fakat Ripple de güvenlik ile ilgili her durumda hakkında düşen güvenlik sorunlarını yaşar. Tabi tüm assets buna Ethereum ile oluşturulan asets (Dao) ler de dahildir.
Bu sorunun cevabı “kesinlikle hayır” Peki neden?
toplam 33 karakter ile Bitcoin adresi: 1 “CbtYLQY4jdQhKs3WMweRFqe93MNtPnbPh”
toplam 40 karakter ile Ethereum adresi: 0x”Bb97dC9271B097E1568bB4d24BEa7C3a28b76d44”
1234567890 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
26+26+10= 62 karakter uzayı ile Bitcoin, Ethereum, Rhesap numaraları.
Sonlu bir karakter uzayı ile (62 karakter uzayı) Bitcoin, Ethereum, hesap numaraları oluşturduğumuz için Private key numarasının güvenliği Bitcoin, Ethereum, Ripple, hesap numaralarımda bulunan paralarımın güvenliğini sağlayamaz.
Yani sonlu bir karakter uzayı ile hesap numaraları oluşturabiliriz ve bu durumda rastlantıya neden olur. Alice ve Bob cüzdanlarında rastlantısal olarak aynı hesap numarasını oluşturabilir. Bu durumda Alice Bob ‘un ya da Bob Alice nin paralarına izinsiz sahip olur.
“Tüm soğuk çüzdanlar aslında karakter uzay boşluğunda başıboş tek başına ve sıcaktır. Paralar için güvenlik yok , koruma yok.” O halde Bütün para dolu Bitcoin, Ethereum soğuk Cüzdan, sıcak Cüzdan, Ripple sıcak cüzdan hesapları sıcaktır. Aslında bir Cüzdanın sıcak ve soğuk olması bu güvenlik açığı için anlam ifade etmez.
(62 karakterli sonlu uzayda tüm hesaplar başı boş uçuşur)
Yani bir sıcak cüzdan da sonlu karakter uzayıyla oluşturulduğu için hesap üzerindeki paralar karakter uzayında başı boştur. Bu durumda Rastlantısal olarak bir başkasına ait olan Bitcoin, Ethereum, Ripple adresini oluşturulabilir ve para izinsiz başka hesaba aktarılabilinir.
“Beş cent vermeden sen de sana özel piyango çekilişi yapabilirsin. Yapman gereken hızla milyonlarca hesap oluşturmak. Belki sen dolu bir hesap oluşturamayacaksın. Fakat biri mutlaka dolu hesabı oluşturmayı başaracaktır, belki sen bir dolu hesabı olacaksın. Eğer iyilikten nasibini almış biri değilsen başkasının Bitcoin yada Ethereum hesabını boşaltıp Tanrının affına sığınacaksın.”
Bankacılık sisteminde İnternational Bank Account Number her baka için farklı tasarlanmıştır. Bir banka asla veri tabanında kayıtlı olan bir İnternational Bank Account Number sını bir başka müşterisine vermez bu olduğunda ölümcül bir hata meydana gelir. Banka çok basit şekilde bu sorunu çözer.
2) Bitcoin,Ethereum,Ripple hesap numaralarının uzunluğunu 1000 karakter uzunluğunda yaptığımızda Güvenlik sorunu çözebilir miyiz?
Bunun da cevabı kesinlikle hayır, peki neden?
Ethereum da oluşturulan hesap numaralarının hesap numarası karakter uzunluğunu 40 yapmıştır. Ethereum un hesap numaralarının tamamı 40 karakterden oluşur, o halde Alice ve Bob cüzdanlarında rastlantısal olarak aynı hesap numarasını oluşturabilir.
(not: Ethereum ya “Private key güvenliği için” ya da “rastlantı olmaması için” hesap numara uzunluğunu 40 karakter yaptı ) iki durumda da 40 karakter karakterin hiç bir önemi yok.
3) O halde karakter uzayını genişletmemiz güvenlik sorunumuz için çözüm sağlıyor mu? Bu sorunun cevabı da hayır.
Bir bakalım 1234567890 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z
Bu uzaya ilave olarak Çin 1000 kanji akliyelim ve toplam 1062 karakter uzaı olur.
Bulduğum 1000 kanji hemen alttaki adreslerde ulaşabilirsiniz.”
http://www.jaist.ac.jp/~sjittisa/kanji1000.pdf
4) Toplam 1000, 5000 yada 10.000 kanji karakter uzayı ile Bitcoin,Ethereum hesap numaraları uluşturmak bizim hesap numaramızı güvenli yapar mı?
Bu sorununda cevabı da Kesinlikle hayır, peki neden?
1- sonlu bir karakter uzayımız var, toplam (10.062 kanji) hala rastlantısal olarak iki ayrı insan aynı hesap numarasını oluşturabilir.
1000 kanji ve 62 Latin karakter uzayıyla oluşturulan Bitcoin hesap numarası: 1昼店道発物用L商圧誤委委投働i鈍毎何今s南西北外山雨聞p来読戻乱未
Peki bu güvenlik sorunumuza öneri çözüm ne olabilir?
Bizim için anlam karmaşası ve sonlu karakter uzayı sorun yatmaz diye düşünürsek: böyle bir hesap numarası az da olsa isteklerimizi karşılayabilir,
1昼店道発物用L商圧誤委委投働i鈍毎何今s南西北外山雨聞p来読戻乱未
Ne yaparsak yapalım sonlu karakter uzayına sahip olacağımızdan “Rastlantısal durum” önereceğimiz her karakter uzayı için geçerli olacaktır.
Peki Bitcoin hesap güvenlini nasıl sağlayabiliriz?
“Bu önerme Bitcoin ile hesap oluştururken kontrol noktasını koymak yada sıralı hesap oluşturmaktan ibaret.”
Bir önerme: Tüm hesap numaraları Madenciler tarafından oluşturulur. Bu durum merkeziyetçi bir yaklaşım olmaz. Sonuçta tüm süreci yine dağınık madenciler üstlenecektir.
Yeni tasarım içinde Madencinin görevleri :
1) hesapları onaylamak, güvenlik (şu anda yaptığı iş)
2) yeni hesap, hesaplar oluşturur zincire ekler
3) hesap zincirin güvenliğini sağlar
4)
5)
6)
7)
“Bir önerme”de ki kilit nokta madencilerin hesap numaralarını nasıl oluşturacağındadır. Süreç şöyle işler: kullanıcı cüzdanı açar yeni bir hesap aç butonuna tıklar mineler bir Bitcoin hesabı oluşturur.
Ya da kullanıcı cüzdanı açtığında otomatik bir şekilde madenciler bir hesap oluşturulur. Madenciler oluşturdukları yeni hesap numarasının sistem zincirine kayıtlı olup olmadığı öğrenmek için hesap zincirini tarar ve eşleşme yoksa bu oluşturulan hesap numarası Madenciler cüzdanın sahibinin kullanımına sunar.
Veya madenciler sıralı bir şekilde Bitcoin hesap numarası oluştururlar ve geriye dönüp hangi hesap numaraları oluşturulmuş diye bakmaz. Miner Oluşturulan hesap numarası cüzdanın sahibinin kullanımına sunar.
Sıralı hesap oluşturulurken kontrol noktaları gerekir mi?
“Bunu tartışmak gerekir.”
Altı yada yeni Bitcoin hesabı ücretsiz açılır, diğerler oluşturulacak Bitcoin hesapları için az da olsa kullanıcıdan ücret talep edilir. Bu şekilde aşırı hesap numarası oluşturulması engellenmiş olur.
Sıralı hesap numarasına örnek:
1MkhnXC6fkfQ3DvswfnuXXzpdwwP9KaMQD 1MkhnXC6fkfQ3DvswfnuXXzpdwwP9KaMQE 1MkhnXC6fkfQ3DvswfnuXXzpdwwP9KaMQF
0x3E3D07b8DFbb904ae63Eea9F30aedD099E484134 0x3E3D07b8DFbb904ae63Eea9F30aedD099E484135 0x3E3D07b8DFbb904ae63Eea9F30aedD099E484136
Tabi böylesi bir yol haritasının güvenlik boyutları olacaktır.
Hemen alta araştırmalarımın sonucunda rastlantıyla ürettiğim hesap numarası,
Private key:
162Ks8Z4rFiAG8XbAG7Z5JMEP37suEPirr Private key: 5K1y8cA3ewXgbUNXWGGZn2qCmJ1soQ29oc3uBgiUxwfkuDKFz6p
Bitcoin forum da Bitcoin hesap numarasını görebilirsiniz: https://bitcointalk.org/index.php?topic=156609.450
Tabi bu açığın bir de cüzdan boyutu var. Oluşturtulan cüzdanın soğuk veya sıcak oluğunun hiç bir önemi yoktur.
Bu durumda rastlantısal olarak Bitcoin hesabı oluşturabilmek için iki ayrı duruma sahibiz:
1) Bir cüzdan açıp Console den hesap oluştur komutunu yazarız.
2) cüzdanı açıp ardı ardına yeni kelime guruplarıyla hesaplar oluşturmaya başlarız.
Ben (1) i deneyerek Bir başkasına ait olan hesap numarasını oluşturdum.
Electrum ve bu tür cüzdanlar da beli bir sonlu kelime uzayı ile Bitcoin hesap numaraları oluşturur. (q) Sonlu karakter uzayının dışına çıkılmadığı için bu durum rastlantıya neden olur. Electrum ingilizce kelimelerle yeni hesap numaraları üretir. ingilizce kellimeler sonludur bu durumda rastlantıya neden olur. ingilizce sonlu kelimeler uzayından çıkıldığında bir başka sonlu kelimeler uzayına girilmiş olacaktır. Bu durumda (q) den başlayarak tekrar okuyun.
Uzun zamandır Coin ağaç gelişimini takip ediyorum. Peercoin Proof-of-stake ile büyük yenilik getirdi. Bitcoin'e Proof-of-stake eklemek büyük sorunları ortadan kaldıracağına inanıyorum. Örnek : 51 saldırılarına çözüm sağlar ve Peercoin cüzdan madencilik yapılabiliyor.
bottom of page