Heim > Die heutigen Krypto-News
bitcoin
bitcoin

$96523.16 USD 

2.37%

ethereum
ethereum

$3301.79 USD 

6.49%

tether
tether

$0.999364 USD 

-0.13%

solana
solana

$247.82 USD 

4.54%

bnb
bnb

$619.75 USD 

1.12%

xrp
xrp

$1.12 USD 

-0.75%

dogecoin
dogecoin

$0.385153 USD 

-1.50%

usd-coin
usd-coin

$0.999980 USD 

0.00%

cardano
cardano

$0.784192 USD 

-4.62%

tron
tron

$0.199043 USD 

0.46%

shiba-inu
shiba-inu

$0.000025 USD 

0.44%

avalanche
avalanche

$35.03 USD 

1.56%

toncoin
toncoin

$5.48 USD 

1.90%

sui
sui

$3.59 USD 

-2.69%

bitcoin-cash
bitcoin-cash

$483.10 USD 

7.62%

Move (Programmiersprache)

Was ist Move (Programmiersprache)?

Die Programmiersprache Move wurde ursprünglich zum Aufbau der Diem-Blockchain verwendet. Es wurde von der Diem Association gegründet, einem von Meta unterstützten Technologiekonsortium. Obwohl die Blockchain schließlich verworfen wurde, wird Move noch heute verwendet.

Die Programmiersprache Move ist eine ausführbare Bytecode-Sprache. Es implementiert intelligente Verträge und benutzerdefinierte Transaktionen. Move zielt darauf ab, Probleme zu beheben, die durch andere Blockchain-Programmiersprachen wie Solidity entstehen. Die grundlegenden Ziele der Erreichung digitaler Knappheit und der Kontrolle über digitale Vermögenswerte bleiben jedoch dieselben. Insbesondere zielt es auch darauf ab, doppelte Ausgaben zu verhindern und ermöglicht es den Inhabern digitaler Vermögenswerte, Eigentumsinformationen zu pflegen.

Dadurch maximiert Move die Sicherheit und behält gleichzeitig ein optimiertes Design und deutlich niedrigere Gaskosten bei als Blockchains, die nicht auf Move basieren.

Wie funktioniert die Programmiersprache Move?

Move verwendet lineare Logik, was bedeutet, dass Ressourcen nur einmal verwendet und niemals kopiert oder implizit verworfen werden können. Dadurch können Entwickler benutzerdefinierte Ressourcentypen kodieren, die nicht gelöscht oder dupliziert werden können und besser behandelt werden als andere.

Im statischen Typsystem von Move müssen Variablen als Typ (eine Zahl/ein Wort) definiert werden. Es schützt priorisierte Ressourcen. Dennoch können sie wie reguläre Elemente verwendet und in Datenstrukturen gespeichert oder als Werte in Berechnungen bereitgestellt werden. Auch in Modulen sind Ressourcen transparent und vor dem Abruf durch externe Quellen verborgen.

Darüber hinaus sind Module in Move flexibel und sicher, da die Beziehung zwischen Modulen, Ressourcen und Prozeduren der Beziehung zwischen Klassen, Objekten und Methoden in der objektorientierten Programmierung ähnelt.

Move kann auch alle Sicherheitsmerkmale in der Kette überprüfen und statische Überprüfungstools außerhalb der Kette unterstützen. Dies reduziert die Komplexität der On-Chain-Verifizierung erheblich. Sein Design basiert auf drei Kernentscheidungen:

  • Das Fehlen eines dynamischen Versands vermeidet die Erstellung von Anrufdiagrammen und ermöglicht die statische Bestimmung des Anrufstandorts. Dadurch kann Move die Auswirkungen eines Prozeduraufrufs einfacher und ohne zusätzliche Komplexität erkennen.

  • Dank seiner Modularität können Module zur Funktionsüberprüfung isoliert werden und helfen bei der Abstraktion von Daten und der Lokalisierung kritischer Vorgänge auf Ressourcen. Die Sicherheit wird durch die Kapselung des Moduls neben dem Typsystem der Sprache gewährleistet, was bedeutet, dass der Code außerhalb eines Moduls seine Typen nicht verletzen kann. Darüber hinaus wird durch die Untersuchung isolierter Module eine gründliche Funktionsüberprüfung für signifikante Modulinvarianten bereitgestellt.

  • Schließlich ermöglicht seine begrenzte Veränderbarkeit die Verwendung von Referenztypen ähnlich wie C++. Referenzen sind für die Mutation jedes Move-Werts von entscheidender Bedeutung. Normalerweise werden die temporären Werte innerhalb eines Transkriptionsskripts erstellt und zerstört. Ähnlich wie bei Rust führt der Bytecode-Verifizierer von Move „Borrow-Checks“ durch, um mindestens eine veränderbare Referenz zu bestätigen.

Schließlich lehnt Move Programme ab, die nicht der Typensicherheit, Speichersicherheit und Ressourcensicherheit entsprechen. Stattdessen kann eine höhere Programmiersprache mit einem Compiler verwendet werden, der für die Überprüfung der Eigenschaften zuständig ist. Die Alternative ist eine untypisierte Baugruppe auf niedriger Ebene mit Sicherheitsprüfungen.

Wie unterscheidet sich die Programmiersprache Move?

Die Programmiersprache Move hebt sich in mehrfacher Hinsicht von anderen Blockchain-Programmiersprachen ab:

  • Es gibt keine Einschränkungen bei der Definition benutzerdefinierter Datentypen von Prozeduren.

  • Es bettet Zugriffskontrollrichtlinien in die Sprachsemantik ein.

  • Dadurch wird ein Standardtypsystem für digitale Vermögenswerte abgeschafft (im Gegensatz zu Bitcoin oder Ethereum).

  • Es ermöglicht das Auffinden einzelner Assets mit Darstellung in der Programmiersprache. Benutzerdefinierte Assets sollten von ihrem Entwickler auf Sicherheitseigenschaften überprüft werden.

Dies ermöglicht es Move, problemlos neue Assets mit Knappheit zu erstellen, ohne Entwickler dazu zu zwingen, diese selbst zu entwickeln. Darüber hinaus können Entwickler die Zugriffskontrolle ändern und anpassen, wodurch die Programmiersprache vielseitiger und skalierbarer wird als ihre Konkurrenten.

Komponenten der Move-Programmiersprache

Die Programmiersprache Move besteht aus mehreren Komponenten, die ihre Grundlage bilden.

Typen

Dies können boolesche, vorzeichenlose Ganzzahlen (64-Bit), Byte-Arrays fester Größe und Adressdatentypen (256-Bit) sein.

Struktur

Zwei spezifische Typen: freundlich und uneingeschränkt. Ersteres bezieht sich auf Ressourcenstrukturen und letzteres auf allgemeine Strukturen.

Verfahren

Methoden, die entweder öffentlich oder intern sind. Die azyklische Modulabhängigkeit hilft bei der Abwehr von Wiedereintrittsangriffen.

Bytecode-Verifizierer

Der Schwerpunkt liegt auf der Überprüfung auf Sicherheitsmerkmale vor der Veröffentlichung des Moduls. Bevor Programme im Netzwerk live geschaltet werden, durchlaufen sie den Verifizierer und durchlaufen mehrere Verifizierungsphasen wie:

  • Typprüfung

  • Überprüfung des Stapelsaldos

  • Referenzprüfung

  • Entwicklung von Kontrollgraphen

  • Referenzverlinkung

  • Ressourcenprüfung

Bytecode-Interpreter

Es folgt der Verifizierung und ähnelt Ethereum, das Gas verwendet. Dadurch werden Endlosschleifenausführungen gewährleistet.

Virtuelle Maschine verschieben

Ähnlich wie bei anderen Blockchains, wobei Blöcke mehrere Transaktionen enthalten und jede Transaktion ausgeführt wird, um einen Transaktionseffekt zu erzeugen. Der Effekt generiert den aktualisierten globalen Zustand der Blockchain, mit einer Trennung zwischen Effekten und Zustandsübergängen.

Welche Blockchains verwenden die Programmiersprache Move?

Move wurde in der verworfenen Diem-Blockchain von Meta verwendet. Zu den aktuellen Blockchains, die auf Move aufbauen, gehören die Aptos-Blockchain und die Sui-Blockchain.