on
이더리움
이더리움
728x90
이더리움(Ethereum) 재단에서 개발한 오픈소스 프로젝트, 블록체인 기술을 구현하기 위한 플랫폼
DApp을 배포할 수 있는 탈중앙화 플랫폼
DApp은 하나 이상의 스마트 컨트랙트를 사용해 생성된다
스마트 컨트랙트는 사기 행위, 검열, 제 3자의 간섭 없이 프로그래밍된 대로 정확히 실행된다
이더리움은 이더(ether)라고 불리는 내부 화폐를 가지고 있고 스마트 컨트랙트를 배포하거나 함수를 호출하기 위해서는 이더가 필요하다
이더리움은 블록체인 데이터 구조와 작업 증명 합의 프로토콜을 이용한다
[ 이더리움 계정 ]
다양한 비대칭 암호 알고리즘 중에서 이더리움은 타원곡선암호(ECC)를 사용한다
ECC는 다양한 매개변수를 가지고 이는 속도 및 보안성을 조절하는 데 사용한다
이더리움은 secp256k1 매개변수를 사용한다
이더리움의 개인키/공개키는 256비트 숫자이고 길이가 64인 16진수 문자열로 인코딩된다
* 공개키를 이용한 주소 생성 절차
1. 공개 키의 keccak-256 해시를 생성한다
2. 앞 12byte(90bit)를 버리고, 20byte(160bit)의 바이너리 데이터를 가진다
3. 주소를 16진수 문자열로 인코딩한다
[ 트랜잭션 ]
이더를 하나의 계정에서 다른 계정 또는 컨트랙트로 보내거나 컨트랙트의 함수를 호출하거나
새로운 스마트 컨트랙트를 배포하기 위한 서명된 데이터 패키지이다
ECC를 기반으로 한 디지털 서명 알고리즘인 ECDSA를 이용하여 서명한다
트랜잭션은 송수신자를 식별하고 의도를 증명하기 위한 서명, 전송할 이더의 양, 가스 한도, 가스 가격을 포함한다
트랜잭션 수수료는 사용된 가스의 양과 가스 가격을 곱한 값이다
전송자는 자신의 개인키를 이용해 트랜잭션을 서명하고 트랜잭션을 네트워크에 브로드캐스팅한다
[ 합의 ]
네트워크 참여 노드는 블록체인이 조작할 수 없어야하고 블록이 유효한 지 확인할 수 있는 체계가 필요하다
이더리움은 PoW 작업 증명 방식을 이용하고 있고 PoS 지분 증명 방식으로 바꿔나가려 하고 있다
어떤 노드에서 블록 내의 트랜잭션을 임의로 변경했다면, 그 이후의 블록의 논스를 모두 재계산해야한다
[ Mainnet & Testnet ]
이더리움은 여러 인스턴스가 존재하고 고유한 네트워크 ID를 가지고 있는 다수의 네트워크가 있다
이더가 서로 교환되는 곳이 '메인넷'이며 '테스트넷'은 개발자들이 테스트하기 위해 사용한다
노드가 네트워크에 참여한 일부가 되려면 네트워크 내의 다른 노드와 연결돼야 트랙잭션을 브로드캐스트하고 수신할 수 있다. 모든 노드와 연결될 필요는 없고 몇 개의 다른 노드와 연결되면 다른 노드들이 또 다른 노드들과 연결된다
이더리움은 중앙 서버가 없으므로 네트워크 내 다른 노드와 정보를 교환하기 위해서 'Kadelima' 프로토콜을 사용한다
Kadelima , 노드 검색 프로토콜에는 부트스트랩 노드라는 특별한 노드가 존재하고 일정 기간 동안 연결됐던 모든 노드의 목록을 유지하고 노드가 이더리움 네트워크에 접속할 때 연결됐던 피어의 목록을 공유하는 부트스트랩 노드에 연결한다
728x90
from http://newbie-block.tistory.com/54 by ccl(A) rewrite - 2021-09-28 17:26:30