Scrypt algoritması, büyük boyutlarda bellek gerektiren, kapsamlı özel donanım saldırılarını gerçekleştirebilmeyi daha pahalı hale getirebilmek amacıyla geliştirilmiştir. Scrypt algoritması, Colin Percival isimli Kanada’lı bilgisayar uzmanı tarafından özel bir şekilde amacı doğrultusunda tasarlanmıştır. Scrypt algoritması, 2016 yılı içerisinde Internet Engineering Task Force- IETF (İnternet Mühendisliği Görev Grubu) tarafından RFC 7914 olarak yayımlandı. ArtForz kullanıcı isimli ve gerçek ismi bilinmeyen bir yazılımcı tarafından scrypt algoritmasının implemente edilmiş, nispeten basitleştirilmiş bir versiyonu ilk olarak Tenebrix’te kullanıldı. Daha sonra ise scrypt algoritmasını Litecoin (LTC) ve Fairbrix olmak üzere farklı kripto varlıklar iş kanıtı yapısı olarak kullanmaya başladı.
Esasen scrypt algoritması ve scrypt kavramı da bu kripto varlıklar ile daha popüler hale geldi. Kripto varlık dünyasında, özellikle Litecoin madenciliği gibi uğraşlar ile ilgilenen kullanıcılar, sıklıkla kullanır.
Scrypt algoritması, en temelde bir kriptografik şifreleme algoritmasıdır. Litecoin, Proof of Work sistemini kullanır. Scrypt algoritması, kripto varlıklarda kullanılan bir başka algoritma olan SHA-256 algoritmasına kıyasen daha az işlem gerektirir. Bu sebeple daha hızlıdır ve işlem süresi daha kısadır. Litecoin madencilik süreçlerinde scrypt algoritması, oldukça faydalı bir teknolojidir. Bunun sebebi CPU (Central Processing Unit) ve GPU (Graphics Processing Unit) madencileri için özel olarak tasarlanmış bir algoritma olmasıdır. Aynı zamanda ASIC madencilerine de bazı avantajlar sunan scrypt algoritması, madencilik süreçlerini daha sürdürülebilir bir düzeye getirir.
Scrypt algoritmasını kullanarak LTC kripto varlığı kazan madenciler, standart değerlere sahip bir bilgisayar sisteminde GPU işlemcileri aracılığı ile kolaylıkla madencilik yapabilir.
Scrypt Algoritmasının Özellikleri Nelerdir?
Proof of Work, başka bir deyişle iş kanıtı olarak isimlendirilen konsensüs mekanizmasında scrypt algoritması, SHA-256 algoritmasına bir alternatif olarak kullanılır. Litecoin’in bu algoritmayı tercih etmesinin en önemli nedeni, madencilik işlemleri için oluşturulan FPGA ve ASIC donanımlarını, SHA-256 algoritmasına göre daha az maliyetli ve karmaşık olmasıdır.
Aynı zamanda bu algoritma ile 2,5 dakikada bir olmak üzere blok onayı gerçekleştirilebiliyor. SHA-256 algoritmasını kullanan Bitcoin’de ise bu süreler 10 dakikaya kadar ulaşabiliyor.
Scrypt, SHA-256 algoritmasının aksine bellek yoğun bir algoritmadır. Bu nedenle, özel olarak donanımın optimize edilmesi ve madencilik performansının artırılması amacıyla özel olarak üretilmiş ASIC cihazlarına karşı dirençlidir. Scrypt algoritması, daha geniş bir bellek aralığı gerektirdiğinden, ASIC cihazlarının avantajını ortadan kaldırarak, CPU veya GPU gibi daha yaygın olarak kullanılan donanımların da madencilik yapmasına izin verir.
Scrypt, ayrıca bellek kullanımı nedeniyle güvenlik açısından da tercih edilen bir algoritmadır. Parola türetme gibi kullanım alanlarında da yaygın olarak kullanılır. Bellek yoğunluğu, güvenlik saldırılarının maliyetini artırır ve saldırganların saldırıları hızlı bir şekilde gerçekleştirmelerini zorlaştırır.
Scrypt Algoritması Neleri İçerir?
Scrypt algoritması da diğer algoritmalar gibi bazı teknik gereklilikler içerir. Scrypt algoritmasının içerisinde bulunan bazı faktörler şunlardır:
- Parola
- Tuz
- N
- P
- dkLen
- R
- hLen
- MFlen
Parola
Parola, hash edilmesi gereken karakter dizilerini ifade eder.
Tuz
Gökkuşağı tablosu saldırılarına karşı bir koruma görevi görmesi adına hash değerini değiştiren bir karakter dizisi kullanılır. Bu karakter dizisi “Tuz” olarak isimlendirilir.
N
N, İşlemci ya da bellek maliyetini ifade eden bir parametredir.
P
P, bir paralelleştirme parametresini ifade eder. p ≤ (232 - 1) * hLen / MFLen denklemini sağlayan pozitif bir tam sayı olarak nitelendirilir.
dkLen
Türetilen anahtarın, oktet cinsinden hedeflenen çıktı uzunluğunu ifade eder.
R
Ardışık hafızanın okuma boyutunu ve performansını oldukça hassas bir şekilde ayarlamaya yarayan bir blok boyutu parametresini ifade eder.
hLen
hLen, söz konusu hash fonksiyonunun oktet uzunluğunu ifade eder.
MFlen
Karıştırma işlevlerinin çıktısının oktet cinsinden uzunluğunu ifade eder.
Özetlemek gerekirse, Scrypt, Litecoin gibi kripto para birimlerinde kullanılan bir hash algoritmasıdır. Bellek yoğun çalışan bir algoritma olduğu için ASIC cihazlarına karşı yüksek dirençlidir ve güvenlik açısından da tercih edilir.
Kripto varlıklar ve blockchain ağları bu gibi algoritmaları kullanarak daha iyi bir şifreleme ve verimlilik sağlamaya çalışırlar. Günümüzde pek çok farklı kripto algoritması, farklı özellikleri nedeniyle kripto varlık geliştiricileri tarafından tercih edilir. Eskiye göre giderek kripto varlık madenciliğinin zorlaştığı da göz önünde bulundurulduğunda, bu gibi algoritmaların önemi daha da artıyor. Örneğin Bitcoin’in artan zorluğu nedeniyle madenciliğinin gerçekleştirilmesi, neredeyse çok zor erişilen bir konuma geldi. Bu durumda geliştiriciler, hem eski algoritmalardan faydalanıyor hem de yeni algoritmalar geliştirmeye devam ediyor. Scrypt ise günümüzde geliştiriciler ve madenciler için önemli bir çözüm durumundadır. Hızı ve nispeten diğer algoritmalara göre kolay kullanımı sebebiyle tercih edilebilir başarılı bir algoritma oluyor.