계정 모델은 공유 원장(블록체인)을 위한 기본 회계 모델입니다. UTXO 모델과 마찬가지로 온체인 트랜잭션을 기록, 저장 및 실행하는 데 사용됩니다. 계정 모델은 이더리움에서 사용됩니다.
UTXO 모델이란 무엇인가요? 그 특징은 무엇인가요? 해당 내용은 여기를 참조하세요: UTXO 모델이란 무엇인가요?
계정 모델은 거래를 위한 회계 측정으로 계정 내 잔액을 사용합니다. 이것이 UTXO 모델과의 주요 차이점입니다.
UTXO 모델은 거래 내 가상 통화의 미사용 부분을 회계 측정으로 사용합니다. 계정 모델은 전통적인 은행의 디지털 버전으로 볼 수 있습니다. 모델에서 디지털 자산은 전통적인 은행 계좌와 같이 계정 내 잔액으로 기록됩니다.
계정 모델은 계산 모델입니다. 거래가 발생하면 시스템은 노드를 트리거하여 사용자의 거래 지시에 따라 계정 잔액을 변경합니다. 그런 다음 시스템은 각 계정 내의 잔액 변동을 계산하고 새로운 잔액 상태를 기록합니다.
이더리움에서 계정 상태는 블록체인에 저장되지 않고 노드에 의해 로컬로 계산 및 저장됩니다. 블록체인은 거래 지시만을 저장합니다.
이더리움에는 두 가지 유형의 계정이 있습니다: 외부 소유 계정 (EOA) 및 계약 계정.
개인 키로 제어되는 사용자 계정.
예를 들어 사용자는 MetaMask 지갑에서 이 유형의 계정을 만들 수 있습니다. 각 EOA에는 개인 키와 주소가 있으며 거래를 시작할 수 있습니다.
스마트 계약 코드로 제어되는 계정.
EOA와 달리 계약 계정에는 개인 키가 없으며 스마트 계약 코드가 있습니다. 계정은 스마트 계약 코드에 의해 실행됩니다. 계약 계정이 생성될 때 코드가 체인에 기록되고 EVM에 의해 실행됩니다.
계약 계정은 EOA처럼 거래를 시작할 수 없으며, 다른 계약 내에서 함수를 호출하여 거래 지시에 반응할 수 있습니다. 간단히 말해, 거래 지시는 계약 내 함수를 호출합니다.
계좌 잔액을 변경하여 거래를 완료하기 위해 (예 :$ETH양 등의 매개 변수를 추출합니다).
누군가가 컨트랙트 주소로 거래를 보내면 해당 컨트랙트가 EVM에서 실행되며 입력으로 거래가 전달됩니다. 컨트랙트 주소로 전송된 거래에는 $ETH 또는 데이터 또는 둘 다가 포함될 수 있습니다. 거래에 $ETH가 포함되어 있으면 해당 $ETH는 컨트랙트 잔액에 "예금"됩니다. 거래에 데이터가 포함되어 있으면 해당 데이터는 컨트랙트 내의 함수를 지정하고 해당 함수에 인수를 전달할 수 있습니다.
계정 모델에서 거래의 결과는 잔액 상태에 따라 달라집니다. 거래 출력이 잔액보다 커야 합니다. 따라서 거래 순서 확인 및 잔액 확인이 중요합니다. 계정 모델 내의 노드는 거래 지침을 받을 때 보낸 사람의 잔액 상태를 확인합니다(전달된 출력 금액보다 크거나 같은지 확인).