ขอขอบคุณเป็นพิเศษสำหรับ Sacha Yves Saint-Leger และ Danny Ryan สำหรับรีวิวของพวกเขา
หัวใจสำคัญของระบบ Proof of Stake ทุกระบบคือรูปแบบลายเซ็น ลายเซ็นจะใช้ในการตรวจสอบตัวตนของผู้ตรวจสอบแต่ละราย โดยอนุญาตให้การกระทำของพวกเขาทั้งดีและไม่ดีนำมาประกอบกับพวกเขา
เราสามารถตรวจสอบความซื่อสัตย์โดยดูจากข้อความที่ลงนามของผู้ตรวจสอบ และเราสามารถพิสูจน์ความอาฆาตพยาบาทได้ด้วยการแสดงข้อความที่ละเมิดกฎฉันทามติ
อันที่จริงแล้ว ใน eth2 นั้นคือตัวตนของเครื่องมือตรวจสอบความถูกต้อง เป็น กุญแจสาธารณะของพวกเขา โดยเฉพาะอย่างยิ่ง เครื่องมือตรวจสอบความถูกต้องแต่ละรายจะมีคีย์สองชุด: คีย์การลงนามและคีย์การถอน
คีย์การลงนาม
ก คีย์การลงนาม เป็นกุญแจสำคัญที่ผู้ตรวจสอบต้องลงนามในหนังสือรับรองและเสนอบล็อก เนื่องจากผู้ตรวจสอบความถูกต้องจำเป็นต้องลงนามข้อความอย่างน้อยหนึ่งครั้งต่อยุค ซอฟต์แวร์ไคลเอ็นต์จึงต้องมีสิทธิ์ในการดูแลคีย์
กุญแจถอนเงิน
เนื่องจากซอฟต์แวร์ไคลเอ็นต์เชื่อมต่อกับอินเทอร์เน็ตอยู่เสมอ จึงมีโอกาสที่รหัสลงนามจะถูกโจมตีได้ เพื่อลดผลกระทบของการละเมิดดังกล่าว การดำเนินการที่ผู้ตรวจสอบสามารถทำได้จะถูกแบ่งออกเป็นสองคีย์
รหัสการลงนามตามที่อธิบายไว้ข้างต้น ใช้สำหรับผู้ตรวจสอบเพื่อปฏิบัติหน้าที่ของตน ในทางกลับกัน รหัสถอนเงิน มีอำนาจในการควบคุมเงินทุนของผู้ตรวจสอบความถูกต้อง (การโอน* และการถอน* ETH)
เครื่องมือตรวจสอบความถูกต้องควรใช้คีย์การถอนเงินเพียงไม่กี่ครั้งตลอดช่วงอายุของการเป็นผู้ตรวจสอบ ซึ่งหมายความว่าสามารถเก็บไว้ในห้องเย็นและจัดเก็บโดยมีความปลอดภัยระดับสูง (ออฟไลน์)
* การโอนและการถอนจะไม่เปิดใช้งานจนกว่าจะถึงเฟส 1 เป็นอย่างน้อย
นั่นกุญแจเยอะมาก!
หากทุกๆ 32ETH ที่เดิมพัน จำเป็นต้องบันทึกและใช้ 2 คีย์ที่ไม่เกี่ยวข้องในการฝากเงิน สิ่งนี้จะหมดไปอย่างรวดเร็ว
โชคดีที่เรามีวิธีแก้ปัญหา วิธีแก้ไขคือให้คีย์ใช้ความลับทั่วไป ดังนั้นการจัดเก็บความลับเดียวจะทำให้สามารถเข้าถึงหลายคีย์ได้
ใน eth2 สามารถทำได้ผ่าน EIP 2333 และ 2334: ชุดของมาตรฐานที่อธิบายว่าการถอนและการลงนามคีย์เกี่ยวข้องกันอย่างไร และวิธีที่ได้มาจากการช่วยจำเพียงอันเดียว
ช่วยในการจำ
การช่วยจำเป็นอีกวิธีหนึ่งในการเข้ารหัสความลับและเป็นวิธีที่ง่ายกว่ามากสำหรับผู้ใช้ในการจัดเก็บและสำรองคีย์ส่วนตัวของตน
แนวคิดคือการจดจำหรือจดบันทึกได้ง่ายกว่า ไส้กรอกโซลูชั่น ดังแยก โฟกัสเหินกรอบ ประตูตัวตลก ล้านสุ่มแรงกระตุ้น กว่า 0x1e9f2afcc0737f4502e8d4238e4fe82d45077b2a549902b61d65367acecbccba โดยไม่เกิดข้อผิดพลาดใดๆ
การสืบทอดคีย์จากคีย์อื่น
เมื่อโต้ตอบกับกระเป๋าเงิน คุณอาจพบ “เส้นทาง” ของแบบฟอร์ม ม./44’/60’/0’/0/0– เส้นทางเหล่านี้อธิบายความสัมพันธ์ระหว่างคีย์
ตาม อีไอพี 2333ความสัมพันธ์นี้อยู่ในรูปแบบของโครงสร้างต้นไม้โดยที่คีย์ถูกกำหนดโดยแหล่งที่มาของเอนโทรปี (เมล็ดของต้นไม้) และเส้นทางของต้นไม้
เราใช้เมล็ดพืชในการคำนวณรากของต้นไม้ จากนั้นจึงสร้างต้นไม้เป็นชั้นๆ บนรากนี้ แผนผังกุญแจนี้ถูกกำหนดโดยความสัมพันธ์ระหว่างกิ่งที่ตามมาในต้นไม้และรากของต้นไม้เท่านั้น
ในทางปฏิบัติ มันช่วยให้เราสามารถค้นหาคีย์ใดๆ ในแผนผังโดยเริ่มต้นที่ราก และคำนวณคีย์กลางในแต่ละสาขาที่เราติดตาม จนกว่าเราจะไปถึงใบไม้ที่เราสนใจ
ผลลัพธ์ที่ยอดเยี่ยมของสิ่งนี้ก็คือเราสามารถเริ่มต้นด้วยแหล่งเอนโทรปีเพียงแหล่งเดียว (เช่น ช่วยในการช่วยจำ) และจากนั้นก็สร้างคีย์ขึ้นมาได้ไม่จำกัดจำนวน
นอกจากนี้ ด้วยการจัดเก็บอย่างปลอดภัยเพียงตัวช่วยจำ คุณจะมีข้อมูลสำรองของทุกคีย์ที่เครื่องมือตรวจสอบของคุณใช้
แนวคิดนี้ใช้ใน eth2 เพื่อให้ตัวช่วยจำตัวเดียวสามารถสร้างคีย์ได้มากเท่าที่เครื่องมือตรวจสอบต้องการ ตัวอย่างเช่น หากคุณต้องการเรียกใช้เครื่องมือตรวจสอบความถูกต้อง 3 ตัว คุณสามารถใช้ตัวช่วยจำตัวเดียวเพื่อสร้างคีย์การถอนเงินที่อยู่ที่
ม./0–
ม./1–
ม./2–
(m / 0) / / (m) - (m / 1) (m / 2)
แต่ละสาขาจะคั่นด้วย – ดังนั้น ม./2 หมายถึงเริ่มต้นด้วยคีย์หลักและติดตามสาขา 2
อีไอพี 2334 ระบุว่ารหัสลงนามของผู้ตรวจสอบความถูกต้องคือ 0สาขาย่อยของคีย์การถอน ในทางปฏิบัติหมายความว่า เมื่อปฏิบัติตามมาตรฐานแล้ว หากคุณทราบคีย์ส่วนตัวสำหรับการถอนออก คุณสามารถคำนวณคีย์ส่วนตัวที่เกี่ยวข้องสำหรับการลงนามได้
จากตัวอย่างข้างต้น คีย์การลงนามจะอยู่ที่:
ม./0/0–
ม./1/0–
ม./2/0–
(m / 0) - (m / 0 / 0) / / (m) - (m / 1) - (m / 1 / 0) (m / 2) - (m / 2 / 0)
แม้ว่าเราพยายามทำให้ตัวอย่างนี้เรียบง่ายที่สุดเท่าที่จะเป็นไปได้ แต่ในทางปฏิบัติ เส้นทางที่เกี่ยวข้องนั้นยาวกว่าเล็กน้อย (อีไอพี 2334 ต้องใช้ ม./12381/3600/i/0และ ม./12381/3600/i/0/0 สำหรับการถอนและลงนามกุญแจตามลำดับ) อย่างไรก็ตาม ตรรกะยังคงเหมือนเดิม
สิ่งสำคัญที่ต้องจำไว้ก็คือ หากคุณทราบตัวช่วยจำ คุณสามารถคำนวณคีย์การถอนเงินของคุณได้ และจากนั้นก็รับคีย์การลงนามของคุณจากที่นั่น
การจัดเก็บกุญแจ
ไคลเอ็นต์ Validator ใช้ที่เก็บคีย์เป็นวิธีการแลกเปลี่ยนคีย์
ร้านขายกุญแจ เป็นไฟล์ที่มีคีย์ส่วนตัวที่เข้ารหัสด้วยรหัสผ่านของผู้ใช้ สามารถจัดเก็บและถ่ายโอนข้อมูลระหว่างคอมพิวเตอร์ได้อย่างปลอดภัย โดยที่รหัสผ่านไม่ได้จัดเก็บไว้ในคอมพิวเตอร์เครื่องเดียวกัน
เมื่อคุณพร้อมที่จะเริ่มการตรวจสอบ คุณสามารถมอบที่เก็บคีย์และรหัสผ่านในการเข้ารหัสคีย์สโตร์ให้กับลูกค้าของคุณได้ (ต้องใช้ข้อมูลทั้งสองส่วนเพื่อนำเข้าคีย์ของคุณ)
กลายเป็นผู้ตรวจสอบ
ขั้นตอนแรกในการเป็นผู้ตรวจสอบความถูกต้องคือการสร้างคีย์ที่เหมาะสม สิ่งเหล่านี้จะถูกสร้างขึ้นเมื่อคุณจดบันทึกช่วยจำของคุณแล้ว
เนื่องจากไม่มีการถอนหรือโอนในเฟส 0 คุณจึงไม่จำเป็นต้องมีที่เก็บคีย์สำหรับคีย์การถอนของคุณ การจัดเก็บตัวช่วยจำของคุณอย่างปลอดภัยก็เพียงพอแล้ว
เนื่องจากไคลเอนต์เครื่องมือตรวจสอบความถูกต้องของคุณต้องการรหัสลงนามของคุณ คุณจะได้รับที่เก็บคีย์สำหรับเครื่องมือตรวจสอบความถูกต้องแต่ละรายเพื่อจัดเก็บคีย์เหล่านี้
ตอนนี้ได้เวลาฝากเงินแล้ว! ในการเป็นผู้ตรวจสอบ คุณจะต้องส่ง 32 ETH ต่อผู้ตรวจสอบ นอกเหนือจากของคุณ ข้อมูลการฝากเงิน ประกอบด้วยกุญแจสาธารณะของเครื่องมือตรวจสอบความถูกต้องทั้งหมดของคุณ
ข้อมูลการฝากเงินจะถูกบันทึกไว้ในสัญญาการฝากเงินบน eth1 สัญญานี้ถูกจับตามองโดยโหนด eth2 ซึ่งรับผิดชอบในการคัดลอกข้อมูลเงินฝาก เมื่อคัดลอกข้อมูลเงินฝากของคุณแล้ว คุณก็เป็นผู้ตรวจสอบอย่างเป็นทางการแล้ว!
เป็นผู้ตรวจสอบความถูกต้องด้วยวิธีง่ายๆ
เรามีความยินดีที่จะประกาศว่าเราได้ทำงานอย่างหนักเพื่อสร้างอินเทอร์เฟซที่เป็นมิตรเพื่อแนะนำผู้ตรวจสอบความถูกต้องตลอดกระบวนการนี้ ติดตามข่าวสารอัปเดตได้เร็วๆ นี้ว่า Eth2 Launchpad คืออะไร และใช้งานอย่างไร!