Move, blok zinciri ortamında tasarlanmış bir akıllı sözleşme dilidir ve MoveVM destekleyen zincirlerde çalışabilir. Tasarımı, blok zinciri ve akıllı sözleşmelerin güvenlik sorunlarını göz önünde bulundurur ve Rust'ın bazı güvenlik tasarım ilkelerinden faydalanır. Bu makalede, Move dilinin güvenliğini dil özellikleri, çalışma mekanizması ve doğrulama araçları açısından analiz edeceğiz.
1. Move dilinin güvenlik özellikleri
Move dili, bazı esneklikleri terk ederek güvenliği artırır; dinamik dağıtım ve dışarıdan özyinelemeli çağrıları desteklemez, bunun yerine genel türler, küresel depolama, kaynaklar gibi kavramları kullanarak alternatif bir programlama modeli gerçekleştirir.
Move'un ana bileşenleri şunlardır:
Modül: Yapı türleri ve süreç tanımlarından oluşur
Yapı: kaynak türü olarak tanımlanabilir, küresel anahtar-değer deposunda saklanır
Süreç: Sözleşme mantığını tanımla
Move'un global depolaması, yalnızca modül sahibi tarafından programatik olarak okunup yazılabilen kalıcı verileri sağlar, ancak kamu defterinde görüntülenebilir.
Move, kodun derlenme zamanında güvenliğini sağlamak için iki mekanizma kullanır:
Değişmezlik İhtiyacı: Statik kontrol için, sistem durumunun korunumu tanımlanır.
Bytecode doğrulayıcı: Güvenli türlerin ve lineerleştirmenin zorunlu kılınması, yasadışı işlemleri önler.
2. Move'un çalışma mekanizması
Move programı sanal makinede çalışır, sistem belleğine doğrudan erişemez. Yığın tabanlı bir yürütme modeli kullanır, küresel depolamayı bellek ( yığını ) ve küresel değişken ( yığını ) olarak böler.
Move'un durumu çağrı yığını, bellek, global değişkenler ve işlemlerden oluşur. Uygulama sürecinde, çağrı yığını bağlam bilgilerini saklar, statik atlama dinamik yönlendirmeyi önler ve böylece yeniden giriş saldırılarını engeller.
MoveVM, verileri depolama ve çağrı yığınını ayırır, bu da EVM'den farklıdır. Bu tasarım, güvenliği ve yürütme verimliliğini artırır.
3. Move Prover
Move Prover, programların doğruluğunu doğrulamak için çıkarımsal doğrulama algoritmaları kullanan bir biçimsel doğrulama aracıdır. İş akışı şudur:
Move kaynak dosyalarını ve standartlarını alma
Bytecode'a derleyin ve nesne modelini doğrulayın
Boogie ara diline dönüştür
Doğrulama koşullarını oluştur
Z3 çözücüsünü kullanarak doğrulama
Tanı Raporu Oluştur
Move Specification Language, iş kodundan bağımsız olarak yazılabilen program spesifikasyonlarını tanımlamak için kullanılır.
4. Özet
Move, dil tasarımı, sanal makine yürütme ve güvenlik araçları açısından kapsamlı bir şekilde düşünülmüştür. Bazı esnekliklerden ödün vermekte, ancak güvenliği ve doğrulanabilirliği artırmaktadır. Yaygın EVM açıkları olan tekrar giriş, taşma gibi sorunlar etkili bir şekilde önlenebilir, ancak hala yetkilendirme, mantık ve büyük tam sayı taşmaları gibi konulara dikkat edilmesi gerekmektedir.
Move çoklu güvenlik önlemleri sunsa da, geliştiricilerin üçüncü taraf güvenlik denetim hizmetlerini kullanmaları ve standartların yazımı ve doğrulanmasını profesyonel güvenlik şirketlerine devretmeleri önerilir.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
26 Likes
Reward
26
8
Repost
Share
Comment
0/400
CountdownToBroke
· 08-04 13:47
Yine rust kardeşin kopyası, neredeyse bir demir çocuğu tarafından yapılmış bir insanları enayi yerine koymak versiyonu.
View OriginalReply0
TerraNeverForget
· 08-03 01:26
Yine de move yapıyoruz, değil mi? O zaman ben de yaparım.
View OriginalReply0
DuckFluff
· 08-02 19:38
Rust'tan bir kısmını almış gibi görünüyor, bakarken kafam karıştı.
View OriginalReply0
SurvivorshipBias
· 08-01 22:52
Move çok güvenli, bundan sonra köpek balığı çetesi işsiz kalacak.
View OriginalReply0
Ser_This_Is_A_Casino
· 08-01 22:50
move'un biraz fazla katı olduğunu düşünüyorum, rust'tan bile daha katı.
View OriginalReply0
SchrodingerAirdrop
· 08-01 22:50
Yine öğrenemiyorum, gerçekten kafam ağrıyor.
View OriginalReply0
MetaverseMigrant
· 08-01 22:49
move yazmanın hızı henüz run'umdakinden daha hızlı değil...
Move dilinin güvenliği kapsamlı bir şekilde analiz edildi: dil özellikleri, çalışma mekanizması ve doğrulama araçları
Move dilinin güvenlik analizi
Giriş
Move, blok zinciri ortamında tasarlanmış bir akıllı sözleşme dilidir ve MoveVM destekleyen zincirlerde çalışabilir. Tasarımı, blok zinciri ve akıllı sözleşmelerin güvenlik sorunlarını göz önünde bulundurur ve Rust'ın bazı güvenlik tasarım ilkelerinden faydalanır. Bu makalede, Move dilinin güvenliğini dil özellikleri, çalışma mekanizması ve doğrulama araçları açısından analiz edeceğiz.
1. Move dilinin güvenlik özellikleri
Move dili, bazı esneklikleri terk ederek güvenliği artırır; dinamik dağıtım ve dışarıdan özyinelemeli çağrıları desteklemez, bunun yerine genel türler, küresel depolama, kaynaklar gibi kavramları kullanarak alternatif bir programlama modeli gerçekleştirir.
Move'un ana bileşenleri şunlardır:
Move'un global depolaması, yalnızca modül sahibi tarafından programatik olarak okunup yazılabilen kalıcı verileri sağlar, ancak kamu defterinde görüntülenebilir.
Move, kodun derlenme zamanında güvenliğini sağlamak için iki mekanizma kullanır:
Değişmezlik İhtiyacı: Statik kontrol için, sistem durumunun korunumu tanımlanır.
Bytecode doğrulayıcı: Güvenli türlerin ve lineerleştirmenin zorunlu kılınması, yasadışı işlemleri önler.
2. Move'un çalışma mekanizması
Move programı sanal makinede çalışır, sistem belleğine doğrudan erişemez. Yığın tabanlı bir yürütme modeli kullanır, küresel depolamayı bellek ( yığını ) ve küresel değişken ( yığını ) olarak böler.
Move'un durumu çağrı yığını, bellek, global değişkenler ve işlemlerden oluşur. Uygulama sürecinde, çağrı yığını bağlam bilgilerini saklar, statik atlama dinamik yönlendirmeyi önler ve böylece yeniden giriş saldırılarını engeller.
MoveVM, verileri depolama ve çağrı yığınını ayırır, bu da EVM'den farklıdır. Bu tasarım, güvenliği ve yürütme verimliliğini artırır.
3. Move Prover
Move Prover, programların doğruluğunu doğrulamak için çıkarımsal doğrulama algoritmaları kullanan bir biçimsel doğrulama aracıdır. İş akışı şudur:
Move Specification Language, iş kodundan bağımsız olarak yazılabilen program spesifikasyonlarını tanımlamak için kullanılır.
4. Özet
Move, dil tasarımı, sanal makine yürütme ve güvenlik araçları açısından kapsamlı bir şekilde düşünülmüştür. Bazı esnekliklerden ödün vermekte, ancak güvenliği ve doğrulanabilirliği artırmaktadır. Yaygın EVM açıkları olan tekrar giriş, taşma gibi sorunlar etkili bir şekilde önlenebilir, ancak hala yetkilendirme, mantık ve büyük tam sayı taşmaları gibi konulara dikkat edilmesi gerekmektedir.
Move çoklu güvenlik önlemleri sunsa da, geliştiricilerin üçüncü taraf güvenlik denetim hizmetlerini kullanmaları ve standartların yazımı ve doğrulanmasını profesyonel güvenlik şirketlerine devretmeleri önerilir.