| এটি কীভাবে কাজ করে —Aperture

| ফণা অধীনে

| বাস্তব কোড।
| প্রকৃত নিরাপত্তা।

আপনি যখন একটি ওয়ালেট তৈরি করেন, একটি পুনরুদ্ধার করেন এবং তহবিল স্থানান্তর করেন — আপনার আইফোনে চলা ওপেন-সোর্স কোডের মাধ্যমে ধাপে ধাপে ট্রেস করা হয় তখন আপনার ডিভাইসে ঠিক এটিই ঘটে।

1 / 5

| 128 বিট সত্যিকারের এলোমেলোতা

| সিস্টেম CSPRNG আপনার ডিভাইসে কাঁচা এনট্রপি তৈরি করে — আপনার পুরো ওয়ালেটের একক উৎস।

| // CSPRNG সিস্টেম থেকে 128 বিট এনট্রপি
| var এনট্রপি = ডেটা (গণনা: 16)
| SecRandomCopyBytes(kSecRandomDefault, 16, &entropy)
| // চেকসাম = SHA-256 (এনট্রপি) এর প্রথম বিট
| let checksum = SHA256.hash(ডেটা: এনট্রপি)।প্রিফিক্স(1)
| চলুন বিটস = এনট্রপি + চেকসাম
| // BIP-39 শব্দ তালিকায় প্রতিটি 11-বিট গ্রুপ ম্যাপ করুন
| স্মরনিক = bits.chunks (of: 11)
|.map { wordlist[$0] } // ১২টি শব্দ
| // একটি 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 (এনট্রপি, যোগফল) = words.toEntropy()
| গার্ড SHA256.hash(ডেটা: এনট্রপি) যাচাই করে(সমষ্টি)
| অন্যথা { WalletError.badChecksum নিক্ষেপ করুন }
| // প্রজন্মের মতো একই ডেরিভেশন — সম্পূর্ণ অফলাইন
| let seed = PBKDF2.sha512(words.joined(" "),
| লবণ: "স্মরণীয়", রাউন্ডস: 2048)
| Keychain.store চেষ্টা করুন (বীজ, অ্যাক্সেস:.thisDeviceOnly)
1 / 3

আপনার নিজস্ব কয়েন নির্বাচন করা হয়

| ইনপুটগুলি আপনার অব্যয়িত আউটপুটগুলি থেকে আসে — কোনও তৃতীয় পক্ষ জড়িত নয়৷

| // আপনার নিজের অব্যয়িত আউটপুট থেকে ক—়েন বাছাই করুন
লেট ইনপুট = wallet.selectUTXOs(পরিমাণ + ফি)
| // সম্পূর্ণরূপে ডিভাইসে লেনদেন তৈরি করুন
| let tx = TxBuilder(.bitcoin)
|.add(ইনপুট)
|.send(পরিমাণ, কাছে: প্রাপক)
|.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)
| যাক h = SHA256(SHA256(tx. preimage(i)))
| //Secure Enclave এর ভিতরে সাইন ইন করুন (ফেস আইডি প্রয়োজন)
| sig = চেষ্টা করুন SecureEnclave.sign(h, কী: কী,
| বক্ররেখা:.secp256k1)
| // শুধুমাত্র স্বাক্ষরিত বাইট ডিভাইস ছেড়ে যায়
| tx.attach(sig, ইনপুট: i)
network.broadcast(tx.serialized)

|Aperture-এর ওপেন-সোর্স সুইফট থেকে সরলীকৃত — আপনার ডিভাইসে আসল অ্যালগরিদম।

| সম্পূর্ণ উৎস পড়ুন

| কি অনুপস্থিত লক্ষ্য করুন: কোন সার্ভার, কোন অ্যাকাউন্ট, কোন কী কখনও নেটওয়ার্ক অতিক্রম. ব্যক্তিগত কীটি আপনার ডিভাইসেরSecure Enclave-এর মধ্যে তৈরি, সঞ্চিত এবং সম্পূর্ণরূপে ব্যবহার করা হয়৷