블록체인 프로젝트 - 비트코인, 이더리움, 하이퍼레저 패브릭 기반 시스템 구축
박정태 지음 / 정보문화사 / 2019년 7월
평점 :
장바구니담기


2018년 초에 비트코인 열풍이 불었습니다. 그때는 너도나도 비트코인 이야기들이었습니다.

지금은 소강상태 이지만 비트코인 즉 블록체인 기술은 다양한 곳에서 사용할 수 있으므로 배우도록 해보겠습니다.

책에서는 비트코인, 이더리움(geth, parity, solidity) , dApp 만들기 등으로 구성되어 있습니다. 책의 장점은 실습을 통해서 직접 해볼수 있다는 점에 있습니다.

도커를 활용해서 진행하기 때문에 도커에 대해서 공부를 하고 오면 이해하기 편할 것 같습니다.

OS도 우분트, 맥OS , window 로 구분해서 진행할 수 있으니 자신에게 맞는 것을 참고하면 될것 같습니다.

비트코인은 블록체인 기반 최초의 서비스입니다. 이더리움과 큰 차이는 비트코인은 UTXO를 쓴다는 점입니다.

UTXO는 미사용 트랜잭션 출력값을 말합니다.

예를 들어 홍길동 지갑으로 두사람에게 1BTC, 2BTC를 송금 받았다고 가정하면 우리는 3BTC가 홍길동 지갑에 있다고 생각하지만 실상 그렇지 않습니다. 홍길동 지갑에는 2개의 UTXO가 저장됩니다.

UTXO 장점은 한번 사용되면 사라지기 때문에 익명성과 보안성이 강합니다. 단점은 UTXO 마다 수수료가 부과된다는 점입니다.

​

이더리움 geth, parity, solidity 활용에 대해 이야기 해보겠습니다.

geth는 이더리움 재단이 제공하는 공식 클라이언트 소프트웨어로서, Go 언어로 개발되었습니다.

geth를 처음 시작하면 네트워크 내의 다른 이더리움 클라이언트(노드node라고도 불림)에 연결하는 작업을 먼저 시작하고 블록체인의 전체 사본을 내려받게 됩니다.

게스(Geth)는 블록체인의 복사본을 최신 상태로 유지하기 위해 끊임없이 다른 노드와 통신합니다.

또한 블록을 채굴하고, 블록체인에 트랜잭션을 추가하고 블록의 트랜잭션을 검증하며 트랜잭션을 실행할 수도 있습니다.

​

parity는 이더리움 프로토콜의 또 다른 구현체이며, Rust 프로그래밍 언어로 개발되었습니다.

현재 Parity Inc. 라는 기업에서 운영하고 있으며 사실 이더리움 네트워크에 접속할 수 있는 클라이언트 소프트웨어를 개발하는 길은 누구에게나 열려 있습니다.

​

solidity는 이더리움 등 블록체인 플랫폼에서 스마트 계약 작성과 구현에 사용되는 계약 지향 프로그래밍 언어입니다.

솔리디티는 이더리움 핵심 기여자들에 의해 이더리움과 같은 블록체인 플랫폼 상에 스마트 계약을 작성할 수 있도록 개발되었습니다.

개발자는 솔리디티를 통해서 스스로 실행되는 비즈니스 로직을 스마트 계약에 담아서 구현할 수 있습니다.

솔리디티를 통해 다양한 앱을 구현할 수 있지만 블록체인 특성상 스마트 계약이 블록체인에 한번 올라가면 수정할 수 없으며 누구나 확인할 수 있기 대문에 신중하게 작성을 해야 합니다.

​

web3.js 는 Ethereum Compatible JavaScript API 로 이더리움과 자바스크립트 간 호환이 가능하도록 기본적인 기능 또는 여러 함수들을 묶어 놓은 라이브러리 입니다. dApp을 만들때는 중요한 역할을 합니다.

dApp은 이더리움이나 퀀텀 등의 플랫폼 위에서 작동하는 탈중앙된 어플리케이션을 말하는 것입니다.

예를 들어 이더리움 dApp 코인 이면 이더리움 위에서 작동하는 어플리케이션, 퀀텀 dApp 코인 이면 퀀텀 위에서 작동하는 어플리케이션 을 뜻합니다.

이런 dApp 은 직접 개발을 할 수있지만 시간, 돈이 많이 듭니다. 그래서 성공한 플랫폰 기반에 플랫폼을 빌려쓰는 것입니다.(수수료를 지불해야 함)

​

실습 위주의 책이다 보니 블록체인 기술을 익히는데는 정말 많은 도움이 되었습니다. 다양한 예제가 있기 때문에 많은 도움이 되었습니다.

노드 나 다양한 프로그램이 설치됩니다. 그리고 버전을 타는 것도 존재를 해서 책을 참고하는 정도로 생각하시면 될 것 같습니다.

그리고 에러가 나면 검색을 통해서 해소하는 방법을 추천드립니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
l 공유하기 l 북마크하기찜하기 lthankstoThanksTo