Her zaman böylemi olacak basit bir saldırı işleri zorlaştırıyorsa birkaç yıl sonra ne olacak ya saldırılar artarsa. İnsanlar transfer bekliyorlar ve bu bitcoin adına en büyük zararı verecek şey.
Yapılan şey basit bir saldırı değil. Bu bir nevi, Bitcoin'in büyük bölümüne sahip bir kesimin "oy ağırlığını" kullanma biçimi ama bu üslubu hatalı ve agresif buluyorum.
Yani bir nevi, yapılan saldırıyı hem destekliyorum, hem de ona karşı çıkıyorum. Daha yumuşak bir saldırı yapılabilirdi belki ama demek ki, işler ciddileşti. Gene kendi altcoin tecrübelerimden bir örnek vereceğim ve biraz da ütopik olacak ama... Madem konsensus sağlanamıyor, herkes cüzdanında tuttuğu kadar bir oy ağırlığına sahip olarak bir oylama yapılsa (blockchain voting) ve bu iş öyle çözülse bence çok daha sağlıklı olabilirdi. Fork'a gerek olmadan, belki de bir side-chain oluşturulup herkes oraya 0.00000001 satoshi göndererek oy kullansa (bu yapılabilir miydi, emin değilim, teknik bilgim yok. Sadece teori geliştirdim.) yumuşak bir geçiş olurdu.
Şu andaki durum ise şunun gibi bir şey: sol kulağı sağ elle tutmaya çalışıyorlar. Altcoinlerden bir dönem benim de çalıştığım (hatta teknik olarak halen çalışanı olarak gözüküyorum oy ağırlığı yüzünden) ama problemli olan Memorycoin'de bu bahsettiğim blockchain voting özelliği vardı. hatta blockchain voting olayı başka cryptocoinlerde de var diye duymuştum, incelemedim. Konsensus ancak bu şekilde sağlanabilirdi.
Uzun lafın kısası, öncelikle saldırının altında yatan nedenleri, Bitcoin'de son dönemde artan kamplaşmaları ve çıkar çatışmalarını anlamanız gerekiyor. Konuyla ilgili İngilizce biliyorsanız reddit r/btc ve r/bitcoin (birbirine zıt iki grubun subredditleri) veya cakir'in yazılarını takip edin derim ben, başka Türkçe kaynak var mı, bilmiyorum. Ortalık o kadar karışık ki, artık haber takip edemez oldum. Yorumlarım da çok muhteşem sağlıklı olmuyor. Bitcoin'le ilgili çalışmalarımın geçici bir süreliğine fişini çektim, başka alternatifler peşinde koşuyorum. Ağ normale dönerse başlarız bir şeylere.
Geliştirdiğiniz teori malesef çok rahat speküle edilebilir. Parası olan istediği seçeneğe yüzlerce, binlerce farklı adresle btc gönderip çok rahat oy kullanır.
Bu işin çözümü gayet basit, Daha önce de yazdığım gibi Gavin'in yaptığı işler gayet doğru ve hatta 20 MB bloklu XT'yi bile destekleyebilir(d)im.
Bitcoin'in geleceğine tek başına para babaları veya tek başına madenciler KARAR VEREMEZ. Şu anda saçma sapan bulduğum bir yöntemle 2 MB blok boyutuna geçilmeye çalışılıyor. Sadece pool'lar %75'lik bir dilimle v5 blok bularak HARD FORK yapılacak gibi duruyor.
Bu durumun çok feci sonuçları olacaktır. Son 1000 bloğun 750'si yani %75'i ile Bitcoin Classic bloğu olursa sen gör şenliği.
Bitcoin Classic eğer başarılı olursa Ağın büyük bölümünü elinde bulunduran Bitcoin Core düğümleri ne olacak?
Madencilerin toplam düğüm sayısı taş çatlasa %1'i geçmez, hadi buna Classic'i destekleyip bu düğümleri çalıştıranları da ekleyelim Şu anda %22 civarında bu oran.
Peki ya geriye kalan havuzların kazdığı bloklar? Tamam 3 çinli madenci firması anlaşıp Classic'i getirebilecek güce sahip şu anda. Peki ya geri kalan %50 hash gücü? Siz bu hash gücünü ve ağın %70'ini oluşturan Core düğümleri ne yapacaksınız?
Örneğin benim çalıştırdığım düğüm(ler) 1 MB'nin üzerindeki Classic bloklarını reddedecek sadece benim düğümler değil ağın %70'i bunu yapacak. HARD FORK gelecek.
Bu geriye kalan %70'lik kısım madencilerin kararına saygı duymayıp HARD FORK ile yeni sürüme geçmezse ne olacak? Bitcoini ölçekleyelim derken bitcoin ağını 2'ye bölebilir bunlar. Böyle bir kaos 1 hafta sürse Çinli vs diğer madencilerin alacağı yaralar ne olacak?
Hangi fork'un doğru olduğuna kim karar verecek?
Blok boyutunun artırılması sadece geçici bir çözümdür, kalıcı çözüm değildir bu arada. 2 yıl sonra 2 MB bloklar dolu olduğunda ne olacak? Yine aynı kargaşalar...
Bu işin çözümü nedir?
Bitcoin sahibinin bireyler olduğu bir para birimidir değil mi? O zaman bitcoin'e sahip çıkma işi biz bireylere düşmektedir. Peki ne yapmalı? Tam düğüm çalıştıracaksın, bakın XT, Core, Classic vs çalıştırın demiyorum; Tam düğüm çalıştırın diyorum. Hangisini çalıştıracağınız size kalmış. Açın araştırın okuyun bir karar verin, benden veya bir başkasının fikirlerinden etkilenmeyin. Sizce bitcoin'in geleceği hangisindeyse onu çalıştırın. Eğer hiçbirini beğenmediyseniz kendi sürümünüzü oluşturun. (Unlimited'da istediğiniz blok boyutunu ayarlayabiliyordunuz galiba). Önce bilgi sahibi olun, sonra bitcoin'in geleceğinde söz sahibi olun.
Bir mühendis olarak benim çözümüm;
Eğer insan eliyle bir blok boyutu artırımı geliyorsa bu her zaman bitcoin için sürekli kargaşanın olduğu bir sürece yol açacaktır ve konsensus sağlanamayacaktır, dayatmalar vs olacaktır. Yıllardır maksimum blok boyutu tartışmaları sürmekte ve bir sonuca varılamamaktadır.
Twitter'dan düşüncelerimi Jeff Garzik ile paylaştığımda kendisinin de katıldığı görüş şuydu: "Dinamik sabitten iyidir".
https://twitter.com/cakirBTC/status/693232945604268032Ne demek bu? Şu anda ağdaki zorluk derecesi ağdaki hash gücüne, blokları çözen hash gücüne göre değişmekte ve her 2016 blokta bir yeniden hesaplanmaktadır değil mi? Hash gücü düşerse zorluk düşüyor, hash yükselirse zorluk artıyor. Aynı şeyi maksimum blok boyutuna uygulayabiliriz.
Jeff'in bu konudaki çekincesi şuydu: Blok boyutu madenciler tarafından manipüle edilebilir. Evet edilebilir.
Burada başka bir şeyi gündeme getirmek gerekiyor. Forumda vs hiç denk gelmediğim ve bana göre asıl olması gereken tartışma: "Min block size" Yani minimum blok boyutu. Şu anda bile 2 MB'lık bloklara geçildiği taktirde bir çözüm olmayacak bu durum. 2 MB sadece bir üst limit, çinliler şunlar bunlar yine de boş blok bulmaya devam edecekler.
Bana göre asıl önüne geçilmesi gereken durum da bu aslında "boş bloklar" konusu.
Son 13 saat içerisinde bulunan boş blok sayısı nedir? (GMT - 2 galiba bcinfo'nun saat dilimi ona göre bakalım)
https://blockchain.info/tr/blocks400606 (ana zincir) 2016-03-01 00:37:47 BTCC Pool 000000000000000003a9df35de0dfb9e3928295396702d927202c4a0f76263f7 5.19
400607 (ana zincir) 2016-03-01 00:49:36 BTCC Pool 00000000000000000061ac93b7eb9475a69aea1318739ee3b19f0f70106f9658 66.24
400610 (ana zincir) 2016-03-01 00:56:20 BW.COM 0000000000000000032baa7f0ba45e966d75ff1d39b02bb2af95cb36b62a4718 0.22
400618 (ana zincir) 2016-03-01 01:46:24 BTCC Pool 00000000000000000205153454fed455a6ef4ee2e40571ddfb89f420a2a52c33 3.15
400624 (ana zincir) 2016-03-01 03:11:56 BTCC Pool 0000000000000000031e512c8986d998225fc14101bfa65514aa485283732cff 2.63
400627 (ana zincir) 2016-03-01 03:27:48 BTCC Pool 00000000000000000443083e239bfd1bfd2fcef1ce71d88ee50885ddde114b2a 2.2
400657 (ana zincir) 2016-03-01 10:07:24 AntPool 000000000000000005af109a7cfeef45fa622ada9239b22f6fb5fb2a7f9e7fdc 0.21
Son 13 saatte bulunan boş blok sayısı: 7 (en sondaki sayılar kB cinsinden blok büyüklüğü) Ve bu 7 boş bloğun tamamı çinli madenciler tarafından bulunmuş durumda.
Bir blokta ortalama 3 bin işlem olduğunu varsayarsak 7*3k = 21.000 işlem demek.
Şu anda doğrulanmamış işlem sayısı: 33.000+ (Bu tıkanıklık 2 gün önce başladı, her gün 10larca bulunan boş bloklar dolu olsa idi bu tıkanıklığı yaşamazdık bile).
Bu boş blokları yazmamın sebebi hiç gündemde olmayan o "Min Block Size" tartışmasının anlam ve önemini vurgulamaktır.
Özetle siz istediğiniz kadar blok boyutunun en fazla değerini artırın eğer "en az blok boyutu" değerini getirmezseniz bu çinliler kolay yoldan blok bulmaya devam edeceklerdir.
Benim önerdiğim dinamik blok boyutunda işler nasıl ilerliyor?
Örnek sayılar:
Max block size= 1.000.000 Byte
Min block size= Max block size / 2
If last N block's average is more than 0.9 x Max block size
Then max block size = max block size * 2
If last N block's average is less than 0.6 x Max block size
Then max block size = max block size * 0.75
Bu algoritma özetle şunu diyor: Eğer son N sayıda (1000 olabilir, 2000 olabilir vs) bloğun doluluk oranı %90'ın üzerindeyse yeni max blok boyutu eskinin 2 katı olsun.
Eğer son N sayıda bloğun doluluk oranı %60'ın altındaysa max blok boyutu %25 azaltılsın.
Özetle dinamik boyutlandırma ile blok boyutu artıp azalabilir bu sayede blok boyutuna karar veren ne madenciler olur ne de başkaları. Blok boyutuna karar veren bitcoin ağında "işlem yapan herkes" olur. Arz - Talep'e göre blok boyutu artıp azalabilir. Bitcoin kendi kendini ölçekler. Bitcoin'i ölçeklemeye çalışanlar insanlar olduğu sürece başarısızlık her zaman masada kalacaktır.