Ethereum adresi oluşturmak, birkaç kriptografik işlem gerektiren teknik bir süreçtir. Bu yazıda Python kullanarak yerel konsolunuzda nasıl rastgele bir Ethereum cüzdanı (adres, genel anahtar ve özel anahtar) oluşturabileceğimizi bir script üzerinden inceleyeceğiz.
Bu script eth_account
ve secrets
kütüphanelerini kullanarak rastgele bir özel anahtar oluşturup ve bu özel anahtardan bir Ethereum hesabı türetir. Hesap bilgilerini aynı dizinde bir ethereum_wallet.txt dosyasına kaydeder.
Koda direkt ve detaylı bir şekilde ulaşmak isteyenler kurulum için Github ‘a gidebilirler.
Öncelikle bu kod için Python 3.x
versiyonuna ve eth_account
kütüphanesine ihtiyacımız var.
1. Özel Anahtar (Private Key) Oluşturma
Özel anahtar, rastgele oluşturulan 256 bitlik (32 bayt) bir sayıdır ve genellikle onaltılık biçimde (64 karakter) temsil edilir. Bu anahtar, işlemleri imzalamanıza ve fonlarınıza erişmenize olanak tanır.
- Kriptografik olarak güvenli bir rastgele sayı üreteci kullanarak 256 bitlik bir sayı oluşturun.
import secrets
from eth_account import Account
# Rastgele bir özel anahtar oluşturma
private_key = secrets.token_hex(32)
private_key_hex = "0x" + private_key
print(f'Private Key: {private_key_hex}')
secrets
kütüphanesi, kriptografik olarak güvenli rastgele sayılar üretmek için kullanılır. Bu, özellikle özel anahtar oluşturma gibi kritik işlemler için önemlidir. Rastgele sayılar üretirken güvenlik açıklarını en aza indirgemek amacıyla secrets
kütüphanesini kullanırız. Bu kütüphane, tahmin edilemeyen ve güvenli anahtarlar oluşturmak için tasarlanmıştır.
private_key_hex = "0x" + private_key
Burada eklenen “0x” öneki onaltılık (hexadecimal) sayı sisteminde bir sayı dizisini temsil edildiğini belirtir.
2. Genel Anahtar (Public Key) ve Ethereum Adresi Oluşturma
Genel anahtar ve Ethereum adresi, özel anahtardan türetilir. Genel anahtar, işlemleri doğrulamak için kullanılır.
- Özel anahtardan bir genel anahtar oluşturun ve genel anahtarı hash’leyerek Ethereum adresini oluşturun.
from eth_account import Account
# Özel anahtardan bir hesap oluşturma
account = Account.from_key(private_key_hex)
# Genel anahtarı ve ETH adresini alma
public_key = account._key_obj.public_key
compressed_public_key = "0x" + public_key.to_compressed_bytes().hex()
print(f'Public Key: {compressed_public_key}')
print(f'Ethereum Address: {account.address}')
3. Bilgileri Bir Dosyaya Kaydetme (İsteğe Bağlı)
Oluşturulan özel anahtarı, genel anahtarı ve Ethereum adresini bir .txt dosyasına kaydedebilirsiniz. Not: Özel anahtarı dijital olarak saklamak tehlikelidir.
Adımlar:
- Bilgileri belirtilen formatta bir .txt dosyasına yazın.
# Bilgileri belirtilen formatta bir .txt dosyasına yazma (İsteğe bağlı)
with open("ethereum_wallet.txt", "w") as file:
file.write(f"Address: {account.address}\n")
file.write(f"Public: {compressed_public_key}\n")
file.write(f"Private: {private_key_hex}\n")
print("Ethereum cüzdan bilgileri ethereum_wallet.txt dosyasına kaydedildi")
Notlar:
-
Özel Anahtar yani Private Key’i güvende tutun ve asla paylaşmayın. Bu anahtar kaybolduğunda veya bir başkası tarafından ele geçirildiğinde fonlarınızı kaybedebilirsiniz.
-
Özel anahtarın 256 bitten oluşması 2^256 farklı kombinasyon anlamına gelir. Bu kadar büyük bir sayıyı kırmak pratikte imkansızdır. Günümüzdeki en güçlü süper bilgisayarlarla bile, tüm olası kombinasyonları denemek evrenin ömründen daha uzun sürer.
-
Bu örnekte,
eth_account
kütüphanesini kullanarak Ethereum adresi oluşturmayı ele aldık. Ancak, kullanıcılar temel kriptografik işlemleri kullanarak da bu süreci gerçekleştirebilirler. Örneğin,ecdsa
vesha3
kütüphaneleriyle genel anahtar ve adres oluşturma işlemlerini deeth_account
‘a ihtiyaç duymadan manuel olarak yapabilirsiniz. -
Github Repo
*Bir sonraki yazımda Mnemonic yani Seed Kelimelerin sürece nereden dahil olduğunu ele alacağız.
*Bu bir deneme yazısıdır, hatalar, öneriler ve sorularınız için x.com/mberketh
评论 (0)