กระเป๋าคืออะไร?

มือใหม่10/1/2024, 6:09:44 PM
ในโพสต์นี้เราจะพูดถึงกระเป๋าเงินคืออะไร วิธีการสร้างกระเป๋าเงิน และวิธีการใช้รหัสเคอร์ฟริดโค้งเพื่อสร้างและรักษาความปลอดภัยของคู่คีย์ส่วนตัว-สาธารณะ รวมถึงสร้างวลีเซ็ด และให้ความสะดวกในการทำธุรกรรมบล็อกเชนอย่างปลอดภัย

กระเป๋าเงินดิจิทัลเป็นเครื่องมือที่สำคัญที่ช่วยให้ผู้ใช้จัดการบัญชีบล็อกเชนของพวกเขาได้อย่างปลอดภัย จัดเก็บสินทรัพย์ของพวกเขาได้อย่างปลอดภัย และเซ็นต์ธุรกรรมเพื่อทำการเปลี่ยนแปลงสถานะบล็อกเชน

ในโพสต์นี้เราจะพูดถึงว่ากระเป๋าเงินคืออะไร วิธีการสร้างกระเป๋าเงิน และวิธีที่พวกเขาใช้คริปโทกราฟีแบบวงรีเพื่อสร้างและปกป้องคู่กุญแจส่วนตัว-สาธารณะ สกัดวลีเมล็ดพันธุ์ และสนับสนุนการโต้ตอบบล็อกเชนที่ปลอดภัย

Walletคืออะไร?

กระเป๋าเป็นแอปพลิเคชันที่ช่วยให้คุณดูและปฏิสัมพันธ์กับบัญชีบล็อกเชนของคุณ บัญชีเหล่านี้ช่วยให้คุณสามารถส่งธุรกรรมเพื่อดำเนินการ เช่น การส่งโทเค็นหรือปฏิสัมพันธ์กับสัญญาอัจฉริยะ

บัญชีแต่ละบัญชีบนบล็อกเชนประกอบด้วยคู่คีย์ทางกลวิธี; เซ็ตของ 2 คีย์ที่เชื่อมโยงกัน ในบริบทของบล็อกเชน ประเภทบัญชีนี้เรียกว่าบัญชีเป็นเจ้าของภายนอก (Externally Owned Account - EOA) และประกอบด้วยคีย์สาธารณะและคีย์ส่วนตัว

  • คีย์สาธารณะ: ที่อยู่ของกระเป๋าเงินของคุณ สามารถแบ่งปันกับใครก็ได้และผู้อื่น (หรือสัญญาอัจฉริยะ) สามารถใช้งานได้เพื่อส่งสกุลเงินดิจิทัลถึงคุณ
  • คีย์ส่วนตัว: “คีย์ในการเซ็น” ที่คุณใช้ในการเซ็นข้อความหรือธุรกรรม ผู้ใดที่มีการเข้าถึงคีย์ส่วนตัวจะมีการควบคุมเต็มรูปแบบต่อเงินในกระเป๋า

คีย์เจาะระดับนี้มีคุณสมบัติที่มีประสิทธิภาพเรียกว่าฟังก์ชั่นประตูกั้น หมายความว่า:

  • ง่ายต่อการหาคีย์สาธารณะหากคุณมีคีย์ส่วนตัว (A→B)
  • เป็นไปไม่ได้ที่จะหากลุ่มส่วนตัวออกได้ หากคุณมีคีย์สาธารณะ (B→A)

กระเป๋าใช้ทำอะไร

กระเป๋าใช้ในการเซ็นข้อความหรือธุรกรรมโดยใช้คีย์ส่วนตัวของกระเป๋าเพื่อส่งไปยังบล็อกเชน

กระเป๋าให้วิธีที่จะรู้ว่าข้อความหรือธุรกรรมที่อยู่ในกระเป๋าได้ตกลงกันไว้ โดยเนื่องจากสามารถกู้คืนคีย์สาธารณะของผู้ส่งธุรกรรมจากลายเซ็นต์ธุรกรรมได้ นี่เป็นสิ่งที่สำคัญเพื่อป้องกันธุรกรรมปลอม / อันตรายจากการได้รับการยอมรับบนบล็อกเชน

ตัวอย่างเช่น Jarrod สามารถส่งธุรกรรมที่อ้างว่า Abril ส่ง 5 ETH ให้เขา แม้กระทั่งเธอไม่เคยยินยอมธุรกรรมนี้ อย่างไรก็ตาม เนื่องจากบล็อกเชนยืนยันลายเซ็นของแต่ละธุรกรรม จึงจะปฏิเสธธุรกรรมเร็ว ๆ นี้เนื่องจากที่อยู่ที่กู้คืนจากลายเซ็นไม่ตรงกับ "ผู้ส่ง" ของธุรกรรม (เช่น Abril)

บล็อกเชนเช่น Ethereum ใช้ ECDSA (Elliptic Curve Digital Signature Algorithm) เพื่อตรวจสอบว่าคีย์สาธารณะที่กู้คืนจากลายเซ็นธุรกรรมตรงกับคีย์สาธารณะของผู้ที่ส่งธุรกรรมไปยังเครือข่ายหรือไม่

วิธีสร้างกระเป๋าเงิน

เพื่อสร้างกระเป๋า คุณต้องสร้างคู่กุญแจสาธารณะ-ส่วนตัว อย่างไรก็ตามค่าของคู่กุญแจเหล่านี้จำเป็นต้องทำตามกฎบางข้อเพื่อให้ทำงานบนบล็อกเชน

  1. คีย์ส่วนตัวประกอบด้วยอักขระ 16 หลักทศนิยม (อักขระ 0→F) ทั้งหมด 64 ตัว
  2. กุญแจสาธารณะได้รับมาจากกุญแจส่วนตัวโดยใช้เทคนิคกาวเป็นหลัก (ECC)
  3. คีย์สาธารณะถูกแบ่งออกเป็นชิ้นเล็ก ๆ และถูกนำไปทำการแฮชและจัดรูปเป็นที่อยู่ 42 อักขระ

กระบวนการ 3 ขั้นตอนนี้คือกระแสหลักของวิธีการสร้างบัญชีบนบล็อกเชน

ต่อไปเราจะศึกษาวิธีที่ใช้ในการสร้าง public key ด้วย elliptic curve และ private key แต่ก่อนนั้นเราจะตอบคำถามอื่น ๆ เกี่ยวกับกระเป๋าเงินด้วย เช่น:

  • ฉันจะได้รับคีย์ส่วนตัวของฉันอย่างไรที่จะสร้างขึ้นแบบสุ่ม?
  • ถ้าฉันได้รับคีย์ส่วนตัวเดียวกันกับคนอื่นจะเป็นอย่างไร?
  • ซีดฟราส์ทำอย่างไรในขั้นตอนนี้?
  • การสร้างคีย์เพียวหลายคีย์จากวลีเมล็ดพันธุ์เดียวกันทำอย่างไร?

คำเมล็ดคืออะไร?

ในขณะที่เป็นไปได้ที่จะสร้างค่า 64-hex แบบสุ่มเหมือนที่เราแสดงให้เห็นได้เมื่อสักครู่ แต่โดยปกติแล้ว กุญแจส่วนตัวจะถูกสร้างขึ้นโดยใช้มาตรฐานเฉพาะที่มาจาก Bitcoin มาตรฐานเหล่านี้ช่วยให้ผู้ใช้จำ seed phrase ซึ่งเป็นวลี 12-24 คำที่สามารถใช้สร้างบัญชีใหม่ได้หลายบัญชีที่เกี่ยวข้องกับมัน

นี้ช่วยให้ผู้ใช้จดจำชุดคำได้เพียงชุดเดียวเพื่อเข้าถึงบัญชีทั้งหมดของพวกเขา แต่ละอันมีคู่กุญแบบสาธารณะ-ส่วนตัวแต่ละคู่ จำนวนที่ไม่จำกัดของคีย์ส่วนตัวใหม่สามารถได้มาจากวลีเมล็ดเดียวกันโดยใช้ฟังก์ชันการกำหนดคีย์ที่เฉพาะเจาะจง (KDF)

ดังนั้นเราจะเริ่มต้นด้วยการอธิบายว่า seed phrases ถูกสร้างขึ้นโดยอิทธิพลสุ่มแบบสุ่มและวิธีการสร้าง private keys จาก seed phrases ก่อนที่จะย้อนกลับมาอธิบายวิธีการสร้าง public keys จาก private keys

วิธีทำงานของวลีเมล็ด

เมื่อคุณติดตั้งแอปพลิเคชันกระเป๋าครั้งแรก โดยทั่วไปแล้วจะถามให้คุณเขียน seed phrase ลงและเก็บไว้อย่างปลอดภัยในที่ไหนบางที จะเป็นคำสั่งที่ประกอบด้วย 12 หรือ 24 คำ คุณสามารถดูตัวอย่างรายการคำศัพท์ภาษาอังกฤษที่เป็นไปได้ที่นี่, ซึ่งคุณจะรู้ว่ามีความยาว 2048 คำ (เราจะกลับมาพูดถึงจำนวนนั้นในไม่ช้า)

BIP-39 คืออะไร?

ความคิดเห็นเรื่องการเก็บรักษาวลีต้นไม้ได้ถูกนำเสนอครั้งแรกในปี 2013 ด้วย BIP (Bitcoin Improvement Proposal) หรือ BIP-39 ข้อเสนอนี้จะให้วิธีมาตรฐานในการสร้างเอ็นโทรพีที่สุ่มและแปลงเป็นคำที่ง่ายจะจำ

การสร้างวลีเมล็ด

ก่อนอื่นเราต้องตรวจสอบให้แน่ใจว่าวลีดใบเมล็ดของเราถูกสุ่มสร้างขึ้น หลังจากนั้น เราไม่ต้องการให้ใครก็ตามเข้าไปในกระเป๋าเงินของเราโดยบังคับและเข้าถึงเงินของเรา

เพื่อทำสิ่งนี้ เราจะสร้างหมายเลขสุ่มโดยใช้ CSPRNG (Cryptographically secure pseudorandom number generator) ซึ่งคุณสามารถทำได้ในเบราว์เซอร์ของคุณ:

หมายเลขสุ่มนี้เรียกว่าเอ็นโทรปี เอ็นโทรปีนี้ใช้สร้างชุดคำที่เป็นวลีเมล็ดพันธุ์ ในกรณีของเรา 128 บิตสร้างเป็น 12 คำ แต่ก็สามารถใช้ความยาวอื่น ๆ ได้เช่นกัน เช่น

  • 15 คำ: 160 บิต
  • 18 คำ: 192 บิต
  • 21 คำ: 224 บิต
  • 24 คำ: 256 บิต

ดังนั้นเราจะใช้บิตเหล่านี้เพื่อสร้างวลีเมล็ดพันธุ์ได้อย่างไร? ความสัมพันธ์ระหว่างบิตกับคำคืออะไร? ก่อนอื่นจะสร้าง checksum สำหรับอุปรณ์และแนบไปยัง 128 บิต; นี่คือการสร้างแฮช 4 บิตของอุปกรณ์เพื่อให้มั่นใจได้ว่ามันเป็นไปตามความเป็นจริงของมัน

ดังนั้นเราตอนนี้มี 128 บิตของตัวแปรสุ่ม + 4 บิตของ checksum เพื่อทำให้เป็นรวมทั้งหมด 132 บิต ต่อไป 132 บิตจะถูกแปลงเป็นไบนารี โดยเฉพาะอย่างยิ่งพวกเขาถูกแบ่งออกเป็นชิ้นเล็ก ๆ ของ 11 บิต

ขณะนี้เรามีชุดของตัวเลขสอง進เลข รอบละ 11 บิต คำใบ้: เรามีจำนวน 12 ตัวเลข และวลีเมล็ดพันธุ์ของเราจะเป็น 12 คำ

จำได้ไหมว่าเรามีคำ 2048 คำในรายการของเราและเลือก 2048 นั่นเพราะ 2048 เท่ากับ 2^11 เนื่องจากมีตัวเลขไบนารีที่เป็นไปได้ต่างๆ 2048 ตัวที่คุณสามารถทำได้ด้วย 11 บิต

ตอนนี้เราแค่ต้องแปลงเลขฐานสองเหล่านี้เป็นคำจากรายการคำของเราเท่านั้น นั่นคือการใช้เลขฐานสองเป็นดัชนีเพื่อค้นหาคำในรายการคำ กล่าวคือ หากเลขฐานสองเป็น 10 เราจะใช้คำที่ 9 ในรายการ (เนื่องจากเริ่มต้นด้วยดัชนี 0) เช่น:

  • 000000111, (7 in binary) เป็นสิ่งที่ 8 ในรายการ ซึ่งคือ สรุป! 😉
  • 11111111111, (2047 in binary) เป็นรายการสุดท้ายในรายการ (อันดับที่ 2048) ซึ่งคือ "สวนสัตว์"

ทำซ้ำนี้ 12 ครั้ง หนึ่งครั้งสำหรับแต่ละตัวเลข 11 บิตเพื่อสร้างวลีซีดที่ประกอบด้วย 12 คำ

โดยการสร้างค่าเอ็นโทรปีสุ่ม แยกเป็นชิ้นเล็ก ๆ ของไบนารี และใช้ค่าไบนารีเหล่านั้นเป็นดัชนีในการค้นหาคำในรายการคำ เราก็จะได้อยู่ที่วลีเมล็ดพันธุ์ที่สุ่ม

มีใครที่สามารถเดาว่าคำรหัสเมล็ดพันธุ์ของฉันหรือไม่

ปฏิกิริยาทันทีของคุณต่อสิ่งนี้อาจเป็น: 'ถ้ามีเพียงคำศัพท์ 2048 คำเท่านั้น ใครสักคนสามารถเดา seed phrase ของฉันได้หรือเปล่า?' เอาเป็นว่า ทางทฤษฎีแล้วถูก แต่มันเป็นเรื่องที่... จริงๆ, ไม่น่าจะเป็นไปได้มากเลย คุณสงสัยว่าน่าจะเป็นไปได้อย่างไรล่ะ?

สมมติว่าเราลืมขั้นตอนการสร้างตัวเลขสุ่ม 128 บิตและเลือกคำ 12 คำจากรายการเองแทน ทุกครั้งที่เราเลือกคำ เราก็เลือกหนึ่งตัวเลือกในกลุ่มคำ 2048 คำ

ดังนั้นเราสามารถบอกได้ว่าสำหรับใครบางคนที่จะเดาลำดับคำเหล่านี้ได้เช่นกัน พวกเขาจำเป็นต้องเดาคำเดียวกันกับเราด้วยโอกาส 1/2048 12 ครั้งติดต่อกัน ขณะนี้คุณอาจคิดว่า "โอเค ซึ่งไม่ยากอะไร..." ใช่ไหม?” แต่เรามาเล่นต่อ:

  • คําแรก: ตัวเลือก 2048
  • คําที่สอง: ตัวเลือก 2048
  • และอื่น ๆ อีก ไปจนถึง 12: 2048 ตัวเลือก

นี่คือ 2048 x 2048 x 2048 ... 12 ครั้ง หรือ 2048^12 ซึ่งเป็นจำนวนที่ใหญ่มากอย่างรุนแรง โดยประมาณ 5 ล้านล้านล้านล้าน หรือ 5 แสนล้านล้านล้าน นั่นเป็นสิ่งที่เราไม่สามารถเข้าใจได้ แต่ลองมาลองกัน...

จินตนาการว่าคุณเริ่มทายตอนนี้โดยใช้คอมพิวเตอร์ที่มีกำลังการทายตัวเลขเมล็ดพันล้านต่อวินาที จะใช้เวลาในการทายเมล็ดพันล้านปี 159 ล้านปีสำหรับทายเมล็ดพันล้านตัวหรือ (ขึ้นอยู่กับสิ่งที่คุณเชื่อ) ราว ๆ 11,000 เท่าของอายุปัจจุบันของจักรวาล

วลีเมล็ดพันธุ์ 24 คำดีกว่า 12 คำหรือไม่?

บางกระเป๋าเลือกใช้ 128 บิต (12 คำ), แต่กระเป๋าที่ทันสมัยมากขึ้นจะขอให้คุณจดจำ 24 คำสำหรับวลีเมล็ดพันธุ์ของคุณ! ซึ่งก็ใหญ่มากอีกครั้ง

วิธีการสร้างคีย์ส่วนตัวจาก seed phrases

ตอนนี้เรามีซีดฟราส์ 12 คำ แต่เราจะใช้มันเพื่อสร้างกุญแจส่วนตัวสำหรับบัญชีได้อย่างไร? เพื่อทำเช่นนี้เราต้องแปลงซีดฟราส์ของเราเป็นไบนารีซีดที่สามารถใช้สร้างกระเป๋าเงินได้ กระบวนการนี้รวมถึงขั้นตอนต่อไปนี้:

  1. ตามต้องการผู้ใช้สามารถให้รหัสผ่านเพิ่มเติมได้
  2. อัลกอริทึมที่เรียกว่า PBKDF2 (ฟังก์ชันการไดเวอร์รี่คีย์ที่ใช้รหัสผ่านเป็นพื้นฐาน) รับเข้าไป: วลีเมล็ดพันธุ์ การผสมของสตริง "mnemonic" และรหัสผ่าน (ถ้ามี)

กระบวนการนี้ (เรียกว่าฟังก์ชันการกำหนดคีย์), ส่งออกค่าแฮชขนาด 64 ไบต์ที่เรียกว่าเมล็ดไบนารีโดยใช้อัลกอริทึมอื่นที่เรียกว่า HMAC-SHA512 เป็นฟังก์ชันเทียบเท่าสุ่ม

ค่าแฮช 64 ไบต์ที่ถูกส่งออกสามารถนำมาใช้ในการสร้างบัญชีโดยใช้ตรรกะที่มาจากมาตรฐานบิตคอยน์อื่น ๆ โดยเฉพาะอย่างยิ่ง BIP-32 และตามต้องการ BIP-44 ที่เป็นส่วนขยายของ BIP-32

BIP-32 คืออะไร?

BIP-32 แนะนํากระเป๋าเงินที่กําหนดลําดับชั้น (HD) ที่ซึ่งกระเป๋าเงินจํานวนมากสามารถได้มาจากเมล็ดเดียวและกระเป๋าเงินจํานวนมากสามารถหาได้จากกระเป๋าเงินเหล่านั้นสร้าง "ต้นไม้" ของกระเป๋าเงิน

BIP-44 คืออะไร?

BIP-44 จะให้ทางเลือกทางมาตรฐานในการสร้างโครงสร้างกระเป๋าสตรีมาจากเมล็ดเดียวโดยการนำเอาเส้นทางการสืบทอดเฉพาะกลุ่มไปปฏิบัติตามโครงสร้างต่อไปนี้: m / purpose’ / coin_type’ / account’ / change / address_index:

  • วัตถุประสงค์: ระบุมาตรฐาน BIP ที่ใช้; สำหรับ BIP-44 คือ 44’.
  • coin_type: ระบุสกุลเงินดิจิตอล; เช่น 0 สำหรับ Bitcoin, 60 สำหรับ Ethereum.
  • บัญชี: แยกแยะระหว่างบัญชีผู้ใช้ที่แตกต่างกัน
  • change: แสดงประเภทของที่อยู่: 0 สำหรับการรับเงิน, 1 สำหรับการเปลี่ยนแปลง
  • address_index: ให้ดัชนีที่เป็นเอกลักษณ์สำหรับแต่ละที่อยู่ในบัญชีเดียวกันและประเภทการเปลี่ยนแปลง

กระเป๋าเงินบางใบไม่ได้ใช้ BIP-44 แต่เป็นวิธีทั่วไปในการกําหนดมาตรฐานว่าบัญชีได้มาจากเมล็ดพันธุ์ไบนารีอย่างไร

การสร้างคีย์ส่วนตัวจากเมล็ดทอง

เหมือนที่เราได้กล่าวไปก่อนหน้านี้ กุญแจส่วนตัวมี 64 อักขระฮ็อกเซนต์ ซึ่งเท่ากับ 32 ไบต์ และเราเพิ่งสร้างซีดไบนารีขนาด 64 ไบต์ผ่านกระบวนการ PBKDF2 - ดังนั้นเราจะใช้ค่าแฮชขนาด 64 ไบต์นี้เพื่อสร้างกุญแจส่วนตัวได้อย่างไร?

ก่อนอื่น แฮชจะถูกแบ่งเป็นสองครึ่ง แต่ละครึ่งมีขนาด 32 ไบต์:

  1. ครึ่งแรกเป็นคีย์ส่วนตัวหลัก นี่คือการทําแผนที่โดยตรง 1-1 ของเมล็ดพันธุ์ไบนารี (สร้างขึ้นโดยใช้วลีเมล็ดพันธุ์ของคุณ) และกระเป๋าเงินของคุณ สามารถใช้ในกระบวนการสร้างคีย์ส่วนตัวลูก
  2. ครึ่งหลังคือรหัสโซ่ ใช้เพื่อให้แน่ใจว่า: หากคีย์ลูก ถูกคัดค้าน คีย์หลักยังคงปลอดภัย คีย์ลูกสามารถสร้างอย่างสม่ำเสมอและไม่ซ้ำซ้อน

ตอนนี้เราเข้าใจแล้วว่าคีย์ส่วนตัวมีลักษณะอย่างไรสร้างแบบสุ่มอย่างไรและได้มาซึ่งคีย์หลายคีย์จากวลีเมล็ดพันธุ์เดียว ต่อไปเรามาสํารวจว่าคีย์สาธารณะได้มาจากคีย์ส่วนตัวอย่างไร

วิธีการทำงานของคีย์สาธารณะ-ส่วนตัว

โดยใช้คริปโทกราฟีแบบวงรี (ECC) เราสามารถหาคีย์สาธารณะสำหรับคีย์ส่วนตัวที่กำหนดได้ มีวงเล็บวงรีชนิดต่าง ๆ อยู่ แต่วงเล็บวงรีที่ใช้ทั้ง Bitcoin และ Ethereum คือ secp256k1

ข้อมูลสำหรับเส้นโค้งวงรีรวมถึงจุดเริ่มต้น G ที่ใช้เป็นจุดเริ่มต้นในการสร้างจุดอื่น ๆ บนเส้นโค้ง จากจุดเริ่มต้นนี้เราจะ "เคลื่อนที่" บนเส้นโค้งจำนวนครั้งที่กำหนด (โดยกำหนดโดยคีย์ส่วนตัวของเรา) ในวิธีที่เฉพาะเจาะจง จุดบนเส้นโค้งที่เราจะอยู่เมื่อเราหยุดกระบวนการนี้จะเป็นคีย์สาธารณะของเรา

วิธีที่เรา "เคลื่อนที่" บนเส้นโค้งเรียกว่าการคูณสกาล. เมื่อทำงานกับเส้นโค้งเอลลิปติก สกาลหมายถึงตัวเลขที่ใช้สเกลจุดบนเส้นโค้ง. เราเอาจุดฐาน G และใช้ตัวเลขสกาลบนจุดนั้นเพื่อให้ได้จุดใหม่บนเส้นโค้ง โดย "ยืดตัว" จุดนั้นออก

จำนวนสกาลที่เรานำมาใช้กับจุดเริ่มต้นคือคีย์ส่วนตัวของเรา; ง่ายๆ ก็คือเราเอาจุดเริ่มต้น G ของเราและนำมาคูณกับคีย์ส่วนตัวของเราเพื่อให้ได้คีย์สาธารณะของเรา

ในความเป็นจริงแล้วเนื่องจากเส้นโค้งถูกกำหนดในฟิลด์จำนวนเฉพาะ ℤp ดังนั้นดูเหมือนมีจุดกระจายอย่างกระจายทั่วไป... แต่ยังคงมีคุณสมบัติเดียวกันกับเส้นโค้งเทียมกัน

ตอนที่สิ้นสุดของกระบวนการคูณค่าสเกลาร์นี้ (กระเด่นโดยรอบจำนวนของคีย์ส่วนตัว), เราจะได้รับจุดใหม่บนเส้นโค้งซึ่งเป็นคีย์สาธารณะของเรา คุณสามารถจินตนาการกระบวนการนี้ดูเหมือนสิ่งใดสิ่งหนึ่งดังนี้:

บุคคลทั่สำคัญใช้ทำอะไรบนบล็อกเชนคะ

คีย์สาธารณะ, ตามชื่อเสียงของมัน, สามารถแชร์กับทุกคนได้อย่างสะดวก มันเป็นประโยชน์สำหรับ:

  • เห็นใครส่งธุรกรรมบนบล็อกเชน
  • การรับเงิน เช่น ETH จากกระเป๋าอื่น
  • สามารถใช้ในการตรวจสอบว่าคีย์ส่วนตัวได้ลงนามข้อความหรือไม่

สรุป

กระเป๋าเป็นส่วนสำคัญของบล็อกเชนที่ใช้วิธีการเข้ารหัสเส้นโค้งเอลลิปติกเพื่ออนุญาตให้ผู้ใช้ส่งธุรกรรมและลงนามข้อความจากบัญชีของพวกเขา

อย่างไรก็ตาม บางบล็อกเชนเช่น Abstract ยังสนับสนุนประเภทของกระเป๋าใหม่ที่เรียกว่าบัญชีสมาร์ทคอนแทรค ที่ให้คุณสมบัติเพิ่มเติมและเปิดใช้งานกลไกการรักษาความปลอดภัยที่แข็งแกร่งขึ้น การกู้คืนเงิน และอื่น ๆ

คำปฏิเสธ:

  1. บทความนี้ถูกสำเนามาจาก [https://abs.xyz/blog], ส่งต่อชื่อเรื่องต้นฉบับ 'คือกระเป๋าใบนี้หรือ?' ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [ Jarrod Watts ] หากมีคำโต้แย้งในการเผยแพร่นี้ กรุณาติดต่อ Gate เรียนรู้ทีมงานและพวกเขาจะจัดการให้โดยเร็ว

  2. ข้อจํากัดความรับผิดชอบความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนและไม่ถือเป็นคําแนะนําการลงทุนใด ๆ

  3. การแปลบทความเป็นภาษาอื่น ๆ ทำโดยทีม Gate Learn ห้ามทำสำเนา แจกจ่ายหรือลอกเลียนแบบบทความแปล นอกจากที่ระบุ

กระเป๋าคืออะไร?

มือใหม่10/1/2024, 6:09:44 PM
ในโพสต์นี้เราจะพูดถึงกระเป๋าเงินคืออะไร วิธีการสร้างกระเป๋าเงิน และวิธีการใช้รหัสเคอร์ฟริดโค้งเพื่อสร้างและรักษาความปลอดภัยของคู่คีย์ส่วนตัว-สาธารณะ รวมถึงสร้างวลีเซ็ด และให้ความสะดวกในการทำธุรกรรมบล็อกเชนอย่างปลอดภัย

กระเป๋าเงินดิจิทัลเป็นเครื่องมือที่สำคัญที่ช่วยให้ผู้ใช้จัดการบัญชีบล็อกเชนของพวกเขาได้อย่างปลอดภัย จัดเก็บสินทรัพย์ของพวกเขาได้อย่างปลอดภัย และเซ็นต์ธุรกรรมเพื่อทำการเปลี่ยนแปลงสถานะบล็อกเชน

ในโพสต์นี้เราจะพูดถึงว่ากระเป๋าเงินคืออะไร วิธีการสร้างกระเป๋าเงิน และวิธีที่พวกเขาใช้คริปโทกราฟีแบบวงรีเพื่อสร้างและปกป้องคู่กุญแจส่วนตัว-สาธารณะ สกัดวลีเมล็ดพันธุ์ และสนับสนุนการโต้ตอบบล็อกเชนที่ปลอดภัย

Walletคืออะไร?

กระเป๋าเป็นแอปพลิเคชันที่ช่วยให้คุณดูและปฏิสัมพันธ์กับบัญชีบล็อกเชนของคุณ บัญชีเหล่านี้ช่วยให้คุณสามารถส่งธุรกรรมเพื่อดำเนินการ เช่น การส่งโทเค็นหรือปฏิสัมพันธ์กับสัญญาอัจฉริยะ

บัญชีแต่ละบัญชีบนบล็อกเชนประกอบด้วยคู่คีย์ทางกลวิธี; เซ็ตของ 2 คีย์ที่เชื่อมโยงกัน ในบริบทของบล็อกเชน ประเภทบัญชีนี้เรียกว่าบัญชีเป็นเจ้าของภายนอก (Externally Owned Account - EOA) และประกอบด้วยคีย์สาธารณะและคีย์ส่วนตัว

  • คีย์สาธารณะ: ที่อยู่ของกระเป๋าเงินของคุณ สามารถแบ่งปันกับใครก็ได้และผู้อื่น (หรือสัญญาอัจฉริยะ) สามารถใช้งานได้เพื่อส่งสกุลเงินดิจิทัลถึงคุณ
  • คีย์ส่วนตัว: “คีย์ในการเซ็น” ที่คุณใช้ในการเซ็นข้อความหรือธุรกรรม ผู้ใดที่มีการเข้าถึงคีย์ส่วนตัวจะมีการควบคุมเต็มรูปแบบต่อเงินในกระเป๋า

คีย์เจาะระดับนี้มีคุณสมบัติที่มีประสิทธิภาพเรียกว่าฟังก์ชั่นประตูกั้น หมายความว่า:

  • ง่ายต่อการหาคีย์สาธารณะหากคุณมีคีย์ส่วนตัว (A→B)
  • เป็นไปไม่ได้ที่จะหากลุ่มส่วนตัวออกได้ หากคุณมีคีย์สาธารณะ (B→A)

กระเป๋าใช้ทำอะไร

กระเป๋าใช้ในการเซ็นข้อความหรือธุรกรรมโดยใช้คีย์ส่วนตัวของกระเป๋าเพื่อส่งไปยังบล็อกเชน

กระเป๋าให้วิธีที่จะรู้ว่าข้อความหรือธุรกรรมที่อยู่ในกระเป๋าได้ตกลงกันไว้ โดยเนื่องจากสามารถกู้คืนคีย์สาธารณะของผู้ส่งธุรกรรมจากลายเซ็นต์ธุรกรรมได้ นี่เป็นสิ่งที่สำคัญเพื่อป้องกันธุรกรรมปลอม / อันตรายจากการได้รับการยอมรับบนบล็อกเชน

ตัวอย่างเช่น Jarrod สามารถส่งธุรกรรมที่อ้างว่า Abril ส่ง 5 ETH ให้เขา แม้กระทั่งเธอไม่เคยยินยอมธุรกรรมนี้ อย่างไรก็ตาม เนื่องจากบล็อกเชนยืนยันลายเซ็นของแต่ละธุรกรรม จึงจะปฏิเสธธุรกรรมเร็ว ๆ นี้เนื่องจากที่อยู่ที่กู้คืนจากลายเซ็นไม่ตรงกับ "ผู้ส่ง" ของธุรกรรม (เช่น Abril)

บล็อกเชนเช่น Ethereum ใช้ ECDSA (Elliptic Curve Digital Signature Algorithm) เพื่อตรวจสอบว่าคีย์สาธารณะที่กู้คืนจากลายเซ็นธุรกรรมตรงกับคีย์สาธารณะของผู้ที่ส่งธุรกรรมไปยังเครือข่ายหรือไม่

วิธีสร้างกระเป๋าเงิน

เพื่อสร้างกระเป๋า คุณต้องสร้างคู่กุญแจสาธารณะ-ส่วนตัว อย่างไรก็ตามค่าของคู่กุญแจเหล่านี้จำเป็นต้องทำตามกฎบางข้อเพื่อให้ทำงานบนบล็อกเชน

  1. คีย์ส่วนตัวประกอบด้วยอักขระ 16 หลักทศนิยม (อักขระ 0→F) ทั้งหมด 64 ตัว
  2. กุญแจสาธารณะได้รับมาจากกุญแจส่วนตัวโดยใช้เทคนิคกาวเป็นหลัก (ECC)
  3. คีย์สาธารณะถูกแบ่งออกเป็นชิ้นเล็ก ๆ และถูกนำไปทำการแฮชและจัดรูปเป็นที่อยู่ 42 อักขระ

กระบวนการ 3 ขั้นตอนนี้คือกระแสหลักของวิธีการสร้างบัญชีบนบล็อกเชน

ต่อไปเราจะศึกษาวิธีที่ใช้ในการสร้าง public key ด้วย elliptic curve และ private key แต่ก่อนนั้นเราจะตอบคำถามอื่น ๆ เกี่ยวกับกระเป๋าเงินด้วย เช่น:

  • ฉันจะได้รับคีย์ส่วนตัวของฉันอย่างไรที่จะสร้างขึ้นแบบสุ่ม?
  • ถ้าฉันได้รับคีย์ส่วนตัวเดียวกันกับคนอื่นจะเป็นอย่างไร?
  • ซีดฟราส์ทำอย่างไรในขั้นตอนนี้?
  • การสร้างคีย์เพียวหลายคีย์จากวลีเมล็ดพันธุ์เดียวกันทำอย่างไร?

คำเมล็ดคืออะไร?

ในขณะที่เป็นไปได้ที่จะสร้างค่า 64-hex แบบสุ่มเหมือนที่เราแสดงให้เห็นได้เมื่อสักครู่ แต่โดยปกติแล้ว กุญแจส่วนตัวจะถูกสร้างขึ้นโดยใช้มาตรฐานเฉพาะที่มาจาก Bitcoin มาตรฐานเหล่านี้ช่วยให้ผู้ใช้จำ seed phrase ซึ่งเป็นวลี 12-24 คำที่สามารถใช้สร้างบัญชีใหม่ได้หลายบัญชีที่เกี่ยวข้องกับมัน

นี้ช่วยให้ผู้ใช้จดจำชุดคำได้เพียงชุดเดียวเพื่อเข้าถึงบัญชีทั้งหมดของพวกเขา แต่ละอันมีคู่กุญแบบสาธารณะ-ส่วนตัวแต่ละคู่ จำนวนที่ไม่จำกัดของคีย์ส่วนตัวใหม่สามารถได้มาจากวลีเมล็ดเดียวกันโดยใช้ฟังก์ชันการกำหนดคีย์ที่เฉพาะเจาะจง (KDF)

ดังนั้นเราจะเริ่มต้นด้วยการอธิบายว่า seed phrases ถูกสร้างขึ้นโดยอิทธิพลสุ่มแบบสุ่มและวิธีการสร้าง private keys จาก seed phrases ก่อนที่จะย้อนกลับมาอธิบายวิธีการสร้าง public keys จาก private keys

วิธีทำงานของวลีเมล็ด

เมื่อคุณติดตั้งแอปพลิเคชันกระเป๋าครั้งแรก โดยทั่วไปแล้วจะถามให้คุณเขียน seed phrase ลงและเก็บไว้อย่างปลอดภัยในที่ไหนบางที จะเป็นคำสั่งที่ประกอบด้วย 12 หรือ 24 คำ คุณสามารถดูตัวอย่างรายการคำศัพท์ภาษาอังกฤษที่เป็นไปได้ที่นี่, ซึ่งคุณจะรู้ว่ามีความยาว 2048 คำ (เราจะกลับมาพูดถึงจำนวนนั้นในไม่ช้า)

BIP-39 คืออะไร?

ความคิดเห็นเรื่องการเก็บรักษาวลีต้นไม้ได้ถูกนำเสนอครั้งแรกในปี 2013 ด้วย BIP (Bitcoin Improvement Proposal) หรือ BIP-39 ข้อเสนอนี้จะให้วิธีมาตรฐานในการสร้างเอ็นโทรพีที่สุ่มและแปลงเป็นคำที่ง่ายจะจำ

การสร้างวลีเมล็ด

ก่อนอื่นเราต้องตรวจสอบให้แน่ใจว่าวลีดใบเมล็ดของเราถูกสุ่มสร้างขึ้น หลังจากนั้น เราไม่ต้องการให้ใครก็ตามเข้าไปในกระเป๋าเงินของเราโดยบังคับและเข้าถึงเงินของเรา

เพื่อทำสิ่งนี้ เราจะสร้างหมายเลขสุ่มโดยใช้ CSPRNG (Cryptographically secure pseudorandom number generator) ซึ่งคุณสามารถทำได้ในเบราว์เซอร์ของคุณ:

หมายเลขสุ่มนี้เรียกว่าเอ็นโทรปี เอ็นโทรปีนี้ใช้สร้างชุดคำที่เป็นวลีเมล็ดพันธุ์ ในกรณีของเรา 128 บิตสร้างเป็น 12 คำ แต่ก็สามารถใช้ความยาวอื่น ๆ ได้เช่นกัน เช่น

  • 15 คำ: 160 บิต
  • 18 คำ: 192 บิต
  • 21 คำ: 224 บิต
  • 24 คำ: 256 บิต

ดังนั้นเราจะใช้บิตเหล่านี้เพื่อสร้างวลีเมล็ดพันธุ์ได้อย่างไร? ความสัมพันธ์ระหว่างบิตกับคำคืออะไร? ก่อนอื่นจะสร้าง checksum สำหรับอุปรณ์และแนบไปยัง 128 บิต; นี่คือการสร้างแฮช 4 บิตของอุปกรณ์เพื่อให้มั่นใจได้ว่ามันเป็นไปตามความเป็นจริงของมัน

ดังนั้นเราตอนนี้มี 128 บิตของตัวแปรสุ่ม + 4 บิตของ checksum เพื่อทำให้เป็นรวมทั้งหมด 132 บิต ต่อไป 132 บิตจะถูกแปลงเป็นไบนารี โดยเฉพาะอย่างยิ่งพวกเขาถูกแบ่งออกเป็นชิ้นเล็ก ๆ ของ 11 บิต

ขณะนี้เรามีชุดของตัวเลขสอง進เลข รอบละ 11 บิต คำใบ้: เรามีจำนวน 12 ตัวเลข และวลีเมล็ดพันธุ์ของเราจะเป็น 12 คำ

จำได้ไหมว่าเรามีคำ 2048 คำในรายการของเราและเลือก 2048 นั่นเพราะ 2048 เท่ากับ 2^11 เนื่องจากมีตัวเลขไบนารีที่เป็นไปได้ต่างๆ 2048 ตัวที่คุณสามารถทำได้ด้วย 11 บิต

ตอนนี้เราแค่ต้องแปลงเลขฐานสองเหล่านี้เป็นคำจากรายการคำของเราเท่านั้น นั่นคือการใช้เลขฐานสองเป็นดัชนีเพื่อค้นหาคำในรายการคำ กล่าวคือ หากเลขฐานสองเป็น 10 เราจะใช้คำที่ 9 ในรายการ (เนื่องจากเริ่มต้นด้วยดัชนี 0) เช่น:

  • 000000111, (7 in binary) เป็นสิ่งที่ 8 ในรายการ ซึ่งคือ สรุป! 😉
  • 11111111111, (2047 in binary) เป็นรายการสุดท้ายในรายการ (อันดับที่ 2048) ซึ่งคือ "สวนสัตว์"

ทำซ้ำนี้ 12 ครั้ง หนึ่งครั้งสำหรับแต่ละตัวเลข 11 บิตเพื่อสร้างวลีซีดที่ประกอบด้วย 12 คำ

โดยการสร้างค่าเอ็นโทรปีสุ่ม แยกเป็นชิ้นเล็ก ๆ ของไบนารี และใช้ค่าไบนารีเหล่านั้นเป็นดัชนีในการค้นหาคำในรายการคำ เราก็จะได้อยู่ที่วลีเมล็ดพันธุ์ที่สุ่ม

มีใครที่สามารถเดาว่าคำรหัสเมล็ดพันธุ์ของฉันหรือไม่

ปฏิกิริยาทันทีของคุณต่อสิ่งนี้อาจเป็น: 'ถ้ามีเพียงคำศัพท์ 2048 คำเท่านั้น ใครสักคนสามารถเดา seed phrase ของฉันได้หรือเปล่า?' เอาเป็นว่า ทางทฤษฎีแล้วถูก แต่มันเป็นเรื่องที่... จริงๆ, ไม่น่าจะเป็นไปได้มากเลย คุณสงสัยว่าน่าจะเป็นไปได้อย่างไรล่ะ?

สมมติว่าเราลืมขั้นตอนการสร้างตัวเลขสุ่ม 128 บิตและเลือกคำ 12 คำจากรายการเองแทน ทุกครั้งที่เราเลือกคำ เราก็เลือกหนึ่งตัวเลือกในกลุ่มคำ 2048 คำ

ดังนั้นเราสามารถบอกได้ว่าสำหรับใครบางคนที่จะเดาลำดับคำเหล่านี้ได้เช่นกัน พวกเขาจำเป็นต้องเดาคำเดียวกันกับเราด้วยโอกาส 1/2048 12 ครั้งติดต่อกัน ขณะนี้คุณอาจคิดว่า "โอเค ซึ่งไม่ยากอะไร..." ใช่ไหม?” แต่เรามาเล่นต่อ:

  • คําแรก: ตัวเลือก 2048
  • คําที่สอง: ตัวเลือก 2048
  • และอื่น ๆ อีก ไปจนถึง 12: 2048 ตัวเลือก

นี่คือ 2048 x 2048 x 2048 ... 12 ครั้ง หรือ 2048^12 ซึ่งเป็นจำนวนที่ใหญ่มากอย่างรุนแรง โดยประมาณ 5 ล้านล้านล้านล้าน หรือ 5 แสนล้านล้านล้าน นั่นเป็นสิ่งที่เราไม่สามารถเข้าใจได้ แต่ลองมาลองกัน...

จินตนาการว่าคุณเริ่มทายตอนนี้โดยใช้คอมพิวเตอร์ที่มีกำลังการทายตัวเลขเมล็ดพันล้านต่อวินาที จะใช้เวลาในการทายเมล็ดพันล้านปี 159 ล้านปีสำหรับทายเมล็ดพันล้านตัวหรือ (ขึ้นอยู่กับสิ่งที่คุณเชื่อ) ราว ๆ 11,000 เท่าของอายุปัจจุบันของจักรวาล

วลีเมล็ดพันธุ์ 24 คำดีกว่า 12 คำหรือไม่?

บางกระเป๋าเลือกใช้ 128 บิต (12 คำ), แต่กระเป๋าที่ทันสมัยมากขึ้นจะขอให้คุณจดจำ 24 คำสำหรับวลีเมล็ดพันธุ์ของคุณ! ซึ่งก็ใหญ่มากอีกครั้ง

วิธีการสร้างคีย์ส่วนตัวจาก seed phrases

ตอนนี้เรามีซีดฟราส์ 12 คำ แต่เราจะใช้มันเพื่อสร้างกุญแจส่วนตัวสำหรับบัญชีได้อย่างไร? เพื่อทำเช่นนี้เราต้องแปลงซีดฟราส์ของเราเป็นไบนารีซีดที่สามารถใช้สร้างกระเป๋าเงินได้ กระบวนการนี้รวมถึงขั้นตอนต่อไปนี้:

  1. ตามต้องการผู้ใช้สามารถให้รหัสผ่านเพิ่มเติมได้
  2. อัลกอริทึมที่เรียกว่า PBKDF2 (ฟังก์ชันการไดเวอร์รี่คีย์ที่ใช้รหัสผ่านเป็นพื้นฐาน) รับเข้าไป: วลีเมล็ดพันธุ์ การผสมของสตริง "mnemonic" และรหัสผ่าน (ถ้ามี)

กระบวนการนี้ (เรียกว่าฟังก์ชันการกำหนดคีย์), ส่งออกค่าแฮชขนาด 64 ไบต์ที่เรียกว่าเมล็ดไบนารีโดยใช้อัลกอริทึมอื่นที่เรียกว่า HMAC-SHA512 เป็นฟังก์ชันเทียบเท่าสุ่ม

ค่าแฮช 64 ไบต์ที่ถูกส่งออกสามารถนำมาใช้ในการสร้างบัญชีโดยใช้ตรรกะที่มาจากมาตรฐานบิตคอยน์อื่น ๆ โดยเฉพาะอย่างยิ่ง BIP-32 และตามต้องการ BIP-44 ที่เป็นส่วนขยายของ BIP-32

BIP-32 คืออะไร?

BIP-32 แนะนํากระเป๋าเงินที่กําหนดลําดับชั้น (HD) ที่ซึ่งกระเป๋าเงินจํานวนมากสามารถได้มาจากเมล็ดเดียวและกระเป๋าเงินจํานวนมากสามารถหาได้จากกระเป๋าเงินเหล่านั้นสร้าง "ต้นไม้" ของกระเป๋าเงิน

BIP-44 คืออะไร?

BIP-44 จะให้ทางเลือกทางมาตรฐานในการสร้างโครงสร้างกระเป๋าสตรีมาจากเมล็ดเดียวโดยการนำเอาเส้นทางการสืบทอดเฉพาะกลุ่มไปปฏิบัติตามโครงสร้างต่อไปนี้: m / purpose’ / coin_type’ / account’ / change / address_index:

  • วัตถุประสงค์: ระบุมาตรฐาน BIP ที่ใช้; สำหรับ BIP-44 คือ 44’.
  • coin_type: ระบุสกุลเงินดิจิตอล; เช่น 0 สำหรับ Bitcoin, 60 สำหรับ Ethereum.
  • บัญชี: แยกแยะระหว่างบัญชีผู้ใช้ที่แตกต่างกัน
  • change: แสดงประเภทของที่อยู่: 0 สำหรับการรับเงิน, 1 สำหรับการเปลี่ยนแปลง
  • address_index: ให้ดัชนีที่เป็นเอกลักษณ์สำหรับแต่ละที่อยู่ในบัญชีเดียวกันและประเภทการเปลี่ยนแปลง

กระเป๋าเงินบางใบไม่ได้ใช้ BIP-44 แต่เป็นวิธีทั่วไปในการกําหนดมาตรฐานว่าบัญชีได้มาจากเมล็ดพันธุ์ไบนารีอย่างไร

การสร้างคีย์ส่วนตัวจากเมล็ดทอง

เหมือนที่เราได้กล่าวไปก่อนหน้านี้ กุญแจส่วนตัวมี 64 อักขระฮ็อกเซนต์ ซึ่งเท่ากับ 32 ไบต์ และเราเพิ่งสร้างซีดไบนารีขนาด 64 ไบต์ผ่านกระบวนการ PBKDF2 - ดังนั้นเราจะใช้ค่าแฮชขนาด 64 ไบต์นี้เพื่อสร้างกุญแจส่วนตัวได้อย่างไร?

ก่อนอื่น แฮชจะถูกแบ่งเป็นสองครึ่ง แต่ละครึ่งมีขนาด 32 ไบต์:

  1. ครึ่งแรกเป็นคีย์ส่วนตัวหลัก นี่คือการทําแผนที่โดยตรง 1-1 ของเมล็ดพันธุ์ไบนารี (สร้างขึ้นโดยใช้วลีเมล็ดพันธุ์ของคุณ) และกระเป๋าเงินของคุณ สามารถใช้ในกระบวนการสร้างคีย์ส่วนตัวลูก
  2. ครึ่งหลังคือรหัสโซ่ ใช้เพื่อให้แน่ใจว่า: หากคีย์ลูก ถูกคัดค้าน คีย์หลักยังคงปลอดภัย คีย์ลูกสามารถสร้างอย่างสม่ำเสมอและไม่ซ้ำซ้อน

ตอนนี้เราเข้าใจแล้วว่าคีย์ส่วนตัวมีลักษณะอย่างไรสร้างแบบสุ่มอย่างไรและได้มาซึ่งคีย์หลายคีย์จากวลีเมล็ดพันธุ์เดียว ต่อไปเรามาสํารวจว่าคีย์สาธารณะได้มาจากคีย์ส่วนตัวอย่างไร

วิธีการทำงานของคีย์สาธารณะ-ส่วนตัว

โดยใช้คริปโทกราฟีแบบวงรี (ECC) เราสามารถหาคีย์สาธารณะสำหรับคีย์ส่วนตัวที่กำหนดได้ มีวงเล็บวงรีชนิดต่าง ๆ อยู่ แต่วงเล็บวงรีที่ใช้ทั้ง Bitcoin และ Ethereum คือ secp256k1

ข้อมูลสำหรับเส้นโค้งวงรีรวมถึงจุดเริ่มต้น G ที่ใช้เป็นจุดเริ่มต้นในการสร้างจุดอื่น ๆ บนเส้นโค้ง จากจุดเริ่มต้นนี้เราจะ "เคลื่อนที่" บนเส้นโค้งจำนวนครั้งที่กำหนด (โดยกำหนดโดยคีย์ส่วนตัวของเรา) ในวิธีที่เฉพาะเจาะจง จุดบนเส้นโค้งที่เราจะอยู่เมื่อเราหยุดกระบวนการนี้จะเป็นคีย์สาธารณะของเรา

วิธีที่เรา "เคลื่อนที่" บนเส้นโค้งเรียกว่าการคูณสกาล. เมื่อทำงานกับเส้นโค้งเอลลิปติก สกาลหมายถึงตัวเลขที่ใช้สเกลจุดบนเส้นโค้ง. เราเอาจุดฐาน G และใช้ตัวเลขสกาลบนจุดนั้นเพื่อให้ได้จุดใหม่บนเส้นโค้ง โดย "ยืดตัว" จุดนั้นออก

จำนวนสกาลที่เรานำมาใช้กับจุดเริ่มต้นคือคีย์ส่วนตัวของเรา; ง่ายๆ ก็คือเราเอาจุดเริ่มต้น G ของเราและนำมาคูณกับคีย์ส่วนตัวของเราเพื่อให้ได้คีย์สาธารณะของเรา

ในความเป็นจริงแล้วเนื่องจากเส้นโค้งถูกกำหนดในฟิลด์จำนวนเฉพาะ ℤp ดังนั้นดูเหมือนมีจุดกระจายอย่างกระจายทั่วไป... แต่ยังคงมีคุณสมบัติเดียวกันกับเส้นโค้งเทียมกัน

ตอนที่สิ้นสุดของกระบวนการคูณค่าสเกลาร์นี้ (กระเด่นโดยรอบจำนวนของคีย์ส่วนตัว), เราจะได้รับจุดใหม่บนเส้นโค้งซึ่งเป็นคีย์สาธารณะของเรา คุณสามารถจินตนาการกระบวนการนี้ดูเหมือนสิ่งใดสิ่งหนึ่งดังนี้:

บุคคลทั่สำคัญใช้ทำอะไรบนบล็อกเชนคะ

คีย์สาธารณะ, ตามชื่อเสียงของมัน, สามารถแชร์กับทุกคนได้อย่างสะดวก มันเป็นประโยชน์สำหรับ:

  • เห็นใครส่งธุรกรรมบนบล็อกเชน
  • การรับเงิน เช่น ETH จากกระเป๋าอื่น
  • สามารถใช้ในการตรวจสอบว่าคีย์ส่วนตัวได้ลงนามข้อความหรือไม่

สรุป

กระเป๋าเป็นส่วนสำคัญของบล็อกเชนที่ใช้วิธีการเข้ารหัสเส้นโค้งเอลลิปติกเพื่ออนุญาตให้ผู้ใช้ส่งธุรกรรมและลงนามข้อความจากบัญชีของพวกเขา

อย่างไรก็ตาม บางบล็อกเชนเช่น Abstract ยังสนับสนุนประเภทของกระเป๋าใหม่ที่เรียกว่าบัญชีสมาร์ทคอนแทรค ที่ให้คุณสมบัติเพิ่มเติมและเปิดใช้งานกลไกการรักษาความปลอดภัยที่แข็งแกร่งขึ้น การกู้คืนเงิน และอื่น ๆ

คำปฏิเสธ:

  1. บทความนี้ถูกสำเนามาจาก [https://abs.xyz/blog], ส่งต่อชื่อเรื่องต้นฉบับ 'คือกระเป๋าใบนี้หรือ?' ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [ Jarrod Watts ] หากมีคำโต้แย้งในการเผยแพร่นี้ กรุณาติดต่อ Gate เรียนรู้ทีมงานและพวกเขาจะจัดการให้โดยเร็ว

  2. ข้อจํากัดความรับผิดชอบความรับผิด: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นเพียงของผู้เขียนและไม่ถือเป็นคําแนะนําการลงทุนใด ๆ

  3. การแปลบทความเป็นภาษาอื่น ๆ ทำโดยทีม Gate Learn ห้ามทำสำเนา แจกจ่ายหรือลอกเลียนแบบบทความแปล นอกจากที่ระบุ

เริ่มตอนนี้
สมัครและรับรางวัล
$100