สิ่งที่ต้องรู้: |
- Miniscript ทำให้สามารถสร้างกระเป๋าซอฟต์แวร์ Bitcoin ที่ทำให้ไม่สามารถใช้ประโยชน์จากช่องโหว่ลับๆ ได้ เรายินดีที่จะกล่าวว่า Ledger เป็นผู้ผลิตกระเป๋าเงินฮาร์ดแวร์เชิงพาณิชย์รายแรกที่รองรับ miniscript
- คุณสมบัติเพิ่มเติมสามารถนำไปใช้ได้โดยไม่กระทบต่อประสบการณ์ของผู้ใช้ |
อุปกรณ์เซ็นชื่อฮาร์ดแวร์ได้รับการออกแบบมาเพื่อปกป้องผู้ใช้จากเวกเตอร์การโจมตีทั่วไปต่างๆ เช่น:
- การเข้าถึงและการสกัดเมล็ดพันธุ์โดยไม่ได้รับอนุญาต
- มัลแวร์ที่ติดไวรัสกระเป๋าซอฟต์แวร์ที่เกี่ยวข้องของคุณ
- ช่องโหว่ของซอฟต์แวร์บนอุปกรณ์เอง
เช่นเดียวกับธุรกิจอื่นๆ ประโยชน์สูงสุดของผู้ผลิตคือทำให้อุปกรณ์เป็น ไม่รู้จักแตก เท่าที่จะทำได้ การประสบความสำเร็จในภารกิจนี้เป็นสิ่งสำคัญยิ่ง และบริษัทด้านความปลอดภัยอย่าง Ledger ต่างก็พึ่งพาชื่อเสียงที่สั่งสมมาจากผลงานของพวกเขา
อย่างไรก็ตาม ผู้ใช้บางคนอาจยังมีข้อกังวล อะไรที่ทำให้บริษัทไม่สามารถซ่อนตัวได้ ประตูหลัง ในอุปกรณ์?
ในการดูแลตนเองเรา ไม่ไว้วางใจ, เราตรวจสอบ.
แต่ผู้ใช้สามารถ จริงๆ ตรวจสอบว่าอุปกรณ์ไม่มีประตูหลังหรือไม่
นั่นคือคำถามสำคัญที่บทความนี้เจาะลึก บทความนี้กล่าวถึงหัวข้อต่อไปนี้อย่างแม่นยำยิ่งขึ้น:
- ประตูหลังคืออะไร และเหตุใดจึงเป็นเรื่องยาก หรือเป็นไปไม่ได้เลยที่จะพิสูจน์ว่าไม่มี
- ทำไมผู้ใช้เท่านั้นที่สามารถป้องกันตนเองจากความเสี่ยงนี้ได้
- วิธีที่ miniscript ช่วยให้สามารถแก้ไขปัญหานี้ได้จริงสำหรับกระเป๋าเงิน bitcoin
ด้วยการเป็นฮาร์ดแวร์กระเป๋าเงินรายแรกที่สนับสนุน อักษรย่อเราหวังว่าจะสร้างแรงบันดาลใจให้นักพัฒนาสร้างโซลูชันที่ปลอดภัยและอัปเกรดอุตสาหกรรมทั้งหมดของเรา และขจัดโอกาสของความเสี่ยงที่เป็นระบบไม่ให้เกิดขึ้นจริง
วิธีสร้างไฟล์ ไม่ลับหลัง อุปกรณ์ลงนาม
พูดให้ชัดเจน: คุณทำไม่ได้
เพื่อป้องกันตัวเองจากประตูหลังที่อาจเกิดขึ้น คุณต้องมีรูปแบบการโจมตีที่แตกต่างจากรูปแบบที่เราระบุไว้ข้างต้น ในสถานการณ์นี้ ฝ่ายตรงข้ามอาจเป็นผู้ขายเองหรือคนวงในที่เสียหาย
วิธีแก้ไขปัญหานี้มักได้รับการขนานนามว่าเป็นโอเพ่นซอร์ส เพราะหากคุณสามารถตรวจสอบโค้ดได้ จะเกิดอะไรขึ้นบ้าง
อย่างไรก็ตามความจริงนั้นซับซ้อนกว่านั้น เนื่องจากผู้ขายเป็นผู้ประกอบฮาร์ดแวร์ จึงอาจมีประตูหลังอยู่ภายในทั้งหมด ฮาร์ดแวร์สามารถออกแบบให้ไม่สนใจซอฟต์แวร์ในบางจุดและรันโค้ดที่เป็นอันตรายแทน
ไม่เหมือนกับซอฟต์แวร์ที่ทำงานบนอุปกรณ์คอมพิวเตอร์ที่ใช้งานทั่วไป (เช่น แล็ปท็อปหรือโทรศัพท์ของคุณ) การตรวจสอบฮาร์ดแวร์นั้นแทบจะเป็นไปไม่ได้เลยด้วยเทคโนโลยีในปัจจุบัน แม้ว่าข้อมูลจำเพาะของฮาร์ดแวร์จะเป็นแบบโอเพ่นซอร์สทั้งหมด โดยมีรายละเอียดของเกททุกอันในวงจร คุณก็ยังต้องใช้อุปกรณ์ราคาสูงเพื่อตรวจสอบว่าชิปเฉพาะถูกสร้างขึ้นตามข้อกำหนดดังกล่าว
วิธีแบ็คดอร์กระเป๋าฮาร์ดแวร์
ต่อไปนี้คือวิธีที่ง่ายที่สุดบางส่วนที่ผู้จำหน่ายฮาร์ดแวร์ที่เป็นอันตรายสามารถใช้เพื่อแนะนำแบ็คดอร์ได้ รวมถึงวิธีที่ผู้ใช้ระดับสูงสามารถป้องกันตนเองได้ในปัจจุบัน
การสร้างเมล็ดพันธุ์
อุปกรณ์จำนวนมากให้คุณสร้างเมล็ดพันธุ์ได้ (เรียกอีกอย่างว่า วลีกู้คืนความลับ) โดยตรงบนอุปกรณ์ โดยใช้ก เครื่องกำเนิดตัวเลขสุ่มจริง.
😈 อุปกรณ์ชั่วร้ายสามารถสร้างเมล็ดพันธุ์ที่ปรากฏขึ้นแบบสุ่ม แต่ผู้โจมตีสามารถคาดเดาได้
🛡️ ผู้ใช้ขั้นสูงสามารถหลีกเลี่ยงปัญหานี้ได้โดยสร้างระบบช่วยจำแบบออฟไลน์ นอกจากนี้ยังผสมผสานความแข็งแกร่ง รหัสผ่าน ยังสามารถสร้างเมล็ดพันธุ์อิสระที่ผู้จำหน่ายฮาร์ดแวร์ไม่สามารถคาดเดาได้ ข้อเสียคือผู้ใช้ต้องแน่ใจว่าได้สำรองข้อความรหัสผ่านอย่างถูกต้อง นอกเหนือจากคำช่วยจำ
การได้มาของคีย์สาธารณะ
Hardware wallets ได้รับและส่งออก กุญแจสาธารณะ (เรียกอีกอย่างว่า xpubs, ย่อจาก รหัสสาธารณะแบบขยาย ตามที่กำหนดไว้ใน บีไอพี-32. xpubs ใช้เพื่อสร้างที่อยู่ที่เป็นไปได้สำหรับการรับเหรียญ
😈 อุปกรณ์ชั่วร้ายสามารถคืนกุญแจสาธารณะที่ควบคุมโดยผู้โจมตีแทนที่จะเป็นรหัสที่ถูกต้องที่ได้มาจากเมล็ด
🛡️ผู้ใช้สามารถตรวจสอบความถูกต้องที่ได้รับ xpub บนอุปกรณ์อื่นแบบออฟไลน์ อย่างไรก็ตาม การป้อนเมล็ดพันธุ์บนอุปกรณ์อื่นก็มีความเสี่ยงในตัวเอง ผู้ใช้ที่ตระหนักถึงความปลอดภัยอาจมองว่าอุปกรณ์ใดก็ตามที่เข้าถึงเมล็ดพันธุ์นั้นเป็นอันตราย ซึ่งอาจถึงขั้นทำลายอุปกรณ์เหล่านั้นได้ ผู้ใช้ทั่วไปอาจประสบปัญหาในการดำเนินการตามขั้นตอนนี้อย่างถูกต้องในขณะที่จัดการความเสี่ยงเพิ่มเติม
ข้อมูลรั่วไหล
An ช่องว่างอากาศ มักถูกเสนอเป็นวิธีแก้ปัญหาเพื่อป้องกันอุปกรณ์ที่เป็นอันตรายหรือถูกบุกรุกจากการกรองคีย์ส่วนตัว ท้ายที่สุดแล้ว หากอุปกรณ์ไม่สามารถสื่อสารกับโลกภายนอกได้ มันก็ไม่สามารถทำอะไรที่เป็นอันตรายได้ใช่ไหม?
ไม่เชิง!
อุปกรณ์สามารถสื่อสารได้ตลอดเวลาเมื่อมีการใช้งาน โดยสร้างลายเซ็น ลายเซ็นเหล่านี้จบลงด้วยธุรกรรมภายในที่ถ่ายทอดและจัดเก็บตลอดไปบนบล็อกเชน
ลายเซ็นคือสตริงไบต์ที่ดูสุ่มอย่างน้อย 64 ไบต์ อย่างไรก็ตาม เนื่องจากมีลายเซ็นที่ถูกต้องมากกว่าหนึ่งลายเซ็นสามารถสอดคล้องกับข้อความเดียวกัน อุปกรณ์ที่เป็นอันตรายสามารถสื่อสารข้อมูลไม่กี่บิตทุกครั้งที่มีการสร้างลายเซ็น โดยการสร้างลายเซ็นหลายรายการและเลือกว่าจะเผยแพร่
😈 อุปกรณ์อันธพาลอาจสร้างลายเซ็นที่ไม่ใช่แบบสุ่ม ซึ่งในการทำธุรกรรมหลายๆ ครั้ง จะเปิดเผยเมล็ดพันธุ์แก่ผู้โจมตี!
ผู้โจมตีที่ประสบความสำเร็จในการติดตั้งประตูหลังดังกล่าวจะต้องรอให้ลายเซ็นที่เป็นอันตรายปรากฏบนบล็อกเชน จนกว่าพวกเขาจะมีข้อมูลเพียงพอที่จะสร้างเมล็ดพันธุ์ใหม่ทั้งหมด
🛡️ สำหรับลายเซ็น ECDSA ใช้วิธีการที่เป็นมาตรฐานในการหาค่า nonce ตามกำหนด (เช่น RFC6979) ขัดขวางการโจมตีนี้ โดยมีเงื่อนไขว่าลายเซ็นที่สร้างขึ้นนั้นตรงกับลายเซ็นที่คาดไว้ อย่างไรก็ตาม เพื่อให้แน่ใจว่าเป็นกรณีนี้จำเป็นต้องโหลดอุปกรณ์ตัวที่สองที่มีเมล็ดเดียวกัน ซึ่งนำไปสู่ปัญหาในทางปฏิบัติแบบเดียวกันที่กล่าวถึงในส่วนก่อนหน้า
🛡️ แนวทางที่น่าสนใจคือการใช้วิธีอันชาญฉลาดในการ บังคับให้ อุปกรณ์เพื่อเลือก nonce แบบสุ่ม โปรโตคอลสำหรับจุดประสงค์นี้เรียกว่า ต่อต้าน exfil or สารต่อต้านเคลปโตปัจจุบันถูกนำไปใช้ในกระเป๋าฮาร์ดแวร์ Blockstream Jade และ ShiftCrypto BitBox02 อ่านต่อได้ที่ บล็อกของ ShiftCryptoซึ่งรวมถึงคำอธิบายทางเทคนิคว่าการโจมตีดังกล่าวอาจถูกดำเนินการอย่างไร
ตกลงไม่มีความหวังแล้วเหรอ?
การป้องกันส่วนใหญ่🛡️ที่ระบุไว้ข้างต้นส่วนใหญ่ต้องการให้ผู้ใช้ดำเนินการอย่างชัดเจนและล่วงล้ำเพื่อป้องกันตนเอง: โดยการสร้างเมล็ดพันธุ์ด้วยตนเอง (โดยพื้นฐานแล้วใช้สมองเพื่อแทนที่การทำงานจากกระเป๋าฮาร์ดแวร์) หรือใช้อุปกรณ์เพิ่มเติมเพื่อตรวจสอบว่าการคำนวณดำเนินการอย่างถูกต้อง
อย่างไรก็ตาม โปรโตคอล anti-exfil มีความโดดเด่น: เนื่องจากมีเครื่องที่เป็นตัวกลางระหว่างผู้ลงนามฮาร์ดแวร์กับโลกภายนอกเสมอ เครื่องนี้สามารถช่วยเหลือได้ ผ่านโปรโตคอลแบบโต้ตอบกับผู้ลงนามฮาร์ดแวร์ สามารถทำได้ บังคับใช้ การใช้ nonce แบบสุ่มอย่างแท้จริง ซึ่งจะช่วยลดหรือกำจัดโอกาสในการจัดการลายเซ็นขั้นสุดท้ายอย่างมีนัยสำคัญ
ในบล็อกโพสต์นี้ เราสนใจมาตรการประเภทนี้เป็นหลัก: แม้ว่ากลยุทธ์ที่ทำให้ UX แย่ลงอย่างมากอาจดึงดูดผู้ใช้ระดับสูง แต่พวกเขามีแนวโน้มที่จะสร้างสิ่งต่างๆ แย่ลง ในทางปฏิบัติสำหรับผู้ใช้ที่เชี่ยวชาญทางเทคนิคน้อย - ซึ่งเป็นส่วนใหญ่
รูปแบบการรักษาความปลอดภัย
โมเดลมาตรฐานสำหรับผู้ลงนามฮาร์ดแวร์
ผู้ผลิตผู้ลงนามฮาร์ดแวร์มีเป้าหมายที่จะปกป้องผู้ใช้จากภัยคุกคามต่างๆ ที่อาจเกิดขึ้น (สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ รูปแบบภัยคุกคาม). ในบทความนี้ เราเน้นคุณสมบัติที่สำคัญมากประการหนึ่งซึ่งสามารถสรุปได้ดังนี้:
ผู้ใช้ไม่สามารถถูกหลอกให้ดำเนินการซึ่งส่งผลให้สูญเสียเงินได้ หากผู้ใช้เข้าใจและตรวจสอบข้อมูลบนหน้าจอก่อนการอนุมัติ
จำเป็นต้องได้รับการอนุมัติสำหรับการกระทำที่ละเอียดอ่อนใดๆ โดยเฉพาะลายเซ็น การปกป้องเมล็ดพันธุ์นั้นไร้ประโยชน์หากมัลแวร์สามารถสร้างลายเซ็นสำหรับข้อความตามอำเภอใจ เช่น ธุรกรรมที่ใช้เงินหมด!
สิ่งสำคัญคือต้องเน้นว่าคุณสมบัติข้างต้นจะต้องเป็นจริงแม้ว่ากระเป๋าซอฟต์แวร์จะถูกบุกรุกอย่างสมบูรณ์ สิ่งที่แสดงบนหน้าจอแล็ปท็อป/โทรศัพท์ของคุณไม่สามารถเชื่อถือได้: มัลแวร์สามารถแทนที่ที่อยู่ หลอกคุณว่าที่อยู่ใดเป็นของคุณ นำเสนอธุรกรรม แต่ส่งต่ออีกอันไปยังอุปกรณ์เพื่อเซ็น ฯลฯ
ดังนั้น เฟิร์มแวร์และแอปพลิเคชันที่ทำงานบนอุปกรณ์การเซ็นชื่อฮาร์ดแวร์จึงพิจารณาถึงกระเป๋าซอฟต์แวร์โดยเนื้อแท้ ไม่น่าเชื่อถือ และไม่น่าเชื่อถือ
แบบจำลองความปลอดภัยต่อต้านแบ็คดอร์สำหรับซอฟต์แวร์วอลเล็ท
ภาคนี้เราพลิกบทบาทใหม่หมด ตอนนี้เราต้องการออกแบบ ซอฟต์แวร์กระเป๋าสตางค์ ที่ป้องกันไม่ให้ผู้ผลิตฮาร์ดแวร์ขโมยหรือทำให้กองทุนสูญเปล่า แม้ว่าอุปกรณ์นั้นเป็นอันตรายอย่างสมบูรณ์.
ดังนั้นจึงไม่สามารถเป็นทรัพย์สินของ เครื่อง: ค่อนข้างเป็นทรัพย์สินของ ซอฟต์แวร์กระเป๋าสตางค์ ติดตั้ง. เราสามารถสรุปได้ดังนี้:
ผู้ผลิตฮาร์ดแวร์จะไม่ทำให้ผู้ใช้สูญเสียเงินโดยที่กระเป๋าซอฟต์แวร์ไม่ถูกบุกรุก
สิ่งนี้อาจดูขัดแย้งกับสัญชาตญาณ เนื่องจากขัดแย้งโดยตรงกับโมเดลความปลอดภัยมาตรฐานที่มีรายละเอียดด้านบน อย่างไรก็ตาม "ไม่มีประตูหลัง" หมายถึง "ทำในสิ่งที่ควรทำ" เนื่องจากกระเป๋าซอฟต์แวร์เป็น ดวงอาทิตย์ อินเทอร์เฟซระหว่างอุปกรณ์ลงนามกับโลกภายนอก เป็นที่เดียวที่สามารถบังคับใช้การป้องกันพฤติกรรมที่ไม่เหมาะสมได้ ไม่ว่าจะเป็นเพราะข้อบกพร่องหรือการประนีประนอมอย่างชัดแจ้งกับอุปกรณ์
โปรดทราบว่าโมเดลนี้ครอบคลุมมากกว่าความล้มเหลวของอุปกรณ์ เช่น ข้อบกพร่องที่ใช้ประโยชน์ได้ ในกรณีนี้ เรากำลังดำเนินการในสถานการณ์ที่อุปกรณ์กำลังหาทางทำให้เงินทุนสูญหาย
แน่นอนว่าไม่มีการป้องกันที่เป็นไปได้หากผู้ผลิตประสบความสำเร็จในการบุกรุก ทั้งสอง อุปกรณ์และเครื่องของคุณที่เรียกใช้กระเป๋าเงินซอฟต์แวร์ ดังนั้นจึงจำเป็นอย่างยิ่งที่จะต้องแน่ใจว่ากระเป๋าซอฟต์แวร์ของคุณเป็นโอเพ่นซอร์สและสามารถตรวจสอบได้ โดยเฉพาะอย่างยิ่งหากสร้างโดยผู้จำหน่ายรายเดียวกับที่ผลิตฮาร์ดแวร์
บทบาทของย่อ
Miniscript ช่วยให้นักพัฒนากระเป๋าเงินสามารถใช้คุณสมบัติขั้นสูงของ bitcoin Script ได้อย่างเต็มที่ สำหรับภาพรวมของการปลดล็อก miniscript ที่เป็นไปได้อย่างไม่น่าเชื่อ โปรดดูที่ โพสต์บล็อกก่อนหน้าของเรา. คุณอาจต้องการฟัง ตอนที่ 452 ของ Stephan Livera Podcast สำหรับการอภิปรายเกี่ยวกับสิ่งที่ miniscript นำมาสู่ภูมิทัศน์ของ bitcoin
แอพ Ledger Bitcoin รองรับ miniscript ตั้งแต่การเปิดตัว 2.1.0 ซึ่งใช้งานในเดือนกุมภาพันธ์ 2023 ในการประชุม Bitcoin 2023 ในไมอามี Wizardsardine ได้ประกาศการเปิดตัว 1.0 ของพวกเขา กระเป๋าสตางค์ Lianaซึ่งเป็นกระเป๋าเงินที่ใช้งานครั้งแรกตาม miniscript
แนวคิดพื้นฐานของโพสต์นี้คือบัญชีกระเป๋าเงิน bitcoin สามารถป้องกันได้ไม่ใช่แค่บัญชีเดียว แต่ด้วย หลาย กุญแจ ซึ่งช่วยให้เฟรมเวิร์กการรักษาความปลอดภัยมีความยืดหยุ่น ซึ่งแม้แต่ความล้มเหลวทั้งหมดหรือการประนีประนอมของคีย์ก็ไม่ถือเป็นหายนะ
Multisig ความคิด
Multisig เป็นการยกระดับความแข็งแกร่งของโซลูชันการดูแลตนเองอย่างมีนัยสำคัญ ด้วยการใช้ประโยชน์จากความสามารถในการตั้งโปรแกรมของ Bitcoin Script ทำให้สามารถสร้างกระเป๋าเงินที่ต้องใช้คีย์หลายตัวแทนที่จะเป็นคีย์เดียว ก k-ของ-n กระเป๋าเงิน multisig ต้องการการรวมกันของ k ลายเซ็นที่ถูกต้องจากทั้งหมด n สิ่งที่เป็นไปได้
อย่างไรก็ตาม multisig ยังวางภาระ UX ให้กับผู้ใช้ และแนะนำโอกาสใหม่สำหรับข้อผิดพลาด การตั้งค่า multisig แบบ 3 ใน 3 ซึ่งเกี่ยวข้องกับคีย์ที่แตกต่างกันสามคีย์ซึ่งสำรองข้อมูลอย่างปลอดภัยในตำแหน่งที่แยกจากกัน มีการรักษาความปลอดภัยที่แข็งแกร่ง… แต่ก็หมายความว่าแม้ว่า เดียว กุญแจหาย เหรียญไม่สามารถเข้าถึงได้อย่างถาวร!
ดังนั้น การตั้งค่าที่มีความซ้ำซ้อนมากขึ้น (เช่น 2 ใน 3 หรือ 3 ใน 5) มักจะได้รับความนิยมมากกว่า: หากคีย์เดียวหายไป คีย์อื่นๆ จะยังคงช่วยให้กู้คืนได้ แต่สิ่งนี้ทำให้เกิดการแลกเปลี่ยน: หากคีย์หนึ่งถูกบุกรุกโดยที่คุณไม่รู้จัก ความปลอดภัยโดยรวมจะลดลงอย่างมาก!
บริษัท ที่ชอบ Casa และ ทุนไม่เปลี่ยนแปลง เชี่ยวชาญในโซลูชันการดูแลตนเองโดยที่พวกเขาถือกุญแจส่วนน้อยสำหรับลูกค้าของตน พวกเขายังช่วยเหลือผู้ใช้ด้วยการแนะนำพวกเขาตลอดกระบวนการเริ่มต้นใช้งาน และลดความซับซ้อนของการใช้ระบบการดูแล ซึ่งอาจสร้างความกังวลให้กับผู้ใช้ส่วนใหญ่ที่ไม่มีความรู้ด้านเทคนิค
เส้นทางการกู้คืนแบบย่อและแบบล็อกเวลา
Liana ใช้ miniscript เพื่อสร้างกระเป๋าเงินที่มีหลายวิธีในการใช้จ่าย:
- เงื่อนไขการใช้จ่ายหลักซึ่งสามารถใช้ได้ทันที
- เงื่อนไขการใช้จ่ายเพิ่มเติมอย่างน้อยหนึ่งเงื่อนไขที่มีให้หลังจากช่วงระยะเวลาหนึ่ง (เรียกว่า เวลาล็อก).
สิ่งนี้ทำให้มีกรณีการใช้งานที่น่าสนใจมากมาย:
- การฟื้นตัว: กระเป๋าเงินมาตรฐานที่มีลายเซ็นเดียวหรือหลายลายเซ็นเป็นเส้นทางการใช้จ่ายหลัก แต่กลไกการกู้คืนแยกต่างหาก (คีย์ที่มีเมล็ดต่างกัน, มัลติซิก, เพื่อนที่เชี่ยวชาญด้านเทคโนโลยี, ผู้รับฝากทรัพย์สิน) จะใช้งานได้หลังจาก 6 เดือน
- การกำกับดูแลกิจการ: บริษัทที่มีกรรมการสองคนสามารถจัดตั้ง 2 ใน 2 สำหรับคลังของบริษัท; ในกรณีที่ไม่เห็นด้วย ทนายความที่เชื่อถือได้สามารถเข้าถึงเงินได้หลังจาก 6 เดือน
- มัลติซิก: กระเป๋าเงินเริ่มต้นเป็น 3 ใน 3 เปลี่ยนเป็น 2 ใน 3 หลังจาก 6 เดือน และกลายเป็น 1 ใน 3 หลังจาก 9 เดือน
- การสืบทอดโดยอัตโนมัติ: เส้นทางการฟื้นตัวหลังจาก 6 เดือนรวมถึง 2 ใน 3 ของลูกสามคนของคุณ บางทีเส้นทางการกู้คืนที่สองหลังจาก 1 ปีเกี่ยวข้องกับทนายความในกรณีที่ทายาทไม่สามารถตกลงกันได้
หมายเหตุ: ตัวอย่างทั้งหมดข้างต้นใช้ a ล็อคเวลาสัมพัทธ์ซึ่งหมายถึงอายุของเหรียญ (นั่นคือ: ครั้งสุดท้ายที่มีการย้ายกองทุน) ข้อเสียคือผู้ใช้ต้องอย่าลืมใช้เหรียญ (โดยส่งเหรียญให้ตัวเอง) หากไทม์ล็อคใกล้จะหมดอายุ
นี่เป็นเพียงตัวอย่างเล็กๆ น้อยๆ แต่น่าจะเพียงพอที่จะโน้มน้าวใจผู้อ่านว่า miniscript เป็นก้าวสำคัญสู่การตระหนักถึงศักยภาพของ Bitcoin ในฐานะ โปรแกรมเงิน.
การลงทะเบียนนโยบายกระเป๋าเงิน
สำหรับบัญชีกระเป๋าเงิน Bitcoin ที่ใช้คีย์หลายตัว (ไม่ว่าจะเป็น multisig หรือโซลูชันที่ใช้ miniscript ที่ซับซ้อนกว่านั้น) การฝึกอุปกรณ์ให้ระบุที่อยู่ที่เป็นของบัญชีนั้นเป็นสิ่งสำคัญอย่างยิ่ง นี่เป็นวิธีเดียวที่อุปกรณ์สามารถช่วยผู้ใช้ในการตรวจสอบว่าพวกเขาได้รับหรือใช้จ่ายจากที่อยู่ที่ถูกต้อง...
ตรวจสอบความถูกต้องของนโยบายและ xpubs ของ cosigner กับการสำรองข้อมูลที่เชื่อถือได้เป็นสิ่งจำเป็น แต่ค่อนข้างใช้เวลานาน
ข่าวดีก็คือต้องทำเพียงครั้งเดียว:
เมื่อนโยบายได้รับการลงทะเบียนด้วยชื่อ (ในตัวอย่าง “Decaying 3of3”) อุปกรณ์ของคุณจะสามารถจดจำนโยบายดังกล่าวได้เมื่อใดก็ตามที่มีการใช้นโยบายดังกล่าว
ผู้ที่สนใจรายละเอียดทางเทคนิคสามารถค้นหาข้อมูลเพิ่มเติมได้ใน ข้อเสนอ BIP.
การสำรองข้อมูลนโยบาย
ประเด็นสำคัญประการหนึ่งที่ควรทราบคือแม้ว่านโยบายแบบหลายคีย์จะอนุญาตให้มีชุดย่อยของ คีย์ส่วนตัว เพื่ออนุญาตการทำธุรกรรมความรู้ของ ทั้งหมด กุญแจสาธารณะ (และ แน่นอน นโยบาย) เป็นสิ่งจำเป็น
อย่างไรก็ตาม การสำรองข้อมูลนโยบายและคีย์สาธารณะนั้นไม่เหมือนกับเมล็ดพันธุ์ดั้งเดิม เนื่องจากมีความเสี่ยงน้อยกว่ามาก หากมีคนค้นพบข้อมูลดังกล่าว พวกเขาสามารถติดตามธุรกรรมทั้งหมดที่เชื่อมโยงกับนโยบายนั้นได้ แม้ว่านี่จะไม่เหมาะ - เรื่องความเป็นส่วนตัว! − มันไม่ได้เลวร้ายเท่ากับการสูญเสียเหรียญของคุณและล่อลวงน้อยลงสำหรับผู้โจมตี ดังนั้น การจัดเก็บสำเนานโยบายหลายชุดในกระเป๋าเงินร้อน การพิมพ์และจัดเก็บไว้ในที่ต่างๆ การเข้ารหัสและจัดเก็บไว้ในที่เก็บข้อมูลบนคลาวด์ และอื่น ๆ ล้วนเป็นกลยุทธ์ที่ใช้การได้
กระเป๋าเงินลายเซ็นเดียวที่ไม่สามารถลับหลังได้
ลองย้อนกลับไป เราได้พูดถึงกระเป๋าเงินแบบหลายลายเซ็น แต่ตอนนี้เราจะกลับไปสู่พื้นฐานเพื่อสร้างกระเป๋าเงินแบบลายเซ็นเดียว อย่างแม่นยำเราต้องการกระเป๋าเงินที่ รู้สึก และ รูปลักษณ์ เช่น single-signature wallet หลังจากขั้นตอนการตั้งค่าเริ่มต้น ถึงกระนั้น เรามุ่งมั่นที่จะสร้างกระเป๋าเงินที่ผู้ผลิตไม่สามารถขโมยเงินของคุณได้แม้ว่าจะเป็นอันตราย 😈 และอุปกรณ์ลงนามฮาร์ดแวร์จะทำงานในรูปแบบที่คาดเดาไม่ได้
แนวทางนี้สามารถนำไปปรับใช้กับกระเป๋าหลายลายเซ็นได้อย่างง่ายดาย
ตัวอย่างด้านล่างนี้จะเขียนในภาษาที่เรียกว่า นโยบายแทนที่จะเป็นอักษรย่อ นโยบายนั้นง่ายกว่าสำหรับมนุษย์ในการอ่านและคิด และสามารถรวบรวมเป็นย่อด้วยเครื่องมืออัตโนมัติ อ่านเพิ่มเติมเกี่ยวกับย่อและนโยบาย.
กระเป๋าฮาร์ดแวร์สามารถปกป้องคุณในรูปแบบความปลอดภัยมาตรฐาน ตัวย่อสามารถปกป้องคุณในรูปแบบการป้องกันประตูหลัง (และอื่น ๆ อีกมากมาย!)
ขั้นตอนที่ศูนย์: สถานะที่เป็นอยู่
นี่คือนโยบายที่ผู้ใช้ส่วนใหญ่ใช้ในปัจจุบัน: คีย์เดียวที่ได้มาจากเมล็ดที่ผลิตในกระเป๋าเงินของฮาร์ดแวร์
pk(key_ledger)
แน่นอนว่าไม่มีทางพิสูจน์ได้ว่าไม่มีประตูหลัง
ขั้นตอนที่หนึ่ง: เพิ่มปุ่มเหล่านั้นเป็นสองเท่า
ขั้นตอนแรกนั้นง่าย:
and(pk(key_ledger), pk(key_client))
ที่นี่ key_client
ถูกสร้างขึ้นบนเครื่องของผู้ใช้ ดังนั้น ก คีย์ร้อน. โดยพื้นฐานแล้ว มันคือการตั้งค่า multisig แบบ 2 ใน 2 ประเด็นสำคัญคือผู้ใช้ไม่ได้โต้ตอบมากนัก key_client
: กระเป๋าเงินซอฟต์แวร์สร้างคีย์นี้ รวมไว้ในการสำรองข้อมูลของกระเป๋าเงิน และลงนามเมื่อจำเป็น (เช่น ในขณะที่ผู้ใช้กำลังยุ่งอยู่กับการลงนามด้วยผู้ลงนามฮาร์ดแวร์)
สิ่งนี้ดูน่าสนใจทีเดียว: เงินจะใช้จ่ายไม่ได้หากไม่มี key_client
ซึ่งไม่มีให้สำหรับผู้จำหน่ายฮาร์ดแวร์ แม้ว่าผู้ขายที่ชั่วร้ายจะมีความรู้ทั้งหมดเกี่ยวกับคีย์ในอุปกรณ์ แต่พวกเขาก็ยังคงไม่สามารถย้ายเงินได้โดยไม่กำหนดเป้าหมายผู้ใช้อย่างชัดเจน ตัวอย่างเช่น โดยการประนีประนอมกับเครื่องที่เรียกใช้กระเป๋าเงินซอฟต์แวร์ของตน
อย่างไรก็ตาม มีปัญหา: ในระหว่างการเริ่มต้นใช้งานกระเป๋าเงิน ผู้ลงนามฮาร์ดแวร์เป็นหน่วยงานเดียวที่สามารถสร้างรหัสสาธารณะ (xpub) key_ledger
ใช้ในกระเป๋าสตางค์ ดังนั้น อุปกรณ์จึงจงใจสร้าง ผิด xpub ถูกควบคุมโดยผู้โจมตี และภายหลังปฏิเสธ (หรือไม่สามารถ) ลงนามได้ อาจกล่าวได้ว่านี่เป็นสถานการณ์การโจมตีที่ค่อนข้างรุนแรง: ผู้สร้างแบ็คดอร์ไม่สามารถขโมยเงินได้ และสิ่งที่พวกเขาทำได้มากที่สุดคือกำหนดเป้าหมายผู้ใช้เป็นรายบุคคลและเรียกค่าไถ่ (“ฉันสามารถช่วยคุณเรียกเงินคืนได้หากคุณจ่ายให้ฉันครึ่งหนึ่ง”)
ในความเป็นจริงสิ่งนี้จะเพิ่มโอกาสของความผิดพลาด: ตอนนี้คุณมีเมล็ดพันธุ์ / คีย์ส่วนตัวสองอันและคุณต้องการ ทั้งสอง เพื่อให้สามารถใช้จ่ายได้ เสียอย่างใดอย่างหนึ่งและเหรียญจะถูกล็อคตลอดไป
ขั้นตอนที่สอง: การกู้คืนแบบล็อกเวลา
เราแนะนำรหัสการกู้คืนแยกต่างหาก ซึ่งสามารถเข้าถึงได้หลังจากไทม์ล็อกที่ระบุเท่านั้น: and(older(25920)
, pk(key_recovery))
โดยที่ 25920 คือจำนวนบล็อกโดยประมาณใน 6 เดือน นโยบายฉบับเต็มจะกลายเป็น:
or(
and(pk(key_ledger), pk(key_client)), and(after(25920), pk(key_recovery))
)
สิ่งนี้คล้ายกับสถานการณ์ก่อนหน้า แต่มีการเปลี่ยนแปลง: ถ้า key_ledger
or key_client
จะไม่สามารถใช้งานได้ไม่ว่าด้วยเหตุผลใดก็ตาม (โดยส่วนใหญ่แล้ว การสูญเสียข้อมูลสำรองของเมล็ดพันธุ์!) เส้นทางการกู้คืน สามารถเข้าถึงได้หลังจาก 6 เดือน
มีหลายตัวเลือกสำหรับ key_recovery
แต่ละคนมีการแลกเปลี่ยนของตัวเอง:
a. ใช้อย่างอื่น คีย์ร้อน. นี่เป็นวิธีแก้ไขที่ใช้งานได้จริงตราบเท่าที่ผู้ใช้จำได้ว่าต้องรีเซ็ตไทม์ล็อก อย่างไรก็ตาม หากปุ่มลัดถูกบุกรุก (สถานการณ์ที่ควรพิจารณาโดยทั่วไปว่าค่อนข้างเป็นไปได้!) ผู้โจมตีอาจพยายามเข้าถึงเงินทันทีที่ไทม์ล็อกหมดอายุ โดยเริ่มการแข่งขันกับเจ้าของที่ถูกต้องตามกฎหมาย
b. ใช้อุปกรณ์ลงนามฮาร์ดแวร์แยกต่างหาก นี่เป็นโซลูชันที่มีประสิทธิภาพและสามารถใช้ร่วมกับผู้จำหน่ายรายอื่นได้หากต้องการ อย่างไรก็ตาม จะเพิ่มความซับซ้อนในการตั้งค่าและค่าใช้จ่ายสำหรับผู้ใช้ในแง่ของประสบการณ์ผู้ใช้
c. ใช้บริการภายนอกที่เชื่อถือได้ กระเป๋าซอฟต์แวร์สามารถนำเข้า xpub จากบริการภายนอกโดยใช้เป็น key_recovery
. บุคคลที่สามนี้จะเชื่อถือได้ก็ต่อเมื่อการล็อกเวลาหมดอายุ ซึ่งอาจเป็นการแลกเปลี่ยนที่น่าสนใจสำหรับผู้ใช้บางราย
ดังที่กล่าวไว้ เช่นเดียวกับนโยบายใดๆ ที่มีการล็อกเวลา สิ่งสำคัญคือผู้ใช้อย่าลืมรีเฟรชเหรียญก่อนที่ไทม์ล็อกจะหมดอายุ
ขั้นตอนที่สาม: บุคคลที่สามที่ไม่น่าเชื่อถือ
ลองผสมผสานทั้งแนวคิด (a) และ (c): สำหรับเส้นทางการกู้คืน เราต้องการคีย์ลัดภายในเครื่อง key_recovery_local
และใน key_recovery_remote
ที่โฮสต์ด้วยบริการกึ่งน่าเชื่อถือ เรายังรักษาการล็อกเวลา
or(
and(pk(key_ledger), pk(key_client)),
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote))
)
)
สิ่งนี้จะลดระดับความไว้วางใจที่จำเป็นจากบริการกู้คืน อย่างไรก็ตาม เราต้องใช้ความระมัดระวัง: ตัวบริการเองอาจตรวจสอบบล็อกเชนและตรวจจับ UTXO ของเราได้ อย่างไรก็ตาม พวกเขาให้ key_recovery_remote
xpub เพื่อให้สามารถสแกนหา UTXO ที่มี pubkeys ที่ได้มาจาก key_recovery_remote
. พวกเขาจะสามารถเรียนรู้ประวัติทางการเงินของเราได้ก่อนที่ Timelock จะหมดอายุ และแม้ว่าเราจะไม่เคยใช้บริการของพวกเขาก็ตาม
หมายเหตุ: Taproot tree สามารถขจัดปัญหาความเป็นส่วนตัวนี้สำหรับบางนโยบายได้ แต่ก็ไม่เสมอไป และต้องมีการประเมินอย่างรอบคอบตามนโยบายเฉพาะ
ขั้นตอนที่สี่: ทำให้บุคคลที่สามตาบอด 🙈
เพื่อป้องกันไม่ให้บริการกู้คืนเรียนรู้เกี่ยวกับประวัติทางการเงินของเรา แทนที่จะใช้รหัส Pubkey ที่สื่อสารกับเรา เราสามารถใช้ xpub ตาบอด เทคนิค อธิบายโดย mflaxman โดยละเอียดที่นี่. ในระยะสั้นแทนที่จะใช้ key_recovery_remote
ในนโยบายของเรา เราเลือกตัวเลขสุ่ม 31 บิตสี่หมายเลข a
, b
, c
, d
( ปัจจัยที่ทำให้ไม่เห็น) และเราใช้สิ่งต่อไปนี้ บีไอพี-32 pubkey ที่ได้รับ:
key_recovery_remote_blind = key_recovery_remote_blind/a/b/c/d
สิ่งสำคัญคือเราต้องเพิ่ม key_recovery_remote
และปัจจัยที่ทำให้ไม่เห็น a
, b
, c
และ d
ในการสำรองข้อมูลของเราเพื่อใช้อ้างอิงในอนาคต
หากเราจำเป็นต้องใช้บริการกู้คืน เราจะเปิดเผย a
, b
, c
, d
ถึงพวกเขา. จนกว่าจะถึงเวลานั้น พวกเขาไม่มีทางค้นพบว่ากุญแจที่ได้มาจากพวกเขา key_recovery_remote
กำลังเผยแพร่บนบล็อกเชน: จำนวนชุดค่าผสมที่เป็นไปได้สำหรับ 4 ปัจจัยที่ทำให้ไม่เห็นคือ 2^(31*4) = 2^124
ซึ่งทำให้ไม่สามารถบังคับพวกมันได้ทั้งหมด
ขั้นตอนที่ห้า: ปุ่มลัดมากเกินไปอาจทำให้คุณไหม้ได้ 🔥
เราประสบความสำเร็จในการทำให้กระเป๋าเงินซอฟต์แวร์ของเราไม่สามารถถูกโจมตีจากประตูหลังได้ อย่างไรก็ตาม เราได้นำเสนอปัญหาที่แตกต่างกัน: เงื่อนไขการใช้จ่ายทั้งสองใช้แบบที่สร้างขึ้นในท้องถิ่น ผู้สมัครที่เรารู้จัก รหัสที่ไม่ได้รับการตรวจสอบโดยกระเป๋าเงินของฮาร์ดแวร์ ดังนั้น หากเครื่องโฮสต์ถูกบุกรุก เครื่องอาจหลอกให้คุณลงทะเบียนนโยบายโดยใช้ปุ่ม Pubkey key_client
และ key_recovery_local
แต่ใส่ไพรเวตคีย์แบบสุ่มที่ไม่เกี่ยวข้องในข้อมูลสำรองของเรา (โปรดจำไว้ว่า ผู้สมัครที่เรารู้จัก กุญแจเป็นส่วนหนึ่งของการสำรองข้อมูลของเรา!)
โดยทั่วไปจะทำให้เงินใด ๆ ที่ส่งไปยังกระเป๋าเงิน ใช้จ่ายไม่ได้เนื่องจากไม่มีใครควบคุมคีย์ส่วนตัวที่จำเป็นในการเซ็นชื่อ
มีวิธีแก้ไขปัญหานี้สองสามข้อ:
- ในระหว่างการเริ่มใช้งาน หลังจากพิมพ์ข้อมูลสำรองลงบนกระดาษแล้ว เราสามารถใช้อุปกรณ์แยกต่างหากเพื่อตรวจสอบว่าปุ่มลัดส่วนตัวและปุ่มสาธารณะในข้อมูลสำรองนั้นตรงกันหรือไม่ วิธีนี้จะขจัดปัญหา เนื่องจากเรามั่นใจว่าเรามีคีย์ที่จำเป็นทั้งหมดที่จำเป็นสำหรับการสร้างใหม่และการเซ็นชื่อ
- เราสามารถเพิ่มเงื่อนไขการใช้จ่ายอื่นด้วยการล็อคเวลาที่นานขึ้น (9 เดือน, 38880 บล็อค) ซึ่งต้องใช้เพียง
key_ledger_failsafe
จากอุปกรณ์ฮาร์ดแวร์ ด้วยวิธีนี้ ในสถานการณ์ที่เลวร้ายที่สุดที่ทุกอย่างล้มเหลว เราจะถอยกลับไปสู่ความปลอดภัยของอุปกรณ์การเซ็นชื่อเดียว ในการทำงานปกติ เราจะไม่ปล่อยให้ไทม์ล็อกแรกหมดอายุ ดังนั้น ไทม์ล็อกที่สองก็จะไม่หมดอายุเช่นกัน!
ด้วยแนวทางที่สอง นโยบายขั้นสุดท้ายจะมีลักษณะดังนี้
or(
and(pk(key_ledger), pk(key_client)),
or(
and(older(25920),
and(pk(key_recovery_local), pk(key_recovery_remote_blind))
),
and(older(38880), pk(key_ledger_failsafe))
),
)
การกำหนดค่ากระเป๋าเงินซอฟต์แวร์นี้เป็นไปตามคุณสมบัติความปลอดภัยทั้งหมดที่เราอ้างสิทธิ์ในตอนเริ่มต้น นอกจากนี้ยังมีเส้นทางการกู้คืนในกรณีที่คีย์การใช้จ่ายหลัก key_ledger
จะหายไป ฟีเจอร์ดีๆ ที่ต้องมี!
ออนบอร์ดไปยังกระเป๋าเงินของซอฟต์แวร์ที่ไม่สามารถป้องกันได้
ประสบการณ์ของผู้ใช้กระเป๋าเงินที่ใช้นโยบายที่ซับซ้อนเช่นนี้จะเป็นอย่างไร นี่คือภาพรวมโดยย่อ:
- ผู้ใช้เปิดกระเป๋าซอฟต์แวร์และเริ่มสร้างบัญชีใหม่
- กระเป๋าเงินซอฟต์แวร์จะแจ้งให้ผู้ใช้เชื่อมต่ออุปกรณ์ลงนามและเรียก xpubs สำหรับ
key_ledger
และkey_ledger_failsafe
. - กระเป๋าเงินซอฟต์แวร์สร้างคีย์ลัด key_client โดยอัตโนมัติ
- กระเป๋าซอฟต์แวร์ที่ได้รับ
key_recovery_remote
จากบริการลงนามร่วมหรือให้ผู้ใช้ระบุรหัสในลักษณะอื่น เป็นทางเลือก มันคำนวณkey_recovery_remote_blind
โดยใช้เทคนิคการทำให้ไม่เห็นที่กล่าวถึงก่อนหน้านี้ - กระเป๋าเงินซอฟต์แวร์สร้างการสำรองข้อมูลนโยบายที่มีนโยบายย่อที่แม่นยำ xpubs ทั้งหมดและรหัสส่วนตัวเพิ่มเติมสำหรับ
key_client
ปุ่มลัด ข้อมูลสำรองนี้ได้รับการจัดเก็บอย่างปลอดภัย (เช่น พิมพ์บนกระดาษหรือบันทึกไว้ในอุปกรณ์อื่น) - ในที่สุด กระเป๋าเงินซอฟต์แวร์จะแนะนำให้ผู้ใช้ลงทะเบียนนโยบายบนอุปกรณ์ ผู้ใช้ตรวจสอบข้อมูลสำรองข้าม (บนกระดาษหรือสื่ออื่นใดนอกเหนือจากหน้าจอที่ควบคุมโดยกระเป๋าเงินซอฟต์แวร์)
กระเป๋าเงินซอฟต์แวร์จัดการขั้นตอนข้างต้นเกือบทั้งหมด ทำให้การมีส่วนร่วมของผู้ใช้ไม่เป็นภาระมากไปกว่าความพยายามที่คาดไว้ซึ่งจำเป็นในปัจจุบันเพื่อตั้งค่ากระเป๋าเงินหลายลายเซ็น
การเริ่มต้นใช้งานควรใช้เวลาเพียงไม่กี่นาทีเมื่อสร้าง UX ที่ดีแล้ว เมื่อเสร็จสิ้นแล้ว ซอฟต์แวร์วอลเล็ทสามารถมอบประสบการณ์การใช้งานที่คล้ายคลึงกับกระเป๋าสตางค์ลายเซ็นเดียวทั่วไป นี่คือวิธีที่ miniscript จะเปลี่ยนทุกอย่าง: โดยหายไปจากสายตาของผู้ใช้!
การปรับปรุงรากแก้ว
Ledger รองรับ miniscript ตั้งแต่เวอร์ชัน 2.1.0 ของแอป Bitcoin ซึ่งเปิดตัวในเดือนมีนาคม ในขณะที่การสนับสนุนการรับและการใช้จ่ายจากที่อยู่ taproot ถูกเปิดใช้งานตั้งแต่ รากแก้ว ในเดือนพฤศจิกายน 2021 เรากำลังดำเนินการขั้นสุดท้ายในขั้นตอนต่อไปของแผนงาน: การสนับสนุนแบบย่อสำหรับ taproot
Taproot จะมีผลกระทบอย่างมากต่อการใช้งานแนวทางที่นำเสนอในบทความนี้ หากเส้นทางการใช้จ่ายหลักเป็นเงื่อนไขการใช้จ่ายแบบคีย์เดียว การมีอยู่ของเส้นทางการใช้จ่ายเพื่อการกู้คืนจะตรวจไม่พบในบล็อกเชน เว้นแต่ว่าจะถูกใช้งาน วิธีนี้จะช่วยปรับปรุงความเป็นส่วนตัวอย่างมากโดยการกำจัดรอยนิ้วมือใดๆ ของเส้นทางการใช้จ่ายมาตรฐานโดยสิ้นเชิง นอกจากนี้ยังปรับปรุงความสามารถในการปรับขยาย เนื่องจากเส้นทางการใช้จ่ายมาตรฐานจะใช้จ่ายอย่างคุ้มค่าที่สุดเท่าที่จะเป็นไปได้ ซึ่งหมายความว่าจะไม่มีค่าใช้จ่ายเพิ่มเติมเกิดขึ้นเนื่องจากการมีอยู่ของเส้นทางการกู้คืน เว้นแต่จะมีการใช้งาน นี่เป็นการอัปเกรดที่สำคัญจากธุรกรรม SegWit ซึ่งต้องมีการเผยแพร่สคริปต์ทั้งหมด รวมถึงเงื่อนไขการใช้จ่ายทั้งหมด ในระหว่างการใช้จ่ายใดๆ
ในที่สุดโปรโตคอลขั้นสูงเช่น มูซิก2 (เพิ่งได้มาตรฐาน) และ FROST จะเพิ่มพลังให้รูทคีย์พาธมากเกินไป สร้างขึ้นจากลายเซ็น Schnorr โปรโตคอลเหล่านี้อนุญาตให้สร้างหนึ่งเดียว รวม Pubkey ที่สามารถใช้แทน n-ของ-n หลายลายเซ็นหรือก k-ของ-n รูปแบบเกณฑ์ สิ่งนี้จะช่วยให้สามารถใช้ taproot keypath ได้แม้ในกรณีที่ปัจจุบันมีการแสดงสคริปต์ multisig ที่เฉพาะเจาะจงมากขึ้น
สรุป
บทความนี้จะสำรวจช่องเล็กๆ (แต่สำคัญ) ของพื้นที่การออกแบบอันกว้างใหญ่ที่ miniscript ปล่อยออกมาสำหรับกระเป๋าซอฟต์แวร์
เราแสดงให้เห็นว่าสามารถใช้ miniscript เพื่อสร้างกระเป๋าซอฟต์แวร์ "unbackdoorable" ได้อย่างไร ในขณะเดียวกันก็เพิ่มเส้นทางการกู้คืนเพิ่มเติมที่ช่วยป้องกันการสูญเสียคีย์ที่ร้ายแรง แม้ว่าอุปกรณ์เซ็นชื่อด้วยฮาร์ดแวร์จะไม่สามารถบังคับใช้รูปแบบการรักษาความปลอดภัยแบบป้องกันแบ็คดอร์ได้ แต่ด้วยการสนับสนุน miniscript ทำให้สามารถเปิดใช้งานกระเป๋าเงินซอฟต์แวร์ที่ทำอย่างนั้นได้!
ด้วยการใช้ชุดรูปแบบหลายลายเซ็น การล็อกเวลา xpubs ตาบอด และปุ่มลัดอย่างชาญฉลาด เราได้สาธิตการกำหนดค่ากระเป๋าเงินที่ปลอดภัยซึ่งสร้างสมดุลระหว่างความปลอดภัย ความเป็นส่วนตัว และความทนทาน
ยิ่งไปกว่านั้น เราแย้งว่าสิ่งนี้เป็นไปได้โดยไม่ส่งผลเสียต่อประสบการณ์ของผู้ใช้ เนื่องจากความซับซ้อนของการตั้งค่าไม่ได้แปลเป็นภาระ UX เพิ่มเติม
เรารู้สึกตื่นเต้นสำหรับความเป็นไปได้ที่ miniscript จะปลดล็อกสำหรับการดูแลตนเองของ bitcoin รุ่นต่อไป
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- PlatoData.Network Vertical Generative Ai เพิ่มพลังให้กับตัวเอง เข้าถึงได้ที่นี่.
- เพลโตไอสตรีม. Web3 อัจฉริยะ ขยายความรู้ เข้าถึงได้ที่นี่.
- เพลโตESG. ยานยนต์ / EVs, คาร์บอน, คลีนเทค, พลังงาน, สิ่งแวดล้อม แสงอาทิตย์, การจัดการของเสีย. เข้าถึงได้ที่นี่.
- BlockOffsets การปรับปรุงการเป็นเจ้าของออฟเซ็ตด้านสิ่งแวดล้อมให้ทันสมัย เข้าถึงได้ที่นี่.
- ที่มา: https://www.ledger.com/blog/towards-a-trustless-bitcoin-wallet-with-miniscript
- :มี
- :เป็น
- :ไม่
- :ที่ไหน
- $ ขึ้น
- 1
- 2021
- 2023
- 30
- 7
- 9
- a
- ความสามารถ
- สามารถ
- เกี่ยวกับเรา
- ข้างบน
- แน่นอน
- อย่างแน่นอน
- เข้า
- Accessed
- สามารถเข้าถึงได้
- ตาม
- ลงชื่อเข้าใช้
- บัญชี
- การกระทำ
- การปฏิบัติ
- อย่างกระตือรือร้น
- จริง
- เพิ่ม
- เพิ่ม
- นอกจากนี้
- เพิ่มเติม
- นอกจากนี้
- ที่อยู่
- สูง
- หลังจาก
- กับ
- อายุ
- ช่วย
- จุดมุ่งหมาย
- ทั้งหมด
- อนุญาต
- ช่วยให้
- ตาม
- แล้ว
- ด้วย
- แม้ว่า
- เสมอ
- an
- และ
- ประกาศ
- อื่น
- ใด
- สิ่งใด
- app
- อุทธรณ์
- ปรากฏ
- การใช้งาน
- เข้าใกล้
- วิธีการ
- การอนุมัติ
- ประมาณ
- เป็น
- เป็นที่ถกเถียงได้
- ที่ถกเถียงกันอยู่
- บทความ
- AS
- แง่มุม
- ช่วยเหลือ
- ที่เกี่ยวข้อง
- At
- โจมตี
- ตรวจสอบได้
- อนุญาต
- อัตโนมัติ
- ตนเอง
- ใช้ได้
- กลับ
- ประตูหลัง
- ถอย
- การสนับสนุน
- สำรอง
- ยอดคงเหลือ
- ตาม
- ขั้นพื้นฐาน
- เป็นพื้น
- ข้อมูลพื้นฐานเกี่ยวกับ
- BE
- เพราะ
- กลายเป็น
- จะกลายเป็น
- ก่อน
- การเริ่มต้น
- กำลัง
- ด้านล่าง
- ที่ดีที่สุด
- ระหว่าง
- เกิน
- Bitcoin
- Bitcoin Wallet
- กระเป๋าเงิน bitcoin
- การผสมผสาน
- blockchain
- Blocks
- Blockstream
- บล็อก
- ทั้งสอง
- ของเล่นเพิ่มพัฒนาสมอง
- นำ
- ออกอากาศ
- Bug
- สร้าง
- สร้าง
- ภาระ
- เผา
- ธุรกิจ
- ไม่ว่าง
- แต่
- by
- ที่เรียกว่า
- CAN
- ไม่ได้
- สามารถ
- ระมัดระวัง
- กรณี
- กรณี
- เป็นภัยพิบัติ
- ก่อให้เกิด
- การก่อให้เกิด
- ความระมัดระวัง
- บาง
- ท้าทาย
- โอกาส
- เปลี่ยนแปลง
- เด็ก
- ชิป
- Choose
- เลือก
- อ้างว่า
- อย่างเห็นได้ชัด
- เมฆ
- การจัดเก็บเมฆ
- รหัส
- เหรียญ
- การผสมผสาน
- รวม
- เชิงพาณิชย์
- ร่วมกัน
- อย่างธรรมดา
- สื่อสาร
- บริษัท
- บริษัท
- บริษัท
- สมบูรณ์
- อย่างสมบูรณ์
- ซับซ้อน
- ความซับซ้อน
- ที่ถูกบุกรุก
- ประนีประนอม
- การคำนวณ
- การคำนวณ
- ความกังวลเกี่ยวกับ
- สภาพ
- เงื่อนไข
- การประชุม
- องค์ประกอบ
- เชื่อมต่อ
- เอกฉันท์
- ดังนั้น
- พิจารณา
- ถือว่า
- ที่มีอยู่
- การควบคุม
- การควบคุม
- โน้มน้าวใจ
- แก้ไข
- ความเสียหาย
- ราคา
- ได้
- คอร์ส
- สร้าง
- การสร้าง
- การสร้าง
- ผู้สร้าง
- วิกฤติ
- ด้านที่สำคัญ
- สำคัญมาก
- ขณะนี้
- ผู้ปกครอง
- การดูแล
- ลูกค้า
- Dangerous
- ลดลง
- ลดลง
- ถือว่า
- กำหนด
- ความต้องการ
- แสดงให้เห็นถึง
- นำไปใช้
- ที่ได้มา
- ลักษณะ
- ออกแบบ
- ได้รับการออกแบบ
- ที่ต้องการ
- รายละเอียด
- รายละเอียด
- รายละเอียด
- ตรวจจับ
- นักพัฒนา
- เครื่อง
- อุปกรณ์
- ต่าง
- ยาก
- การน้อยลงไป
- โดยตรง
- กรรมการ
- หายไป
- หายนะ
- ค้นพบ
- การค้นพบ
- กล่าวถึง
- การสนทนา
- แสดง
- do
- ทำ
- ไม่
- ทำ
- สอง
- สอง
- ในระหว่าง
- แต่ละ
- ง่ายดาย
- อย่างง่ายดาย
- ความพยายาม
- ทั้ง
- กำจัด
- การกำจัด
- อื่น
- เน้น
- การจ้างงาน
- ทำให้สามารถ
- เปิดการใช้งาน
- ช่วยให้
- ปลาย
- บังคับใช้
- พอ
- ทำให้มั่นใจ
- การสร้างความมั่นใจ
- การป้อน
- ที่ล่อลวง
- ทั้งหมด
- อย่างสิ้นเชิง
- เอกลักษณ์
- อุปกรณ์
- ข้อผิดพลาด
- โดยเฉพาะอย่างยิ่ง
- จำเป็น
- เป็นหลัก
- สร้าง
- ฯลฯ
- การประเมินผล
- แม้
- เคย
- ทุกๆ
- ทุกอย่าง
- เผง
- ตัวอย่าง
- ตัวอย่าง
- ตื่นเต้น
- ดำเนินการ
- ดำเนินการ
- การออกกำลังกาย
- การดำรงอยู่
- ที่คาดหวัง
- ประสบการณ์
- การหมดอายุ
- เอาเปรียบ
- สำรวจ
- ส่งออก
- ขยาย
- ภายนอก
- สุดโต่ง
- อำนวยความสะดวก
- ปัจจัย
- ล้มเหลว
- ความล้มเหลว
- อย่างเป็นธรรม
- ตก
- ไกล
- ลักษณะ
- คุณสมบัติ
- กุมภาพันธ์
- สองสาม
- สุดท้าย
- ทางการเงิน
- ประวัติทางการเงิน
- หา
- ชื่อจริง
- มีความยืดหยุ่น
- พลิก
- โฟกัส
- ดังต่อไปนี้
- ดังต่อไปนี้
- สำหรับ
- ตลอดไป
- ข้างหน้า
- สี่
- กรอบ
- มัก
- เพื่อน
- ราคาเริ่มต้นที่
- เต็ม
- อย่างเต็มที่
- ฟังก์ชั่น
- กองทุน
- เงิน
- นอกจากนี้
- ไม่ได้ผล
- อนาคต
- จุดประสงค์ทั่วไป
- โดยทั่วไป
- สร้าง
- สร้าง
- สร้าง
- การสร้าง
- รุ่น
- กำหนด
- Go
- ไป
- ดี
- ยิ่งใหญ่
- อย่างมาก
- มี
- ครึ่ง
- ฮาร์ดแวร์
- อุปกรณ์ฮาร์ดแวร์
- กระเป๋าเงินฮาร์ดแวร์
- ผู้ผลิตกระเป๋าสตางค์ฮาร์ดแวร์
- ฮาร์ดแวร์กระเป๋าสตางค์
- เป็นอันตราย
- มี
- มี
- ช่วย
- ด้วยเหตุนี้
- ประวัติ
- ถือ
- ความหวัง
- เจ้าภาพ
- เป็นเจ้าภาพ
- ร้อน
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- อย่างไรก็ตาม
- ที่ http
- HTTPS
- ใหญ่
- มนุษย์
- ความคิด
- ในอุดมคติ
- ความคิด
- แยกแยะ
- if
- ทันที
- ส่งผลกระทบ
- ส่งผลกระทบต่อ
- การดำเนินการ
- นำเข้า
- สำคัญ
- เป็นไปไม่ได้
- ปรับปรุง
- in
- รวมถึง
- รวมทั้ง
- ผสมผสาน
- เพิ่มขึ้น
- เหลือเชื่อ
- จริง
- อิสระ
- เป็นรายบุคคล
- อุตสาหกรรม
- ข้อมูล
- อย่างโดยเนื้อแท้
- แรกเริ่ม
- ภายใน
- คนวงใน
- สร้างแรงบันดาลใจ
- การติดตั้ง
- ตัวอย่าง
- แทน
- จงใจ
- โต้ตอบ
- การโต้ตอบ
- อยากเรียนรู้
- สนใจ
- น่าสนใจ
- อินเตอร์เฟซ
- เข้าไป
- แนะนำ
- แนะนำ
- เปิดตัว
- อย่างซึ่งก้าวร้าว
- การมีส่วนร่วม
- ที่เกี่ยวข้องกับ
- ปัญหา
- IT
- ITS
- ตัวเอง
- เพียงแค่
- แค่หนึ่ง
- คีย์
- กุญแจ
- ทราบ
- ความรู้
- ที่รู้จักกัน
- ภูมิประเทศ
- ภาษา
- แล็ปท็อป
- ชื่อสกุล
- ต่อมา
- ทนายความ
- นำไปสู่
- เรียนรู้
- การเรียนรู้
- น้อยที่สุด
- บัญชีแยกประเภท
- ซ้าย
- ถูกกฎหมาย
- น้อยลง
- ให้
- ชั้น
- การใช้ประโยชน์
- กดไลก์
- น่าจะ
- ที่เชื่อมโยง
- จดทะเบียน
- โหลด
- ในประเทศ
- วันหยุด
- ล็อค
- นาน
- อีกต่อไป
- ดู
- ดูเหมือน
- สูญเสีย
- แพ้
- ปิด
- การสูญเสีย
- สูญหาย
- เครื่อง
- หลัก
- ส่วนใหญ่
- ทำ
- ทำให้
- การทำ
- มัลแวร์
- จัดการ
- การจัดการ
- การจัดการกับ
- ลักษณะ
- ผู้ผลิต
- ผู้ผลิตยา
- หลาย
- มีนาคม
- การจับคู่
- อาจ..
- วิธี
- มาตรการ
- กลไก
- กลาง
- กล่าวถึง
- แค่
- ข่าวสาร
- ข้อความ
- วิธี
- วิธีการ
- ไมอามี่
- อาจ
- อักษรย่อ
- ชนกลุ่มน้อย
- นาที
- ภารกิจ
- ความผิดพลาด
- แบบ
- เงิน
- การตรวจสอบ
- เดือน
- ข้อมูลเพิ่มเติม
- ยิ่งไปกว่านั้น
- มากที่สุด
- ส่วนใหญ่
- ย้าย
- ย้าย
- มาก
- หลาย
- มัลติซิก
- ต้อง
- ชื่อ
- ใกล้
- จำเป็น
- จำเป็นต้อง
- จำเป็น
- ความต้องการ
- ในเชิงลบ
- เครือข่าย
- ไม่เคย
- ใหม่
- ข่าว
- ถัดไป
- ดี
- ไม่
- ไม่ใช่เทคนิค
- ปกติ
- พฤศจิกายน
- พฤศจิกายน 2021
- ตอนนี้
- จำนวน
- ตัวเลข
- ได้รับ
- of
- เสนอ
- การเสนอ
- เสนอ
- ออฟไลน์
- on
- การดูแลพนักงานใหม่
- ครั้งเดียว
- ONE
- คน
- เพียง
- เปิด
- โอเพนซอร์ส
- เปิด
- การดำเนินงาน
- การดำเนินการ
- โอกาส
- Options
- or
- ใบสั่ง
- อื่นๆ
- มิฉะนั้น
- ของเรา
- ออก
- ที่ระบุไว้
- ด้านนอก
- เกิน
- ทั้งหมด
- ภาพรวม
- ของตนเอง
- เจ้าของ
- กระดาษ
- สำคัญยิ่ง
- ส่วนหนึ่ง
- โดยเฉพาะ
- พรรค
- เส้นทาง
- ชำระ
- ดำเนินการ
- บางที
- ระยะเวลา
- อย่างถาวร
- ระยะ
- โทรศัพท์
- สถานที่
- สถานที่
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- จุด
- จุด
- นโยบาย
- นโยบาย
- ยอดนิยม
- ความเป็นไปได้
- เป็นไปได้
- อาจ
- โพสต์
- ที่มีศักยภาพ
- ที่อาจเกิดขึ้น
- อำนาจ
- ประยุกต์
- จวน
- การปฏิบัติ
- จำเป็นต้อง
- อย่างแม่นยำ
- คาดการณ์
- ทายได้
- การมี
- นำเสนอ
- นำเสนอ
- ป้องกัน
- ป้องกัน
- ก่อน
- ก่อนหน้านี้
- ส่วนใหญ่
- ประถม
- การพิมพ์
- ก่อน
- ความเป็นส่วนตัว
- ส่วนตัว
- คีย์ส่วนตัว
- คีย์ส่วนตัว
- ปัญหา
- ปัญหาที่เกิดขึ้น
- ขั้นตอนการ
- กระบวนการ
- ก่อ
- ผลิต
- ผลิต
- อย่างถูกต้อง
- คุณสมบัติ
- คุณสมบัติ
- เสนอ
- ป้องกัน
- การป้องกัน
- ปกป้อง
- การป้องกัน
- โปรโตคอล
- โปรโตคอล
- พิสูจน์
- ให้
- ให้
- สาธารณะ
- คีย์สาธารณะ
- กุญแจสาธารณะ
- ประกาศ
- การตีพิมพ์
- การประกาศ
- วัตถุประสงค์
- ใส่
- วาง
- คำถาม
- เชื่อชาติ
- สุ่ม
- ค่าไถ่
- ค่อนข้าง
- มาถึง
- อ่าน
- ผู้อ่าน
- ตระหนักถึง
- เหตุผล
- การได้รับ
- เมื่อเร็ว ๆ นี้
- รับรู้
- ระเบียน
- การฟื้นตัว
- หมายถึง
- ทะเบียน
- ลงทะเบียน
- การบันทึก
- สัมพัทธ์
- ปล่อย
- การเผยแพร่
- วางใจ
- จำ
- แทนที่
- แสดง
- เป็นตัวแทนของ
- ชื่อเสียง
- ต้องการ
- จำเป็นต้องใช้
- ต้อง
- ส่งผลให้
- รักษา
- กลับ
- เปิดเผย
- ขวา
- ความเสี่ยง
- ความเสี่ยง
- เสี่ยง
- แผนงาน
- แข็งแรง
- ความแข็งแรง
- บทบาท
- บทบาท
- วิ่ง
- ทำงาน
- เดียวกัน
- กล่าว
- scalability
- การสแกน
- สถานการณ์
- โครงการ
- รูปแบบ
- ชเนอร์
- จอภาพ
- สคริปต์
- ที่สอง
- Section
- ปลอดภัย
- อย่างปลอดภัย
- ความปลอดภัย
- เห็น
- เมล็ดพันธุ์
- เมล็ด
- ที่กำลังมองหา
- ดูเหมือน
- ดูเหมือนว่า
- SegWit
- การดูแลตนเอง
- การส่ง
- มีความละเอียดอ่อน
- ส่ง
- แยก
- บริการ
- ชุด
- การติดตั้ง
- หลาย
- สั้น
- น่า
- แสดงให้เห็นว่า
- ลงชื่อ
- ลายเซ็น
- สำคัญ
- อย่างมีความหมาย
- การลงชื่อ
- สัญญาณ
- คล้ายคลึงกัน
- ง่าย
- ลดความซับซ้อน
- ตั้งแต่
- เดียว
- เล็ก
- สมาร์ท
- So
- ซอฟต์แวร์
- ทางออก
- โซลูชัน
- แก้
- บาง
- บางคน
- ในไม่ช้า
- ซับซ้อน
- แหล่ง
- ช่องว่าง
- มีความเชี่ยวชาญ
- โดยเฉพาะ
- ข้อกำหนด
- ใช้จ่าย
- การใช้จ่าย
- มาตรฐาน
- ยืน
- เริ่มต้น
- Status
- ขั้นตอน
- ขั้นตอน
- ยังคง
- การเก็บรักษา
- เก็บไว้
- การเก็บรักษา
- กลยุทธ์
- ความแข็งแรง
- เชือก
- แข็งแรง
- การต่อสู้
- ที่ประสบความสำเร็จ
- ประสบความสำเร็จ
- อย่างเช่น
- สรุป
- ซุปเปอร์ชาร์จ
- สนับสนุน
- ที่สนับสนุน
- รองรับ
- ควร
- เกี่ยวกับระบบ
- ความเสี่ยงเชิงระบบ
- ระบบ
- โหม่ง
- เอา
- รากแก้ว
- เป้า
- กำหนดเป้าหมาย
- วิชาการ
- ในทางเทคนิค
- เทคโนโลยี
- เงื่อนไขการใช้บริการ
- กว่า
- ที่
- พื้นที่
- เหรียญ
- ของพวกเขา
- พวกเขา
- ตัวเอง
- แล้วก็
- ที่นั่น
- ดังนั้น
- ดังนั้น
- ล้อยางขัดเหล่านี้ติดตั้งบนแกน XNUMX (มม.) ผลิตภัณฑ์นี้ถูกผลิตในหลายรูปทรง และหลากหลายเบอร์ความแน่นหนาของปริมาณอนุภาคขัดของมัน จะทำให้ท่านได้รับประสิทธิภาพสูงในการขัดและการใช้งานที่ยาวนาน
- พวกเขา
- สิ่ง
- คิด
- ที่สาม
- นี้
- เหล่านั้น
- ภัยคุกคาม
- สาม
- ธรณีประตู
- ตลอด
- ดังนั้น
- เวลา
- ต้องใช้เวลามาก
- ไปยัง
- ในวันนี้
- วันนี้
- เกินไป
- เครื่องมือ
- หัวข้อ
- รวม
- ไปทาง
- ติดตาม
- ลู่
- บันทึกเสียง
- รถไฟ
- การทำธุกรรม
- การทำธุรกรรม
- การเปลี่ยน
- แปลความ
- คลัง
- ต้นไม้
- จริง
- วางใจ
- ที่เชื่อถือ
- trustless
- ความจริง
- บิด
- สอง
- ชนิด
- ตามแบบฉบับ
- ไม่สามารถ
- เข้าใจ
- Unleashes
- แตกต่าง
- ปลดล็อก
- ปลดล็อค
- ทายไม่ถูก
- จนกระทั่ง
- อัพเกรด
- us
- การใช้งาน
- ใช้
- มือสอง
- ผู้ใช้งาน
- ประสบการณ์ของผู้ใช้
- ผู้ใช้
- ใช้
- การใช้
- นำไปใช้
- ใช้
- การใช้ประโยชน์
- ux
- ตรวจสอบความถูกต้อง
- ความหลากหลาย
- ต่างๆ
- กว้างใหญ่
- ผู้ขาย
- การตรวจสอบแล้ว
- ตรวจสอบ
- รุ่น
- มาก
- ทำงานได้
- จำเป็น
- ช่องโหว่
- รอ
- กระเป๋าสตางค์
- กระเป๋าสตางค์
- ต้องการ
- คือ
- ทาง..
- วิธี
- we
- คือ
- อะไร
- เมื่อ
- เมื่อไรก็ตาม
- ว่า
- ที่
- ในขณะที่
- ทั้งหมด
- ทำไม
- วิกิพีเดีย
- จะ
- กับ
- ภายใน
- ไม่มี
- คำ
- โลก
- จะ
- เขียน
- ผิด
- ปี
- ยัง
- คุณ
- ของคุณ
- ด้วยตัวคุณเอง
- ลมทะเล
- เป็นศูนย์