이미 소장하고 있다면 판매해 보세요.
|
PART I 블록체인 프로그래밍 시작하기 1
CHAPTER 1 블록체인 기초 3 1.1 비트코인에서 블록체인으로 4 1.2 블록체인이란 무엇인가? 6 1.3 블록체인 프로그래밍 8 1.4 사용 동기 시나리오 18 1.5 되돌아보기 21 1.6 요약 23 CHAPTER 2 스마트 컨트랙트 25 2.1 스마트 컨트랙트 개념 26 2.2 스마트 컨트랙트의 설계 29 2.3 스마트 컨트랙트 코드 작성 34 2.4 스마트 컨트랙트 코드를 배포하고 테스트하기 36 2.5 블록체인 컨트랙트는 왜 스마트한가? 41 2.6 탈중앙화 항공사 시스템 유스 케이스 43 2.7 항공사 스마트 컨트랙트 47 2.8 스마트 컨트랙트 설계 고려 사항 58 2.9 베스트 프랙티스 59 2.10 요약 60 CHAPTER 3 신뢰와 무결성을 위한 기법 61 3.1 신뢰와 무결성의 핵심 62 3.2 전자 민주주의 문제 65 3.3 테스팅 78 3.3.1 긍정 테스트 80 / 3.3.2 부정 테스트 81 3.4 수정자, require(), revert() 사용하기 82 3.5 assert() 선언 83 3.6 베스트 프랙티스 86 3.7 되돌아보기 86 3.8 요약 87 CHAPTER 4 스마트 컨트랙트에서 Dapp으로 89 4.1 트러플을 사용한 Dapp 개발 91 4.2 가나쉬 테스트 체인 설치 96 4.3 스마트 컨트랙트 개발 97 4.4 웹 애플리케이션을 개발하고 설정하기 103 4.5 되돌아보기 113 4.6 베스트 프랙티스 114 4.7 요약 115 PART II 종단 간 Dapp 개발을 위한 기법 117 CHAPTER 5 보안과 프라이버시 119 5.1 암호학 기초 121 5.2 블록체인을 위한 공개키 암호학의 유용성 123 5.3 해싱 기초 131 5.4 해싱 애플리케이션 134 5.5 되돌아보기 143 5.6 베스트 프랙티스 143 5.7 요약 143 CHAPTER 6 온체인과 오프체인 데이터 145 6.1 온체인 데이터 147 6.2 블라인드 경매 유스 케이스 149 6.3 오프체인 데이터: 외부 데이터 소스 163 6.4 ASK 항공사 시스템 165 6.5 되돌아보기 178 6.6 베스트 프랙티스 180 6.7 요약 181 CHAPTER 7 web3와 채널 Dapp 183 7.1 web3 API 184 7.2 채널 개념 187 7.3 마이크로 페이먼트 채널 188 7.4 마이크로 페이먼트 채널 유스 케이스 189 7.5 돌아보기 213 7.6 베스트 프랙티스 214 7.7 요약 215 CHAPTER 8 인퓨라를 이용해 퍼블릭으로 나가기 217 8.1 노드와 네트워크 218 8.2 인퓨라 블록체인 인프라 219 8.3 인퓨라를 이용해 퍼블릭으로 나가기 220 8.4 퍼블릭 배포를 위한 종단 간 프로세스 222 8.5 BlindAuction-Dapp을 인퓨라에 배포하기 230 8.6 인퓨라 노드를 통해 MPC-Dapp을 배포하기 240 8.7 되돌아보기 247 8.8 베스트 프랙티스 248 8.9 요약 248 PART III 로드맵과 향후 발전 전망 249 CHAPTER 9 자산의 토큰화 251 9.1 이더리움 표준 252 9.2 RES4: 대체 불가능한 부동산 토큰 257 9.3 되돌아보기 271 9.4 베스트 프랙티스 272 9.5 요약 273 CHAPTER 10 스마트 컨트랙트 테스트 275 10.1 스마트 컨트랙트 테스트의 중요성 276 10.2 카운터 스마트 컨트랙트 테스트하기 277 10.3 투표 스마트 컨트랙트 테스트하기 284 10.4 테스트 스크립트 개요 288 10.5 블라인드 경매 테스트 스크립트 288 10.6 되돌아보기 293 10.7 베스트 프랙티스 293 10.8 요약 294 CHAPTER 11 Dapp 개발 로드맵 295 11.1 시나리오 동기: 교육 관련 증명서 296 11.2 로드맵 297 11.3 문제 설정 298 11.4 분석과 설계 300 11.5 스마트 컨트랙트 개발하기 303 11.6 로컬 배포 309 11.7 트러플을 사용한 자동화된 테스트 309 11.8 웹 애플리케이션 개발하기 311 11.9 DCC-Dapp 테스트하기 314 11.10 퍼블릭 배포 315 11.11 되돌아보기 319 11.12 베스트 프랙티스 319 11.13 요약 320 CHAPTER 12 블록체인 전망 323 12.1 탈중앙화된 아이덴티티 324 12.2 자체 관리 아이덴티티 324 12.3 합의와 무결성 327 12.4 확장성 329 12.5 확장성 솔루션 331 12.6 프라이버시 332 12.7 퍼블릭, 프라이빗, 허가형 네트워크 332 12.8 기밀성 334 12.9 보안 336 12.10 암호 화폐를 이용한 보안 337 12.11 오프체인 데이터 액세스(오라클) 338 12.12 기초에서 실용적인 시스템으로 340 12.13 전망 342 12.14 베스트 프랙티스 343 12.15 되돌아보기 343 12.16 요약 344 APPENDIX A UML 블록체인 설계 모델 345 A.1 문제 분석과 설계 346 A.2 행동 다이어그램 346 A.3 구조적 다이어그램 349 A.4 상호작용 다이어그램 352 APPENDIX B 설계 원칙 354 |
Bina Ramamurthy
정우현의 다른 상품
|
초기에 블록체인에 열광한 이유는 은행과 같은 중개자 없이 인간이 만든 경계(예: 국경)를 넘어 전 세계 누구에게나 디지털 통화를 P2P로 전송할 수 있다는 점이었다. 이런 열풍은 비암호 화폐 유형의 트랜잭션에 대해서도 P2P 기능을 적용할 수 있다는 사실이 알려지면서 더욱 고조되었다. 트랜잭션은 소유권, 증서, 음악, 예술, 비밀 코드, 회사들 간의 계약, 자율 운행 결정, 매일 일어나는 일상 활동에서 비롯되는 수많은 결과물을 포함한다. 트랜잭션 레코드는 블록체인 프로토콜과 애플리케이션에 기반한 다른 상세 정보도 아우른다.
--- p.4 스마트 컨트랙트는 랩톱, 스마트폰, 컴퓨터 기기의 집적회로와 같이 변조 불가능 코드다. 하드웨어 칩에서는 코드가 실리콘 집적회로에 각인(etching)되어 있다. 스마트 컨트랙트 역시 이와 비슷한데, 배포하고 나면 그 코드는 특별한 설정이나 탈출 장치(escape hatches)를 미리 내장하고 있지 않는 한, 더 이상 그 코드를 수정할 수 없는 영구적인 최종 상태가 되기 때문이다. 이후 장에서 이러한 탈출 방법에 대해 설명할 것이다. --- p.58 스마트 컨트랙트를 배포하기 전 마지막 단계는 마이그레이션 디렉터리에 파일을 하나 추가하는 것이다. 이 예제에서 스마트 컨트랙트는 Ballot이라고 불리고, 이것을 배포하기 위해 2_deploy_contracts.js라는 이름으로 마이그레이션 스크립트를 마이그레이션 디렉터리에 추가해야 한다. 파일 내용은 리스트 4.3에서 확인할 수 있다. 가장 맨 위 라인에 있는 아티팩트의 이름은 스마트 컨트랙트의 이름과 일치해야 하는데, 이 경우에는 Ballot이다. --- p.102 온체인과 오프체인 데이터를 구분하는 것은 블록체인 애플리케이션 설계를 전통적인 애플리케이션과 다르게 만드는 중요한 설계 결정 사항이다. 전통적인 애플리케이션에는 블록체인이 없어서 당연히 온체인 데이터도 없다. 블록체인은 신뢰를 구축하는 완전히 새로운 구체적 컴포넌트를 더한다. 이미 설명한 대로 블록체인 애플리케이션은 유효한 트랜잭션, 상태 변화, Tx 실행에서 나온 리시트값, 발생한 이벤트 로그, 기타 관련 정보를 온체인 데이터로 활용한다. --- p.164 마이크로 페이먼트 채널을 위한 스마트 컨트랙트는 constructor와 지급 요청의 시그너처를 검증하고 지불하는 두 개의 퍼블릭 함수만을 가진 간단한 것이었다. 스마트 컨트랙트의 또 다른 함수는 마이크로 페이먼트 메시지의 서명자를 불러오기 위해 해당 블록체인 함수를 액세스하는 것이었다. 스마트 컨트랙트에서 이러한 작업을 수행하기 위해서는 표준적인 함수를 사용해야 한다. 스마트 컨트랙트는 블록체인 서비스 인프라가 컨트롤하는 샌드박스(이더리움의 EVM)에서 작동하기 때문에 스마트 컨트랙트 함수를 실행했을 때 모든 참여자는 일관된 동일한 결과를 갖게 된다. --- p.214 |
|
블록체인에 관심 있는 모든 사람을 위한 훌륭한 출발점!
Dapp 개발에 대한 명확하고 통찰력이 가득한 책! 블록체인은 단순한 비트코인 뒤에 있는 기술 그 이상의 많은 것을 포함하고 있다. 관통할 수 없는 보안, 탈중앙화된 트랜잭션, 그리고 독립적으로 검증 가능한 서플라이 체인을 결합함으로써 블록체인 애플리케이션은 화폐, 디지털 아이덴티티, 물류 체계를 변환시켜 왔다. 게다가 이더리움과 하이퍼레저 같은 플랫폼은 이미 익숙한 프로그래밍 언어를 사용해서 쉽게 블록체인 애플리케이션을 개발할 수 있도록 도와준다. 이 책은 어떻게 블록체인 기반 탈중앙화 앱을 설계하고 개발하는지를 간단명료하고 이해하기 쉽게 설명한다. 우선, 블록체인이 어떻게 작동하는지에 대해 소개하는 것을 시작으로 이더리움과 솔리디티를 이용해 첫 번째 스마트 컨트랙트를 코딩해 보고, 웹 인터페이스, 신뢰 검증, 그리고 배포 준비를 위한 다른 기능도 추가로 학습할 것이다. 시작하기 위해 준비해야 할 것은 오직 표준 하드웨어와 오픈소스 소프트웨어가 전부다. 일곱 개의 예제 애플리케이션을 통해서 스마트 컨트랙트와 탈중앙화 애플리케이션(Decentralized Application, Dapp)을 설계하고 개발하는 과정을 보여줄 텐데, 이 애플리케이션들은 각각 블록체인의 특정한 측면들에 초점을 맞춘다. 이더리움 테스트 체인에서 Dapp을 어떻게 개발하는지 보여주기 위해 여러 가지 핵심적인 툴(리믹스, 가나쉬, 메타마스크, 트러플, 롭스텐, 인퓨라)과 테크닉(암호화, 디지털 서명)도 소개할 것이다. 블록체인의 핵심적인 아이디어들, 즉 신뢰와 무결성, 보안과 프라이버시, 온체인과 오프체인 데이터, 그리고 실행 등을 예제들과 더불어 상세히 다룬다. 150개가 넘는 주석이 들어간 도표와 스크린샷은 블록체인 개념을 이해하는 데 많은 도움이 될 것이다. 이 책의 주요 내용 -다른 분산 시스템과 비교한 블록체인 -솔리디티를 이용한 개발 -아이덴티티, 프라이버시, 그리고 보안 -온체인/오프체인 데이터와 오퍼레이션 이 책의 대상 독자 -학부나 대학원 과정에서 블록체인 활용법을 가르치는 강사 -블록체인 프로그래밍을 처음 시작하고자 하는 타 분야 개발자 -블록체인의 고유한 사례를 훑어보고 싶은 비즈니스 전문가와 실무자 -스마트 컨트랙트와 탈중앙화 애플리케이션을 개발하고자 하는 블록체인 개발자 “블록체인에 대한 피상적 이해를 넘어 코어 개념까지 이해할 수 있는 매우 훌륭한 블록체인 입문서” ― 마이클 젠센, 아르카디아(Arcadia) “탈중앙화 시스템과 향후 설계 계획에서의 그 역할에 대해 완벽히 이해할 수 있다.” ― 리차드 B. 워드, 프린시피스 캐피탈(Principis Captial) “뛰어난 블록체인 가이드의 도움으로 이론에서 벗어나 실전으로 나아가자.” ― 삼바시바 안달루리, 아마존 웹 서비스(Amazon Web Services) “블록체인에 대한 결정적인 자료이자 실용적으로 다루는 몇 안 되는 책” ― 알리 M. 셰이크 우두만, 하먼 커넥티드 서비스(Harman Connected Services) |