Smart Contract Wallet ที่ปลอดภัย แบบแยกส่วน และอัปเกรดได้ ช่วยให้สามารถนำ Web3 ไปใช้เป็นจำนวนมาก
________ ________ ________ ________
| __ | __ | __ \ _____
| / | | | ___/ / |
__ __ _ _ / / /
| \ | / /_/__
_ ______ _ _ _ _ _ _ \ _ \ ________
| _______ | | __ | | __ | | __ | | __ | _______ |
ความเป็นโมดูลเป็นหนึ่งในหลักการสำคัญในวิศวกรรมซอฟต์แวร์ สถาปัตยกรรมแบบโมดูลาร์และโค้ดช่วยให้สามารถนำกลับมาใช้ใหม่ได้สูง บำรุงรักษาและทดสอบได้ง่าย มีการพึ่งพาอาศัยกันระหว่างส่วนประกอบน้อยลง และที่สำคัญที่สุดคือให้วัตถุประสงค์และฟังก์ชันการทำงานที่ไม่ซับซ้อนซึ่งช่วยลดจุดบกพร่องของโค้ดและปัญหาด้านความปลอดภัย
Barz ยังถือว่า Modularity เป็นหลักการสำคัญในสถาปัตยกรรมโดยรวมและในระดับโค้ด
สำหรับโมดูลาร์ เรากำหนดมาตรฐาน EIP-2535 Diamond, Multi-Facet Proxy และจัดเตรียมคุณลักษณะแต่ละชุดไว้ในด้านเดียวที่แนบมากับ Diamond (Barz) โมดูลเหล่านี้ประกอบด้วย:
แต่ละโมดูลเหล่านี้สามารถแนบและถอดออกโดยเจ้าของได้ทุกเมื่อที่ต้องการ
Barz ถอดที่เก็บข้อมูลของแต่ละโมดูลผ่าน FacetStorage
และโมดูล Barz จะเข้าถึงเฉพาะ FacetStorage
ที่โมดูลต้องการเท่านั้น ซึ่งจะช่วยลดโอกาสในการเข้าถึงพื้นที่จัดเก็บข้อมูลที่ไม่จำเป็นและการปรับเปลี่ยนพื้นที่จัดเก็บข้อมูลที่ไม่ต้องการจากโมดูล โดยเฉพาะอย่างยิ่งในระหว่างการอัปเกรดการใช้งาน ด้วยสถาปัตยกรรมของการถอดพื้นที่จัดเก็บข้อมูลที่แต่ละโมดูลใช้งาน Barz ช่วยป้องกันไม่ให้แต่ละโมดูลเกิดการชนกันของพื้นที่จัดเก็บข้อมูล ซึ่งจะช่วยลดความเสี่ยงที่อาจเกิดขึ้นในรูปแบบพร็อกซี
สถาปัตยกรรมของ Barz ยังให้ประโยชน์ในการอัพเกรดอีกด้วย ในขณะที่รูปแบบพร็อกซีทั่วไปจำเป็นต้องอัปเกรดการใช้งานลอจิกทั้งหมดเพื่ออัปเกรดบางส่วน Barz ต้องการเพียงโมดูลที่เกี่ยวข้องเท่านั้นที่จะถูกแทนที่ตามลำดับ ซึ่งจะแนะนำ ความสามารถในการอัปเกรดแบบโมดูลาร์ ให้กับบัญชี
สถาปัตยกรรมโมดูลาร์ช่วยแบ่งรหัสออกเป็นโมดูลเล็กๆ ซึ่งมีส่วนช่วยในการแยกและจำกัดการทำงานของแต่ละโมดูล ซึ่งจะช่วยลดพื้นที่การโจมตีและจำกัดความเสียหายที่อาจเกิดขึ้นจากการละเมิดความปลอดภัยในโมดูล สิ่งนี้ได้รับการขยายให้ใหญ่สุดพร้อมกับสถาปัตยกรรมของ Barz ที่เข้าถึงเฉพาะพื้นที่เก็บข้อมูลที่โมดูลต้องการเท่านั้น
ต่างจากสถาปัตยกรรมที่สามารถอัปเกรดได้อื่นๆ ซึ่งจำเป็นต้องมีการอัปเกรดสัญญาลอจิกทั้งหมดหรือโมดูลทั้งหมดที่มีชุดคุณลักษณะ สถาปัตยกรรมของ Barz รองรับการอัปเกรดแบบโมดูลาร์สำหรับแต่ละฟังก์ชัน ทำให้เกิดความเป็นโมดูลาร์และความสามารถในการอัปเกรดสูงสุดในสัญญากระเป๋าเงิน
ด้วยเหตุนี้ สัญญาบัญชี "Barz" ของเราจึงรองรับรูปแบบลายเซ็นหลายรายการ ผู้ใช้จะสามารถเปลี่ยนรูปแบบลายเซ็นได้อย่างราบรื่นด้วยการเรียกใช้ฟังก์ชันในสัญญาบัญชี สิ่งนี้ทำให้ผู้ใช้สามารถเลือก wallet UX ได้หลายตัวเลือก เช่น:
ผู้ใช้ที่ต้องการการโต้ตอบที่ราบรื่น และไม่มีการสำรองข้อมูล privateKey พวกเขาสามารถใช้ ECDSA บนรูปแบบลายเซ็น Secp256r1 และใช้รหัสผ่าน ("WebAuthn") เพื่อปกป้องคีย์ส่วนตัวอย่างปลอดภัยในตัวจัดการรหัสผ่าน (เช่น พวงกุญแจ iCloud)
ผู้ใช้ที่ต้องการใช้รูปแบบกระเป๋าสตางค์ทั่วไปหรือกระเป๋าสตางค์ฮาร์ดแวร์อาจต้องการใช้รูปแบบลายเซ็น ECDSA("Secp256k1") สำหรับการตรวจสอบลายเซ็น
ขณะนี้ เรากำลังรองรับรูปแบบลายเซ็น 2 แบบ (ECDSA บน Secp256k1 และ Secp256r1 Curve) อย่างไรก็ตาม เราจะขยายการสนับสนุนของเราต่อไปสำหรับรูปแบบลายเซ็นที่แตกต่างกันหลายแบบ รวมถึง BLS และ PQC เป็นต้น
สิ่งนี้เปิดใช้งานได้ด้วยสถาปัตยกรรมแบบโมดูลาร์ที่มีการแนบและแยกแง่มุมของลายเซ็นเข้ากับด้านบัญชีตามความต้องการของผู้ใช้เกี่ยวกับ UX ที่แต่ละโครงร่างลายเซ็นสามารถให้ได้
ในระหว่างการอัปเดตโครงร่างลายเซ็น ฟังก์ชันการอัปเดตควรตรวจสอบสิ่งต่อไปนี้:
yarn
yarn compile
yarn test
yarn size
forge test