Ethereum akıllı sözleşmeleri büyük boşluklarla patladı ve yeni teknolojilerin uygulanması "gecikebilir"

Blockchain teknolojisi hakkında biraz bilgi sahibi olan herkes bilir ki Blok zincirinin varlığının temeli, sistemdeki işleme dahil olan herkesin dijital varlıkların mülkiyeti konusunda bir fikir birliğine varması gerektiğidir. Genel olarak, blockchain, sistemdeki işlemleri kodlayan ek bir defterdir.Dijital varlıkların mülkiyeti konusunda bir fikir birliğine varmanın yanı sıra, blockchain teknolojisine dayalı herhangi bir uygulama yürürlüğe girmelidir ve tatmin etmek önemlidir İki puan, Birincisi, her işlemin geçerli olması gerektiği, diğeri ise geçmiş işlem geçmişinin değiştirilemeyeceğidir.

Ancak, işlemin geçerli olduğundan emin olmak için önceden kararlaştırılmış belirli bir kural izlenmelidir. Gerçek dünyada, her tür işlem, ilgili yasal şartlar A ve B'ye bağlıdır. Bilgisayar dünyasında, ünlü Amerikalı bilim adamı Lawrence Lessig'in önerdiği gibi "Kod kanundur" Kod yazıldıktan ve çalıştırıldıktan sonra asla geri dönüştürülemez. Bu, bazı özel uygulama senaryolarında blok zincirinin karşılaştığı durumu biraz açıklayabilir.

Örnek olarak Bitcoin istemcisini ele alalım: İstemcinin şu anda yaklaşık 30.000 satır kodu var ve mevcut endüstri standartları her yüz satır kodda bir hataya izin veriyor. Teorik olarak, Bitcoin istemcisinde 300 hata olsa bile, endüstri kurallarına uygundur. Ancak durum böyle değil. 2010 yılının Ağustos ayında, tamsayı taşma güvenlik açığını kullanarak 184 milyar bitcoin'i (bitcoin'in başlangıç limiti sadece 21 milyondu) neredeyse tamamen yok etti.

Bu nedenle, blok zinciri teknolojisinde, birleşik bir dış teknik dokümantasyon eksikliğinden dolayı, "kural olarak kod" genellikle başarısız olur ve hatta şimdiye kadarki en güvenli kabul edilen Ethereum mimarisi bile aynı sorunla karşı karşıya kalır.

Ethereum sadece dört yıldır doğmuş olsa da, insanlar blockchain teknolojisi hakkında daha fazla şey öğrendikçe Ethereum'un popülaritesi giderek arttı. 2017'de bile Ethereum, blockchain 2.0 çağının altında yatan en önemli açık kaynak sistemi olarak kabul edildi. Ancak son araştırmalar gösteriyor ki Ethereum mimarisine dayanan, "en güvenli, en güvenilir ve en uygun" olarak adlandırılan akıllı sözleşme teknolojisi, boşluklarla doludur.

Yeni araştırma, akıllı sözleşmelerdeki büyük boşlukları ortaya koyuyor

Hepimizin bildiği gibi, akıllı sözleşmeler Ethereum blok zincirinde saklanır. Ama bu aynı zamanda, Blockchain ile ilgili bir sorun olduğunda, akıllı sözleşmeye dahil olan işlem bilgileri de dahil edilecektir. . Blok zinciri, esasen, işlem bilgilerinin yanlış gitmemesini sağlamak için kriptografi ve bilgisayar ağlarını kullanan paylaşılan bir defterdir.

Bununla birlikte, akıllı sözleşmenin yürütülmesi sırasında, hesap NULL ise (yani, hesap yoksa), akıllı sözleşme bu işlem için bir hesap oluşturacak ve sözleşmeyi projeye yazacaktır. Sanal makine, sözleşmedeki ikili bayt kodunu çalıştırarak sözleşmenin yürütülmesini gerçekleştirir. Başka bir deyişle, akıllı sözleşmeler kripto para birimleri oluşturmak için kullanılabilir. Örneğin, Huobi'nin HT'si, Ethereum akıllı sözleşmeleriyle oluşturuldu.

Şekil Huobi HT

Bununla birlikte, University College London'da (UCL) bilgisayar bilimi doçenti olan Ilya Sergey tarafından yazılan "Açgözlü, Savurgan ve İntihar Sözleşmeleri Ölçeğini Bulmak" adlı en son araştırma makalesinde, Sözleşme başına 10 saniyelik analiz süresi ile yaklaşık 1 milyon akıllı sözleşme analiz edildikten sonra, 34.200 akıllı sözleşmenin hacker saldırılarına karşı savunmasız olduğu bulundu. Aynı zamanda, 3759 akıllı sözleşmeyi örneklediler.Aralarında, 3686 akıllı sözleşmenin% 89 boşluk içerme olasılığı var.

Kağıt indirme adresi: https://arxiv.org/pdf/1802.06038.pdf

Ek olarak, araştırmalar kanıtladı Ethereum'un Parity cüzdan güvenlik açığı, kullanıcıların elektronik varlıklarını Ethereum'da kilitli hale getiriyor ve Ethereum'daki toplam kilitli varlık miktarı 200 milyon ABD dolarına ulaştı. Aslında, Kasım 2017'de medya, bazı Ethereum akıllı sözleşme kullanıcılarının yanlış işlemesi nedeniyle 300 milyon ABD dolarının Ethereum'da kalıcı olarak dondurulduğu haberini verdi.

Araştırmacılar, bu güvenlik açıklarının:

Prodigal Sözleşme : İşlem fonları sahibe, tüccarın geçmişte Ethernet'e gönderdiği adrese ve güvenlik açığı nedeniyle belirli adrese iade edilir. Bu tür bir boşluk boş bir eldivenli beyaz kurt gibidir, alıcılar mal alır, ancak satıcılar kripto para alamaz.

İntihar sözleşmesi : Akıllı sözleşmenin sahibi, WeChat'teki para çekme seçeneğine benzer şekilde, Ethereum başarısız olduğunda geri çekmeyi seçebilir. Ancak bu talimat başkaları tarafından da yürütülebilir ve işlemin başarısız olmasına neden olur.

Açgözlü sözleşme : Bu, Ethereum'da sonsuza kadar kalan akıllı sözleşmeleri ifade eder.Yukarıda bahsedilen Parite güvenlik açığı bir tür açgözlü sözleşmedir.Akıllı sözleşmeye dahil olan emtiaları ve kripto para birimlerini Ethereum'da kilitler ve taraflardan hiçbiri alamaz veya alamaz. iptal etmek.

Sözleşme yapacak : Tamamlanan veya kapatılan bu akıllı sözleşmelerde, kodları ve global değişkenleri açıklığa kavuşturulmasına rağmen bazıları halen yürütülüyor. Açgözlü sözleşme gibi, irade sözleşmesi de Ethereum'un hatalarından kaynaklanır ve bilgisayar korsanları tarafından istismar edilemez.

Şekil MAIAN aracı

Bu dört güvenlik açığı en temsilci olanlardır, ancak Ethereum akıllı sözleşmelerinin tüm güvenlik açıkları değildir. Araştırmacılar, kendi yaptıkları MAIAN aracıyla bu dört güvenlik açığını içeren akıllı sözleşmeleri tespit etseler de bir çözüm bulamadılar.

Bu sayede geleneksel finansal işlem modeli akıllı sözleşmelerden daha zahmetli olsa bile, boşlukları büyük ölçüde önleyebilir ve işlemleri daha güvenli ve güvenilir hale getirebilir.

Akıllı sözleşme nedir?

Sonra, Bay DT okuyucular için popüler bir bilim olacak. Ethereum, halka açık zincire dayalı dağıtılmış bir bilgi işlem platformudur ve aynı zamanda merkezi olmayan bir sanal ana bilgisayar sağlar. Ethereum beş katmana ayrılmıştır:

Veri katmanı : Adından da anlaşılacağı gibi veri katmanı, Ethereum'daki en temel veri yapısını ve hesap şifreleme algoritmasını içerir ve bu katman aynı zamanda Ethereum'un temel bir parçasıdır.

Ağ katmanı : Ethereum'daki her düğümün veri iletimini doğrulamak için kullanılır.

Konsensüs katmanı : İş yüküne göre fikir birliği mekanizmasını korumak için kullanılır.

Teşvik katmanı : Teşvik mekanizmasını korumak için kullanılır ve esas olarak düğümleri, Ethereum'un çalışmasını bağımsız olarak benimsemeye ve sürdürmeye teşvik etmekten sorumludur.

Sözleşme katmanı : Ethereum'un benzersiz yapısı, Turing tam kodlama dilini içine alan sanal bir makinedir.Uygulamaların ademi merkeziyetini gerçekleştirmek için bir komut dosyası dili yazarak Ethereum blok zincirinde akıllı bir sözleşme olarak kullanılabilir.

Akıllı sözleşme, sözleşme katmanında otomatik olarak çalışabilen iş mantığına sahip bir tür koddur ve Ethereum'un sanal makinesinde çalışır. Akıllı sözleşme kodu, yığın bayt kodunu temel alan düşük seviyeli bir dildir ve her bayt farklı bir işlemi temsil eder. Genel olarak konuşursak, kodun yürütülmesi sonsuz bir döngüdedir ve çalışması yalnızca kod yürütmeyi bitirip talimatı kesintiye uğrattığında durdurulabilir.

Şekil Merkezi olmayan mimari

Ethereum sanal makinesi, işlem kodlarını çalıştıran motordur.Bu aynı zamanda Ethereum blok zinciri ile diğer blok zincirleri arasındaki en büyük farktır. Bir sandbox gibi tamamen bağımsız değildir, yani akıllı sözleşme kodu bir sanal makinede çalıştığında, bir ağ ve dosya sistemi gerektirmez.

Ayrıca akıllı sözleşmelerin yürütülmesinde sözleşme hesaplarının rolü de çok kritiktir. Hesabın adresi, sözleşmenin kurulduğu zamana bağlıdır Ethereum sanal makinesi çalışırken, hesabın hesaplama durumu block_state ve transaction gibi tuple'lar ile tanımlanabilir. Program yürütüldüğünde demet verilerinin değiştirilmesi yoluyla (block_state, tüm hesapların global bilgilerini içerir), akıllı sözleşmenin yürütme süreci gerçekleştirilir.

Akıllı sözleşme, uygulama açısından geleneksel finansal modeli geliştirebilen bir teknolojidir, yukarıda bahsedilen ağ mimarisi ve sanal elektronik para birimi ile değer transferi sürecini basitleştirir. Muhtemelen üç adım olarak anlaşılabilir:

1. Bir blok zincirine bir mesaj gönderir ve mesajdaki bir işlemi tanımlar;

2. B işlem bilgilerini ağ yayını yoluyla kabul eder;

3. Blockchain ağ doğrulaması, işlemi tamamlayın.

Başka bir deyişle, akıllı sözleşmelerin ilkesi "filleri buzdolabına koymak" ile benzerdir. Geleneksel finansal modelde, işlemin her iki tarafının da denetim merkezinden geçmesi gerekirken, akıllı sözleşmeler, uygun işlemlerin amacına ulaşmak için finansal denetimi atlamak için blok zincirinin dağıtılmış defterini kullanabilir. Merkeziyetsizleştirme ".

Ethereum'da akıllı sözleşmeler ikili bayt kodundan oluşur ve kullanılan programlama dili Solidity'dir. Ethereum, akıllı sözleşmeyi derler ve bunu blok zincirinde saklar, böylece yukarıdaki bilgilerde tanımlanan işlemi gerçekleştirir.

Akıllı sözleşmeler gerçekleştirilebilir mi?

Aslında Ethereum da her geçen gün gelişiyor. Tam bir akıllı sözleşme geliştirmek zaman alır.

Ethereum'un ademi merkeziyetçiliğinin özü, Turing'in eksiksiz betik dilini çalıştırabilmesidir ve Ethereum akıllı sözleşmeleri geliştirmek için dört dil vardır: Yılan, Sağlamlık, Mutan, HBÖ . Bu dillerin tümü düşük seviyeli tasarım dilleridir. Şu anda, Solidity tercih edilen dildir çünkü yerleşik Serpent dilinin tüm özelliklerine sahiptir ve sözdizimi yaygın olarak kullanılan JavaScript'e benzer. Solidity'nin daha az dil özelliğine sahip olduğu gerçeğiyle birleştiğinde, dil daha basit bir şekilde eksiksiz bir akıllı sözleşme sistemi uygulayabilir.

Merkezi olmayan blok zinciri uygulamaları genellikle DApp'lerdir Akıllı sözleşmelerden ve arka uç kodundan oluşur. DApp'de, tüm hizmetler ve mantık blok zinciri üzerinde çalışır; bu, DApp'ın yalnızca ön uç uygulamaları tasarlaması değil, aynı zamanda Ethereum'a dayalı akıllı sözleşme kodu geliştirmesi gerektiği anlamına gelir.

Şekil DApp ve akıllı sözleşme arasındaki ilişki

Bu akıllı sözleşme kodları, JsonPRC şeklinde çağrı için uygulamaya verilir.Bu anda, akıllı sözleşme, Ethereum'daki transfer işlemi gibi tüm düğümlere yayınlanır, bu düğümlere adı verilen akıllı sözleşme ABI'yi çalıştırmaları için bildirimde bulunur ve ardından ABI olarak adlandırılanların her biri düğümün sanal makinesinde çalışacaktır. Son olarak, işlem süreci ve sonuçları blok zincirinin oluşturulması yoluyla blok zincirine paketlenir ve tüm ağ blok zincirinin senkronizasyonu yoluyla birleştirilir.

Başka bir deyişle, boşluklar olmadan akıllı bir sözleşme uygulamak istiyorsanız, geliştirme adımları anahtardır. 4 Mart 2018 itibarıyla, açık kaynak topluluğundaki en popüler DApp geliştirme aracı, tarayıcı sağlamlığıdır. Sadece adını duyarak, tarayıcı tabanlı bir araçtır.Kullanıcılar çevrimiçi olarak akıllı sözleşme kodu yazabilir ve aynı zamanda ikili bayt kodunda derlenebilir ve kullanıcının blok zincirine dağıtılabilir.

Şekil tarayıcı sağlamlığı geliştirme arayüzü

Şu anda Solidity'nin sürümü 0.4.21 ve sürüm numarasına bakarak hala test aşamasında olduğunu görebilirsiniz. Bu aynı zamanda geliştirme aracı tarayıcı sağlamlığının da olgunlaşmamış olduğu anlamına gelir, bu da DApp'lerde güvenlik açıklarına yol açar ve sonuçta akıllı sözleşmeleri etkiler. Ancak Solidity'nin güncelleme hızı, blok zincirini takip eden sermaye kadar hızlı değil.Akıllı sözleşme çok erken devreye alınırsa, kaçınılmaz olarak çok fazla ekonomik kayba neden olacaktır.

Ek olarak, blockchain ile sorunları olan sadece sözleşme katmanı değildir. Konsensüs katmanını örnek olarak alın: Ethereum, ağ üzerinde fikir birliği sağlamak için çok fazla karma işlemi gerektiren bir PoW fikir birliği mekanizması kullanır. Hesaplama gücü israfına neden olacak ve ittifak zincirinde mekanizmanın güvenilirliği çok yüksek değil.

Bir günlük blockchain gerçekte kullanılabiliyorsa, ihtiyacı olan makyaj değil estetik cerrahidir.

Bu sınıftaki öğretmenler, öğrencilere "numaraları aramalarını" ve bire bir "reçete" için haftada 50 numara göndermelerini tavsiye ediyor
önceki
Bakalım İtalyan "kum heykelleri" 1 Nisan'ı nasıl kötü oynuyor?
Sonraki
Programcılar kendilerini yönetmeyi öğrenmelidir
O2O çivisinin statükosu: Kendi "yanan" nitelikleri, sermaye eksikliği ve personel kaybıyla, dönüşüme giden yol nerede?
Parti komitesi sekreteri ve Sichuan Yixiang'ın yoksulluğu azaltma kadroları çalışırken 100 metrelik bir uçurumdan düştü ve hayati belirtileri sabit.
Google, Java uygulamalarının hızlı bir şekilde kapsayıcıya alınmasına yardımcı olan Jib'in resmi açık kaynağını duyurdu
WeChat Mini Programı ve Micro Mall (7): Ürün sınıflandırmasını gerçekleştirmek için dinamik API
Aptal görün! 10 saat ve 7 tırda mahkeme villayı boşalttı! Günaydın Wuhan
Orta İtalya Deneyim Turunun ikinci durağı: Umbria'yı Keşfedin
Architecture Practical Chapter (13): Spring Boot Logback e-posta bildirimi
50 günlük yaşam ve ölüm için geri sayım! Yüz milyonlarca dolar topladıktan sonra, dünyanın en büyük bağımsız müzisyen platformu olan SoundCloud neden öldü?
Wenzhou 1 Nolu Okulu Hua dünyaca ünlü bir okul tarafından kabul edildi! Netizenler şunları söyledi: Ne güzel bir üniversite zorbası!
2017 İkinci Çeyrek Küresel Risk Sermayesi Ekolojik Raporu: İşlem hacmi toparlandı, birleşme ve devralma pazarı kötü durumda
Chengdu emlak piyasası takvimi: Makas açığı daraldı, arz arttı ve 11 proje satıldı
To Top