Blockchain, merkezi olmayan bir veri tabanıdır ve kriptografik yöntemler kullanarak güvenli ve şeffaf bir şekilde veri kaydetme işlemi gerçekleştirir. Bu teknoloji, blok adı verilen birbirine bağlı veri yapıları üzerine inşa edilir.
Her blok, bir önceki bloğun kodu (hash) ile bağlantılıdır ve blokların zinciri, verilerin geriye doğru izlenebilirliğini sağlar. Bu sayede, blokların manipülasyona karşı güvenliği artar ve kaydedilen bilgilerin geçmişi ve doğruluğu korunur.
Blockchain teknolojisi, özellikle kripto para birimleri (bitcoin, ethereum, vb.) ile ilişkilendirilse de, pek çok farklı alanda kullanılmaktadır. Örneğin, tedarik zinciri yönetimi, oy verme sistemleri, sağlık sektörü ve gayrimenkul gibi alanlarda blockchain teknolojisi kullanılmaktadır.
Blockchain verilerin güvenliğini nasıl sağlamaktadır?
Blockchain, verilerin güvenliğini sağlamak için birçok yöntem kullanır. İşte bazıları:
- Kriptografi: Blockchain teknolojisi, verilerin güvenliği için kriptografi kullanır. Bloklara eklenecek olan veriler öncelikle hash fonksiyonu kullanılarak şifrelenir. Bu şifreleme işlemi sayesinde, verilerin manipülasyona uğraması önlenir.
- Merkezi Olmama: Blockchain teknolojisi, merkezi bir otoriteye bağlı olmadığı için, verilerin güvenliğini artırır. Verilerin herhangi bir merkezi sunucuda değil, dağıtık bir ağda tutulması sayesinde, verilerin değiştirilmesi daha zordur.
- Blok Zinciri: Blockchain, verilerin bloklar halinde zincirleme olarak kaydedilmesiyle oluşur. Her blok bir önceki bloğun hash fonksiyonu değerini içerir. Bu sayede, blokların manipülasyona karşı güvenliği artar ve kaydedilen bilgilerin geçmişi ve doğruluğu korunur.
- Konsensüs Mekanizması: Blok zincirindeki verilerin güvenliği, konsensüs mekanizması ile sağlanır. Bu mekanizma, blok zincirindeki tüm katılımcıların, yeni bir blok eklenmeden önce yeni verilerin doğruluğunu onaylaması gerektiği anlamına gelir.
- Özel Anahtarlar: Blockchain, kullanıcıların verilerini özel anahtarlar kullanarak korur. Her kullanıcı, kendi özel anahtarına sahiptir ve bu anahtarlar, verilerin güvenliğini sağlamak için kriptografik işlemlerde kullanılır.
Bu yöntemler, blockchain teknolojisinin verilerin güvenliğini sağlamak için kullandığı bazı yöntemlerdir. Bu nedenle, blockchain teknolojisi, finans, sağlık, tedarik zinciri yönetimi gibi alanlarda güvenli ve şeffaf bir veri yönetimi sağlamak için kullanılır.
Akıllı sözleşme nedir?
Akıllı sözleşme, bilgisayar protokolleri aracılığıyla, sözleşmelerin otomatik olarak yürütülmesine olanak tanıyan bir teknolojidir. Bu teknoloji, blok zinciri gibi dağıtılmış bir defter teknolojisi kullanılarak uygulanır ve işlemlerin tamamen güvenilir ve şeffaf bir şekilde gerçekleştirilmesini sağlar.
Akıllı sözleşmeler, gerçek hayattaki sözleşmelerle benzerdir, ancak tamamen kod tabanlıdır ve belirli bir olayın gerçekleşmesi durumunda belirli bir işlemi tetikleyebilirler. Örneğin, iki taraf arasındaki bir satın alma işlemi için bir akıllı sözleşme kullanılabilir. Bu sözleşme, satıcıya ödeme yapıldığında otomatik olarak satın alma işlemini tamamlar ve paranın alıcıya aktarılmasını sağlar.
Akıllı sözleşmeler, blok zincirindeki verilerin güvenilirliğini sağlamak için kriptografi kullanır ve tamamen programlanabilir ve özelleştirilebilir. Bu nedenle, finans, gayrimenkul, tedarik zinciri yönetimi ve daha birçok alanda kullanılmaktadır.
Hash fonksiyonu nedir?
Hash fonksiyonu, herhangi bir boyutta girdi alabilen ve sabit bir boyutta çıktı veren bir matematiksel fonksiyondur. Hash fonksiyonları, verilerin benzersiz bir dijital imzasını oluşturarak, verilerin bütünlüğünü ve kimliğini korumak için kullanılır.
Hash fonksiyonları, girdinin boyutu ne olursa olsun, her zaman aynı boyutta bir çıktı verirler. Ayrıca, aynı girdiyi kullanan hash fonksiyonları, her zaman aynı çıktıyı verirler. Bu sayede, hash fonksiyonları, verilerin değiştirilip değiştirilmediğini tespit etmek için kullanılabilir.
Hash fonksiyonları ayrıca, blok zinciri gibi dağıtılmış sistemlerde de kullanılır. Bu sistemlerde, hash fonksiyonları, her bloğun özeti oluşturmak için kullanılır. Her blok özeti, önceki bloğun özeti ve yeni eklenen verilerin özeti ile birleştirilir. Bu sayede, blok zinciri üzerindeki herhangi bir değişiklik, sonraki blokların hash fonksiyonlarını etkiler ve bu sayede blok zincirinin bütünlüğü korunur.
Hash fonksiyonları ayrıca, parolaların güvenliği için de kullanılır. Parola hash fonksiyonuna gönderilerek, parolanın kendisi yerine hash değeri saklanır. Böylece, parolanın gerçek değeri ortaya çıkmadan, doğru bir giriş yapılıp yapılmadığı doğrulanabilir.
Hash fonksiyonları nelerdir?
Hash fonksiyonları, herhangi bir boyutta girdi alabilen ve sabit bir boyutta çıktı veren matematiksel fonksiyonlardır. Hash fonksiyonları, verilerin benzersiz bir dijital imzasını oluşturarak, verilerin bütünlüğünü ve kimliğini korumak için kullanılır. Hash fonksiyonları aynı zamanda dijital imza, parola ve mesaj doğrulama gibi birçok uygulamada kullanılır.
İşte yaygın olarak kullanılan bazı hash fonksiyonları:
- SHA-1 (Secure Hash Algorithm 1): 160 bit uzunluğunda bir hash değeri üreten bir hash fonksiyonudur. Günümüzde artık güvenli kabul edilmiyor ve kullanımı önerilmiyor.
- SHA-2 (Secure Hash Algorithm 2): SHA-1’in yerine geçmek üzere geliştirilmiş bir aile hash fonksiyonlarıdır. SHA-256, SHA-384 ve SHA-512 olmak üzere üç farklı uzunlukta hash değeri üretirler.
- SHA-3 (Secure Hash Algorithm 3): 2015 yılında NIST tarafından standart olarak kabul edilmiş bir aile hash fonksiyonlarıdır. SHA-3, Keccak algoritmasına dayanır ve farklı boyutlarda hash değerleri üretir.
- MD5 (Message-Digest Algorithm 5): 128 bit uzunluğunda bir hash değeri üreten bir hash fonksiyonudur. Günümüzde artık güvenli kabul edilmiyor ve kullanımı önerilmiyor.
- BLAKE2: Hızlı ve güvenli bir hash fonksiyonudur. Farklı boyutlarda hash değerleri üretir.
Bu sadece bazı örneklerdir ve daha birçok hash fonksiyonu bulunmaktadır. Hangi hash fonksiyonunun kullanılacağına karar verirken, uygulamanın güvenlik gereksinimleri ve performans ihtiyaçları göz önünde bulundurulmalıdır.
SHA256 algoritması ile basit bir örnek
Python’da yaygın olarak kullanılan hash fonksiyonlarından biri olan SHA256 algoritması ile bir örneğe bakarsak. Bu örnekte, kullanıcının girdiği parolanın SHA256 hash değeri hesaplanacak ve bu hash değeri daha sonra veritabanına kaydedilecektir. Şöyle bir örnek kod yazabiliriz:
import hashlib
# Kullanıcıdan parola girdisi alınır
password = input("Lütfen parolanızı girin: ")
# SHA256 hash fonksiyonu kullanarak hash değeri hesaplanır
hashed_password = hashlib.sha256(password.encode()).hexdigest()
# Hash değeri konsola yazdırılır
print("Parolanın hash değeri:", hashed_password)
Bu örnekte, hashlib modülü içindeki sha256() fonksiyonu, parolanın SHA256 hash değerini hesaplamak için kullanılır. input() fonksiyonu kullanıcıdan parola girdisini alır ve encode() fonksiyonu ile string veri tipi byte veri tipine dönüştürülür. Hesaplanan hash değeri, hexdigest() fonksiyonu ile 16’lık sayı sistemine dönüştürülerek, konsola yazdırılır.
Tabii ki, gerçek bir uygulamada parola hash’lerinin veritabanında düz metin olarak saklanması sakıncalıdır. Bu örnekte amaç, sadece hash fonksiyonunun kullanımını göstermektir. Gerçek bir uygulamada, parolaların hash değerlerinin veritabanında güvenli bir şekilde saklanması ve doğrulanması için uygun güvenlik önlemleri alınmalıdır.
Pingback: Blockchain Tabanlı Kullanıcı Kayıt Sistemi - Tasarladık- Tech Blog