책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 컴퓨터 공학 > 컴퓨터공학/전산학 개론
· ISBN : 9791191600124
· 쪽수 : 384쪽
책 소개
목차
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
리뷰
책속에서
초기에 블록체인에 열광한 이유는 은행과 같은 중개자 없이 인간이 만든 경계(예: 국경)를 넘어 전 세계 누구에게나 디지털 통화를 P2P로 전송할 수 있다는 점이었다. 이런 열풍은 비암호 화폐 유형의 트랜잭션에 대해서도 P2P 기능을 적용할 수 있다는 사실이 알려지면서 더욱 고조되었다. 트랜잭션은 소유권, 증서, 음악, 예술, 비밀 코드, 회사들 간의 계약, 자율 운행 결정, 매일 일어나는 일상 활동에서 비롯되는 수많은 결과물을 포함한다. 트랜잭션 레코드는 블록체인 프로토콜과 애플리케이션에 기반한 다른 상세 정보도 아우른다.
스마트 컨트랙트는 랩톱, 스마트폰, 컴퓨터 기기의 집적회로와 같이 변조 불가능 코드다. 하드웨어 칩에서는 코드가 실리콘 집적회로에 각인(etching)되어 있다. 스마트 컨트랙트 역시 이와 비슷한데, 배포하고 나면 그 코드는 특별한 설정이나 탈출 장치(escape hatches)를 미리 내장하고 있지 않는 한, 더 이상 그 코드를 수정할 수 없는 영구적인 최종 상태가 되기 때문이다. 이후 장에서 이러한 탈출 방법에 대해 설명할 것이다.