Web3의 대량 채택을 가능하게 하는 안전하고 모듈식이며 업그레이드 가능한 스마트 계약 지갑
________ ________ ________ ________
| __ | __ | __ \ _____
| / | | | ___/ / |
__ __ _ _ / / /
| \ | / /_/__
_ ______ _ _ _ _ _ _ \ _ \ ________
| _______ | | __ | | __ | | __ | | __ | _______ |
모듈화는 소프트웨어 엔지니어링의 핵심 원칙 중 하나입니다. 모듈식 아키텍처와 코드는 높은 재사용성, 손쉬운 유지 관리 및 테스트를 가능하게 하고 구성 요소 간의 상호 의존성을 줄이며 가장 중요하게는 코드 버그와 보안 문제를 줄이는 간단한 목적과 기능을 제공합니다.
Barz는 또한 전체 아키텍처와 코드 수준에서 모듈성을 핵심 원칙으로 간주합니다.
모듈성을 위해 EIP-2535 Diamond, Multi-Facet Proxy 표준을 적용하고 Diamond(Barz)에 연결된 단일 패싯에 각 기능 세트를 제공합니다. 이러한 모듈에는 다음이 포함됩니다.
이러한 각 모듈은 소유자가 원할 때마다 부착하고 분리할 수 있습니다.
Barz는 FacetStorage
통해 각 모듈의 스토리지를 분리하고 Barz 모듈은 모듈에 필요한 FacetStorage
에만 액세스합니다. 이는 특히 구현 업그레이드 중에 모듈에서 불필요한 스토리지에 액세스하고 원치 않는 스토리지 수정 가능성을 줄입니다. Barz는 각 모듈이 사용하는 스토리지를 분리하는 아키텍처를 통해 각 모듈의 스토리지 충돌을 방지하여 프록시 패턴에 잠재적인 취약성이 발생하는 것을 줄입니다.
Barz의 아키텍처는 업그레이드 시 이점도 제공합니다. 기존 프록시 패턴에서는 전체 논리 구현을 업그레이드하여 일부를 업그레이드해야 하지만 Barz에서는 관련 모듈만 적절하게 교체하면 되므로 계정에 모듈식 업그레이드 기능이 도입됩니다.
모듈식 아키텍처는 코드를 더 작은 모듈로 나누는 데 도움이 되며, 이는 각 모듈의 기능을 격리하고 제한하는 데 도움이 됩니다. 이는 공격 표면을 줄이고 모듈의 보안 위반으로 인한 잠재적 피해를 제한하는 데 도움이 됩니다. 이는 모듈에 필요한 스토리지에만 액세스하는 Barz의 아키텍처와 함께 극대화됩니다.
전체 로직 계약이나 기능 세트가 포함된 전체 모듈의 업그레이드가 필요한 다른 업그레이드 가능한 아키텍처와 달리 Barz의 아키텍처는 각 기능에 대한 모듈식 업그레이드 가능성을 지원하여 지갑 계약에서 최대의 모듈성과 업그레이드 가능성을 허용합니다.
이러한 형태로 당사 계정 계약 "Barz" 는 다중 서명 방식을 지원합니다. 사용자는 계정 계약에 대한 함수 호출을 통해 서명 체계를 매우 원활하게 변경할 수 있습니다. 이를 통해 사용자는 지갑 UX의 다양한 옵션을 사용할 수 있습니다. 예를 들면 다음과 같습니다.
원활한 상호작용을 원하는 사용자와 privateKey 백업이 필요하지 않습니다. 그들은 Secp256r1 서명 체계에서 ECDSA를 사용하고 암호 키("WebAuthn")를 사용하여 암호 관리자(예: iCloud 키체인)에서 개인 키를 안전하게 보호할 수 있습니다.
기존 지갑 스타일이나 하드웨어 지갑을 사용하려는 사용자는 서명 확인을 위해 ECDSA("Secp256k1") 서명 체계를 사용할 수 있습니다.
현재 우리는 2가지 서명 체계(Secp256k1 및 Secp256r1 곡선의 ECDSA)를 지원하고 있지만 BLS 및 PQC 등을 포함한 다양한 서명 체계에 대한 지원을 계속 확대할 예정입니다.
이는 각 서명 체계가 제공할 수 있는 UX에 대한 사용자 선호도에 따라 서명 패싯을 계정 패싯에 연결 및 분리하는 모듈식 아키텍처를 통해 가능합니다.
서명 체계를 업데이트하는 동안 업데이트 기능은 다음을 확인해야 합니다.
yarn
yarn compile
yarn test
yarn size
forge test