목차
블록체인의 탄생 배경
사이버펑크
•
암호로 개인의 프라이버시 보호를 극대화하고자 했던 행동주의자
E-cash(1983년), David Chaum
•
모든 금융 거래의 이체 내역 암호화
B-money(1998년), Wei Dai
•
분합산의 계산 퍼즐
Hash Cash(2002년), Adam Back
•
POW 기반 금융거래
RPOW(2005년)
•
개념에서 탈피한 첫번째 SW 구현
비트코인
•
2008년에 최초의 논문으로 탄생
◦
논문에 블록체인이라는 고유명사는 사용되지 않음
◦
블록체인에 대한 정의가 상호간의 불일치되는 현상이 나타남
•
2009년에 소프트웨어로 구현
기반 기술
•
이미 존재하던 기술을 새로운 방식으로 조합
•
중앙 서버 없이 처리 가능함으로서 블록체인으로 소개됨
사토시 나카모토와 비트코인
사토시 나카모토
•
최초의 블록체인을 만든 익명의 단체
•
5~6명 정도가 모인 것으로 알려짐
•
크레이그 스티븐 라이트가 사토시 나카모토의 일원이라고 추정
•
2008년도에 인터넷으로 논문을 게재
◦
9페이지 분량의 기술적 개념 및 효용
▪
정보보호를 극대화할 수 있는 금융거래
▪
비트코인을 사용해서 서로 금융거래 시 익명성 보장(개인의 프라이버시 보호)
•
2009년도에 최초의 블록(제네시스 블록) 탄생 후 6일 뒤 블록 본격 생산
◦
소프트웨어적으로 만들어지는 시간을 제어하여 평균 10분에 하나꼴로 새로운 블록 생성
◦
2009년 : 하루 144개씩 생성 / 2017년 말 : 50만개 이상 생성 → 약 3억개의 거래내역 보유(약 3억번 정도 비트코인 교환) / 비트코인을 주고받은 내역이 블록에 저장
비트코인에서 블록의 정의
•
거래내역을 쌓아서 최대 1MB(약 3천개의 거래내역)까지 기록할 수 있는 논리적인 단위
(* 거래내역 : 어떤 계정이 다른 계정으로의 얼마 정도의 비트코인을 주고받았다는 거래내역의 기록)
•
블록은 블록체인을 설계할때마다 다르게 설계 가능
0번 블록과 50만 번 블록의 비교
•
2009년 1월 3일에는 0번 블록이, 2017년 12월 18일에는 50만 번 블록이 탄생
구분 | 제니시스 블록 | 500,000번 블록 |
블록 번호(높이) | 0 | 500,000 |
생성 시각 | 2009-01-03 | 2017-12-18 |
크기(바이트) | 285 | 981,404(1MB에 육박) |
기록된 거래내역 개수 | 1 | 2,701 |
•
1MB를 넘지 못하는 블록의 제약조건때문에 2,701개의 거래내역이 담김(저장 공간이 없을 경우 다음 블록으로 넘어감)
•
10분에 하나꼴로 블록이 생성 = 10분에 2,701건의 거래 처리 → 비트코인의 수요가 늘더라도 처리능력이 그것을 따라가지 못함을 암시
블록을 생성한 사람들에게 보상금이 주어짐
•
블록 생성을 수학 문제를 푸는 것에 비유
•
보상금은 비트코인으로 주어짐
◦
보상금 : 고정적인 보조금+변동금인 수수료(거래내역으로부터 거둬들인 금액)
•
50만 번 블록에 저장된 2,701개의 거래내역은 각각 수수료를 지급(약 3.4 비트코인)하면 블록 생성자에게 전달됨
구분 | 제네시스 블록 | 500,000번 블록 |
블록 보조금 | 50비트코인 | 12.5비트코인 |
트랜잭션 수수료 | 0비트코인 | 3.39351625 비트코인 |
보상금과 비트코인 시세는 연동
•
보상금은 블록 생성 경쟁에 영향을 미치며 거래 시세에도 영향을 미침
•
비트코인의 가치가 블록체인의 존립을 결정
블록 생성자에게 취급되는 수수료
•
비트코인의 소유주가 건네주는 사람을 대신하여 수수료를 지불, 얼마의 수수료를 낼 지는 비트코인의 소유자가 정함
◦
수수료 액수에 따라 비트코인 처리 속도 좌우(낮을수록 느리게, 높을수록 빠르게)
◦
수수료 경쟁을 해서 더 빨리 처리되는 역효과 등장
블록 생성의 난이도
•
엄청난 양의 에너지와 하드웨어가 필요함
•
제네시스 블록을 생성하기 위한 척도를 1이라고 한다면 50만 번 블록을 만들기 위한 척도는 1,873,105,475,221.61이라고 할 수 있음
•
블록 생성 에너지는 계속해서 올라갔으며 앞으로도 올라갈 것으로 예상
블록체인과 전통적 거래 원장의 비교
•
블록 1개에 약 2,000~3,000개 정도의 거래 내역 기록 = 거래장부 특정 페이지의 2,000~3,000개 기록
•
블록 전체 = 거래장부
•
씌여진 기록은 삭제나 변경 불가능
•
블록체인에 생성된 블록도 순서가 바뀌지 않음 = 원장의 체계 순서가 바뀌지 않음
•
블록체인 : 거래내역을 시간 순서대로 담을 수 있도록 만든 저장공간장치
•
블록체인에 담겨져있는 거래내역 (최소)정보
◦
보내는 사람 비트코인 주소
◦
받는 사람 비트코인 주소
◦
보내는 금액
◦
수수료 : 비트코인을 처리하기 위해 블록을 만든 사람에게 지불하는 금액 / 수수료 액수에 따라 비트코인 유통 속도 좌우 / 현재는 대체로 2만원 정도대로 수수료가 형성되어 있음
* 비트코인(계정) 주소 : 은행에서의 계좌번호에 비유, 주로 34자리 정도의 복잡한 문자
브로드캐스팅
•
당사자 외에도 모든 사람이 누구에게 얼마를 줬는지 알 수 있음
비트코인의 발행량
비트코인 발행
•
새로운 블록이 생성될 때마다 소프트웨어적으로 보조금의 형태로 발생
•
약 21만 개의 블록이 만들어질때마다 생성량이 저감되도록 설계(210,000개의 블록이 만들어질때마다 보조금이 1/2개씩 저감되도록 프로그래밍되어 있음)
•
보조금이 약 4년을 주기로 반감하도록 설계 : 10분에 하나의 블록 생성 → 하루에 144개의 블록 생성 → 21만 개의 블록까지 약 4년 소요
•
2140년이 되면 비트코인 발행 중단 → 비트코인은 한정된 자원 → 미래에는 금과 같은 가치가 될 것 → 하지만 비트코인은 단순한 프로그램에 불과하여 코드의 변경으로 발행량도 변경 가능하며, 비슷한 프로그램도 얼마든지 복제할 수 있음
비트코인과 이더리움 등의 거래 방식과 단위
비트코인 및 이더리움의 단위
•
비트코인 : 1억사토시(Sat.) = 1비트코인(BTC)
•
이더리움 : 1Ether = 1,000 Finney = 1,000,000 Szabo = 10^18Wei
•
100센트 = 1달러
비트코인의 교환 방식
•
전체 금액을 모두 지불 하고 거스름돈을 받음
◦
ex. 7BTC를 전송한다면, 자신이 가지고 있는 10BTC를 모두 지불하고 3BTC를 거스름돈으로 받음
•
수령인은 단 하나의 기록도 없으며, 소유자가 모든 내역을 기술
◦
거스름든 또한 소유자가 직접 작성해야 함
분산 시스템과 블록체인 시스템
개념
•
Node : 하나의 컴퓨터(서버)
•
Peer : 특정 노드 중 직접적으로 연결된 노드
분산 시스템
•
여러 개의 서버가 일을 나누어 처리
•
일의 효율성이 높음
•
처리속도가 신속함
•
여러 개의 서버가 마비된 서버를 대신하여 서비스 처리, 해커의 공격으로부터 안전(해커는 하나의 서비스만 마비시키는 것이 아닌 모든 서버의 서비스를 무력화 시켜야 하므로 공격 목표가 모호해짐)
•
단일 서버에 비해 구성 비용이 높음
•
특정 순간에 데이터 간의 내용이 서로 상이함 → 여러 개의 서버는 저장하고 있는 내용을 동기화하는 과정이 필요
블록체인 시스템
•
분산 시스템의 일부
•
모든 노드가 이용자 역할을 하는 동시에 서버 역할을 함 ex. peer to peer
•
해커가 서비스를 중단시키거나 데이터를 위조/변조 시키려면 모든 노드를 공격해야 하는 어려움 존재
•
해커가 데이터 절취하여 경제적 이익을 취하려고 한다면 안전하지 않음
◦
이유
▪
모든 노드가 공유해서 들여다볼 수 있도록 설계
▪
데이터 자체는 전혀 보호되지 않고 모든 노드가 공유하는 구조
•
블록체인 안전의 양면성 : 데이터 자체 보호에 무력 / 데이터의 변형과 서비스 무력화에 저항
•
일을 나눈 것이 아니라 같은 일을 모든 노드가 여러 번 반복(데이터 변경 시 모든 노드가 검증)하므로 효율성이 없으나 정확성, 투명성을 획득함
변형된 블록체인 시스템
•
모든 노드는 동일한 역할을 수행(각 노드가 모든 역할을 반복하여 비효율적) → 특정 노드가 특정 역할을 수행(속도 등의 성능 향상, 안전성의 상대적 취약)
브로드캐스팅
•
전달 받은 데이터를 다른 피어에 전달하는 방식으로 전체 노드에 모든 데이터 브로드캐스팅(가십 프로토콜)
특성
•
저장된 데이터는 비밀로할 수 없음 → 개인정보가 들어있는 데이터는 사용하면 안됨
•
브로드캐스팅되는 시간은 노드 별로 상이할 수 있음
•
시간이 흐르면 모든 노드는 동일한 데이터를 전달 받음
거래내역의 작성 및 전송
•
중앙화시스템 : 웹 서버 이용
•
블록체인시스템 : 지갑소프트웨어 이용
구분 | 중앙화시스템 | 블록체인시스템 |
처리하는 노드 | 일정한 중앙 서버가 모든 이체 처리 | 브로드캐스팅 후 매번 다른 노드가 처리(예측 불가능) |
소요되는 시간 | 예측 가능 | 수수료에 따라 달라짐 |
•
은행에서의 계좌이체 : 요청한 계좌이체를 장부에 기록
•
블록체인에서의 계좌이체 : 계좌이체를 요청한 메시지를 누군가 기록
리더의 선출과 검증
•
리더 선출 : 거래내역을 적을 수 있는 권한을 가진 사람을 선출
•
리더 선출 방법 : 비트코인과 이더리움에서는 해시 퍼즐을 가장 먼저 해결한 노드가 요청서를 기록함
* 해시 퍼즐 : 많은 시간과 에너지를 소모하여 겨우 해결할 수 있는 문제로 무차별 대입법에 의한 모든 경우를 순차적으로 계산
•
피트코인은 해시 퍼즐을 해결하는데 보통 10분 정도 소요됨
블록체인의 사이클
1.
누가 기록할 것인지 선발(리더선출)
2.
모든 노드가 기록의 규칙 준수 여부 확인(검증)
3.
기록의 영구 보관 및 변경 불가
중앙화시스템
•
기록을 의뢰한 은행을 신뢰하여 기록을 검증하는 절차 필요 없음
블록체인 시스템
•
특정노드가 메시지를 기록할 수 있는 전권을 획득하여 해당 노드의 기록 후 검증하는 절차가 필요함
•
특정노드가 완성한 블록을 브로드캐스팅하여 모든 노드에게 검증을 받음
•
검증을 통과하면 기록을 인정하여 노드 로컬의 블록체인 데이터에 추가, 검증을 통과하지 못하면 기록을 폐기함
•
원할 때 누구든지 시스템에 참여하여 기록 전체에 대해서 검증 가능하며, 어떠한 자격 조건도 필요 없음
•
검증절차가 생긴 이유
◦
특정 노드를 신뢰할 수 없음
◦
블록체인에 참여한 모든 노드를 신뢰할 수 없음
•
비트코인은 10분에 1번 반복, 이더리음은 15초에 1번 반복
작업증명
•
많은 리소스 사용, 많은 계산 횟수를 사용해야만 하는 방식
블록체인 원리
해시함수
•
입력 길이와 상관없이 항상 일정한 길이의 출력을 나타내는 함수
•
충돌회피기능 : 입력값이 달라지면 항상 다른 출력값을 나타내는 성질 → 입력의 사소한 변화도 인지 가능(변경탐지기능)
비대칭 암호화 기법
•
특정 입력 메시지를 알아볼 수 없는 출력 메시지로 변경
•
암호화키와 복호화키가 다름
블록체인에서 해시함수와 암호화 기법의 이용
•
거래내역 위변조 방지 : 비트코인에서는 SHA-256 해시함수를 이용하여 항상 32바이트 정수를 출력
•
디지털 서명 수행 : 블록체인에서는 비대칭형 암호화 기법을 이용
◦
비트코인 수령자 보호(실제 수령자만 비트코인 사용) : 비트코인 주소에는 수령자의 공개키에 대한 정보가 들어있음. 개인키로 복호화 / 거래내역은 모든 사람에게 노출되지만 실제로 그 거래내역을 사용할 수 있는 사람은 개인키를 가진 실수령자
◦
거래내역의 조작 방지 : A는 B에게 비트코인을 주었다는 사실을 기록하고 A의 개인키로 서명 → 공개된 A의 공개키로 이 사실이 복호화(A가 싸인했다는 의미)
→ 공개키로 수령자만이 비트코인을 받을 수 있도록 보호
→ 개인키를 이용하여 실제 거래자를 증명
블록의 구조
•
블록 : 특정 데이터를 다루는 단위로 프로그래밍마다 서로 다른 방식으로 적용
◦
비트코인에서 정의한 블록은 1MB를 한도로 하지만, 이더리움에서는 이론적인 한도는 없음
•
비트코인 블록 1MB 내용
◦
블록헤더 : 데이터의 요약 정보, 80byte(항상 일정한 크기), 블록 체인을 만들 때 기능에 따라 서로 다르게 정의(비트코인의 헤더와 이더리움의 헤더는 개수도 다름)
▪
버전정보(블록을 만들 당시의 소프트웨어 버전, 어떤 규칙을 사용해 블록을 검증할지 알려주는 값) : 4byte
▪
이전 블록 해시 값(SHA-256을 통한 해시값) : 32byte
•
이전 블록에서 해시 값을 생성하고, 생성된 해시값이 현재 블록에도 기록
•
이전 기록과 비교로 변조 여부 확인
▪
머클트리 루트 : 32byte
•
블록 데이터에 담겨있는 모든 트랜잭션의 요약 정보(해시값)
◦
1MB에 달하는 3,000여개의 트랜잭션을 요약
▪
타임스탬프 : 4byte
•
블록의 생성 시간
▪
타깃 난이도 비트 : 4byte
•
블록 생셩의 난이도에 대한 값을 저장하는 부분
▪
난스(정수) : 4byte
•
해시 퍼즐의 정답
◦
블록데이터 : 실제 데이터 담는 부분, 실제 블록에 담겨 있는 1MB 까지의 정보
▪
블록크기 : 4byte
▪
거래내역(트랜잭션) 개수 : 가변(1~9byte)
•
실제 거래내역 개수가 절을 때 실제로 개수를 저장, 개수가 많아질 때는 바이트를 사용
▪
트랜잭션(2000~3000여 개 데이터 축적) : 가변
•
하나의 비트코인 주소로부터 다른 다수의(하나의) 비트코인의 주소로 거래
◦
하나의 거래의 최소 크기는 대략 166byte(하나의 거래, 보내는사람의 비트코인 주소, 받는사람의 비트코인 주소), 실제 거래내역 크기는 300byte 초과(다수의 거래, 거스름돈)
해시 퍼즐
•
유효한 블록의 해시값을 찾을때까지 무한 반복(하나의 해시 함수 해결)
•
일정계산을 주어진 목표값을 찾을때까지 반복
◦
T(목표값)가 작을 수록 만족하기 힘듬
•
해시 퍼즐을 푸는 수학적 공식은 없으므로 무수히 반복되는 산수 문제 해결
•
엄청난 에너지와 막대한 하드웨어 필요
•
작업증명 : 퍼즐을 이용해서 의도적으로 막대한 에너지를 소모하게 만든 방식
•
블록체인은 기록할 때 힘들게하여 변경자체의 욕구를 최소화 한 시스템
•
최초 기록 및 변경에 막대한 에너지 소모
•
반대 급부의 경제적 이득이 없으면 변경 이유 없음
•
합당한 이유 없다면 정상적 기록을 통한 보상금을 받는 것이 경제적으로 합리적임
해시퍼즐의 난이도
•
난이도 조절 이유 : 컴퓨터가 발달하여도 10분에 하나씩 블록 생성
•
10분이 걸리도록 자동 조절하면서 목표값을 낮추고, 시행 횟수를 올림
•
원래 소요시간보다 적을 경우 : 난이도 상승, 오래 걸렸을 경우 : 난이도 하향
탈중앙화 합의 규칙의 개념
•
모든 노드는 현재 자신이 가지고 있는 데이터와 피어로부터 전달받은 데이터에 의존해서 모든 것을 판단해야 함
•
탈중앙화 합의 규칙에서는 규칙을 지켰을 때도 퇴출하는 방식 필요(=서로 내용이 상이하여 하나의 값으로 통일하는 과정)
◦
이유 : 각각 어떤 블록이 존재한다는 사실을 모른 채 피어 블록만 검증하려 하기 때문
◦
규칙 : 동일한 규칙을 지켰음에도 서로 내용이 다르다면 길이를 비교하고 더 긴 것을 따라 가게 됨
이중사용
•
동일한 암호화폐를 여러 번 사용하려는 악의적 시도
◦
둘 다 폐기되거나, 둘 중하나 먼저 처리가 되어 두 가지가 모두 처리되는 일은 없음
◦
그러나 사기를 당하는 경우가 생김 → 안전한 방법 : 기록이 블록에 적힌 후 6개의 블록이 생성될 떄까지 기다리는 것(퇴출가능성이 낮아짐) → 그러나 거래의 즉시성을 해침
비가역성의 의미
•
비역적 기록 : 기록 후 어떠한 경우에도 변경하지 못하게 하는 성질
•
블록체인은 기록을 하기 힘들며, 기록 후 수정이 매우 힘든 장치/비가역성을 소프트웨어로 구현하기 위한 방식
•
현실적으로 비가역적 기록성을 가진 장치의 제작은 불가능하나 비가역적 기록장치처럼 변경이 힘들게 하는 것은 가능
기록의 무결성 유지 방법
•
모든 노드가 항상 검증에 참여
비가역성 구현
•
비역성을 구현하기 위해 해시함수, 작업증명을 활용
1단계 : 작업증명
2단계 : 연쇄해시를 통한 작업변경의 기하급수적 증가
•
특정 블록을 변경하려면, 바꾸려는 블록 이후의 모든 블록의 해시값을 다시 계산해야 함
하드 포크와 소프트 포크
•
블록체인은 중앙화서버에 비해 소프트웨어 관리가 어려움
동일한 블록에서 노드가 다른 행동을 하는 이유
•
모든 사람의 소프트웨어 버전이 다르기 때문에 발생
◦
규칙이 변경되었을 경우 동일한 블록에 대해 서로 다른 규칙을 적용
소프트포크, 하드포그 : 동일한 블록에 대해 서로 다른 규칙을 적용, 서로 다른 결론에 이르는 현상
하드포크
•
과거에 무효이던 규칙이 유효화되는 순간 발생
◦
규칙을 어겼기 때문에 더 긴 블록이라도 따라가지 않는 그룹 발생
•
이전 소프트웨어 사용 그룹이 모두 업데이트하기 전까지 절대 하나로 합쳐지지 않는 현상
•
모든 노드가 소프트웨어를 업그레이드해야 블록체인 데이터 통일
•
예시 : 1MB 블록을 허용했다가 2MB을 허용하는 경우
소프트포크
•
과거에 유효이던 규칙이 무효화되는 순간 발생
•
이전 노드는 최신 소프트웨어 블록에 블록체인 데이터 강제적 통일(업그레이드 노드가 더 긴 블록체인을 생성할 경우)
◦
최신 버전을 사용하는 채굴업자가 늘어날 수록 소프트 포크의 성공 가능성이 높아짐
•
최신 소프트웨어를 채굴업자를 많이 사용하게하려면? 소포트 포크 감행 전 반드시 협조 요청
•
보안상 결함을 발견하여 규칙을 삭제
51% 공격
•
단 한명이 나머지 사람들의 하드웨어보다 더 많은 자원을 가지는 현상
◦
자원 및 계산량이 많으므로 블록을 만들 가능성이 높아짐
◦
거내역 미작성 : 서비스 자체가 방해되어 블록체인 서비스 비활성화
◦
수수료 인상 : 특정수수료 지급 전까지 트랜잭션 미처리(블록 생산자가 원하는 수수료를 지불할 수 밖에 없음)
◦
이중사용 : 독점권 소유자가 자신에게 되돌아오는 거래내역만 처리하여 이중사용 항상 성공
◦
긴 블록 생성 후 기존 블록 퇴출 : 시스템 자체의 안정성 저해
•
해시파워의 90%는 상위 10개 채굴업체가 보유 / 상위 3개 업체가 전체 해시파워의 55%장악하여 언제든 51% 공격 가능
◦
단 10개의 노드가 채굴 중지 시 더이상 거래 불가능할정도로 블록체인 존립에 심각한 위협 요소
◦
블록체인 거래내역 조작은 디지털 서명 / 비대칭 암호화 기법 / 해시함수로 원칙적즉으로는 불가능하여 타인의 비트코인 약탈이 불가능
◦
경제적 이득이 적어서 공격 확률이 적음 → 정상 블록을 생성하는 것이 더 많은 경제적 이익을 취할 수 있음
이클립스 공격, 이기적인 채굴자 공격
•
과반수 해시 파워 없이 시스템 교란 가능
•
25% 시스템 독점 시 시스템 교란 가능 입증
중개인이 없는 거래
•
아래의 경우 복구할 수 없음
◦
비트코인을 사용하다 비밀번호를 잊어버리면?
◦
비트코인 키를 저장한 장치를 훼손하게 되면?
◦
잘못된 주소로 비트코인을 전송하게 되면
•
블록체인을 통한 중고차 직거래
◦
하자 발생 시 중재자 없음
◦
개인정보보호 문제 해결 필요(브로드캐스팅에 개인정보를 담아서는 안 됨)
스마트 계약
•
제3자가 개입하지 않아도 계약 집행 가능(블록체인의 직접 거래와 같은 맥락)
•
정적인 거래내역 이외에 거래내역 자체를 컴퓨터 프로그램으로 기술하는 방식
•
호출이 가능하여 호출 때마다 실행
•
메시지를 통한 매개변수에 따라 서로 다른 작용
•
이더리움 : 스마트 컨트랙트의 모습을 완전히 갖춘 최초의 블록체인
이더리움에서의 스마트 계약
•
프로그램화된 내용을 블록에 담을 수 있는 환경 제공(IDE)
◦
원하는 프로그램 작성 → 컴파일 → 이더리움에 불러오도록 저장
•
사용자가 작성 프로그램 결정
◦
방식에 따라 무한가지의 새로운 용도 탄생
•
언제든 호출 가능하고 호출되면 프로그램 실행, 결과는 블록체인에 저장
•
같은 기록이라도 실행될 때의 매개변수, 컨디션에 따라 다른 결과 도출
•
이더리움에 사용되는 언어
◦
솔리더티
•
이더리움을 통해 축구 내기를 한 경우
◦
비트코인은 제3자가 필요하나, 이더리움은 축구 내기 프로그램을 통해 당사자가 만날 필요 없이 승자에게 자동으로 이더리움을 전송
블록체인의 보안
1.
정보의 탈취로부터 가장 취약한 시스템
•
암호화 자체가 안전을 보장하지 않음
•
중요한 데이터를 블록체인에 담으면 안됨
◦
비트코인 : 익명성 보장(정보는 노출되지만 개인정보는 노출되지 않음) / 구조적으로 개인정보가 막혀있음
◦
이더리움 : 스마트컨트랙트를 이용해 개인정보를 저장했다면 누출이 일어날 수 있음
2.
서비스 중단 공격이나 기록을 변경시키려는 시도로부터는 현존하는 가장 안전한 시스템
•
공격이나 기록 변경을 위해서는 모든 노드를 공격해야 함
•
해시코드를 다 풀어야 하기 때문에 이론적으로 불가능
중개소와 블록체인
•
블록체인의 안전성과 암호화폐 중개소의 안전성은 관련이 없음
◦
블록체인의 안전성은 블록체인과 비트코인시스템에 국한됨
◦
지갑은 프로그램의 안전성이 별도로 존재(지갑을 개발하는 사람마다 안전성을 다르게 만들 수도 있기 때문)
◦
중개소는 블록체인의 외부 요소로 블록체인 기술과는 상관이 없음
▪
비트코인 중개소는 중앙화 시스템으로 되어있음
◦
최근 발생한 암호화폐 해킹사건은 블록체인이 아닌 중개소를 해킹하려 많으 자원을 획득하려는 시도였음
•
중개소는 거래 내용을 시뮬레이션만 하고 있음
비트코인 블록체인의 문제점
1.
용도가 제한적임
•
비트코인을 주고 받는 정적인 기록만 하므로 새로운 것을 기록하기 위해서는 프로그램 모두가 수정되어야 함
2.
상태가 기록되어 있지 않음
•
비트코인의 특정 상태는 어떤 한 블록에 있지 않으므로 하나의 블록만으로는 상태를 알 수 없음
3.
해시퍼즐 방식은 계산만 빨리하면 풀 수 있음
•
해시파워가 일부 세력에 의해 독점 될 위험이 큼
이더리움에서의 개선점
1.
스마트 컨트랙트
•
프로그램을 이용하여 각각의 용도가 바뀜
•
프로그램을 통해 원하는 내용을 블록에 저장 및 호출할 수 있는 환경 제공
•
솔리디티 언어를 이용하여 프로그래밍화
•
계약 계정 속에 프로그램을 저장할 수 있는 방식
•
비트코인 : 모든 거래를 비트코인 주소를 이용하여 전달
•
이더리움 : 계정 단위 관리를 위한 계정 정의
1.
EOA(Externally Owned Account) : 비트코인 주소와 비슷함 / 정적인 내용 기록이 기본 목표 / 개인키로 통제할 수 있음 / 이더리움 간 전송 가능
2.
계약 계정 : 스마트 컨트랙트 저장 / 전송 내용과 특정 스마트 컨트랙트 저장 / 코드에 의해 통제 / 계약 계정 내의 실행 코드가 실행되면 그 결과가 저장되게 됨 / 코드에 의해 통제 / 실행된 코드는 또 다른 계약 계정 호출 가능
◦
계약계정을 호출하려면 EOA에서 호출해야 하고 계약계정은 또 다른 계약계정을 호출할 수 있음
◦
최초의 계약 계정은 반드시 EOA를 통해 호출
2.
계정별 상태 관리
•
각각의 블록에서 각각의 계정으로 이어가는 다리 역할을 통해 어떤 계정이던 특정 블록에서 바로 액세스 가능
•
이더리움의 블록 : 현재 계정 상태가 저장된 별도의 공간이 있음 / 글로벌 데이터를 가짐(모든 계정의 잔고는 한 곳에 저장) / 각 블록에서 특정 계정의 데이터와 상태까지 찾을 수 있음
3.
메모리-하드 해시를 사용
•
메모리 상자가 있음
•
하나의 해시 함수 계산시 64회의 메모리 액세스 필요 → 계산속도 저하
d.
통합 개발 프로그램(IDE)의 제공
•
IDE툴을 사용해 스마트 컨트랙트 생성 가능
e.
토큰의 개념 도입
•
토큰 개념 도입 전 : 독자적인 네트워크를 구성하고, 구축된 네트워크에서 암호화폐 발행
•
토큰 개념 도입 후 : 스마트 컨트랙트 이용하여 개념만으로 전송 및 판매 가능 - 누구나 손쉽게 토큰 발행 가능
◦
토큰의 기능 : 채굴, 네트워크도 없음. 일정 디지털 화폐를 서로 주고받는 기능 / 이더리움에서는 스마트 컨트랙트를 위해서 토큰을 주고받을 수 있음
◦
15만개의 토큰이 스마트컨트랙트 형태로 이더리움에 들어가 있음(1,000여개가 실제로 거래되고 있음)
◦
토큰의 이면 : 거래되고 있는 대부분의 토큰이 중개소에 의해 만들어지고 있음
◦
이더리움 메인넷을 제공하고 메인넷을 이용하는 사람들이 스마트컨트랙트를 이용하여 탈중화 프로그램을 제공할 수 있도록 하겠다는 포부가 있음
Dapp의 한계 : 중요한 정보를 저장할 수 없음 - 사용 제한에 대한 문제가 발생할 수 있음 - 효율을 포기하고 값 저장 - 저장된 것에 대한 변화를 최소화
퍼블릭 블록체인 vs 프라이빗(컨소시엄) 블록체인
프라이빗 블록체인
•
하나의 서버가 기록과 검증 실시 / 중앙화 시스템과 유사 / 분산 저장을 통한 차별화 / 중앙화 시스템으로 분류 가능
컨소시엄 블록체인
•
여러개의 서버로 나눠 저장할 뿐 기록과 검증을 정의된 소수에 의전 / 사전에 정의된 컨소시엄에 합류해야 기록의 검증에 참여 가능 / 몇 개의 동종업계가 기록 분사 저장 방식 채택
블록체인의 효용성 훼손점
1.
서비스 중단 공격 및 기록 변경 공격 안전성 저해(해커의 목표가 뚜렷하게 됨)
2.
확장성 보유 불가 : 사전에 정한 노드 외에는 검증에 참여할 수 없음
3.
기록의 불변성 저해 : 채굴 과정이 없어서 기록 변경에 대해 쉽게 감지하나 엄청난 에너지가 드는 리소스가 없음 / 해시 함수만 다시 계산하면 언제든지 기록을 변경할 수 있음
4.
탈중앙화, 제3자의 개입 없는 거래 불가능
작업증명 vs 지분증명
•
지분증명
◦
작업증명을 대체할 수 있는 방식
◦
다수결이나 발행한 코인량으로 결정 → 안전성이 담보되지 않음, 투명성 문제가 제기되고 있음
DAO(탈중화된 자율조직)
•
개입없이 자율적으로 실현될 수 있는 환경 추구
•
불필요한 수수료 제거
더다오 사건
•
채굴업자와 담합 : 지금의 이더리움
•
채굴업자와 담합에 반기 : 이더리움 클래식