İçindekiler:

Blok zinciri gerçekte nasıl çalışır?
Blok zinciri gerçekte nasıl çalışır?

Video: Blok zinciri gerçekte nasıl çalışır?

Video: Blok zinciri gerçekte nasıl çalışır?
Video: Nazilerin Sonu || Sovyet-Alman Savaşları || İkinci Dünya Savaşı Doğu Cephesi #3 2024, Mayıs
Anonim

Bu yazı, blok zincirinin neden icat edildiğini, kripto para birimlerinin nasıl çalıştığını ve mantık açısından neden son yılların en güzel sistemi olduğunu herkese anlatmak içindir.

Kesimin altında BÜYÜK bir metin sayfası olduğu konusunda sizi hemen uyaracağım ve kripto para birimleri konusundaki soruyu bir kez ve herkes için "kapatmaya" hazır değilseniz, hemen favorilerinize bir giriş ekleyin ve zaman ayırın)

Blockchain yeni, tuhaf, anlaşılmaz bir teknoloji ama sizin bu hikayelerinizin aksine dünyayı değiştiriyor gibi görünüyor. Görünüşe göre, uzun süredir bizimle.

Bu yazı sanki bilgisayarlardan çok uzak olan ve onları yüzeysel olarak tanıyan insanlara anlatılıyormuş gibi yazılmıştır, örneğin onun anne babanız için hazırlandığını hayal edin. Hatta bunu insan bilimleri arkadaşlarıma da verebilirim ve anlayacaklarından emin olabilirim.

Ve Oleg bu zor konuda hepimize yardım edecek. Tanışmak!

Oleg'i sevmiyorsan, onu kapı dışarı ederim.

Temel bilgiler: neden blok zincirine ihtiyacımız var?

Blok zinciri, Satoshi Nakamoto'nun "Bitcoin: A Peer-to-Peer Elektronik Nakit Sistemi" makalesinde açıklanmıştır. Orada, sadece sekiz sayfada yazar, Blockchain algoritmasına dayanan Bitcoin kripto para biriminin temellerini anlattı.

Değiştirilemeyen liste

blok zinciri - bir blok zinciri veya başka bir deyişle bağlantılı bir liste. Böyle bir listede, sonraki her kayıt bir öncekine atıfta bulunur ve böylece zincirden ilkine kadar devam eder. Bir trenin vagonları gibi, her biri bir sonrakini sürükler. Listelerle ilgili olarak, Nikita Likhachev'in TJ hakkında iyi bir makalesi var, burada tamamen yeni başlayanlar için aynı şey açıklanıyor. Analojiler kısmen oradan alınmıştır.

Bir örnek alalım

Oleg'in arkadaşları sürekli ondan borç para alıyor. Oleg kibar ama son derece unutkan. Bir hafta sonra, borcu kendisine kimin iade etmediğini artık hatırlamıyor, ancak herkese bunu sormaktan utanıyor. Bu nedenle bir gün evindeki tahtaya borç para aldığı arkadaşlarının bir listesini oluşturarak buna bir son vermeye karar verir.

Artık Oleg her zaman tahtaya gidebilir ve Max'in her şeyi iade ettiğinden emin olabilir, ancak Vanya zaten 700 ruble vermiyor. Bir gün Oleg, Vanya'yı evinde bir şeyler içmeye davet eder. Oleg tuvalete giderken Vanya “Vanya için 200 ruble ödünç aldım” girişini siler ve yerine “Vanya 500 ruble verdi” yazar.

Listesine güvenen Oleg borcu unutur ve 700 ruble kaybeder. Bir şekilde onunla savaşmaya karar verir. Geçen yıl, Oleg bir programlama kursuna katıldı ve burada hash hakkında kendisine bilgi verildi. Herhangi bir dizgenin açık bir karakter kümesine - bir karmaya dönüştürülebileceğini ve dizedeki herhangi bir karakteri değiştirmenin onu tamamen değiştireceğini hatırlıyor.

Sonuna bir nokta eklemek, son hash değerini tanınmayacak kadar değiştirdi - bunu kullanabilirsiniz.

Oleg, iyi bilinen SHA-256 karmasını alır ve onunla her kaydı hash eder ve sonuca sonucu ekler. Artık Oleg, kayıtlarını yeniden hash ederek ve yeşil olanla karşılaştırarak kimsenin kayıtlarını değiştirmediğinden emin olabilir.

Ancak EVIL IVAN, SHA-256'nın nasıl kullanılacağını da bilir ve hash'i ile birlikte girişi kolayca değiştirebilir. Özellikle hash tahtada hemen yanında yazıyorsa.

Bu nedenle, daha fazla güvenlik için Oleg, yalnızca kaydın kendisini değil, aynı zamanda önceki kaydın karmasıyla birlikte eklemeye karar verir. Şimdi aşağıdaki tüm girişler öncekilere bağlıdır. En az bir satırı değiştirirseniz, listedeki diğer tüm satırların karmalarını yeniden hesaplamanız gerekir.

Ancak bir gün Ivan gece gizlice girer, ihtiyaç duyduğu girişi değiştirir ve tüm listenin karmalarını sonuna kadar günceller. Birkaç saatini alır, ancak Oleg hala derin uykudadır ve duyamaz. Sabah, Oleg kesinlikle doğru bir liste keşfeder - tüm karmalar eşleşir. Ancak Ivan, uykusuz bir gece geçirmesine rağmen onu yine de aldattı. Kendinizi Night Ivan'dan başka nasıl koruyabilirsiniz?

Oleg bir şekilde hayatını karmaşıklaştırmaya karar verir. Şimdi, listeye yeni bir giriş eklemek için Oleg, onunla ilişkili karmaşık bir problemi, örneğin bir matematiksel denklemi çözecektir. Cevabı son karmaya ekleyecektir.

Oleg matematikte iyidir, ancak bir girdi eklemek bile on dakika sürer. Buna rağmen, harcanan zamana değer, çünkü Ivan bir şeyi tekrar değiştirmek isterse, her satır için denklemleri yeniden çözmesi gerekecek ve onlarca olabilir. Çok zaman alacaktır, çünkü denklemler her seferinde benzersizdir ve belirli bir kayıtla ilişkilendirilir.

Ancak listeyi kontrol etmek de aynı derecede basittir: önce karmaları daha önce olduğu gibi karşılaştırmanız ve ardından denklemlerin çözümlerini basit ikame ile kontrol etmeniz gerekir. Her şey birleşirse, liste değişmez.

Gerçekte, denklemlerle işler o kadar iyi değil: bilgisayarlar onları çok iyi çözüyor ve bu kadar çok benzersiz denklemi nerede saklayacaklar. Bu nedenle, blok zincirinin yazarları daha güzel bir problemle ortaya çıktılar: Böyle bir sayı (nonce) bulmanız gerekiyor, böylece tüm kaydın son hash'i 10 sıfırla başlıyor. Böyle bir nonce bulmak zordur, ancak sonuç her zaman sadece gözlerle kontrol edilebilir.

Şimdi Oleg tüm karmaları doğrular ve ayrıca her birinin belirtilen sayıda sıfırla başladığından emin olur. Güçlü bir dizüstü bilgisayarla donanmış olan Sly Ivan, bir gecede tüm karmaları yeniden hesaplamak için zamana sahip olmayacak, böylece koşulu yerine getirecekler - yeterli zaman olmayacak.

Aslında böyle bir liste, dizindeki ana blok zinciridir. Güvenliği, bu karmaların kaba kuvvet dışında bir şekilde daha hızlı hesaplanamayacağını kanıtlayan matematikçiler tarafından garanti edilmektedir. Her kayıt için bu tür karma numaralandırma, bugün hakkında çok fazla ve ayrıntılı olacak olan madenciliktir.

Güvenin merkezileştirilmesi

Arkadaşlarımız "kim kimi ödünç aldı" sahte bir liste tutma fikrini beğendi. Ayrıca barda kimin kime ödediğini ve hala ne kadar borçlu olduklarını hatırlamak istemiyorlar - her şey duvarda yazılı. Fikri tartıştınız ve şimdi herkes için tek bir listeye ihtiyacınız olduğuna karar verdiniz.

Fakat bu kadar önemli muhasebe işi kime emanet edilmelidir? Sonuçta konu para olunca güven ön plana çıkıyor. Paramızı tutmak için bilinmeyene güvenmeyeceğiz. Bunun için atalarımız, Merkez Bankası'ndan bir lisans, kanun ve sigorta ile desteklendikleri için zamanla güvenilmeye başlayan bankaları icat etti.

Arkadaş çevresinde herkes birbirine güvenir ve bu rol için en sorumlu olanı seçebilirsiniz. Ama ya soru yabancılarla ilgiliyse? Bitcoin'de olduğu gibi bütün bir şehir, ülke veya tüm dünya? Genel olarak, kimse orada kimseye güvenemez.

Ademi merkeziyetçilik: kimse kimseye güvenmiyor

Bu yüzden alternatif bir yaklaşım geliştirdiler: listenin bir kopyasını herkes için saklayın. Böylece, bir saldırganın yalnızca bir listeyi yeniden yazması değil, aynı zamanda her eve gizlice girip listeleri orada yeniden yazması gerekecekti. Ve sonra birinin evde kimsenin bilmediği birkaç liste tuttuğu ortaya çıktı. Bu ademi merkeziyetçiliktir.

Bu yaklaşımın dezavantajı, yeni girişler yapmak için diğer tüm katılımcıları aramanız ve her birini en son değişikliklerden haberdar etmeniz gerekmesidir. Ancak bu katılımcılar ruhsuz makinelerse, sorun olmaktan çıkar.

Böyle bir sistemde tek bir güven noktası yoktur ve dolayısıyla rüşvet ve dolandırıcılık olasılığı vardır. Sistemdeki tüm katılımcılar tek bir kurala göre hareket eder: kimse kimseye güvenmez. Herkes sadece kendi emrinde olan bilgilere inanır. Bu, herhangi bir merkezi olmayan ağın ana yasasıdır.

işlemler

Bir mağazadan pot satın alırken, kartınızdaki pin kodunu girerek mağazanın bankaya hesabınızda 35 ruble olup olmadığını sormasını sağlarsınız. Başka bir deyişle, bankanın onayladığı veya reddettiği pin kodunuzla 35 rublelik bir işlem imzalıyorsunuz.

"Vanya 500 ruble ödünç aldım" türündeki kayıtlarımız da işlemlerdir. Ancak, işlemlerin yazarına yetki veren bir bankamız yok. Ivan'ın "Max'in Oleg'e 100.500 ruble borcu var" girişini sessizce eklemediğini nasıl kontrol edebiliriz?

Blok zinciri bunun için genel ve özel anahtarlar mekanizmasını kullanır; BT uzmanları bunları uzun süredir aynı SSH'de yetkilendirme için kullanıyor. "Şifrelemeye Giriş" bölümünde "Güvenlik, şifreleme, siberpunk" yazısında parmaklarımda açıkladım.

Bu karmaşık ama güzel matematiğin nasıl çalıştığı hakkında kısaca: bilgisayarınızda bir çift uzun asal sayı üretirsiniz - bir genel ve bir özel anahtar. Özel anahtar, halka açık olarak şifrelenenlerin şifresini çözebildiği için süper gizli olarak kabul edilir.

Ama tersi de işe yarıyor. Açık anahtarı tüm arkadaşlarınızla paylaşırsanız, özel anahtarın sahibi siz olduğunuz için onlar için herhangi bir mesajı şifreleyebilirler, böylece sadece siz okuyabilirsiniz.

Ancak bunun yanı sıra, genel anahtarın yararlı bir etkisi vardır - bununla, verilerin şifresini çözmeden verilerin özel anahtarınızla şifrelendiğini kontrol edebilirsiniz. Tüm bu özellikler "Şifreler Kitabı"nda iyi bir şekilde açıklanmıştır.

Kimsenin güvenilemeyeceği, merkezi olmayan bir internetteyiz. İşlem özel bir anahtarla imzalanır ve ortak anahtarla birlikte özel bir depoya gönderilir - onaylanmamış işlemler havuzu. Böylece, ağın herhangi bir üyesi, onu başlatanın siz olduğunu doğrulayabilir ve başka birinin paranızla ödeme yapmak istemediğini doğrulayabilir.

Bu, ağın açıklığını ve güvenliğini sağlar. Bundan önceki bankalar sorumluysa, blok zincirinde bundan matematikçiler sorumludur.

Özel anahtarların nasıl verilip saklanacağını öğrenmek istemeyen sıradan kullanıcılar için çevrimiçi cüzdan hizmetleri yardımcı olacaktır. Uzun ortak anahtarları kopyalamak için orada uygun QR kodları yapılır. Örneğin Blockchain Cüzdan, çünkü uygun bir mobil uygulamaya sahiptir ve iki ana kripto para birimini destekler - BTC ve ETH.

"Denge" kavramının eksikliği

Panomuz gibi, blok zinciri de esasen yalnızca işlem geçmişinden oluşur. Her cüzdanın bakiyesini saklamaz, aksi takdirde ek koruma yöntemleri icat etmemiz gerekir.

Yalnızca özel anahtar, cüzdanın sahipliğini onaylar. Ama ağın diğer üyeleri, satın almak için yeterli param olduğundan nasıl emin olabilir?

Bakiyemiz olmadığı için ispatlamanız gerekiyor. Bu nedenle, bir blok zinciri işlemi yalnızca imzanızı ve ne kadar harcamak istediğinizi değil, aynı zamanda gerekli miktarda parayı aldığınız önceki işlemlere de bağlantılar içerir.

Yani, 400 ruble harcamak istiyorsanız, tüm gelir ve gider geçmişinizi gözden geçirirsiniz ve size 100 + 250 + 50 ruble verilen gelirleri işleminize eklersiniz, böylece bu 400 rubleye sahip olduğunuzu kanıtlarsınız.

Ağın her üyesi, iki kez gelir eklemediğinizi bir kez daha kontrol edecektir. Max'in geçen hafta verdiği 300 rubleyi henüz harcamadın.

Bir işleme eklenen bu tür gelirlere blok zincirindeki girdiler ve tüm para alıcılarına çıktılar denir. Tüm girdilerin toplamı, bir seferde aktarmak istediğinizle nadiren tam olarak aynıdır - bu nedenle, çıktılardan biri çoğunlukla kendiniz olacaktır. Başka bir deyişle, blok zincirindeki işlem "Bana 3 ve 2 BTC verildi, onlardan 4 BTC transfer etmek ve kalan 1 BTC'yi geri vermek istiyorum" gibi görünüyor.

Blok zincirinin güzelliği, girdilerin tek bir cüzdandan gelmesi gerekmemesidir. Sonuçta, sadece anahtar kontrol edilir. Tüm girişlerin özel anahtarını biliyorsanız, bunları kolayca işleminize ekleyebilir ve bu parayla ödeme yapabilirsiniz. Sanki bir süpermarkette pin kodunu bildiğiniz birkaç kartla ödeme yapıyormuşsunuz gibi.

Ancak özel anahtarınızı kaybederseniz, diskiniz ölürse veya dizüstü bilgisayarınız çalınırsa bitcoinleriniz sonsuza kadar kaybolur. Hiç kimse bunları yeni işlemler için girdi olarak kullanamaz.

Bu miktar sonsuza dek tüm dünya için erişilemez olacak - sanki bir yığın banknot yakmışsınız gibi. Pasaportunuzun bir kopyası ile başvuru yazabileceğiniz tek bir banka yok ve o bunu yazdıracak. Bu, "hiç yoktan var olan" yeni bitcoinlerin ek olarak serbest bırakılmasını gerektirir.

Çift harcama sorunu

Yukarıda, işlemlerin özel bir "teyit edilmemiş işlemler havuzuna" eklendiğini söyledim. Zaten hazır imzalı işlemlere sahipsek, neden bir tür ara varlığa ihtiyacımız var? Neden onları doğrudan blok zincirine yazmıyorsunuz?

Çünkü A noktasından B noktasına sinyaller her zaman gecikmeli gider. İki işlem tamamen farklı yollardan gidebilir. Ve daha önce başlatılan işlem, daha uzun bir yol aldığı için alıcıya daha sonra ulaşabilir.

Bu, aynı para iki muhataba aynı anda gönderildiğinde, tahmin bile edemeyecekleri çift harcamaya neden olur. Bu, faturaları elden ele teslim etmek değildir.

Hiç kimseye güvenilemeyen merkezi olmayan bir ağ için bu sorun özellikle akut. Bir işlemin kesinlikle diğerinden önce olduğundan nasıl emin oluyorsunuz? Göndericiden, gönderim zamanını içine dikmesini isteyin, değil mi? Ama unutmayın - kimseye güvenemezsiniz, gönderene bile.

Tüm bilgisayarlardaki zaman mutlaka farklı olacaktır ve bunları senkronize etmenin garantili bir yolu yoktur. Blok zincirinin bir kopyası ağdaki her bilgisayarda saklanır ve her katılımcı yalnızca ona güvenir.

Bir işlemin diğerinden daha erken olduğundan nasıl emin olabilirsiniz?

Cevap basit: imkansız. Merkezi olmayan bir ağda bir işlemin zamanını doğrulamanın bir yolu yoktur. Ve bu sorunun çözümü, Satoshi'nin icat ettiği ve garip bir şekilde, tam adında hecelenen üçüncü önemli blok zinciri fikridir - bloklar.

Bloklar, blok zincirinin omurgasıdır

Ağ üzerinde çalışan her bilgisayar, genel havuzdan beğendiği işlemleri seçer. Genellikle sadece kazanabileceği en yüksek komisyon için. Böylece, toplam büyüklükleri üzerinde anlaşmaya varılan limite ulaşana kadar işlemleri kendisi için toplar. Bitcoin'de bu blok boyutu sınırı 1 MB'dir (SegWit2x'ten sonra 2 MB olacaktır) ve Bitcoin Cash'de - 8 MB.

Tüm blok zinciri, esasen, her birinin bir öncekine atıfta bulunduğu bu tür blokların bir listesidir. Tüm geçmişindeki herhangi bir işlemi izlemek için kullanılabilir, blok zincirini ilk kayda kadar çözebilir.

Şimdi yüzlerce gigabayt ağırlığında olan ve ağda yer almak isteyen tüm bilgisayarlara tam olarak indirilmesi gereken bu listedir (ancak bu sadece işlem oluşturmak ve para aktarmak için gerekli değildir). Ağdaki en yakın tüm bilgisayarlardan aynı şekilde indiriliyor sanki torrentlerden dizi indiriyormuş gibi her 10 dakikada bir sadece yeni bölümler yayınlanıyor.

Havuzdan işlemleri kendisi için yazdıktan sonra, bilgisayar, yazının başında evde tahtada yaptığımız gibi aynı yenilmez listeyi oluşturmaya başlar.

Sadece o bir ağaç şeklinde yapar - kayıtları çiftler halinde hash eder, daha sonra sonuç tekrar çiftler halinde olur ve sadece bir hash kalana kadar bu böyle devam eder - bloğa eklenen ağacın kökü. Neden tam olarak bir ağaçla - Cevabı bulamadım, ama sanırım bu şekilde daha hızlı. Wiki'de daha fazlasını okuyun: Merkle ağacı.

Mevcut blok zinciri zaten indirilmiş olduğundan, bilgisayarımız içindeki son bloğun tam olarak ne olduğunu bilir. Sadece blok başlığına bir bağlantı eklemesi, hepsini toplaması ve ağdaki diğer tüm bilgisayarlara “bak, yeni bir blok yaptım, hadi onu blok zincirimize ekleyelim” demesi gerekiyor.

Gerisi bloğun tüm kurallara göre yapılıp yapılmadığını ve orada gereksiz işlemleri eklemediğimizi kontrol etmeli ve ardından zincirlerimize eklemelidir. Şimdi içindeki tüm işlemler onaylandı, blok zinciri bir blok arttı ve her şey yolunda gidiyor, değil mi?

Ama hayır. Binlerce bilgisayar aynı anda ağ üzerinde çalışıyor ve yeni bir blok oluşturur oluşturmaz, hemen hemen aynı anda herkese kendi bloklarının ilk oluşturulduğunu bildirmek için acele ediyorlar. Ve önceki bölümden, merkezi olmayan bir ağda kimin gerçekten ilk olduğunu kanıtlamanın imkansız olduğunu zaten biliyoruz.

Okulda olduğu gibi, herkes zor bir testi çözerken, mükemmel öğrencilerin bile aynı anda cevapları alması nadiren oldu.

Ancak, bir kişi için bir tatil planlamak zor bir görevse, Mayıs tatillerine girebilmek için ve deniz biletleri ucuzsa, o zaman bir bilgisayar için sonuna böyle bir sayı (nonce) eklemektir. blok böylece tüm blok için SHA-256 hash başlar diyelim 10 sıfır. Bitcoin ağına bir blok eklemek için çözülmesi gereken sorun budur. Diğer ağlar için görevler farklılık gösterebilir.

Böylece son yıllarda herkesin çok takıntılı olduğu madencilik kavramına geliyoruz.

madencilik

Bitcoin madenciliği bir tür kutsal ayin değildir. Madencilik, İnternetin derinliklerinde bir yerde yeni bitcoin bulmakla ilgili değildir. Madencilik, dünya çapında binlerce bilgisayarın bodrumlarda vızıldayarak saniyede milyonlarca sayıyı geçmesi ve 10 sıfırla başlayan bir karma bulmaya çalışmasıdır. Bunu yapmak için çevrimiçi olmalarına bile gerek yok.

Yüzlerce paralel çekirdeğe sahip ekran kartları bu sorunu herhangi bir CPU'dan daha hızlı çözer.

Neden tam olarak 10 sıfır? Ve aynen böyle, hiçbir anlamı yok. Böylece Satoshi ortaya çıktı. Çünkü bu, her zaman bir çözümü bulunan sorunlardan biridir, ancak kesinlikle uzun monoton seçenekler listesinden daha hızlı bulunamaz.

Madenciliğin karmaşıklığı doğrudan ağın boyutuna, yani toplam gücüne bağlıdır. Kendi blok zincirinizi yaratır ve evde iki dizüstü bilgisayarda kendiniz çalıştırırsanız, görev daha basit olmalıdır. Örneğin, hash yalnızca bir sıfırla başlayacak veya çift rakamların toplamı tek sayıların toplamına eşit olacak şekilde.

Bir bilgisayarın 10 sıfırla başlayan bir karma bulması birkaç on yıl alacaktır. Ancak binlerce bilgisayarı tek bir ağda birleştirir ve paralel olarak arama yaparsanız, olasılık teorisine göre bu sorun ortalama 10 dakikada çözülür. Bu, bitcoin blok zincirinde yeni bir bloğun göründüğü zamandır.

Her 8-12 dakikada bir, yeryüzünde bir kişi böyle bir hash bulur ve keşfini herkese duyurma ayrıcalığına sahip olur, böylece ilk kim probleminden kaçınır.

Bir cevap bulmak için, bilgisayar (2017 itibariyle) 12,5 BTC alır - bu, bitcoin sistemi tarafından "hiç yoktan varan" oluşturulan ve her dört yılda bir azalan ödül miktarıdır.

Teknik olarak bu, her madencinin bloğuna her zaman başka bir işlem eklediği anlamına gelir - “12.5 BTC oluştur ve bunları cüzdanıma gönder”. "Dünyadaki bitcoin sayısı 21 milyon ile sınırlı, şimdi zaten 16 milyon işe aldılar" dediğimizde - bunlar ağ tarafından üretilen ödüllerdir.

Gidin, özel sitelerden birinde gerçek bir canlı Bitcoin bloğu görün. Ayrıca girişleri ve çıkışları olan ve başlangıçta 18 sıfıra ve yukarıda açıklanan tüm karmalara sahip işlemler de vardır.

Ortaya çıkan işlemleri blok zincirine ekleyen madencilerdir. Bu nedenle, biri size "*** için bir blok zinciri yapacağını" söylerse, yanıtlaması gereken ilk soru, kimin benimkini ve neden yapacağıdır. Çoğu zaman, doğru cevap “herkes yapacak, çünkü madencilik için büyüyecek ve madenciler için karlı olan madeni paralarımızı veriyoruz”. Ancak bu, tüm projeler için geçerli değildir.

Örneğin, bazı Sağlık Bakanlığı yarın doktorlar için kendi kapalı blok zincirini yaratıyor (ve istiyorlar), kim çıkaracak? Hafta sonu terapistleri?

Ancak daha sonra, ödüller ortadan kalktığında veya yetersiz hale geldiğinde madencilere ne faydası olacak?

Yaratıcının fikrine göre, o zamana kadar insanlar bitcoinin gerçekliğine inanmak zorunda kalacaklar ve madencilik her işleme dahil edilen ücretlerin miktarını ödemeye başlayacak. Her şeyin gittiği yer burası: 2012'de tüm komisyonlar sıfırdı, madenciler yalnızca bloklardan elde edilen ödüller için madencilik yaptı. Bugün, sıfır komisyonlu bir işlem birkaç saat havuzda bekleyebilir, çünkü rekabet vardır ve insanlar hız için para ödemeye hazırdır.

Yani madenciliğin özü anlamsız problemleri çözmektir. Bütün bu güç daha faydalı bir şey için kullanılamaz mı - örneğin kansere çare aramak için?

Madenciliğin özü, herhangi bir hesaplama problemini çözmektir. Bu görev, ağ katılımcılarının istikrarlı bir yanıt bulma olasılığına sahip olmaları için yeterince basit olmalıdır - aksi takdirde işlemler sonsuza kadar onaylanacaktır. Bir mağazadaki kasada, bankanın işleminizi onaylaması için her seferinde yarım saat beklemeniz gerektiğini hayal edin. Kimse böyle bir banka kullanmaz.

Ancak görev aynı zamanda zor olmalı ki tüm netizenler cevabı hemen bulamasın. Çünkü bu durumda aynı işlemlere sahip birçok bloğu ağa ilan edecekler ve bahsettiğim "çifte atık" ihtimali olacak. Ya da daha da kötüsü - tek bir blok zincirini, hiç kimsenin hangi işlemin onaylanıp hangisinin onaylanmadığını anlayamadığı birkaç şubeye bölmek.

Her 10 dakikada bir 12,5 BTC'lik bir ödül verilirse ve bloğu bulan yalnızca bir kişi olursa, bir gün 40.000 dolar düşeceğim umuduyla birkaç yıl boyunca ekran kartlarını boşa harcamam gerektiği ortaya çıkıyor (en çok cari döviz kuru)?

Bitcoin için durum tam olarak bu. Ama her zaman böyle değildi. Önceden, ağ daha küçüktü, karmaşıklık daha düşüktü, bu da yeni bir blok için tek başına bir karma bulma olasılığının daha yüksek olduğu anlamına geliyor. Ama o zaman bitcoin o kadar pahalı değildi.

Artık kimse tek başına bitcoin madenciliği yapmıyor. Şimdi katılımcılar özel gruplarda birleşiyor - herkesin birlikte doğru hash bulmaya çalıştığı madencilik havuzları.

Gruptan en az biri bulursa, ödülün tamamı ortak çalışmaya katkılarına bağlı olarak katılımcılar arasında bölünür. Madencilik yaptığınız ortaya çıkıyor ve her hafta toplam paydan bir kuruş alıyorsunuz.

Ancak diğer ağlarda solo madencilik oldukça mümkündür. Yakın zamana kadar, blokların her 10 saniyede bir bulunduğu Ethereum madenciliği yapmak kolaydı. Orada blok ödülü çok daha düşük, ancak güzel bir kuruş kazanma olasılığı daha yüksek.

Yani boşuna binlerce ekran kartını yakacağız ve çıkış yolu yok mu?

Evet, ama fikirler var. Tanımladığım madencilik klasiktir ve Proof-of-Work (iş kanıtı) olarak adlandırılır. Yani her makine, verilen bir olasılıkla anlamsız problemleri çözerek ağın yararına çalıştığını kanıtlar.

Ancak bazı adamlar diğer madencilik türleriyle blok zincirleri yapmaya başlıyor. Şimdi ikinci en popüler konsept Proof-of-Stake'dir (hisse kanıtı). Bu tür madencilikte, bir ağ katılımcısının hesabında ne kadar çok "para" varsa, bloğunu blok zincirine ekleme olasılığı o kadar yüksek olur. Köyün en gürültülü adamı gibi.

Diğer madencilik türlerini düşünebilirsiniz. Daha önce önerildiği gibi, ağdaki tüm bilgisayarlar kanser için bir tedavi arayabilir, yalnızca bu durumda sisteme katkılarını nasıl kaydedeceğinizi bulmanız gerekir. Sonuçta, ben de katıldığımı söyleyebilirim, ancak video kartımı kapatın ve hiçbir şey sayılmaz.

Her katılımcının kansere çare bulmaya katkısını nasıl ölçüyorsunuz? Aklınıza gelirse - CancerCoin'inizi kesmeye cesaret edin, medyada bir yutturmaca size garanti edilir.

blok zinciri

Tüm olasılık teorimize rağmen, iki madencinin aynı anda doğru cevabı bulmayı başardığı bir durum hayal edin. Ağ üzerinden kesinlikle doğru iki blok göndermeye başlarlar.

Bu blokların farklı olması garantilidir, çünkü havuzdan mucizevi bir şekilde aynı işlemleri seçseler, kesinlikle aynı ağaçları yapsalar ve aynı rastgele sayıyı (nonce) tahmin etseler bile, her biri cüzdan numarasını yazacağından, karmaları yine farklı olacaktır. ödül için blok.

Şimdi iki geçerli bloğumuz var ve yine kimin önce düşünülmesi gerektiği sorunu ortaya çıkıyor. Bu durumda ağ nasıl davranacak?

Blok zinciri algoritması, ağ katılımcılarının kendilerine ulaşan ilk doğru yanıtı kabul ettiğini belirtir. Sonra kendi dünya resimlerine göre yaşarlar.

Her iki madenci de ödüllerini alacak ve geri kalanlar, kişisel olarak aldıkları son bloğa güvenerek, geri kalanları atarak yeniden doğru olan madenciliğe başlayacaklar. Doğru blok zincirinin iki versiyonu ağda görünür. Paradoks böyledir.

Bu, olasılık teorisinin tekrar yardımcı olduğu rutin bir durumdur. Ağ, madencilerden biri bu zincirlerden birinin sonraki bloğunu bulana kadar böyle çatallanmış bir durumda çalışır.

Böyle bir blok bulunup zincire eklendiği anda, uzar ve blok zinciri ağının anlaşmalarından biri dahil edilir: her koşulda, en uzun blok zinciri tüm ağ için tek doğru blok zinciri olarak kabul edilir.

Kısa zincir, tüm doğruluğuna rağmen, ağdaki tüm katılımcılar tarafından reddedilir. Ondan yapılan işlemler havuza iade edilir (başka bir yerde onaylanmadıysa) ve işlemleri yeniden başlar. Madenci, bloğu artık mevcut olmadığı için ödülünü kaybeder.

Ağın büyümesiyle, "pek olası olmayan" bu tür tesadüfler "peki, bazen olur" kategorisine girer. Eski zamanlayıcılar, aynı anda dört bloktan oluşan bir zincirin düştüğü durumlar olduğunu söylüyor.

Bu nedenle, üç zincir sonu güvensizlik kuralı icat edilmiştir:

1. Madencilik ödülleri, ancak alındıktan sonra 20 onaylanmış bloktan sonra kullanılabilir. Bitcoin için bu süre yaklaşık üç saattir.

2. Size bitcoin gönderilmişse 1-5 bloktan sonra yeni işlemlerde girdi olarak kullanabilirsiniz.

3. Kural 1 ve 2, her istemcinin ayarlarında ayrıntılı olarak belirtilmiştir. Kimse onların riayetini izlemiyor. Ancak, sistemi zorlamamak için kandırmaya çalışırsanız, en uzun zincir yasası yine de tüm işlemlerinizi silecektir.

Blockchain'i aldatmaya çalışmak

Madencilik, blok zincirinin aygıtı ve en uzun zincirin kuralı hakkında her şeyi bildiğinize göre, bir sorunuz olabilir: en uzun zinciri kendiniz yaparak ve böylece sahte işlemlerinizi onaylayarak bir şekilde blok zinciri özel olarak geçmek mümkün mü?

Diyelim ki dünyadaki en güçlü bilgisayara sahipsiniz. Google ve Amazon veri merkezleri emrinize amade bir araya getirilmiş ve ağdaki en uzun blok zinciri olacak böyle bir zinciri hesaplamaya çalışıyorsunuz.

Zincirin birkaç bloğunu alıp hemen hesaplayamazsınız, çünkü sonraki her blok bir öncekine bağlıdır. Ardından, diğer tüm katılımcıların ana blok zincirini artırmaya nasıl devam ettiğine paralel olarak, devasa veri merkezlerinizdeki her bloğu mümkün olduğunca çabuk saymaya karar verirsiniz. Onları geçmek mümkün mü? Muhtemelen evet.

Bilgi işlem gücünüz, tüm ağ katılımcılarının gücünün %50'sinden fazlaysa, %50 olasılıkla, diğerlerinin toplamından daha hızlı daha uzun bir zincir oluşturabilirsiniz. Bu, daha uzun bir işlem zinciri hesaplayarak blok zincirini kandırmanın teorik olarak mümkün bir yoludur. O zaman gerçek ağın tüm işlemleri geçersiz sayılacak ve tüm ödülleri toplayacak ve kripto para birimi tarihinde "blockchain bölümü" olarak adlandırılan yeni bir dönüm noktasına başlayacaksınız. Bir zamanlar koddaki bir hata nedeniyle Ethereum'da durum böyleydi.

Ancak gerçekte hiçbir veri merkezi, dünyadaki tüm bilgisayarların gücü açısından karşılaştırılamaz. Buzlu bir buçuk milyar Çinli, madencilik çiftlikleri ve ucuz elektriği olan bir buçuk milyar aç Hintli - bu çok büyük bir bilgi işlem gücü. Dünyada henüz kimse onlarla tek başına rekabet edemez, hatta Google bile.

Bu, sokağa çıkıp dünyadaki herkesi doların artık 1 ruble değerinde olduğuna ve medya sizi ifşa etmeden önce zamanında geldiğine ikna etmeye çalışmak gibidir. Ve herkesi ikna etmeyi başarırsanız dünya ekonomisini çökertebilirsiniz. Teoride, mümkün değil mi? Ancak pratikte, nedense kimse başarılı olmadı.

Blok zinciri de bu olasılığa dayanmaktadır. Daha fazla katılımcı-madenci, ağda daha fazla güvenlik ve güven. Bu nedenle, Çin'de başka bir büyük madencilik çiftliği kapatıldığında, oran çöküyor. Herkes, dünyanın herhangi bir yerinde ~% 49 kapasitede bir madenci havuzu toplamış olan kötü bir dahi olduğundan korkuyor.

Çözüm

Blockchain kesin olarak tanımlanmış bir algoritmalar dizisi değildir. Katılımcılar arasında kimsenin kimseye güvenemeyeceği sahte bir ağ kurmaya yönelik bir yapıdır. Okurken muhtemelen birden fazla kez “bunu böyle yapabilirsin, daha da faydalı olacak” düşüncesine kapıldınız. Bu, blok zinciri anladığınız anlamına gelir, tebrikler.

Dünyadaki bazı adamlar da bunu anladı ve bazı belirli görevler için geliştirmek veya uyarlamak istedi. Kripto para birimleri aynı değildir, ancak birçoğu da vardır. Blok zinciri fikrinin yeniden düşünülmesi sayesinde biraz popülerlik kazanan bazı fikir ve projelerin kısa bir listesi.

Ethereum

“Ethers”, Bitcoin'den sonra kripto-hype haberlerinde duyduğunuz en popüler ikinci kelimedir. Sıradan insanlar için bu başka bir kripto para birimi ve ICO denilen en popüler şeyi yapmanın bir yolu. Sitedeki geliştiriciler, Ethereum'u "ihtiyaçlarınız için bir blok zinciri oluşturucu" olarak tanımlıyor. Bu da mümkündür, evet.

Ancak daha da derine inerseniz, eter sadece bir madeni para ağı değildir. Bu, kullanıcıların diğer insanların programlarının (akıllı sözleşmeler) kodunu çalıştırdığı ve yürütülen her satır için bir ödül aldığı devasa bir küresel bilgi işlem makinesidir. Ve tüm bunlar merkezi olmayan, yok edilemez ve blok zincirinin tüm garantileriyle birlikte.

Ethereum ve akıllı sözleşmeler hakkında o kadar uzun konuşabiliriz ki, böyle bir yazı için yeterli olacaktır. Bu nedenle, en iyi blog yazarlarının tarzında hareket edeceğiz: Bu gönderi aktif olarak yeniden yayınlanır ve retweetlenirse ve Cuma gününe kadar en az 1.500 benzersiz görüntüleme alırsa, Ethereum ve akıllı sözleşmeler hakkında bir devam filmi yazacağım.

Önerilen: