Алгоритм — це скінченна послідовність покрокових інструкцій, призначена для розв'язання конкретної проблеми або виконання обчислення шляхом перетворення вхідних даних на вихідні.
У комп'ютерних науках алгоритми складаються з однозначних інструкцій, які спрямовують комп'ютерні програми на виконання широкого спектра завдань. Вони можуть варіюватися від простих операцій, як-от сортування списку чисел, до складніших процесів, наприклад пошуку найкоротшого маршруту між двома географічними локаціями. Алгоритми є фундаментальними для обчислень, обробки даних і автоматизованого ухвалення рішень.
Кожен алгоритм має визначену початкову та кінцеву точки, формуючи вихідні дані на основі заздалегідь визначених вхідних даних і кроків. Кілька алгоритмів можна поєднувати для виконання складніших завдань, хоча вища складність зазвичай потребує більше обчислювальних ресурсів.
Алгоритми можна оцінювати за двома основними критеріями: правильністю та ефективністю. Правильність означає, чи точно алгоритм розв'язує проблему, для якої його створено. Ефективність пов'язана з обсягом обчислювальних ресурсів і часом, які потрібні алгоритму для виконання свого завдання.
Комп'ютерні науковці часто використовують математичний метод аналізу, який називається асимптотичним аналізом, щоб порівнювати різні алгоритми незалежно від мови програмування чи апаратного забезпечення, на якому вони працюють. Цей підхід допомагає визначити, які алгоритми краще масштабуються зі зростанням розміру вхідних даних.
Коректні алгоритми мають відповідати кільком ключовим властивостям. Вони мають бути скінченними, тобто зрештою завершуватися. Вони мають бути визначеними, щоб кожна інструкція була точною й однозначною. Вони також мають бути дієвими, забезпечуючи правильний результат для всіх коректних вхідних даних.
Різні блокчейн-мережі можуть використовувати різні алгоритмічні підходи залежно від своїх цілей проєктування, наприклад пріоритизуючи швидкість, безпеку або енергоефективність. Вибір алгоритму може суттєво впливати на продуктивність мережі та рівень її децентралізації.
Швидкість, з якою комп'ютер здатен обчислювати нові хеші.