Ein Algorithmus ist eine endliche Folge klar definierter Schritte, um ein bestimmtes Problem zu lösen oder eine Berechnung auszuführen. Dabei werden Eingabedaten in Ausgabedaten umgewandelt.
In der Informatik bestehen Algorithmen aus eindeutigen Anweisungen, die Computerprogramme anleiten, ganz unterschiedliche Aufgaben auszuführen. Das reicht von einfachen Vorgängen wie dem Sortieren einer Zahlenliste bis zu komplexeren Abläufen wie der Suche nach der kürzesten Route zwischen zwei Orten. Für die Datenverarbeitung, das Rechnen und automatisierte Entscheidungen sind Algorithmen von grundlegender Bedeutung.
Jeder Algorithmus hat einen festgelegten Anfang und ein festgelegtes Ende und erzeugt seine Ausgaben aus vordefinierten Eingaben und Schritten. Mehrere Algorithmen lassen sich kombinieren, um anspruchsvollere Aufgaben zu bewältigen. Mit steigender Komplexität wächst allerdings meist auch der Bedarf an Rechenressourcen.
Für die Bewertung von Algorithmen zählen vor allem zwei Kriterien: Korrektheit und Effizienz. Korrektheit bedeutet, dass ein Algorithmus das Problem, für das er entwickelt wurde, tatsächlich richtig löst. Effizienz beschreibt, wie viel Rechenleistung und Zeit er für seine Aufgabe benötigt.
Um Algorithmen unabhängig von Programmiersprache und Hardware zu vergleichen, nutzen Informatiker häufig ein mathematisches Verfahren, die asymptotische Analyse. Mit diesem Verfahren lässt sich erkennen, welche Algorithmen besser skalieren, wenn die Menge der Eingabedaten wächst.
Gültige Algorithmen müssen mehrere zentrale Eigenschaften erfüllen. Sie müssen endlich sein, also irgendwann enden. Sie müssen eindeutig sein, wobei jede Anweisung präzise und unmissverständlich ist. Und sie müssen effektiv sein, also für alle gültigen Eingaben die korrekte Ausgabe liefern.
Je nach Zielsetzung verwenden Blockchain-Netzwerke unterschiedliche Algorithmen, etwa mit Fokus auf Geschwindigkeit, Sicherheit oder Energieeffizienz. Die Wahl des Algorithmus kann die Leistung und die Dezentralisierung eines Netzwerks erheblich beeinflussen.