இது எவ்வாறு இயங்குகிறதுAperture

பேட்டைக்கு கீழ்

உண்மையான குறியீடு.
உண்மையான பாதுகாப்பு.

உங்கள் ஐபோனில் இயங்கும் ஓப்பன் சோர்ஸ் குறியீட்டின் மூலம், ஒரு பணப்பையை உருவாக்கி, அதை மீட்டமைத்து, நிதியை நகர்த்தும்போது, ​​உங்கள் சாதனத்தில் இதுவே நடக்கும்.

1 / 5

உண்மையான சீரற்ற தன்மையின் 128 பிட்கள்

கணினி CSPRNG உங்கள் சாதனத்தில் மூல என்ட்ரோபியை உருவாக்குகிறது - உங்கள் முழு பணப்பையின் ஒற்றை ஆதாரம்.

// CSPRNG அமைப்பிலிருந்து 128 பிட்கள் என்ட்ரோபி
var என்ட்ரோபி = தரவு (எண்ணிக்கை: 16)
SecRandomCopyBytes(kSecRandomDefault, 16, &என்ட்ரோபி)
// செக்சம் = SHA-256 இன் முதல் பிட்கள் (என்ட்ரோபி)
செக்சம் = SHA256.hash(data: entropy).prefix(1)
பிட்கள் = என்ட்ரோபி + செக்சம்
// ஒவ்வொரு 11-பிட் குழுவையும் BIP-39 சொல் பட்டியலுக்கு வரைபடமாக்கவும்
நினைவூட்டலை விடுங்கள் = bits.chunks(of: 11)
.map {wordlist[$0] } // 12 சொற்கள்
// 512-பிட் விதைக்கு நீட்டவும் (PBKDF2-HMAC-SHA512)
விதையை விடுங்கள் = PBKDF2.sha512(mnemonic.joined(" "),
உப்பு: "நினைவூட்டல்", சுற்றுகள்: 2048)
//Secure Enclave இல் முத்திரை - அது ஒருபோதும் வெளியேறாது
Keychain.store(விதை, அணுகல்:.thisDeviceOnly) முயற்சிக்கவும்
பயோமெட்ரி:.faceID)
1 / 4

நீங்கள் உங்கள் சொற்றொடரைத் தட்டச்சு செய்கிறீர்கள்

இது உள்நாட்டில் உள்ளிடப்பட்டது மற்றும் எங்கும் பரவுவதில்லை.

// நீங்கள் தட்டச்சு செய்யும் சொற்றொடரைப் படியுங்கள் - ஒருபோதும் அனுப்பப்படவில்லை
சொற்களை விடுங்கள் = சொற்றொடர்.லோவர்கேஸ்டு().பிளவு(" ")
// ஒவ்வொரு வார்த்தையும் BIP-39 பட்டியலில் இருக்க வேண்டும்
பாதுகாப்பு வார்த்தைகள்.அனைத்து திருப்தி (wordlist.contains)
இல்லையெனில் {WalletError.unknownWord} எறியுங்கள்
// செக்ஸத்தை மீண்டும் கணக்கிட்டு சரிபார்க்கவும்
விடு (என்ட்ரோபி, தொகை) = சொற்கள்.toEntropy()
காவலர் SHA256.hash(தரவு: என்ட்ரோபி).சரிபார்க்கிறது(தொகை)
இல்லையெனில் {WalletError.badCheksum } எறியுங்கள்
// தலைமுறையின் அதே வழித்தோன்றல் — முழுமையாக ஆஃப்லைனில்
விதையை விடுங்கள் = PBKDF2.sha512(words.joined(" "),
உப்பு: "நினைவூட்டல்", சுற்றுகள்: 2048)
Keychain.store (விதை, அணுகல்:.thisDeviceOnly) முயற்சிக்கவும்
1 / 3

உங்கள் சொந்த நாணயங்கள் தேர்ந்தெடுக்கப்பட்டன

உங்கள் செலவழிக்கப்படாத வெளியீடுகளிலிருந்து உள்ளீடுகள் வருகின்றன - மூன்றாம் தரப்பினர் இதில் ஈடுபடவில்லை.

// உங்கள் சொந்த செலவழிக்கப்படாத வெளியீடுகளிலிருந்து நாணயங்களைத் தேர்ந்தெடுக்கவும்
உள்ளீடுகளை விடுங்கள் = wallet.selectUTXOs(தொகை + கட்டணம்)
// பரிவர்த்தனையை முழுவதுமாக சாதனத்தில் உருவாக்கவும்
tx = TxBuilder(.bitcoin)
.சேர் (உள்ளீடுகள்)
.அனுப்பு(தொகை, பெறுநர்)
.மாற்றம்(க்கு: wallet.changeAddress).build()
// எதுவும் நகரும் முன் ஒவ்வொரு விவரத்தையும் நீங்கள் மதிப்பாய்வு செய்கிறீர்கள்
தற்போது (உறுதிப்படுத்தவும்: tx.summary)
// தொகை · கட்டணம் · பெறுநர் — இதுவரை எதுவும் அனுப்பப்படவில்லை
1 / 4

கையெழுத்து விசை பெறப்பட்டது

ஒரு உள்ளீடு குழந்தை விசை BIP-32 பாதை வழியாக பெறப்படுகிறது.

// இந்த உள்ளீட்டிற்கான குழந்தை விசையைப் பெறவும் (BIP-32)
விடு விசை = masterKey.derive("m/84'/0'/0'/0/\(i)")
// பரிவர்த்தனை முன் படத்தை ஹாஷ் செய்யவும் (இரட்டை SHA-256)
h = SHA256(SHA256(tx.preimage(i)))
//Secure Enclave இன் உள்ளே கையொப்பமிடு (முக ஐடி தேவை)
விடு சிக் = SecureEnclave.sign(h, key: key, முயற்சிக்கவும்
வளைவு:.secp256k1)
// கையொப்பமிடப்பட்ட பைட்டுகள் மட்டுமே சாதனத்தை விட்டு வெளியேறும்
tx.attach(sig, input: i)
network.broadcast(tx.serialized)

Aperture இன் ஓப்பன் சோர்ஸ் ஸ்விஃப்டில் இருந்து எளிமைப்படுத்தப்பட்டது — உண்மையான அல்காரிதம்கள், உங்கள் சாதனத்தில்.

முழு ஆதாரத்தையும் படிக்கவும்

விடுபட்டதைக் கவனியுங்கள்: சர்வர் இல்லை, கணக்கு இல்லை, நெட்வொர்க்கைக் கடக்கவில்லை. தனிப்பட்ட விசையானது உங்கள் சாதனத்தின்Secure Enclave க்குள் உருவாக்கப்பட்டது, சேமிக்கப்பட்டது மற்றும் பயன்படுத்தப்படுகிறது.