การอภิปรายเกี่ยวกับสถาปัตยกรรมบัญชี: เหตุใดระบบสามหลักจึงเป็นทางออกที่ดี
ผู้เขียนต้นฉบับ: Norswap
การรวบรวมต้นฉบับ: Deep Chao TechFlow
ฉันคิดมากเกี่ยวกับกระเป๋าสตางค์และการเริ่มต้นใช้งาน 0x Fable ด้านล่างนี้เป็นความคิดเห็นของฉัน เราจะหารือเกี่ยวกับ:
โครงสร้างบัญชีในอุดมคติของฉัน
ข้อควรพิจารณาด้านความปลอดภัย
ภาพรวมของผู้ให้บริการเข้าสู่ระบบ Web3 ที่มีอยู่
แน่นอนว่า ไม่แนะนำให้ผู้ใช้ติดตั้งซอฟต์แวร์กระเป๋าสตางค์และบันทึกวลีช่วยจำในระหว่างกระบวนการเริ่มต้นใช้งาน เราต้องการแนวทางที่เป็นมิตร ค่อนข้างปลอดภัย และค่อนข้างมองไปข้างหน้า
สถาปัตยกรรม
ผู้ใช้แต่ละคนจะได้รับบัญชีอัจฉริยะของตนเองซึ่งมีสามคีย์:
รหัสอุปกรณ์ - สามารถจัดเก็บไว้ในเครื่องได้ตั้งแต่แรก แต่หวังว่าจะมีการใช้รหัสผ่าน/webauthn ในอนาคต
คีย์เสริม เช่น คีย์ที่ควบคุมโดยผู้ให้บริการและปลดล็อคผ่านการเข้าสู่ระบบโซเชียล
สำรองคีย์ เช่น กับบุคคลที่สาม (อาจเป็นเพียงไฟล์แนบในอีเมลหรือบน Dropbox/Google Drive)
หากสิ่งนี้ฟังดูเป็นเทคโนโลยีต่ำหรือไม่ปลอดภัย ฉันเกรงว่าคุณจะถูกหลอกโดยคำพูดหวาน ๆ ของผู้ให้บริการ เพราะจริงๆ แล้วพวกเขาไม่ได้ปลอดภัยไปกว่านี้อีกแล้ว (ยังน้อยกว่านั้นหลายเท่า - ตัวอย่างเช่น คีย์ (2) และ (3 ) ) ถูกควบคุมโดยฝ่ายเดียวกัน)
ในการตั้งค่านี้ คุณสามารถใช้ปุ่มอุปกรณ์เพื่อดำเนินการโดยไม่ต้องโต้ตอบกับผู้ใช้ สำหรับการโอนและธุรกรรมที่เกี่ยวข้องกับทรัพย์สิน คุณสามารถขอใช้กุญแจเสริมได้
รูปแบบง่ายๆ คือให้ผู้ใช้เข้าสู่ระบบด้วย Google/Apple/Facebook ฯลฯ จากนั้นเพิ่มข้อความยืนยัน ทำให้การเริ่มต้นเป็นเรื่องง่าย อย่างไรก็ตาม หากผู้ใช้ต้องการการรักษาความปลอดภัยมากขึ้น คีย์นี้จะถูกแทนที่ด้วย EOA แบบเดิมได้ นอกจากนี้ คู่คีย์ใดๆ ก็สามารถใช้เพื่อแทนที่คีย์สำรองได้ ซึ่งต้องเป็นไฟล์ที่โฮสต์ในระบบคลาวด์เท่านั้น
การวิเคราะห์ความปลอดภัย
ปลอดภัยแค่ไหน? ส่วนใหญ่เขาปลอดภัย อุปกรณ์หรือเอนทิตีสองรายการจะต้องถูกโจมตีพร้อมกันจึงจะสูญเสียเงินทุน
สิ่งสำคัญคือมีความเสี่ยงในการกำหนดค่าบางอย่างที่อาจลดความปลอดภัย ตัวอย่างเช่น โฮสต์คีย์สำรองบน Google Drive ในขณะที่กำหนดคีย์เสริมให้กับบัญชี Google ของคุณ หรือใช้ Hot Wallet เป็นคีย์เสริมซึ่งมีความเสี่ยงเช่นเดียวกับคีย์อุปกรณ์ ผู้ใช้อาจสูญเสียข้อมูลสำรองของเขา เป็นการดีกว่าที่จะแจ้งให้ผู้ใช้หมุนรหัสอุปกรณ์เป็นระยะโดยบังคับให้เขาค้นหารหัสสำรอง
หากคีย์สำรองถูกจัดเก็บแบบสาธารณะ ก็มีความเสี่ยงสูงที่จะถูกขโมยเช่นกัน นี่แย่ยิ่งกว่ากระเป๋าสตางค์ร้อนที่เข้ารหัสคีย์บนดิสก์ (และต้องใช้รหัสผ่านเพื่อถอดรหัสในหน่วยความจำ) ไม่ว่าการเพิ่มรหัสผ่าน (ซึ่งช่วยให้คุณสามารถเข้าสู่แอปโดยใช้การตรวจสอบอุปกรณ์) จะช่วยแก้ปัญหานี้ได้
เข้าใจว่าการเข้าสู่ระบบโซเชียลหมายถึงการไว้วางใจผู้ให้บริการ โดยพื้นฐานแล้วผู้ให้บริการจะมีรหัสที่เขาสามารถใช้ได้ตามที่คุณต้องการ แต่เขาสัญญากับคุณว่าเขาจะใช้มันตามคำขอของคุณหลังจากที่คุณเข้าสู่ระบบด้วยบัญชีโซเชียลของคุณเท่านั้น สุดท้ายนี้ โปรดทราบว่าเมื่อผู้สร้าง dapp เป็นผู้ให้รหัสเสริม หรือไม่มีการแจ้งการยืนยัน มันง่ายมากสำหรับผู้สร้าง dapp ที่จะหลอกลวงผู้ใช้ (เพราะพวกเขาเขียนส่วนหน้าที่เป็นเจ้าของรหัสอุปกรณ์ และเป็นเจ้าของหรือ สามารถควบคุมคีย์เสริมได้)
ภาพรวมของผู้ให้บริการที่มีอยู่
วันนี้ใครเสนอสิ่งนี้? เท่าที่ฉันรู้ไม่มี ปัญหามักจะอยู่ที่ว่าไม่มีคีย์สำรองหรือถูกครอบครองโดยเอนทิตีเดียวกัน (เช่น กระเป๋าเงิน Coinbase)
ตลาดส่วนใหญ่แบ่งออกเป็นสองประเภท:
ผู้ให้บริการที่นำเสนอโซลูชันแบบหลายคีย์แบบผสานรวมอาจใช้บัญชีอัจฉริยะหรือใช้ MPC (การคำนวณแบบหลายฝ่าย เทคนิคการเข้ารหัส) เพื่อรวมหลายคีย์ไว้ใน EOA เดียว
ผู้ให้บริการระดับล่างที่เก็บคีย์ผู้ใช้ไว้ให้คุณและอนุญาตให้พวกเขาลงชื่อเข้าใช้หลังจากเข้าสู่ระบบ
มีผู้ให้บริการเต็มรูปแบบหลายราย: Particle Network, Privy, Alembic Tech, Magic, Web3 Auth, Turnkey, Dynamic, 0x Pass, Fireblocks, Portal, Capsule, ZeroDev, Keyp, Circle Developers
ผู้ดูแลหลัก เช่น Lit Protocol, Amazon
ใช่มีจำนวนมาก โดยพื้นฐานแล้วไม่มีความแตกต่างระหว่างพวกเขา เมื่อโมเดลธุรกิจมีความโปร่งใส โดยทั่วไปจะเรียกเก็บเงิน 0.02 ถึง 0.05 ดอลลาร์สหรัฐฯ ต่อผู้ใช้ต่อปี สำหรับฉัน สิ่งนี้ดูสมเหตุสมผลทีเดียว
สิ่งที่น่าสนใจคือทั้งหมดนี้ถูกวางตำแหน่งให้เป็นเครื่องมือในการพัฒนา ดูเหมือนไม่มีบริษัทใดที่พยายามใช้เทคโนโลยีเหล่านี้เพื่อเป็นกระเป๋าเงินหลักสำหรับผู้ใช้
แน่นอนว่าในการทำงานกับ DApps ที่มีอยู่ คุณจะต้องติดตั้งซอฟต์แวร์กระเป๋าสตางค์ ดังนั้นประโยชน์ของระบบจึงลดลงเมื่อลบวลีช่วยจำออก แต่คุณยังสามารถให้ dapps โปรโมตคุณว่าเป็นวิธีที่ง่ายที่สุดในการเริ่มต้น (โดยไม่ต้องติดตั้งซอฟต์แวร์กระเป๋าสตางค์หากพวกเขารวมคุณไว้) คุณได้รับผู้ใช้และสามารถเริ่มต้น dapp ได้ฟรีอย่างง่ายดาย วิน-วิน
ความกังวลเกี่ยวกับผู้ให้บริการ
นอกเหนือจากการไม่ใช้สถาปัตยกรรมในอุดมคติของฉันแล้ว โซลูชันเหล่านี้มักจะแนะนำปัจจัยการรวมศูนย์ขนาดใหญ่ เช่น REST API หรือการคำนวณ MPC บางอย่างที่คุณไม่สามารถทำเองได้หากเลิกกิจการไปแล้ว (หรือแม้แต่เผยแพร่สู่สาธารณะ ตรวจสอบแล้ว? ).
ยังไม่ชัดเจนว่าจะเกิดอะไรขึ้นหากคุณหยุดทำงานร่วมกับผู้ให้บริการ พวกเขามี (บางส่วน) คีย์ผู้ใช้ของคุณ! สิ่งนี้คล้ายกันมากกับข้อกังวลของฉันเกี่ยวกับ Rollups-as-a-service
หลังจากนี้ ผู้ก่อตั้ง RaaS คนหนึ่งบอกฉันว่ามีข้อแลกเปลี่ยนระหว่างการอนุญาตให้ออกได้ง่ายและการป้องกันไม่ให้ผู้ก่อตั้งโกงผู้ใช้ของตน (ซึ่งจะส่งผลเสียต่อ RaaS)
ต่อไปนี้เป็นวิธีเปลี่ยนผู้ให้บริการอย่างง่ายดายโดยใช้สถาปัตยกรรมข้างต้น: ผู้ใช้ส่งแฮชของบัญชีโซเชียลออนไลน์ของตน (เช่น gavin@hooli.xyz) ผู้ให้บริการเข้าสู่ระบบโซเชียลแต่ละรายมีรหัสส่วนตัวของตัวเอง (ไม่จำเป็นต้องมีรหัสสำหรับผู้ใช้แต่ละราย และโดยทั่วไปแล้วจะไม่ปลอดภัยกว่า) บัญชีอัจฉริยะอ้างอิงถึงสัญญาแบบซิงเกิลตันที่เก็บบัญชีของผู้ให้บริการปัจจุบัน การเปลี่ยนผู้ให้บริการนั้นง่ายเหมือนกับการเปลี่ยนบัญชีนี้
ความคิดสุดท้าย
เรากำลังก้าวไปสู่เป้าหมายการเริ่มต้นใช้งานในอุดมคติอย่างชัดเจน ตามหลักการแล้ว กระเป๋าเงินที่เข้าง่ายเหล่านี้มีความสัมพันธ์โดยตรงกับผู้ใช้ จากนั้น DApps ก็สามารถเพิกเฉยต่อปัญหานี้ได้โดยสิ้นเชิง และเพียงลงนามความร่วมมือกับกระเป๋าเงินเพื่อพิจารณาว่าใครคือกระเป๋าเงินเข้าสู่ระบบเริ่มต้น
หากไม่ทำเช่นนั้น โซลูชันของฉันจะต้องเปิดตัวระบบของตัวเอง - การสร้างผู้ให้บริการเข้าสู่ระบบโซเชียลของตัวเองภายในสถาปัตยกรรมด้านบนนั้นไม่ใช่เรื่องยาก อย่างไรก็ตาม ฉันจะ ค่อนข้าง ใช้ผู้ให้บริการภายนอก ตามที่กล่าวไว้ข้างต้น หากผู้สร้าง dapp ควบคุมคีย์ฟรี แสดงว่าระบบยังไม่กระจายอำนาจอย่างสมบูรณ์


