블록체인
-
이더리움 고스트 프로토콜 (Ethereum GHOST Protocol) 이란블록체인 2019. 1. 23. 21:47
고스트 프로토콜(GHOST Protocol)은 비트코인의 성능 향상과 보안성 향상을 위해 나온 알고리즘입니다. 이더리움은 고스트 프로토콜을 수정하여 적용한 결과, 빠른 블록 생성 속도를 가지면서 보안성도 높이는 결과를 얻었습니다. 비트코인은 블록 생성 속도가 느리기 때문에 stale 블록의 생성확률이 낮고 보안성이 높습니다. 반면, 이더리움은 블록 생성 속도가 빠르기 때문에 stale 블록의 생성확률이 높고 보안성이 낮습니다. 이러한 문제를 보안하기 위해 이더리움은 고스트 프로토콜을 적용하여 stale 블록을 잘 처리하고 보안성도 높였습니다.고스트 프로토콜은 stale 블록의 처리에 대한 알고리즘이라고 볼 수 있습니다. 고스트 프로토콜은 bitcoin을 위해 생성됬습니다. 비트코인은 블록생성시간이 약 1..
-
이더리움 블록과 블록체인블록체인 2018. 8. 17. 23:32
비트코인과 이더리움 블록 비교비트코인의 블록은 헤더와 바디로 나누어 볼 수 있습니다. 이더리움도 비트코인의 블록구조와 크게 다르진 않지만 블록의 헤더부분에 uncle_list와 stack_trace 라는 값이 추가되어 있는 형태입니다. uncle list: 비트코인의 이전블록을 이더리움에서 parent 블록이라고 말하기 때문에 생긴 용어. stale 블록을 uncle 블록이라 칭함 (자세한 설명은 아래에서) 비트코인과 이더리움 블록헤더 비교 비트코인이더리움블록해시hashstate_root이전 블록해시prev_lbockparent_hash거래관련된 루트해시mrkl_rootTRIEHASH(transaction_list)TRIEHASH(uncle_list)TRIEHASH(stack_trace)난이도bitsdi..
-
이더리움 - 상태변환단계 및 코드실행 설명블록체인 2018. 7. 31. 23:15
상태변환함수 이더리움을 송금했다고 했을 때 계정의 상태가 어떻게 변하는지 아래에서 설명합니다.상태변환 단계트랜잭션이 형식에 제대로 맞는지(즉, 올바른 개수의 값을 가지고 있는지) 체크하고, 서명이 유효한지, nonce가 발신처 계정의 nonce와 일치하는지를 체크. 그렇지 않다면 오류를 반환gaslimit * gasprice 로 트랜잭션 수수료를 계산하고, 서명으로부터 발신처 주소를 결정발신처 계정 잔고에서 위에서 구한 트랜잭션 수수료를 빼고 발신자 nonce를 증가. 발신처 잔고가 충분하지 않으면 오류를 반환GAS = gaslimit 으로 초기화 한 후, 트랜잭션에서 사용된 바이트에 대한 값을 지불하기 위해 바이트당 gas의 특정 양을 차감발신처 계정에서 수신처 계정으로 트랜잭션 값을 보냄. 수신처 계..
-
이더리움 - 계정(Account), 트랜잭션(Transaction), 메시지 (Message)블록체인 2018. 7. 29. 02:15
이더리움 계정 (Account)이더리움 계정에는 20바이트의 주소와 정보를 직접 전달해주는 상태변환을 가지고 있으며 다음 네 개의 필드가 존재합니다.nonce: 각 트랜잭션이 오직 한번만 처리되게 하는 카운터value: 계정의 현재 ether 잔고contract code: 계정의 컨트랙트코드 (값이 없을 수 있음)storage: 계정의 저장공간 (초기설정에는 비어있음)이더리움의 계정에는 2가지 종류가 있습니다. 외부 소유 계정(External Owned Account - EOA)과 계약 계정(Contract Account - CA)입니다. EOA는 누군가가 소유하고 있는 지갑과 같은 계정이라고 생각하시면 됩니다. CA는 배포된 코드와 저장공간이 추가로 존재하며 스마트 컨트랙트 역할을 할 수 있습니다. 두..
-
이더리움이란?블록체인 2018. 7. 28. 16:57
비트코인의 한계튜링불완전성: 비트코인 스크립트 언어로 할 수 있는 작업이 많긴 하지만, 모든 경우의 프로그래밍을 다 지원하지는 않습니다. 거래 증명을 할 때 무한 순환에 빠지는 것을 막기 위해 while이나 for와 같은 순환(loop) 명령 카테고리가 빠져 있습니다. 이론적으로는 튜링불완전성은 개발자가 극복할 수 있지만 (if 문과 같은 반복문으로) 코드상 공간낭비와 개발자의 시간낭비, 실수 등 아주 비효율적입니다.가치무지하다: UTXO 스크립트만으로는 거래의 인출 액수를 세밀하게 통제할 방법이 없습니다. 그 이유는 http://brownbears.tistory.com/382?category=281929 에서 자세히 확인할 수 있습니다.다양한 상태를 표현할 수 없다: UTXO가 표현할 수 있는 상태는 ..
-
비트코인 - UTXO란?블록체인 2018. 7. 24. 22:07
UTXO란 Unspent Transaction Output 의 약자로, 아직 쓰지않은 잔액 이라는 의미입니다. 비트코인 네트워크에서는 잔액이라는 개념은 애초에 존재하지 않고, 트랜잭션에 의한 결과물들의 합을 잔액이라는 개념으로 사용하는데 이를 UTXO 데이터로 대체합니다. 각 지갑의 UTXO들은 해당 지갑 주인(소유주)에 대해 공개키 암호로 잠겨있습니다.UTXO 거래 예시 아래는 UTXO를 설명하기 위한 예시입니다. A, B가 F에게 각 1BTC, 2BTC를 송금해주고 C, D, E가 G에게 3BTC, 4BTC, 10BTC를 송금을 하면 F와 G는 각 UTXO가 2개, 3개가 되어 총 UTXO가 5개 생성됩니다.다음 아래는 G가 H에게 9BTC를 보내려고 하는 그림입니다. 먼저 G가 가진 UTXO 중 9..
-
양자컴퓨터란?블록체인 2018. 7. 23. 22:11
양자컴퓨터란?양자컴퓨터는 연산 체계 자체가 기존의 컴퓨터와 전혀 다른 방식으로 작동하는 컴퓨터입니다. 기존의 방식은 비트로 0, 1로만 표현되며 비트는 둘 중 하나만 가질 수 있습니다. 반면 양자컴퓨터은 0, 1, 그리고 0과 1의 조합을 동시에 나타내고 저장할 수 있는 양자 비트(quantum bits), -이를 줄여서 큐비트(qubits)라고도 말함- 를 이용하여 데이터를 처리합니다. 이러한 두 상태의 중첩이 가능해짐에 따라 양자 컴퓨터는 바이너리 비트를 이용하여 모든 정보를 0 아니면 1로만 저장할 수 있는 전통적인 컴퓨터보다 훨씬 더 데이터 처리의 속도를 가속화 할 수 있습니다. 즉, 양자컴퓨터는 양자 컴퓨터는 모든 가능한 상태가 중첩되어 얽혀있는 상태 -이를 양자 결집 상태(quantum-coh..
-
블록체인 타임스탬프블록체인 2018. 7. 18. 23:36
블록체인에 해당하는 개념은 “타임 스탬프 서버”라는 부분에 설명되어 있습니다. 이로 인해 블록체인과 타임스탬프는 상당히 큰 연관성이 있어 보인다는 것을 알 수 있습니다.그렇다면, “타임 스탬프” 개념에 대해서 다시 생각해 봅시다. 일반적인 타임스탬프(Timestamp)라고 하면 “2018-04-05 13:00:00”등의 형식으로 표현되는 날짜와 시간이 적힌 문자열이라고 생각하게 됩니다. 실제 생활에서는 독자가 여행을 가기 위해 KTX 티켓을 예매하기 위해 시간을 선택하면 그것을 누가 언제 몇시 몇분에 탑승을 위한 계약 내용에 날짜와 같이 저장되는 것이 타임스탬프의 한 종류라고 봐도 됩니다. 타임스탬프의 역할은 어떤 이슈가 일어난 날짜와 시간을 기록하여 사실 존재를 증명하는 전후 관계를 보장하는 것입니다...
-
51% 공격(Attack)이란?블록체인 2018. 7. 17. 22:03
51% 공격(Attack)이란?51% 공격은 작업증명 (PoW) 알고리즘에서 나오는 용어입니다. 비트코인은 작업증명(PoW)을 사용해서 연산을 통해 일종의 문제를 가장 빨리 푼 노드에게 블록을 추가시킬수 있는 권한을 줍니다. 이때 나머지 노드들은 해당 블록이 유효한 거래인지 승인을 하게 됩니다. 절반 이상의 승인을 거치면 유효한 거래로 확인하고 블록을 블록체인에 연결, 모든 노드에게 전파하게 됩니다. 그런데 블록체인 전체 연산량의 50%이상을 보유한 채굴자는 압도적인 채굴량을 바탕으로 전체 네트워크를 마음대로 결정할 수 있게되며 51%공격을 감행할 수 있습니다. 예A: 비트코인 네트워크 전체 해시 파워 중 51% 이상을 가진 채굴자 및 거래자B: 일반 거래자A가 B에게 악의적인 생각을 가지고 BTC를 판..
-
작업증명 (Proof-of-Work : PoW) 알고리즘이란?블록체인 2018. 7. 11. 22:36
작업증명(Proof-of-Work) 방식의 합의 알고리즘은 비트코인에서 사용되는 합의 알고리즘으로써 어떤 트랜잭션이 발생했을 경우 해당 트랜잭션이 유효한 트랜잭션인지에 대한 합의 방법 및 새로운 블록이 진짜인지, 가짜인지에 대한 검증을 수행합니다. 작업 증명 방식(PoW)을 이해하기 위해서는 우선 마이닝 과정에 대한 개념정리가 필요합니다.마이닝(채굴)이란?마이닝(채굴)이란 임의의 nonce 값을 대입하여 블록 해시 결과 값을 생성하고, 생성된 결과 값이 제시된 Target 보다 작은 블록 해시를 찾는 과정입니다 (자세한 내용은 아래에서 설명). 해시함수의 특징때문에 어떤 nonce 값을 대입해야 제시된 Target 보다 작은 블록해시 정보를 찾을 수 있을지는 알 수 없습니다.즉 올바른 결과 값을 찾기 위..