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