“Technically There”만으로는 충분하지 않다: 온체인 시스템에서 접근성을 위한 설계
Source: Dev.to
Introduction
Web3에서는 흔히 간단한 원칙을 기본으로 합니다:
체인에 있으면 존재한다.
기술적으로는 맞지만, 실제로는 불완전합니다.
대부분의 시스템이 잘 다루지 못하는 중요한 격차가 있기 때문입니다:
상태 존재 ≠ 상태 접근성
스마트 계약 시스템을 구축한다면, 이 구분은 대부분이 생각하는 것보다 더 중요합니다.
The Core Problem: State vs Interface
프로토콜 수준에서는 모든 것이 의도대로 작동합니다: 트랜잭션이 확인됩니다.
하지만 사용자는 원시 상태와 상호작용하지 않습니다 — 인터페이스와 상호작용합니다. 지갑, 대시보드, dApp이 온‑체인 현실을 해석하는 렌즈가 되며, 그 렌즈가 실패할 수 있습니다.
Common Failure Cases
이것은 엣지 케이스가 아니라 일상적인 문제입니다:
Network Mismatch
- Scenario: User sends tokens on Arbitrum → wallet is set to Ethereum mainnet
- Result: Funds exist, but the user sees nothing.
Token Not Indexed
- Scenario: ERC‑20 token not auto‑listed in wallet
- Result: Balance not displayed.
Unsupported Chains
- Scenario: Wallet doesn’t support the chain where funds were sent
- Result: No visibility.
Contract‑Specific Access
- Scenario: Funds require interaction with a specific contract function
- Result: No generic UI path.
순수 기술적인 관점에서는 이것이 버그는 아닙니다. 사용자 관점에서는 실패와 구분이 되지 않습니다. 시스템이 100 % 정확하더라도 사용자 입장에서는 망가진 것처럼 느껴질 수 있습니다. 사용자가 자산을 볼 수 없으면, 시스템은 경험 레이어에서 실패한 것입니다.
Design Principles for Accessibility
이 격차를 줄이기 위해서는 인프라와 사용성을 맞추어야 합니다.
Make Network Context Explicit
- 항상 활성 체인을 표시합니다.
- 불일치 시 경고합니다.
- 사용자를 올바른 네트워크로 안내합니다.
Minimize Hidden State
- 가능한 내부 원장을 피합니다.
- 잔액을 온‑체인 데이터와 직접 연결합니다.
Improve Asset Discovery
- 일반 토큰을 자동 감지합니다.
- 대체 가져오기 흐름을 제공합니다.
- 계약 메타데이터를 표시합니다.
Provide Deterministic Interaction Paths
- 계약 함수에 대한 명확한 UI를 제공합니다.
- 수동 ABI 상호작용에 의존하지 않습니다.
- 외부 도구에 대한 의존성을 줄입니다.
Wallet‑Native Design as a Solution
새롭게 떠오르는 패턴은 wallet‑native architecture 입니다:
- Wallet = identity
- 계정도 없고, 내부 잔액 추상화도 없습니다.
이렇게 하면 혼란이 발생할 수 있는 레이어 수가 줄어듭니다.
Real‑World Implementation Example
Degenroll은 고변동성 시스템에 이 모델을 적용한 실용적인 예시입니다. 사용되는 요소는:
- 지갑 인증 (회원가입, KYC 없음).
- 온‑체인 상태와 직접 매핑, 따라서 사용자는 숨겨진 잔액이나 지연된 동기화와 마주하지 않습니다.
What you see is what exists. And what exists is what you can interact with.
The Deeper Insight
블록체인은 진실을 제공하지만, 사용자는 접근성을 필요로 합니다. 시스템이 정확성을 보장하지만 접근성을 보장하지 못한다면 작업을 끝낸 것이 아닙니다.
Closing Thought
다음 세대 Web3 애플리케이션은 단순히 신뢰할 수 있을 뿐만 아니라 이해하기 쉬워야 합니다. 실제로 시스템은 기술적으로 옳은 것이 아니라, 사용자가 실제로 사용할 수 있는가에 의해 정의됩니다.