Investor's wiki

Turing abgeschlossen

Turing abgeschlossen

Turing Complete bezieht sich auf eine Maschine, die mit genügend Zeit und Speicher zusammen mit den erforderlichen Anweisungen jedes Rechenproblem lösen kann, egal wie komplex es ist. Der Begriff wird normalerweise verwendet, um moderne Programmiersprachen zu beschreiben, da die meisten von ihnen Turing Complete sind (C++, Python, JavaScript usw.).

Was ist eine Turing-Maschine?

Vor den heutigen Computern stellte Alan Turing die Hypothese auf, dass es eines Tages eine Maschine geben würde, die jedes Problem lösen könnte. Diese Maschine wurde als Turing-Maschine bekannt.

Alan stellte sich seine Maschine als ein langes Stück Klebeband vor, auf dem Informationen in Form von Binärcodes (1s und 0s) geschrieben waren. Die Maschine hätte auch einen Lese-/Schreibkopf, der sich entlang des Bandes bewegt und jedes Quadrat einzeln liest. Der Code würde der Maschine ein Rechenproblem stellen, und das Band wäre so lang wie nötig, um eine Lösung zu finden.

Während sich der Kopf über das Band bewegt, folgt die Maschine einfachen Anweisungen, die bestimmen, wie sie reagiert. Es liest das Band, folgt den Anweisungen und führt eine bestimmte Aktion aus, um einen neuen Code zu schreiben, während es sich fortbewegt. Dieses neue Codemuster ist die Antwort auf das Problem. Turings hypothetische Maschine könnte jedes Rechenproblem lösen, das in Code ausgedrückt werden könnte (und das eine berechenbare Antwort hatte).

Ein Gerät oder eine Programmiersprache gilt als Turing Complete, wenn es eine Turing-Maschine replizieren kann, indem es ein beliebiges Programm ausführt oder ein Problem löst, das die Turing-Maschine ausführen oder lösen könnte. Wenn andererseits ein Gerät oder eine Programmiersprache dies nicht kann, spricht man von Turing Incomplete.

Ein einfacher Taschenrechner ist ein Beispiel für ein Turing-unvollständiges System, da es nur wenige Arten von Berechnungen durchführen kann. Im Gegensatz dazu kann ein programmierbarer wissenschaftlicher Taschenrechner (der alle Arten von Berechnungen durchführen kann) als Turing-Maschine angesehen werden.

Blockchain und Turing-Vollständigkeit

Während einige Anwendungen der Blockchain-Technologie Turing Complete sind, sind andere Turing Incomplete. Dies variiert je nach implementierter Skripttechnologie. Beispielsweise ist die in Bitcoin verwendete Skriptsprache absichtlich als Turing Incomplete konzipiert, da sie ihren Zweck erfüllt und eine erhöhte Komplexität potenziell Probleme verursachen würde. Indem sie es einfach halten, können die Entwickler mit hoher Genauigkeit vorhersagen, wie es in der endlichen Anzahl von Situationen, in denen es verwendet wird, reagieren wird.

Ethereum hingegen ist als Turing Complete Blockchain aufgebaut. Dies ist wichtig, da es die Vereinbarungen verstehen muss, aus denen Smart Contracts bestehen. Da Ethereum Turing Complete ist, ist es in der Lage, jede zukünftige Vereinbarung zu verstehen und umzusetzen, auch solche, an die noch nicht gedacht wurde. Mit anderen Worten, die Turing-Vollständigkeit von Ethereum bedeutet, dass es in der Lage ist, seine Codebasis zu verwenden, um praktisch jede Aufgabe auszuführen, solange es die richtigen Anweisungen, genügend Zeit und Rechenleistung hat.