یہ کیسے کام کرتا ہے —Aperture

ہڈ کے نیچے

اصلی کوڈ۔
حقیقی حفاظت۔

بالکل ایسا ہی آپ کے آلے پر ہوتا ہے جب آپ بٹوے بناتے ہیں، اسے بحال کرتے ہیں، اور فنڈز منتقل کرتے ہیں — آپ کے آئی فون پر چلنے والے اوپن سورس کوڈ کے ذریعے قدم بہ قدم سراغ لگایا جاتا ہے۔

1 / 5

حقیقی بے ترتیب پن کے 128 بٹس

سسٹم CSPRNG آپ کے آلے پر خام اینٹروپی تیار کرتا ہے - آپ کے پورے بٹوے کا واحد ذریعہ۔

// CSPRNG سسٹم سے اینٹروپی کے 128 بٹس
var اینٹروپی = ڈیٹا (گنتی: 16)
SecRandomCopyBytes(kSecRandomDefault, 16, &entropy)
// چیکسم = SHA-256 کے پہلے بٹس (اینٹروپی)
let checksum = SHA256.hash(data: entropy).prefix(1)
لیٹ بٹس = اینٹروپی + چیکسم
// BIP-39 ورڈ لسٹ میں ہر 11 بٹ گروپ کا نقشہ بنائیں
let mnemonic = bits.chunks (of: 11)
.map { wordlist[$0] } // 12 الفاظ
// 512 بٹ بیج تک پھیلائیں (PBKDF2-HMAC-SHA512)
let seed = PBKDF2.sha512(mnemonic.joined(" ")،
نمک: "میمونک"، راؤنڈز: 2048)
//Secure Enclave میں مہر - یہ کبھی نہیں چھوڑتا ہے۔
Keychain.store(بیج، رسائی:.thisDeviceOnly،
بایومیٹری:.faceID)
1 / 4

آپ اپنا جملہ ٹائپ کریں۔

یہ مقامی طور پر داخل ہوتا ہے اور کبھی بھی کہیں منتقل نہیں ہوتا ہے۔

// جو جملہ آپ ٹائپ کرتے ہیں اسے —ڑھیں — کبھی بھی منتقل نہیں ہوا۔
let words = phrase.lowercased().split("")
// BIP-39 فہرست میں ہر لفظ کا ہونا ضروری ہے۔
guard words.allSatisfy(wordlist.contains)
ورنہ { WalletError.unknownWord پھینک دیں }
// دوبارہ گنتی کریں اور چیکسم کی تصدیق کریں۔
let (entropy, sum) = words.toEntropy()
گارڈ SHA256.hash(ڈیٹا: اینٹروپی) تصدیق کرتا ہے(رقم)
ورنہ { WalletError.badChecksum پھینک دیں }
// نسل کے طور پر ایک ہی اخذ - مکمل طور پر آف لائن
let seed = PBKDF2.sha512(words.joined(" ")،
نمک: "میمونک"، راؤنڈز: 2048)
Keychain.store آزمائیں (بیج، رسائی:.thisDeviceOnly)
1 / 3

آپ کے اپنے سکے منتخب کیے گئے ہیں۔

ان پٹ آپ کے غیر خرچ شدہ آؤٹ پٹس سے آتے ہیں - کوئی تیسرا فریق ملوث نہیں ہے۔

// اپنے غیر خرچ شدہ آؤٹ پٹ سے سکے چنیں۔
let inputs = wallet.selectUTXOs(رقم + فیس)
// ٹرانزیکشن کو مکمل طور پر ڈیوائس پر بنائیں
let tx = TxBuilder(.bitcoin)
.add(inputs)
بھیجیں (رقم، کو: وصول کنندہ)
.change(to: wallet.changeAddress).build()
// آپ کچھ بھی حرکت کرنے سے پہلے ہر تفصیل کا جائزہ لیتے ہیں۔
موجودہ (تصدیق: tx.summary)
// رقم · فیس · وصول کنندہ — ابھی تک کچھ نہیں بھیجا گیا۔
1 / 4

دستخط کی کلید اخذ کی گئی ہے۔

فی ان پٹ چائلڈ کلید BIP-32 پاتھ کے ذریعے حاصل کی جاتی ہے۔

// اس ان پٹ کے لیے چائلڈ کلید حاصل کریں (BIP-32)
let key = masterKey.derive("m/84'/0'/0'/0/\(i)")
// ٹرانزیکشن پری امیج کو ہیش کریں (ڈبل SHA-256)
let h = SHA256(SHA256(tx.preimage(i)))
//Secure Enclave کے اندر سائن کریں (Face ID کی ضرورت ہے)
sig = آزمائیں SecureEnclave.sign(h، کلید: کلید،
وکر:.secp256k1)
// صرف دستخط شدہ بائٹس ڈیوائس کو چھوڑ دیتے ہیں۔
tx.attach(sig، ان پٹ: i)
network.broadcast(tx.serialized)

آپ کے آلے پرAperture کے اوپن سورس Swift — اصلی الگورتھم سے آسان۔

مکمل ماخذ پڑھیں

نوٹ کریں کہ کیا غائب ہے: کوئی سرور، کوئی اکاؤنٹ، کوئی کلید کبھی بھی نیٹ ورک کو عبور نہیں کرتی ہے۔ نجی کلید مکمل طور پر آپ کے آلے کےSecure Enclave کے اندر بنائی، ذخیرہ، اور استعمال کی جاتی ہے۔