728x90
이더 화폐 단위
- 이더리움의 화폐 단위는 이더(ether)라고 불리며, 기호는 “ETH”이다.
- Ξ, ♦ : 이런 기호도 사용하긴 하지만 거의 사용하지 않음.
- 예를 들어, “ 1 ether ", " 1 ETH ", " Ξ1 ", " ♦1 ” 이렇게 다 똑같은 표기이다.
- 이더 명칭 및 단위
Value (in wei) | Exponent | Common name |
1 | 1 | wei |
1,000 | 10^3 | Babbage |
1,000,000 | 10^6 | Lovelace |
… | … | … |
1,000,000,… | 10^18 | Ether |
- 이더는 더 작은 단위로 나눠진다.
- 이더의 가치는 항상 이더리움 내부에서는 웨이로 표시되며 부호 없는 정수값이다.
- 예를 들어,1이더를 거래할 때 그 트랙잭션은 1,000,000,000,000,000,000 wei 값으로 인코딩해서 표기한다.
이더리움 지갑 선택하기
- 지갑이란 무엇인가?
- 이더리움 계정을 관리하는 데 도움이 되는 소프트웨어 어플리케이션
- 즉, 이더리움 지갑은 이더리움 시스템의 gateway(게이트웨이, 관문)이다.
- 사용자의 키를 보유하고, 사용자를 대신해서 트랜잭션을 생성하고 전파(브로드캐스트, broadcast)할 수 있음.
- 지갑 유형
- 모바일 지갑
- 데스크톱 지갑
- 웹 기반 지갑
- 지갑 어플리케이션이 작동하려면 개인키에 대한 접근 권한이 있어야 함.
(그래서 지갑도 잘 골라야 함. 신뢰할 수 없는 지갑이면 재산이 위험해질 가능성 있음) - 이 책에서는 소개하는 지갑 중 세 가지 지갑만 소개할 것 (나머지는 서비스 종료됨, 2023.07.17)
- 메타마스크 (MetaMask) - 브라우저 확장 지갑
- 잭스 (Jaxx) - 서비스 종료
- 마이이더웰렛 (MyEtherWallet) - 웹 기반 지갑
- Emerald Wallet - ?
통제와 책임
- 하나의 개인키가 하나의 “계정”과 동일하다고 생각하면 되며, a사용자가 자신의 개인키를 관리한다
- 만약 개인키를 잃어버린다면, 자금 및 컨트랙트에 대한 권한을 잃어버리게 되는 것
- 커스터디를 맡기는 사람들도 있는 데 이는 본인의 개인 키에 대한 통제를 제 3자(보통 온라인 거래소)에게 넘기는 것
- 보안 책임에 대한 몇 가지 권고사항 :
- 귀찮다고 그냥 보안을 막 하거나 제대로 알아보지 않고 실행하는 일은 없도록 하기. 검증된 표준 접근 방식을 사용하기.
- 더 중요한 계정일 수록 더 높은 보안 조치 취하기.
- 최고 수준의 보안은 에어 갭이 있는 장치를 통해 이뤄지지만, 이 수준은 보통 일반인들이나 일반 계정에게 필요하진 않음.
💡 에어갭 (air-gap) 이란?
컴퓨터 또는 네트워크를 외부와 연결되지 않도록 격리하는 보안 조치
-
- 개인키를 있는 그대로 (plain form)으로 특히 디지털 형식으로 저장하지 말 것.
- 개인키는 암호화된 형식으로 디지털 '키스토어(keystore)' 파일로 저장할 수 있다. 암호화되어 있기 때문에 잠금을 해제하려면 패스워드가 필요하다. 계정에 접근하려면 이 키스토어 파일과 패스워드가 모두 필요하다.
- 패스워드를 디지털 문서, 온라인 드라이브, 암호화된 PDF 등에 저장하지 말고 사진(보통 스크린샷)으로 찍어서 보관해두지도 마라. 패스워드 관리자를 사용하거나 종이에 적어라.
- 뉴모닉은 펜과 종이를 이용해서 적어두어라 (백업하는 행위). 까먹을 게 뻔하니 백업을 미루지 말자. 만약에라도 시스템에 저장된 데이터가 손실됐거나 패스워드를 잃어버렸을 때, 뉴모닉을 이용해 개인키를 다시 작성하고 지갑을 복구할 수 있다.
- 큰 돈을 보내기 전에(특히 처음 보내는 주소로), 꼭 적은 양(약 1000원 정도)을 먼저 보내고 수령확인이 되면 나머지 금액을 보내라.
- 새로운 계정을 만들 때, 새 주소로는 작은 테스트 트랜잭션을 먼저 해보자. 계정 생성이 잘못되었을 경우를 대비하는 것이다. 만약에 테스트 트랜잭션이 잘 되면, 계정 생성이 잘 된 것이다.
- 공개 블록 탐색기 (블록 익스플로러)는 트랜잭션이 네트워크에 받아졌는 지 독립적으로 확인할 수 있는 방법이다. 하지만 이 방법은 사용자를 누구나 추적할 수 있기 때문에 너의 주소를 block explorer에게 드러내게 되는 단점이 있다.
지갑과 트랜잭션 조회 관련된 아래 7개의 파트는 아래 포스트에 따로 정리놓음
- MetaMask(메타마스크) 설치하기
- 지갑 생성하기
- 지갑 복구하기
- 네트워크 전환하기
- 테스트 이더 얻기
- 메타마스크에서 이더 보내기
- 트랜잭션 내역 탐색
🔽 아래 클릭
▶️ 메타마스크(MetaMask) 입문(1) ◀️
월드 컴퓨터 (World computer) 소개
이더는 이더리움 가상머신 (EthereumVirtual Machine, EvM)이라고하는 에뮬레이트된 컴퓨터에서 실행되는 컴퓨터프로그램인 스마트 컨트랙트(Smart Contract)를 실행하는 데 사용되는 위한 수단
EVM은 global singleton(글로벌 싱글톤)이다.
✅ 글로벌 싱글톤 이란?
마치 전 세계에 걸친 단일 인스턴스 컴퓨터인 것처럼 작동하고 전세계 어디에서든 실행되는 것
이더리움 네트워크의 각 노드는 컨트랙트 실행을 확인하기 위해 EVM의 로컬 사본을 실행하고, 이더리움 블록체인은 트랜잭션과 스마트 컨트랙트를 처리할 때 월드 컴퓨터의 변화하는 상태(state)를 기록한다.
외부 소유 계정(EOAs) 및 컨트랙트 계정 (CAs)
- 외부 소유 계정 : Externally owned account (EOA)
- 메타마스크에서 생성한 지갑이 대표적인 EOA
- 개인키 (private key) 를 가지고 있음
- 컨트랙트 계정 : Contract account (CA)
- 스마트 컨트랙트 코드를 가지고 있음 (EOA는 가질 수 없음)
- 개인키 (private key) 없음
- 보통 컨트랙트를 배포할 때 생성됨
- 컨트랙트도 주소 가지고 있고 EOA처럼 이더를 보내고 받을 수 있음
- 트랜잭션을 보낼 주소가 컨트랙트(CA)이고 특정 조건이 다 충족이 되면, 트랜잭션과 트랜잭션 데이터를 입력(input)으로 사용하여 컨트랙트가 EVM에서 실행된다.
- 이더(ether) 외에도, 트랜잭션에는 실행할 컨트랙트의 특정 함수와 해당 함수에 전달할 파라미터(인자값)를 나타내는 데이터(data)가 포함될 수 있음. 이렇게 해서 트랜잭션은 컨트랙트 내의 함수를 호출할 수 있음
- 컨트랙트 계정(CA)는 개인키가 없기 때문에 트랜잭션을 시작할 순 없음.
- 오직 외부소유계정 (EOAs)만 트랜잭션을 시작할 수 있음.
- 컨트랙트가 실행 경로가 복잡하게 구축된 경우, 다른 컨트랙트를 호출해서 컨트랙트에 반응할 순 있음.
즉, 컨트랙트(CA)가 컨트랙트(CA) 호출은 가능.
이더리움에는 많은 high-level languages가 있고, 모두 컨트랙트를 작성하고 EVM 바이트코드를 생성하는 데 사용할 수 있음.
이 중 가장 많이 사용되고 있는 스마트 컨트랙트 프로그래밍 high-language는 Solidity 입니다.
남은 파트 :
간단한 컨트랙트: A Test Ether Faucet
Faucet 컨트랙트 컴파일
블록체인에 컨트랙트 생성하기
컨트랙트 사용하기
블록 탐색기에서 컨트랙트 주소 보기
컨트랙트 자금 조달
컨트랙트에서 출금
위 7개 파트는 스마트 컨트랙트를 다루는 포스트에서 자세하게 다룰 예정입니다.
'Blockchain > 마스터링 이더리움' 카테고리의 다른 글
[마스터링 이더리움] 6장 : 트랜잭션 (0) | 2023.08.14 |
---|---|
[마스터링 이더리움] 5장: 지갑 (0) | 2023.07.20 |
[마스터링 이더리움] 4장: 암호학 (0) | 2023.07.19 |
[마스터링 이더리움] 3장: 이더리움 클라이언트 (2) | 2023.07.18 |
[마스터링 이더리움] 1장: 이더리움이란 무엇인가? (1) | 2023.07.18 |