DAOrayaki: 계정 추상화가 이더리움의 대규모 채택을 어떻게 보장하는가
저자: Fifty Finney
원문 제목: 《Account Abstraction --- A pivotal step in ensuring Ethereum's adoption.》
계정 추상화는 올해 반복적으로 주목받는 주제이지만, 시장 참여자 중에는 그것이 무엇인지, 그리고 그것이 게임의 규칙을 어떻게 바꾸는지 이해하는 사람이 드뭅니다. 비탈릭에 따르면, 계정 추상화는 "우리가 항상 원했던 것"이며, "이더리움 커뮤니티의 오랜 꿈"이었습니다.
이번 글에서는 계정 추상화가 이더리움 블록체인을 확장하고 대규모 채택을 보장하는 데 어떤 역할을 하는지 논의하겠습니다.
먼저, 계정 추상화를 완전히 이해하기 위해 컴퓨터 과학에서 추상이 무엇인지 알아야 합니다:
추상의 예술:
추상화는 시스템의 물리적, 공간적 또는 시간적 세부 사항을 제거하고 더 중요한 속성에 집중하는 것을 의미합니다.
소프트웨어 공학에서 인기 있는 추상화 형태 중 하나는 데이터 추상화로, 이는 정보를 숨기고 사용자가 컴퓨터에서 발생하는 논리나 과정을 완전히 이해하지 않고도 높은 수준에서 사용할 수 있도록 하는 것을 의미합니다.
자료 출처: TIBC
예를 들어, 개발자가 소프트웨어를 작성할 때 Python, Java와 같은 고급 프로그래밍 언어를 사용합니다. 프로그래머는 기계어를 구성하는 0과 1을 어떻게 작성하는지 이해할 필요가 없습니다.
이더리움 계정 추상화
계정 추상화는 데이터 추상화의 한 형태입니다. 이더리움 계정에서 무엇을 추상화하는지 이해하기 위해서는 먼저 이더리움에서 계정이 어떻게 작동하는지 알아야 합니다. 이더리움에는 두 가지 유형의 계정이 있습니다:
외부 소유 계정 (EOA), 계약 계정 (CA)
외부 소유 계정 (EOA)
이 계정은 본질적으로 사용자가 제어하는 계정으로, 한 쌍의 암호 키, 즉 공개 키와 개인 키로 구성됩니다. 이들은 개인 키를 소유한 사람이 생성하고 제어합니다. 이러한 계정을 생성하는 데는 비용이 필요 없으며, 계정 사용자는 거래를 시작할 수 있습니다.
계약 계정 (CA)
계약 계정은 이더리움 네트워크의 코드에 의해 제어되는 스마트 계약입니다. 계약은 개인 키가 없으며, 이더리움 네트워크의 스마트 계약 코드의 논리에 의해 제어됩니다. 네트워크 저장소를 사용하기 때문에 계약 계정을 개설하는 데는 일정한 비용이 발생합니다. 이 계정은 수신 거래에 대한 응답으로만 거래를 보낼 수 있습니다.
이더리움 계정의 네 가지 필드:
Nonce - 이는 카운터 역할을 하여 계정에서 전송된 거래의 수를 나타냅니다. nonce는 중요한 특성으로, 이는 거래가 EOA에서 한 번만 발생하도록 보장합니다. CA에서는 nonce가 계정이 생성한 계약의 수를 나타냅니다.
잔액 - 이는 wei로 측정된 주소가 보유한 eth의 양을 나타냅니다.
Codehash - 이는 이더리움 가상 머신(EVM)에서 계정 코드에 해당합니다. 서로 다른 코드 조각은 서로 다른 고유 기능을 가지며, 코드의 해시 값이 호출되면 작동합니다. EOA의 경우, 이는 빈 문자열의 해시로 표시됩니다.
Storageroot - 이는 storage hash라고도 하며, 계정의 저장 내용을 간단히 매핑합니다.
자료 출처: 이더리움 문서
이제 이더리움의 두 가지 계정을 알았으므로 계정 추상화를 정의할 수 있습니다. 계정 추상화는 이더리움의 두 가지 계정(외부 소유 계정과 계약 계정)을 단일 유형인 계약 계정으로 단순화하는 과정입니다. 이렇게 생성된 계약 계정은 거래를 시작하고 거래 수수료를 지불할 수 있으며, 사용자의 고유한 요구에 따라 맞춤화할 수 있습니다. 계약 계정은 전통적인 CA와 EOA의 기능을 모두 갖추게 됩니다.
구현 기술
이더리움의 창립자 비탈릭 부테린은 네트워크에서 계정 추상화를 구현하는 몇 가지 방법을 설명했습니다. 이러한 방법에는 다음이 포함됩니다:
- 지연 전체 추상화: 이는 자주 논의되는 추상화 형태입니다. 이는 이더리움 계정을 EOA와 CA에서 오직 CA로 줄이는 것입니다. 사용자는 계약 계정에 자금을 저장하고, 계약 코드는 nonce, 잔액, 코드 해시, 서명, 가스 가격 및 저장 해시에 있는 데이터를 해석하고 실행합니다.
장점:
프로토콜을 매우 간단하게 만듭니다.
단점:
각 계정에 nonce 서명을 검증하고 가스를 지불하기 위해 매우 복잡한 코드를 하드코딩해야 합니다.
채굴자가 발신자를 위해 새 계정을 생성하기 전에 추가 논리가 필요합니다.
비표준 방식으로 계정이 생성되기 때문에 동일한 해시를 가진 거래가 여러 번 포함될 수 있습니다.
- 랜덤 수 제거 추상화: 이 구현 기술에서는 거래의 랜덤 수를 계정의 랜덤 수와 같게 만들어 랜덤 수를 추상화합니다.
장점:
nonce 추상화는 거래가 여러 곳에서 발생할 가능성을 제거합니다.
단점:
기본 프로토콜을 더욱 복잡하게 만듭니다.
- 표준화된 서명 방식: 이 추상화 방법은 거래에 바이트 배열 필드 서명을 추가합니다.
장점:
서명 검증을 더 간단하게 만듭니다.
단점:
기본 계층의 복잡성을 증가시킵니다.
비탈릭이 개요한 다른 계정 추상화 기술로는 중단점 작업 코드 추가, 가스 지불 작업 코드 추가, 가스 가격 + 패닉 작업 코드 삽입, 패닉 및 가스 지불 작업 코드 결합, 거래에서 salt + 코드 조합, 새로 생성된 계정 지불 등이 있습니다.
계정 추상화의 이점
이제 여러분은 이것이 여러분에게 어떤 영향을 미치는지, 그리고 이것이 이더리움 블록체인을 어떻게 개선할 것인지 궁금할 것입니다. 계정 추상화의 몇 가지 이점을 살펴보겠습니다:
- 다중 호출 기능 구현: 현재 이더리움 블록체인과 상호작용할 때, 각 작업에 대해 새로운 거래를 수행해야 합니다. 추상화가 있으면 모든 거래를 한 번의 클릭으로 완료할 수 있어 사용자에게 가스와 시간을 절약해 줍니다.
세션 키: 세션 키는 사용자가 분산 애플리케이션(Dapp)과 상호작용할 때 규칙을 지정할 수 있게 해줍니다. 이러한 규칙은 사용자가 사전에 승인된 규칙에만 제한되도록 하여 더 높은 보안을 보장합니다. 악의적인 행위자가 계정을 수정하고 자금을 훔칠 수 없도록 합니다. 세션 키를 사용하여 지정할 수 있는 몇 가지 매개변수에는 계정이 Dapp과 연결될 수 있는 최대 시간, 사용할 수 있는 최대 가스 및 거래할 수 있는 토큰 수의 보안 임계값이 포함됩니다. 이 기능을 구현하는 팀으로는 Loot Realm, briq, matchboxDAO 및 Ledger가 있습니다.
사회적 복구. 계정 추상화는 메타마스크에서 일반적으로 사용되는 시드 문구의 사용을 종료할 수 있게 해줍니다. 사회적 복구는 사용자가 신뢰할 수 있는 연락처나 신뢰할 수 있는 제3자 서비스를 통해 복구 방법을 지정할 수 있게 해줍니다. 사용자가 계정을 복구하려고 할 때 마음이 바뀌면 복구 전에 지연 타이머를 설정할 수도 있습니다. Argent는 이 조치를 구현하고 있으며 사용자가 Google Drive에 암호화된 시드 문구를 백업할 수 있도록 하고 있습니다.
다중 인증: 일부 전통 금융 기관은 이중 인증 규정을 추진하고 있습니다. 이 보안 모델은 계정 추상화를 통해 구현할 수 있으며, 사용자가 다중 서명 지갑을 지정하고 생성할 수 있게 해줍니다.
플러그인: 계정 추상화는 제3자 개발자가 계정을 생성할 때 새로운 기능을 삽입할 수 있게 해줍니다.
다중 토큰 수수료 지불: 계정 추상화는 사용자가 이더리움 외의 어떤 토큰으로도 가스 요금을 지불할 수 있게 해줍니다.
수수료 위임: 계정 추상화는 사용자가 다른 사람을 대신하여 수수료를 지불할 수 있게 해줍니다. 프로젝트와 프로토콜은 사용자를 대신하여 가스 요금을 지불할 수 있어 온보딩 프로세스를 더욱 원활하게 만듭니다.
다양한 서명 방식: 계정 추상화는 현재 ECDSA 방식과 다른 서명 방식을 허용합니다. 오직 추상화만이 이러한 변화를 허용합니다. 이는:
양자 저항을 도입하여 이더리움이 위조되거나 양자 컴퓨터 공격을 받을 수 없도록 보장합니다.
더 효율적인 서명 알고리즘을 생성하여 가스 요금을 낮출 수 있습니다.
계약 계정의 업그레이드를 허용합니다.
우리는 계정 추상화가 이더리움 체인을 네트워크에 더 유용하게 만들어 다음 사용자들이 DeFi에 진입할 수 있도록 할 것이라고 믿습니다.