Skip to main content

Cryptocurrency

1. Account

1.1 Account - EOA(Externally Owned Account)

사용자가 갖는 계정을 의미하며, 잔액과 비밀키를 포함한다.

1.2 Account - CA(Contract Account)

Contract와 연결된 계정을 의미하며, 주소와 잔액을 포함한다.


2. Gas

Transaction에서 블록을 생성하는 데 따르는 네트워크 수수료이다.

2.1 Gas - WEI

Ethereum의 가장 작은 단위이며, 1 eth = 10^18 wei에 해당한다.

2.2 Gas - GWEI

주로 Gas를 Transaction할 때 사용되는 단위이며, 1 gwei = 10^9 wei, 1 eth = 10^9 gwei에 해당한다.


3. Transaction(TX)

Account가 수행하는 행동을 의미하며, 각각의 Transaction은 Account에 연결된 공개키로 검증(Verification)이 가능한 서명(Signature)을 포함하고 있다.


4. Block

Transaction들을 일정한 순서로 정렬해 저장하는 컨테이너이다. 블록체인 참여자들은 Block을 검증할 때, Transaction이 올바른 순서로 정렬 돼 있는지 확인 후 합의를 진행하기 때문에, Transaction의 순서는 매우 중요하다. 또한, Block에 Transaction Node가 추가 되면, 1 confirmation을 받게 된다. 그런데, Block을 추가할 때마다 Pending이 생겨 번복될 가능성이 있다. 즉, 완결성(Finality)이 존재하지 않는다.


5. Smart Contract

블록체인에 저장 돼 있는 프로그램이다. 특정 주소에 배포 돼 있는 TX로 실행 가능한 코드이며, 함수상태를 갖는다.


6. Solidity

Smart Contract 언어이며, 일반적인 프로그래밍 언어라고 생각하면 된다. 하지만 블록체인은 메모리가 없기 때문에 recursive type의 선언이 불가능하다.

6.1 Solidity 자세히 보기

/// Solidity Compiler 버전 지정
pragma solidity ^0.8.20;

/// 'MyContract'라는 이름의 Contract 정의
contract MyContract {
/// minter는 address(주소) type이고, public이기 때문에 getter가 자동으로 생성된다.
address public minter;
/// 실제 Contract를 주고 받는 기능은 'payable'이 있어야 한다.
address payable payableMinter;

/// 이렇게 메모리 사이즈가 정해져 있는 것(value type)들은 'memory'로 영역 지정을 안 한다.
uint x = 10;
/// 반면 이렇게 사이즈가 변경될 수 있는 것(reference type)들은 'memory'로 영역 지정을 해준다.
string memory s = "Hello World!";
/// 이러면 s, t 모두 하나의 memory를 가리키게 된다.
string memory t = s;

/// 생성자 함수는 Contract가 실행될 때 한 번 실행된다.
constructor() public {
minter = msg.sender;
}
}

7. 비트코인(Bitcoin)

UTXO(Unspent Transaction Output)-based 블록체인이다. 해당 비트코인이 저장된 지갑(account)의 주소를 가리킨다.


8. 이더리움(Ethereum)

Account-based 블록체인이다. 어떠한 지갑(account)의 balance를 가리킨다. 그리고 이 balance는 상태값으로 사용되는데, 그렇기 때문에 비트코인 기반의 일회성 프로그램과 달리, 이더리움은 스마트 컨트랙트에 활용될 수 있다. 이더리움과 관련된 내용은 white paper에서 확인할 수 있다.

  • Ethereum의 Account는 주체(Entity)를 표현하고, 그 상태를 기록하는 데 사용된다.
  • Account는 **EOA(Externally Owned Account)**와 Smart Contract로 구분된다.
Related Links