วิทยาศาสตร์ยอดนิยม: เครื่องมือตรวจสอบความถูกต้องของ Eth2 สร้างและปกป้องคีย์การถอนอย่างไร
หมายเหตุบรรณาธิการ: บทความนี้มาจากผู้ที่ชื่นชอบ Ethereum (ID: ethfans)ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)
ผู้ที่ชื่นชอบ Ethereum (ID: ethfans)
ชื่อระดับแรก
คีย์ของ Ethereum 2.0 และคีย์ของ Ethereum 1.0 ถูกสร้างขึ้นและใช้งานในลักษณะเดียวกันโดยประมาณ แต่คีย์ทั้งสองนั้นเข้ากันไม่ได้ กล่าวคือ คีย์ที่สร้างบน Ethereum 1.0 ไม่สามารถใช้กับ Ethereum 2.0 ได้
คีย์การถอน (คีย์การถอน) คือคีย์ 1 ที่ใช้โดยผู้ตรวจสอบความถูกต้องใน Ethereum 2.0 เพื่อถอน Ethereum
คีย์ของ Ethereum 2.0 และคีย์ของ Ethereum 1.0 ถูกสร้างขึ้นและใช้งานในลักษณะเดียวกันโดยประมาณ แต่คีย์ทั้งสองนั้นเข้ากันไม่ได้ กล่าวคือ คีย์ที่สร้างบน Ethereum 1.0 ไม่สามารถใช้กับ Ethereum 2.0 ได้
คีย์ใน Ethereum 2.0 จะแสดงเป็นคู่เสมอในรูปแบบของคีย์สาธารณะและคีย์ส่วนตัว คีย์การถอนนั้นถือโดยผู้วางเดิมพันเอง เนื่องจากพวกเขาเป็นผู้จัดหาเงินทุนและแน่นอนว่าต้องการรักษาสิทธิ์ในการถอนเงิน
รหัสถอนเงินใช้สำหรับอะไร?
ใน Ethereum 2.0 ข้อมูลคีย์การถอนส่วนใหญ่จะใช้ในสองสถานการณ์ต่อไปนี้: การสร้างธุรกรรมการฝากเงินใน Ethereum 1.0 การถอน Ethereum ใน Ethereum 2.0
เมื่อผู้ใช้ฝากเงินบน Ethereum 1.0 หน้าที่ของคีย์สาธารณะที่ถอนคือเชื่อมโยงเงินฝากกับคีย์ส่วนตัวที่ถอน นี่คือเหตุผลที่ Ethereum 2.0 สามารถรู้ได้ว่าใครมีสิทธิ์ในการถอนผ่านรหัสสาธารณะในการถอน (รหัสส่วนตัวสำหรับการถอนที่สอดคล้องกับรหัสสาธารณะในการถอนมีสิทธิ์ในการถอนเงินฝาก) รหัสสาธารณะสำหรับการถอนยังใช้เพื่อรวมข้อมูลเข้ากับธุรกรรมการฝาก Ethereum ดังแสดงในแผนภาพต่อไปนี้:
- รูปที่ 1: การใช้คีย์สาธารณะในการถอนเงินในกระบวนการฝากเงิน (สำหรับรายละเอียด โปรดดูที่บทความนี้) (หมายเหตุบรรณาธิการ: ดูไฮเปอร์ลิงก์ที่ส่วนท้ายของบทความ "กระบวนการชีวิตของผู้ตรวจสอบ")-
สิ่งหนึ่งที่ควรทราบคือการถอนรหัสสาธารณะ 2 ใช้ในข้อตกลงการฝากเงินทุกฉบับ
รายละเอียดของการถอน Ethereum บน Ethereum 2.0 ยังไม่ได้กำหนด แต่ไม่ว่าจะใช้วิธีใดในอนาคต คีย์ส่วนตัวในการถอนจะต้องลงนามและอนุญาต
คำอธิบายภาพ
ในตัวอย่างข้างต้น ผู้มีส่วนได้ส่วนเสียใช้คีย์ส่วนตัวในการถอนเพื่อลงนามในรายละเอียดของการดำเนินการถอน จากนั้น เครือข่าย Ethereum 2.0 สามารถเปรียบเทียบการอนุญาตลายเซ็นในการดำเนินการถอนกับการระบุการถอนในข้อตกลงการฝากเงิน (ดังแสดงในรูปที่ 1) หากทั้งสองตรงกัน การดำเนินการถอนเงินสามารถดำเนินการต่อได้
เราไม่จำเป็นต้องใช้คีย์ส่วนตัวในการถอนจนกว่าฟังก์ชั่นการถอนจะพร้อมใช้งาน ฟังก์ชันการถอนอาจไม่สามารถใช้ได้นานกว่าหนึ่งปีหลังจากฝากเงิน แม้ว่าคุณสมบัติจะพร้อมใช้งานก็ไม่จำเป็นต้องใช้งาน สำหรับผู้มีส่วนได้ส่วนเสียที่ต้องการรับรางวัลในระยะยาว ความสามารถในการถอนเงินมีผลกระทบเพียงเล็กน้อยต่อการดำเนินงานประจำวันของพวกเขา
ซึ่งหมายความว่าเราควรปกป้องรหัสการถอนส่วนตัวของเรา เพื่อที่เราจะได้ไม่ต้องใช้ในระยะสั้น แม้ว่าเราจะต้องใช้มันเป็นครั้งคราวในระยะยาวก็ตาม กล่าวอีกนัยหนึ่ง เมื่อสร้างความสมดุลระหว่างความปลอดภัยและความสามารถในการใช้งานของคีย์ การรักษาความปลอดภัยควรเป็นสิ่งสำคัญอันดับแรกของเรา
ชื่อระดับแรก
คีย์ส่วนตัวควรได้รับการปกป้องจำนวนเท่าใด
คำถามที่ต้องตอบอีกข้อคือ เราต้องปกป้องคีย์ส่วนตัวทั้งหมดกี่คีย์
เหตุผลที่สองคือการใช้คีย์ส่วนตัวเดียวกันทำให้ค่าของคีย์ส่วนตัวสูงเกินไป ทำให้ง่ายต่อการขโมย อย่างไรก็ตาม การจัดเก็บคีย์ส่วนตัวที่แตกต่างกันในที่เดียวกันอาจทำให้เกิดปัญหาเดียวกันได้ กล่าวคือ ควรแยกคีย์ส่วนตัวที่แตกต่างกันทั้งทางกายภาพและทางตรรกะเพื่อลดผลกระทบของการสูญเสีย
ขั้นตอน
กล่าวโดยย่อ หากคุณต้องการป้องกันไม่ให้ผู้อื่นค้นพบเอนทิตีเดียวกันที่อยู่เบื้องหลังข้อมูลประจำตัวของผู้ตรวจสอบความถูกต้องหลายรายการ (สมมติว่าเงินฝากแต่ละรายการของคุณมาจากที่อยู่ Ethereum 1.0 ที่แตกต่างกัน) และจัดเก็บคีย์ส่วนตัวสำหรับการถอนแต่ละรายการแยกกัน หรือใช้กลไกการป้องกันคีย์ที่แตกต่างกัน จากนั้นการใช้คีย์ส่วนตัวหลายอันจะก่อให้เกิดประโยชน์มากมาย ส่วนที่เหลือของบทความนี้จะแนะนำวิธีการใช้คีย์ส่วนตัวในการถอนเพียงคีย์เดียว หากจำเป็น เนื้อหาของบทความนี้จะนำไปใช้กับสถานการณ์ของการถือครองคีย์ส่วนตัวหลายคีย์ด้วย
ชื่อระดับแรก
ขั้นตอน
ตอนนี้เราทราบข้อกำหนดพื้นฐานแล้ว มาดูวิธีสร้างและรักษาความปลอดภัยรหัสการถอน ขั้นตอนในการสร้างคีย์ใหม่มีดังนี้:
สร้างกระเป๋าเงินถอน
สร้างบัญชีถอนเงิน
ลบกระเป๋าเงินถอน;
ยืนยันว่ากระเป๋าเงินถอนสามารถกู้คืนได้
คำอธิบายภาพ
- รูปที่ 3: ขั้นตอนในการสร้างและรักษาความปลอดภัยของคีย์การถอน -
ขั้นตอนเหล่านี้ต้องทำบนคอมพิวเตอร์ ระมัดระวังเพื่อป้องกันการบุกรุกคอมพิวเตอร์ บทความนี้มีความยาวจำกัด และเราจะไม่พูดถึงวิธีป้องกันไม่ให้คอมพิวเตอร์ถูกแฮ็ก แต่อย่างน้อยผู้ใช้ต้องทำสิ่งหนึ่ง: คอมพิวเตอร์ไม่สามารถเชื่อมต่อกับอินเทอร์เน็ตได้เมื่อดำเนินการตามขั้นตอนข้างต้น
ชื่อเรื่องรอง
ethdo wallet create --wallet="Staking wallet" --type=hd --walletpassphrase=secret1
สร้างกระเป๋าเงินถอน
ในขณะที่เขียนบทความนี้ไม่มีการพัฒนากระเป๋าสตางค์ฮาร์ดแวร์คีย์ Ethereum 2.0 ที่ใช้เส้นโค้ง BLS12-381 ขึ้น) ดังนั้นจึงต้องสร้างคีย์ในซอฟต์แวร์ บทความนี้ใช้เครื่องมือบรรทัดคำสั่ง ethdo เป็นตัวอย่าง คุณยังสามารถใช้เครื่องมืออื่นเพื่อให้บรรลุเป้าหมายได้
รหัสบรรทัดนี้สร้างกระเป๋าเงินที่มีวลีช่วยจำ ตัวช่วยจำประกอบด้วย 24 คำและสามารถใช้เพื่อกู้คืนกระเป๋าเงินที่สร้างไว้ก่อนหน้านี้และบัญชีทั้งหมดภายในกระเป๋าเงิน และควรได้รับการรักษาความปลอดภัยทันที คำสั่งดังกล่าวจะแสดงผลความจำซึ่งควรบันทึกแบบออฟไลน์ หากการช่วยจำไม่ปรากฏขึ้นหลังจากป้อนคำสั่ง จะไม่สามารถกู้คืนกระเป๋าเงินได้ ดังนั้น เราไม่ควรใช้กระเป๋าเงินนี้
มีหลายวิธีในการบันทึกความจำของคุณ เช่น Blockplate และ Cryptosteel แต่คุณสามารถคัดลอกลงและเก็บไว้ในที่ปลอดภัย (ควรกันไฟ) โปรดจำไว้ว่าเมื่อวลีเริ่มต้นหายไป คุณจะไม่สามารถถอนเงินได้ ดังนั้นให้ทำตามขั้นตอนที่เหมาะสมเพื่อรักษาความปลอดภัยของข้อมูล
หลังจากที่บันทึกช่วยจำแล้ว เราสามารถเริ่มสร้างบัญชีถอนเงินได้
ethdo account create --account="Staking wallet/Withdrawal account" --walletpassphrase=secret1 --passphrase=secret2
สร้างบัญชีถอนเงิน
คำสั่งในการสร้างบัญชีถอนมีดังนี้:
รหัสผ่านกระเป๋าเงิน (walletpassphrase) จะต้องเหมือนกับรหัสผ่านที่คุณให้ไว้ในส่วนก่อนหน้า รหัสผ่านหลังเป็นเพียงรหัสผ่านของบัญชีนี้เท่านั้น และใช้เพียงชั่วคราวก่อนที่จะลบบัญชี
ethdo account info --account="Staking wallet/Withdrawal account"
ชื่อเรื่องรอง
กุญแจสาธารณะเป็นแบบสาธารณะและไม่ต้องใช้มาตรการรักษาความปลอดภัยพิเศษตามชื่อ เรียกใช้รหัสต่อไปนี้เพื่อดูรหัสสาธารณะ:
หากรหัสไม่แสดงคีย์สาธารณะสำหรับการถอน อาจบ่งชี้ถึงข้อผิดพลาดในกระบวนการสร้างบัญชี ตรวจทานโค้ดที่เรียกใช้ก่อนหน้านี้อย่างระมัดระวังเพื่อหาข้อผิดพลาด
โปรดทราบว่าแม้ว่าคีย์สาธารณะจะไม่เป็นส่วนตัว แต่ควรดำเนินการตามขั้นตอนที่เหมาะสมเพื่อให้แน่ใจว่าผู้โจมตีที่ประสงค์ร้ายไม่สามารถแลกเปลี่ยนคีย์สาธารณะของคุณเป็นของพวกเขาได้
ethdo wallet delete --wallet="Staking wallet"
ชื่อเรื่องรอง
ethdo wallet info --wallet="Staking wallet"
หากดำเนินการตามขั้นตอนด้านบนอย่างถูกต้อง เราสามารถลบกระเป๋าเงินถอนได้อย่างปลอดภัย กรุณาเรียกใช้รหัสด้านล่าง:
จากนั้น คุณสามารถเรียกใช้รหัสต่อไปนี้เพื่อเข้าถึงกระเป๋าเงินเพื่อยืนยันว่ากระเป๋าเงินถูกลบหรือไม่:
โดยปกติ ข้อความแสดงข้อผิดพลาดจะถูกส่งกลับเนื่องจากไม่พบกระเป๋าเงิน
ชื่อเรื่องรอง
ethdo wallet create --wallet="Recovery wallet" --type=hd --walletpassphrase=temp1 --mnemonic="MNEMONIC"
ยืนยันว่ากระเป๋าเงินถอนสามารถกู้คืนได้
ทางที่ดีควรสร้างกระเป๋าเงินถอนขึ้นมาใหม่ก่อนที่จะทำการฝากเงินใดๆ ด้วยรหัสถอนเงิน วิธีนี้ไม่เพียงช่วยให้แน่ใจว่าเราคุ้นเคยกับกระบวนการนี้ แต่ยังให้การตรวจสอบขั้นสุดท้ายสำหรับข้อผิดพลาดที่อาจเกิดขึ้นก่อนที่คุณจะฝากเงิน
ethdo account create --account="Recovery wallet/Withdrawal account" --walletpassphrase=temp1 --passphrase=temp2
สิ่งแรกที่ต้องทำคือสร้างกระเป๋าเงินใหม่ด้วยตัวช่วยจำ กรุณาเรียกใช้รหัสด้านล่าง:
ethdo account info --account="Recovery wallet/Withdrawal account"
แทนที่ตัวช่วยจำในรหัสด้านบนด้วยตัวช่วยจำของคุณ
จากนั้นเรียกใช้รหัสต่อไปนี้เพื่อสร้างบัญชีการถอนใหม่:
ethdo wallet delete --wallet="Recovery wallet"
เรียกใช้รหัสต่อไปนี้เพื่อรับรหัสสาธารณะ:
ethdo wallet info --wallet="Recovery wallet"
หากต้องการลบกระเป๋าเงินอีกครั้ง ให้รันโค้ดด้านล่าง:
จากนั้นเรียกใช้รหัสต่อไปนี้เพื่อพยายามเข้าถึงกระเป๋าเงินเพื่อยืนยันว่าถูกลบหรือไม่:
สามารถใช้ขั้นตอนข้างต้นกับคีย์ตัวตรวจสอบได้หรือไม่
เชิงอรรถ
ไม่สามารถ. คีย์ตัวตรวจสอบความถูกต้องของ Ethereum 2.0 และคีย์ถอนเงินนั้นใช้แตกต่างกันมาก และแตกต่างจากคีย์ส่วนใหญ่ที่คุณคุ้นเคย เราจะให้รายละเอียดเกี่ยวกับคีย์ตัวตรวจสอบความถูกต้อง การใช้งาน และการป้องกันในบทความถัดไป
ชื่อเรื่องรอง
เชิงอรรถ


