Kategoriler
Algorand

Algorand üzerinde Tekli ve Çoklu İmzalı StandAlone Hesap Oluşturma

Algorand eğitimi sonrası bir yazı paylaşıp genel olarak neler olduğundan bahsetmiştim. Bu yazıda biraz daha teknik boyuta geçip, Python dili kullanarak bir kaç işlem yapacağız.

Blokzincir konusu bir çok teknolojiye göre çetrefilli bir konu. İnsan çalışırken bir anda karamsarlığa düşebiliyor. O sebepten, kodların arasında bazı kavramları açıklayarak gitmek istiyorum.

İlk olarak şöyle başlayalım. Algorand StandAlone ismini verdiği bir hesap türü oluşturmuş. Bu hesabın bir tane public adresi bir de private keyi var.

Private key kısmını da 25 kelimelik anımsatıcıdan oluşturmuş. Yahu 25 kelimeyi nasıl aklımda tutacağım diyebilirsiniz. Ama bu bir tür güvenlik önlemi. Aklınızda tutmuyorsunuz, bir yere not alıyorsunuz. Hatta mutlaka not alıyorsunuz. Metamask eklentisini kullananlar da bilir. Bu şekilde kelimelerden oluşan bir gizli anahtar trendi var. Yazması daha kolay oluyor bir açıdan, diğer türlü yazarken çok hata yapılabiliyor.

Peki ne işe yarar bu StandAlone hesaplar. Şöyle diyelim bunlar biraz “bağımsız hesap”. Bir diskte tutulmuyor dolayısıyla farklı donanımlardan kullanabiliyorsunuz, ayrıca geliştiriciler için de büyük bir kolaylık sağlıyor. Geliştirme işlemlerinde sık sık bu hesap tipinden faydalanacağız gibi görülüyor.

Küçük bir not: Algorand’ın mobil cüzdanı (Android, iOS) da StandAlone hesap kullanıyor. Burada da hesapları mobil cüzdana aktarmak için 25 kelimelik anımsatıcı kullanılıyor.

Hiç mi dezavantajı yok bu hesabın ? Şöyle diyelim, eğer 25 kelimelik anımsatıcı güvenliğini zayıf buluyor ve şifrelenmiş bir disk içinde hesabınızı tutmak istiyorsanız kmd denilen ve donanımla beraber çalışan farklı bir hesap türü size yardımcı olabilir.

Geçelim kodlamaya.

Python’da Algo işlemleri için ilk olarak;

pip install py-algorand-sdk

diyerek kütüphaneyi yüklüyoruz.

Ardından projemiz için bu kütüphaneden account ve mnemonic kısımlarını;

from algosdk import account, mnemonic

koduyla alıyoruz.

Şimdi bir fonksiyon tanımlayalım.


Bu şekilde fonksiyonu oluşturduk ve çalıştırdık. Çıktımız aşağıdaki şekilde oluyor.


Harika!

Peki doğru mu bu adres, ağda aktif mi bakalım 🙂 Bunu AlgoExplorer’dan kontrol ediyoruz.


Görüldüğü gibi hesabımız aktif şekilde duruyor. Henüz hiç transfer olmamış ve içinde para da yok.

Devam edelim.

Şimdi çoklu imza olayına geçiyoruz. Blokzincir gerçekten derya gibi. Öncelikle konuyu izah edelim. Gerek Bitcoin’de, gerek Ethereum’da aslında çoklu imzalı cüzdan teknolojisi kullanılıyor.

Bunu şöyle hayal edin. Bir kasa var ve aynı anda kullanılması gereken 3 farklı anahtarı var. Her birimizde de bir anahtar var. Eğer o kilidi açmak istiyorsak üçümüzün bir araya gelerek anahtarlarımızı kullanmamız lazım, aksi takdirde kasa açılmayacak. Bunu kripto para teknolojilerinde ortak yönetilen bir fon için düşünebilirsiniz. Tabi sadece tüm anahtar sahiplerinin dahil olduğu senaryolar yok. Şu da olabilir 9 kişide anahtar var ve 5 kişi, yani çoğunluk transferi kendi anahtarıyla onaylarsa olur.

Borsalarda ve çok büyük bütçeli projelerde bu anahtarlar popüler. Algorand teknolojisinde Bitcoin’den farklı olarak adresin çoklu imza hesabı olup olmadığını dışardan biri bilemiyor. Bir kat daha güvenlik artırılmış gibi düşünebilirsiniz.

Avantajı dediğimiz gibi güvenlik. Dezavantajı nedir derseniz de kolaylıktan taviz vermek oluyor tabi ki. Tekli imza hesaplarının kullanımı daha pratik.

Şimdi geçelim kodlama kısmına. Python ile çoklu imza hesabı oluşturalım.

İlk olarak yine algosdk kütüphanesinden account ve bu sefer farklı olarak transaction kısımlarını içe aktarıyoruz.

Şimdi ilk olarak 3 farklı hesap oluşturalım.

Çıktısına bakalım.


Hesaplarımız ve anahtarlar oluştu. Şimdi bunları çoklu imzalı bir hesap haline getirelim.

Burada da çoklu imza hesap versiyonu, kaç kişinin transfere onay vereceği ve bunların hangi hesaplar olduğu bilgisini giriyoruz.


Bu kadar basit. Şimdi çıktı alalım.

Hesabımız oluştu. Peki bunun çoklu imza hesabı olduğu gerçekten belli değil mi ? Kontrol edelim.

Görüldüğü gibi herhangi bir detay yok. Tıpkı tekli hesaptaki gibi bilgiler var.

Burada onay için 3 değil 2 hesapta diyebilirdik. 2/3 oranı sağlandığı için işlemi gerçekleştir anlamında bu tarz seçimler de yapabiliyoruz.

İncelemeye devam ediyorum. 🙂