ალგორითმი წარმოადგენს ზუსტი ინსტრუქციების სასრულ მიმდევრობას, რომელიც შემუშავებულია კონკრეტული პრობლემის გადასაჭრელად ან გამოთვლების შესასრულებლად - შესავალი მონაცემების გამომავალ მონაცემებად გარდაქმნის გზით.
კომპიუტერულ მეცნიერებაში ალგორითმები შედგება მკაფიო ინსტრუქციებისგან, რომლის მეშვეობითაც კომპიუტერული პროგრამები იღებენ მითითებებს სხვადასხვა ამოცანის შესრულებასთან დაკავშირებით. ეს ამოცანები შეიძლება მოიცავდეს როგორც მარტივ ოპერაციებს (მაგალითად, რიცხვების სიის სორტირებას), ისე შედარებით კომპლექსურ პროცესებს, როგორიცაა ორ გეოგრაფიულ ლოკაციას შორის უმოკლესი მარშრუტის პოვნა. ალგორითმები ფუნდამენტურ როლს ასრულებს გამომთვლელ, მონაცემთა დამუშავებისა და გადაწყვეტილების მიღების ავტომატიზაციის პროცესებში.
თითოეულ ალგორითმს მკაფიოდ განსაზღვრული საწყისი და საბოლოო წერტილი აქვს, სადაც საბოლოო შედეგი წინასწარ დადგენილ შემავალ მონაცემებსა და მოქმედებათა მიმდევრობას ეფუძნება. შედარებით რთული ამოცანების შესასრულებლად შესაძლებელია რამდენიმე ალგორითმის გაერთიანება, მაგრამ გაზრდილი სირთულე ასევე მოითხოვს მეტ გამოთვლით რესურსს.
ალგორითმების შეფასება ორ ძირითადი კრიტერიუმის საფუძველზე ხდება: სიზუსტე და ეფექტურობა. სიზუსტე განსაზღვრავს იმას, თუ რამდენად მართებულად ჭრის ალგორითმი შესაბამის პრობლემას, ხოლო ეფექტურობა დაკავშირებულია იმ გამოთვლით რესურსებთან და დროის პერიოდთან, რაც მას აღნიშნული დავალების შესასრულებლად ესაჭიროება.
სხვადასხვა ალგორითმის შედარებისთვის კომპიუტერული მეცნიერების სპეციალისტები ხშირად იყენებენ მათემატიკური ანალიზის მეთოდს, რომელსაც ასიმპტოტური ანალიზი ეწოდება და რომელიც გამოყენებული პროგრამირების ენისა თუ აპარატურული პლატფორმისგან სრულიად დამოუკიდებლად მიმდინარეობს. აღნიშნული მიდგომა ხელს უწყობს იმის დადგენას, თუ რომელი ალგორითმის მასშტაბირების შესაძლებლობები შეესაბამება უფრო მეტად შემავალი მონაცემების ზრდის ტენდენციას.
იმისათვის, რომ ალგორითმები ვალიდურად მივიჩნიოთ, საჭიროა, რომ ისინი აკმაყოფილებდეს რამდენიმე ძირითად მოთხოვნას. პირველი არის სასრულობა - ალგორითმმა გარკვეული დროის შემდეგ უნდა დაასრულოს მუშაობა. მეორე - სიზუსტე, რაც გულისხმობს, რომ თითოეული მითითება უნდა იყოს მკვეთრი და ცალსახა. მესამე - ეფექტურობა, რაც ნებისმიერი მართებული შემავალი მონაცემისთვის სწორი გამომავალი მონაცემის მიღებას უზრუნველყოფს.
სხვადასხვა ბლოკჩეინ ქსელი შესაძლოა იყენებდეს ალგორითმებთან დაკავშირებულ განსხვავებულ მიდგომებს არქიტექტურასთან დაკავშირებული მიზნებიდან გამომდინარე. ეს გულისხმობს სიჩქარესთან, უსაფრთხოებასთან ან ენერგოეფექტურობასთან დაკავშირებული პრიორიტეტების განსაზღვრას. შესაბამისად, ალგორითმის ტიპი მნიშვნელოვნად განსაზღვრავს ქსელის ეფექტურობასა და დეცენტრალიზაციის ხარისხს.
სიჩქარე, რომლითაც კომპიუტერს შეუძლია ახალი ჰეშების გამოთვლა.