Bitcoin 1.01ORION · SLH-DSA · √2

Bitcoin 1.01 Core — Faz 5c

En kısa yol

  • Windows: derle.bat ile derle, sonra Gezgin'de bin\bitcoin101.exe dosyasına çift tıkla. Çekirdek başlar ve cüzdan penceresi açılır. Siyah pencere programın motorudur: küçült ama kapatma.
  • Android: ANDROID.md.
  • Başkasıyla paylaşmak: paketle.bat (aşağıda "Programı paylaşmak"). Proje klasörünü olduğu gibi gönderme.

Veri nerede?

Zincir, cüzdan, eşler ve takas kayıtları program klasöründe değil, kullanıcı profilindedir:

SistemKlasör
Windows%LOCALAPPDATA%\Bitcoin101\ana (deneme ağı: ...\lab)
Android (Termux) / Linux~/.bitcoin101/ana
  • Faz 5b ve öncesi veriyi program klasöründeki veri\ altında tutuyordu. Yeni sürüm ilk açılışta onu buraya taşır (ekrana yazar). Eski sürüm açıkken taşıma yapılamaz; program bunu söyler ve durur.
  • Böylece program klasörü paylaşılsa bile cüzdan gitmez. Aynı bilgisayardaki diğer Windows kullanıcıları da profil klasörünü okuyamaz.
  • Başka bir klasör kullanmak için: --veri <klasör> (ya da BITCOIN101_KLASOR ortam değişkeni).
  • Uygulamada Ayarlar → Hakkında veri klasörünü ve programın SHA-256 özetini gösterir. Komut satırında: bitcoin101 surum.

Programı paylaşmak

  1. tohumlar.txt dosyasına kendi genel IP'ni yaz (TOHUM_KURULUMU.md). Yoksa karşı taraf sana bağlanamaz.
  2. .\derle.bat, sonra .\paketle.bat imzali (imzasız için sadece .\paketle.bat).
    • Pakete sadece izin listesindeki dosyalar girer: program, kaynak kodu, belgeler, test vektörleri. Cüzdan, zincir, jeton ya da eş adresi içeren bir dosya bulunursa paketleme durur.
    • SHA256SUMS.txt paketteki her dosyanın özetini içerir. imzali ile bu liste cüzdanının #0 adresiyle SLH-DSA imzalanır (SHA256SUMS.txt.imza).
  3. dagitim\Bitcoin101-<sürüm>.zip dosyasını gönder. Betiğin yazdığı zip ve exe SHA-256 özetlerini ve imzalayan adresi zip'ten ayrı bir kanaldan duyur (web sayfası, sosyal medya, mesaj).
  4. Karşı taraf PowerShell'de Get-FileHash bitcoin101.exe ile özeti karşılaştırır, programı açar ve kendi cüzdanını oluşturur. Senin cüzdanını ve sırrını göremez: onlar senin profil klasöründe.
    • İmzayı daha önce güvendiği bir Bitcoin 1.01 ile doğrulayabilir: bitcoin101 imza-dogrula SHA256SUMS.txt --adres <duyurduğun adres>. (Aynı paketteki exe ile doğrulamak tek başına yeterli değildir: sahte bir paketin exe'si de "tamam" der. Asıl güvence, ayrı kanaldan duyurduğun özettir.)

Klasör izinleri (aynı bilgisayarı başkalarıyla paylaşıyorsan)

C:\ altında oluşturulan klasörlerde Windows varsayılan olarak bütün kullanıcılara değiştirme izni verir. Başka bir kullanıcı bitcoin101.exe'yi sahtesiyle değiştirirse şifreni ele geçirebilir. Program bu durumu algılar ve Güvenlik sayfasında uyarır. Çözüm (birini seç):

  • Programı kendi kullanıcı klasörüne taşı (ör. %LOCALAPPDATA%\Programs\Bitcoin101), ya da
  • Yönetici olmayan bir PowerShell'de klasör izinlerini daralt:
    icacls C:\Bitcoin101 /inheritance:r /grant:r "${env:USERNAME}:(OI)(CI)F" "*S-1-5-18:(OI)(CI)F" "*S-1-5-32-544:(OI)(CI)F"

    (S-1-5-18 = SYSTEM, S-1-5-32-544 = Yöneticiler; Türkçe Windows'ta grup adları farklı olduğu için kimlik numaraları kullanılır.)

Klasör düzeni

Bitcoin101\
  src\
    orion.*       ORION-1024 / ORION-512 hash (Keccak)
    kok2.*        √2 bit üretici, dönem sabitleri, 3x+1
    blok.*        blok başlığı, zorluk hedefi, Merkle ağacı
    genesis.*     genesis bloğu
    zorluk.*      ağ ayarları, ASERT, blok ödülü
    slhdsa.*      SLH-DSA-SHAKE-256s imza (NIST FIPS 205)
    rastgele.*    işletim sisteminden gerçek rastgele sayı
    adres.*       768 bitlik adres, Base58 metin biçimi
    islem.*       işlem biçimi
    zincir.*      blok/işlem kuralları, UTXO defteri, adres dizini, bekleyen havuz
    cuzdan.*      cüzdan (şifreli dosya biçimi, kontrol toplamlı yedek)
    sifreleme.*   Argon2id, BLAKE2b, ChaCha20-Poly1305
    sifre_kurali.*  NIST SP 800-63B-4 şifre kuralları, NFC normalleştirme
    sistem.*      veri klasörü, dosya izinleri, program özeti
    sha256.*      SHA-256, HMAC-SHA256 (köprü)
    secp256k1.*   Bitcoin'in imza eğrisi, ECDSA RFC 6979 (sadece köprünün BTC tarafı)
    btc.*         Bitcoin adresleri, HTLC betiği, segwit işlemleri, BIP 143
    takas.*       köprü: Bitcoin ile HTLC atomik takas (teklif/kabul kodları, durum makinesi)
    http.*        yerel HTTP/JSON çözümleyici, güvenlik başlıkları
    uygulama_sayfa.hpp  uygulama arayüzü (Windows 11 tarzı), PWA bildirimi
    uygulama_simge.hpp  uygulama simgeleri (gömülü PNG)
    bitcoin101.rc / .ico / .manifest  Windows simgesi, sürüm bilgisi, UTF-8 kod sayfası
    surum.hpp     program sürümü
    madenci.*     çok çekirdekli madenci
    soket.*       Windows / Linux soket katmanı (IPv4 + IPv6), adres süzme
    dugum.*       düğüm: eşler, senkron, çatallanma, yayın, keşif, cüzdan işçisi
    web.*         izleme ekranı ve JSON API (web_sayfa.hpp: sayfanın kendisi)
    kilit.*       zincire tek yazıcı kilidi
    testler.*     öz testler ve fuzz
    main.cpp      komutlar
  testvektor\     NIST'in resmî SLH-DSA test vektörleri
  araclar\        yardımcı Python betikleri (uygulama_testi.py: arayüzün uçtan uca testi,
                  kopru_testi.py: köprünün Bitcoin Core regtest'e karşı uçtan uca testi) ve
                  bilim katmanı laboratuvarları (tarayıcıda çift tıklayarak açılır, sunucu gerekmez):
                  kuvvet_laboratuvari.html (güçlü / elektromanyetik / zayıf kuvvet ve çekirdekler),
                  bilesik_laboratuvari.html (elementlerin bileşik oluşturma eşikleri ve bileşik özellikleri);
                  site_uret.py: bit101.org sitesini üretir (dagitim\site\ ve yüklemeye hazır dagitim\site.zip)
  web\            bit101.org'un kaynakları (site ağın parçası değildir): tr\, en\, ja\ (her dilde elle yazılan
                  sayfalar), belgeler\<dil>\ (belge çevirileri; yoksa Türkçe aslı notla gösterilir), stil.css,
                  .htaccess, simge.png, yazitipi\ (Spectral ve IBM Plex, SIL OFL). Siteye eklenen her metin üç dilde yazılır.
  BILIM_KATMANI.md  bilim katmanı tasarımı (taslak): kampanyalar ve madencilik formülü
  android\        Termux derleme betiği (bitcoin101-arm64: ESKİ hazır program, Faz 5c korumaları yok)
  tohumlar.txt    tohum düğüm adresleri
  TOHUM_KURULUMU.md  bu bilgisayarı tohum yapma rehberi
  ANDROID.md      telefonda çalıştırma rehberi
  derle.bat       Windows derleme betiği (sertleştirme bayraklarıyla)
  paketle.bat     paylaşım paketi (cüzdansız zip + SHA-256 + isteğe bağlı imza)
  TASARIM.md      bütün tasarım kararları

Komutlar

.\bin\bitcoin101.exe                           uygulama (cekirdek + cuzdan penceresi)
.\bin\bitcoin101.exe uygulama --kaz            uygulama, madencilik acik baslar
.\bin\bitcoin101.exe yardim                    butun komutlar
.\bin\bitcoin101.exe surum                     surum, programin SHA-256 ozeti, veri klasoru
.\bin\bitcoin101.exe test                      oz testler
.\bin\bitcoin101.exe nist-test                 NIST'in butun SLH-DSA vektorleri
.\bin\bitcoin101.exe fuzz                      cozumleyicilere bozuk veri (cokme / tutarlilik testi)

.\bin\bitcoin101.exe cuzdan olustur            yeni cuzdan
.\bin\bitcoin101.exe cuzdan                    adresler ve bakiye
.\bin\bitcoin101.exe cuzdan yedek              ana sirri goster (72 karakter, KAGIDA YAZ)
.\bin\bitcoin101.exe cuzdan geri-yukle         ana sirdan geri yukle (sir sorulur; komut satirina yazma)
.\bin\bitcoin101.exe cuzdan sifrele            eski sifresiz cuzdani sifrele
.\bin\bitcoin101.exe cuzdan sifre-degistir     sifreyi degistir
.\bin\bitcoin101.exe gonder <adres> <miktar>   coin gonder
.\bin\bitcoin101.exe dugum                     aga katil, izleme ekranini ac
.\bin\bitcoin101.exe dugum --kaz               aga katil ve kaz (bir esle eslesince baslar)
.\bin\bitcoin101.exe dugum --web-genel --kaz --tek-basina   tohum bilgisayar (agin ilk dugumu)
.\bin\bitcoin101.exe davet                     bu bilgisayarin adresi
.\bin\bitcoin101.exe kaz --tek-basina          agsiz, tek basina kaz (sadece agin ilk dugumu)
.\bin\bitcoin101.exe zincir                    zincir ozeti
.\bin\bitcoin101.exe blok 5                    5. blok ve islemleri
.\bin\bitcoin101.exe imzala <dosya>            dosyayi cuzdanin #0 adresiyle SLH-DSA imzala
.\bin\bitcoin101.exe imza-dogrula <dosya> --adres <orn...>   imzayi dogrula

Herhangi bir komutun sonuna --lab eklersen ayrı bir deneme ağında çalışır.

Ana ağda madencilik neden bekliyor? Ağa bağlanmadan kazmaya başlayan bir bilgisayar, zorluk düşükken birkaç saniyede 100'den fazla bloklu kendi zincirini kazar. Kesinlik kuralı yüzünden bu zincir ana zincirle bir daha kendiliğinden birleşmez. Bu yüzden madencilik en az bir eşe bağlanıp eşitlenene kadar bekler. Ağın ilk / tek düğümüysen --tek-basina (uygulamada Madencilik → "Eş olmadan da kaz").

Uygulama: **http://127.0.0.1:10104** (sadece bu bilgisayardan; deneme ağında 20104). Pencere programla birlikte açılır; elle açarsan siyah pencerede yazan #jeton=… ile biten adresi kullan. İzleme ekranı: http://127.0.0.1:10103** (deneme ağında 20103) ya da uygulamada Zincir** sayfası.

Köprü (Bitcoin ile atomik takas)

Uygulamada Köprüler sayfası: 1.01 verip BTC almak için teklif oluştur ya da karşı tarafın teklif kodunu yapıştırıp BTC verip 1.01 al. Kasa ve aracı yoktur (HTLC). Ana ağda bu kural #150. blokta etkinleşir; ağdaki herkesin bu sürüme güncellemesi gerekir. Deneysel: gerçek BTC ile bir takasta en fazla 0,01 BTC; ağ küçükken sadece güvendiğin kişilerle. Ayrıntılar ve sınırlar: TASARIM.md bölüm 16.

python araclar\kopru_testi.py bin\bitcoin101.exe <bitcoind.exe klasoru>   gercek Bitcoin Core (regtest) ile uctan uca test

Tasarım kararlarının hepsi TASARIM.md içinde (%51 önlemleri: bölüm 13, şifreleme: 14, uygulama: 15, köprüler: 16, Faz 5c güvenlik sertleştirmesi: 17).

Bu sayfa projedeki BENIOKU.md dosyasından üretildi.