하이퍼레저 블록체인 개발 - 맛보기

Page 1




하이퍼레저 블록체인 개발 패브릭과 컴포저로 탈중앙화 앱 dApp 만들기 초판 1쇄 발행 2019년 2월 4일 지은이 니틴 가워, 뤼크 데로지에르, 벤카트라만 라마크리슈나, 페트르 노보트니, 살만 바셋, 앤서니 오다우드 옮긴이 임지순, 이대승 / 감수자 맹윤호 / 펴낸이 김태헌 펴낸곳 한빛미디어 (주) / 주소 서울시 서대문구 연희로2길 62 한빛미디어(주) IT출판사업부 전화 02 – 325 – 5544 / 팩스 02 – 336 – 7124 등록 1999년 6월 24일 제25100 – 2017 – 000058호 / ISBN 979 – 11 – 6224 – 146 – 2 93000 총괄 전태호 / 책임편집 이상복 / 기획 이상복 / 편집 백지선 디자인 표지 이아란 내지 김연정 조판 백지선 영업 김형진, 김진불, 조유미 / 마케팅 송경석, 김나예, 이행은 / 제작 박성우, 김정우 이 책에 대한 의견이나 오탈자 및 잘못된 내용에 대한 수정 정보는 한빛미디어(주)의 홈페이지나 아래 이메일로 알려주십시오. 잘못된 책은 구입하신 서점에서 교환해드립니다. 책값은 뒤표지에 표시되어 있습니다. 한빛미디어 홈페이지 www.hanbit.co.kr / 이메일 ask@hanbit.co.kr

Copyright © Packt Publishing 2018. First published in the English language under the title ‘Hands-on Blockchain Development with Hyperledger – (9781788994521)’ Korean translation copyright © 2019 by Hanbit Media, Inc. 이 책의 저작권은 Packt Publishing과 한빛미디어(주)에 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 복제 및 무단 전재를 금합니다.

지금 하지 않으면 할 수 없는 일이 있습니다. 책으로 펴내고 싶은 아이디어나 원고를 메일 ( writer@hanbit.co.kr ) 로 보내주세요. 한빛미디어(주)는 여러분의 소중한 경험과 지식을 기다리고 있습니다.


패브릭과 컴포저로 탈중앙화 앱 dApp 만들기 니틴 가워, 뤼크 데로지에르, 벤카트라만 라마크리슈나, 페트르 노보트니, 살만 바셋, 앤서니 오다우드 지음 임지순, 이대승 옮김 맹윤호 감수


지은이・옮긴이 소개

지은이

니틴 가워 Nitin Gaur

IBM 블록체인 랩의 이사로서, 블록체인 기술 및 산업별 응용프로그램에 대한 지식 기반을 구축하 는 책임을 맡고 있다. 집요한 추진력과 고객 중심의 사고를 통해 기회를 분석하고, 운영상의 요구 에 부응하고, 수익을 달성하며, 고객 경험을 획기적으로 향상시키는 역량을 가진 것으로 유명하며,

IBM의 수석 엔지니어이기도 하다. 지은이

뤼크 데로지에르 Luc Desrosiers

20년 이상의 경력을 가진 IBM의 공인 IT 아키텍트다. 경력 전반에 걸쳐 개발자, 컨설턴트, 프리세 일 아키텍트 등 여러 직무를 거쳤으며, 최근 IBM 허슬리Hursley 연구소에서 일하기 위해 캐나다에서 영국으로 이사했다. 이곳에서 IBM 블록체인 팀에 합류했으며, 현재 여러 산업 분야의 고객과 협력 하여 블록체인 기술로 변혁적인 용례와 솔루션을 구현하는 방법을 탐구하고 있다. 지은이 벤카트라만 라마크리슈나 Venkatraman Ramakrishna

경력 10년의 IBM 연구원. 인도 공과대학교(IIT ) 카라그푸르에서 공학사를 따고 UCLA에서 박사 과정을 거친 후 마이크로소프트 빙의 인프라 팀에서 근무하면서 안정적인 응용프로그램 배포 소프 트웨어를 구축했다. 무역 및 규제를 위한 응용프로그램을 개발했으며 현재 하이퍼레저 플랫폼의 성 능 및 개인 정보 보호 특성을 개선하기 위해 노력하고 있다. 지은이

페트르 노보트니 Petr Novotny

15년 이상의 엔지니어링 및 소프트웨어 시스템 연구 경험을 가진 IBM 리서치의 연구 과학자이다. 유니버시티 칼리지 런던에서 석사 학위를 받았고, 임페리얼 칼리지 런던에서 박사 학위를 받고 박사 후 연구원으로 근무했다. 미 육군 연구소의 방문 과학자로도 종사한 바 있다. 현재 IBM에서 블록체 인 기술의 혁신을 연구하고 블록체인 솔루션 및 분석 도구 개발을 이끌고 있다. 지은이

살만 바셋 Salman A. Baset

IBM 블록체인 솔루션 부문의 보안 담당 CTO다. 월마트, 머스크 그룹 등의 파트너와 협력하여 IBM이 구축한 블록체인 솔루션의 보안 및 규제 준수를 감독하고 고객 컨설팅을 수행했다. 블록체

4


인 기반 솔루션으로 GDPR을 구현하는 프로젝트를 주도하고 있으며, 포춘 500대 기업에서 사용하 는 ID 관리 시스템, 그리고 IBM 식품 신뢰 블록체인 솔루션을 구축한 바 있다. 지은이 앤서니 오다우드 Anthony O’Dowd

IBM의 블록체인 팀 소속으로, 사용자가 블록체인 기술의 혜택을 받는 솔루션을 구축할 수 있도록 돕는 글로벌 팀의 일원으로 유럽에서 근무하고 있다. 미들/백 오피스 시스템 경력이 출중해 기업용 메시징 및 통합을 위한 핵심 IBM 미들웨어 개발을 주도해왔다. 서로 다른 업계가 더 효율적이고 통 합된 비즈니스 시스템을 구축하기 위해 미들웨어를 활용하는 방법에 관심을 두고 연구하고 있다. 옮긴이 임지순 jisoon.lim@gmail.com

블록체인 에반젤리스트. 하드웨어 엔지니어로 커리어를 시작하여 소프트웨어 엔지니어, 프로젝트 매니저를 거쳐 현재는 블록체인 사업 개발 영역을 개척하고 있으며, 암호경제학과 IP의 연결 고리 에 관심이 크다. 번역한 책으로 『이더리움과 솔리디티 입문』, 『라즈베리 파이로 배우는 컴퓨터 아키 텍처』(이상 위키북스), 『Make: 드론』(한빛미디어) 등이 있다. 옮긴이 이대승 centrum04@gmail.com

블록체인 에반젤리스트. 안과 전문의, MBA 배경을 가진 블록체인 프로젝트 매니저이며, 현재는 네 트워크와 콘텐츠에 집중하고 있다. 공동 저서로 『이지스팀잇』(브레인펜슬), 『KEEP!T 블록체인 상 식사전』(솔앤유) 등이 있다. 감수자 맹윤호 yunho.maeng.dc@gmaiil.com

현재 IBM Watson & Cloud Platform의 Technical Service Professional로 근무하고 있으며, 연세대학교 정보대학원에서 비즈니스 빅데이터 분석 석사 과정을 졸업하고 동 대학원에서 박사 과정 재학 중이다. 카네기 멜런 STEM 아카데미 한국 지사와 중앙대학교, 상명대학교에서 프로그래밍을 강 의했다. SK C&C, 한국과학기술정보연구원(KISTI ), 한국연구재단(NRF ), DBpia 등과 프로젝트 를 수행하였으며, 오픈소스 활동으로 아파치 재플린에 기여했다. 맹개발의 기술 블로그와 맹개발TV 유튜브 채널을 운영하고 있다.

5


옮긴이의 말

2017년을 전후로 해서 글로벌 블록체인 붐이 일어나고, 다양한 산업 분야에 블록체인을 접목 하기 위한 움직임과 퍼블릭 블록체인을 사용해서 일종의 대체 금융을 만들어내기 위한 움직임 이 폭발적으로 증가했습니다. 여러 가지 담론이 오가는 가운데 가장 뜨거웠던 영역 중 하나는 퍼블릭 블록체인, 즉 무허가형 원장과 프라이빗 블록체인, 즉 허가형 원장 사이의 진영 대립이 었습니다. 비트코인으로 시작된 블록체인이 검열 저항성과 네트워크의 탈중앙화를 추구했기에 블록체인 을 기술적 아나키즘으로 보는 시각이 있지만, 사실 블록체인에는 탈중앙화 외에도 다양한 측면 이 담겨 있습니다. 일례로, 트랜잭션 네트워크로서 비트코인과 이더리움이 가지는 자료구조는 송금과 관련된 핀테크 영역에서 일반적인 관계형 데이터베이스보다 훨씬 유용하게 사용될 수 있습니다. 암호화와 해시가 자료구조 곳곳에 녹아 있기 때문에 데이터의 조작이나 해킹에 대비 한 무결성 면에서도 기존의 서버 데이터베이스에 비해 장점이 있는 기술입니다. 블록체인의 이 러한 장점은 탈중앙화 여부와 상관없이 기업이 응용할 수 있는 가능성을 가지고 있습니다. 하이퍼레저는 허가형 블록체인 프로젝트의 선두 주자로서, 다양한 기업이 하이퍼레저 오픈소스 개발에 참여하고 있다는 장점 외에도 무역, 공급망 관리, 금융 등의 용례에 맞는 예제들이 잘 만 들어져 있어 블록체인 도입을 검토하고자 하는 기업에게 매력적입니다. 이 책에서는 하이퍼레 저 패브릭과 하이퍼레저 컴포저를 주로 다루지만, 하이퍼레저에는 그 외에도 다양한 프레임워 크와 도구가 있습니다. 원장 간의 상호 운용성을 위한 도구(하이퍼레저 퀼트), 이더리움 EVM 을 허가형 원장으로 구성하는 프레임워크(하이퍼레저 버로) 등 다양한 선택지가 존재합니다. 블록체인과 분산 원장 기술이 본격적으로 산업 영역에 응용되는 것은 미래의 일이 아니며, 이 미 시작되었다고 할 수 있습니다. 단지 이 기술이 최종 사용자와 맞닿아 있는 프런트엔드가 아 닌, 비즈니스의 후면에 있는 백엔드 기술이기 때문에 일반인이 그 실질적인 차이를 체감하고 있지 못할 뿐입니다. 이 책을 통한 하이퍼레저와의 첫 만남이, 독자 여러분에게 변화의 물결을 더 일찍 체감하고 이끌어나갈 수 있는 동기가 되었으면 하는 작은 바람을 품어봅니다. 임지순

6


감수자의 말

하이퍼레저를 공부하는 개발자들에게 한 줄기 단비와 같은 책이다. 시중에 퍼블릭 블록체인에 대한 공신력 있는 책이 적은 것처럼, 기업을 위한 프라이빗 블록체인에 대한 서적이 적은 것 또 한 현실이었다. 이 책은 단순히 하이퍼레저를 활용해서 메인넷이나 블록체인 기반의 애플리케이션 등을 개발 하는 것에서 그치지 않고, 통합 및 배포(CI & CD ) 파이프라인을 통해 서비스를 지속적으로 개선 및 개발할 수 있는 기술적 토대를 제공한다. 특히, 패브릭 그 자체에만 머물지 않고, 컴포저 플레이그라운드를 활용한 REST API 제작까지 다루고 있어, 빠른 구현이 필요한 프로젝트에서도 이 책을 참고하면 큰 도움을 얻을 것이라 기 대한다. 이에 더하여, 전통적인 분산DB에 적용되던 CAP 이론 등이 블록체인에는 어떻게 적 용되는지를 설명하고 이것이 하이퍼레저 패브릭의 맥락에서는 실질적으로 무엇을 의미하는지 도 서술하여 기존 개발자들의 이론적 이해까지 돕는다. 선배 IBMer들이 쓴 본 서적을 감수하면서, 이렇게 좋은 서적을 빠른 시일 내에 한국어로 접할 수 있다는 건 한국 독자들에게 축복이라는 생각이 든다. • 면책 공지: 본 서적에 대한 감수는 전적으로 개인의 차원에서 진행된 것으로 감수자의 소 속과는 무관합니다. 이 책은 버전 변경 등에 매우 민감한 기술을 다루므로 공식 문서가 우선하며, 최종적인 기술적 판단과 책임은 독자에게 있습니다. 맹윤호

7


머리말

하이퍼레저 기술운영위원회Technical Steering Committee (TSC )의 위원장으로 재직하면서, 나는 블록체 인을 둘러싼 과대 포장과 실제 블록체인 기술의 작동 방식, 기술 발전의 현재 위치, 기업의 사 용 맥락 사이의 엄청난 괴리를 체감했다. 블록체인을 둘러싼 과대 포장은 대부분 무허가형 블록체인과 전통적인 IPO를 대체하는 ICO, 그리고 은행, 보험, 증권 등의 기존 시스템에 대한 혁신에 관련되어 있다. 혁신을 일으킬 수 있 는 잠재력과 이를 통해 얻을 수 있는 비대칭적인 이익에 주목한 기업들은 주어진 산업 영역에 서 블록체인이 어떻게 활용될 수 있는지 탐색했다. 그러나 블록체인은 팀 스포츠이며, 블록체 인이 기업에서 성공으로 쓰이기 위해서는 이전에는 볼 수 없었던 수준의 업계 협업이 필요하다. 이 책의 집필진은 독자에게 과대 포장 너머의 영역을 보여준다. 하이퍼레저에서 활발히 개발되 고 인큐베이션을 거치고 있는 프로젝트와 기술 환경의 상태 등을 이해할 수 있는 견고한 토대 가 이 책에 담겨 있으며, 올바른 기술 플랫폼을 선택하는 방법, 솔루션 설계 및 기존 시스템과 의 통합을 위한 프레임워크를 다룬다. 또한 블록체인 비즈니스 네트워크를 구축하고 운영하기 위한 다양한 거버넌스 모델도 설명한다. 기업과 산업계를 위한 블록체인 솔루션을 개발하는 아키텍트 및 개발자에게 이 책은 필독서라 고 할 수 있다. 크리스토퍼 페리스Christopher Ferris IBM 수석 엔지니어/CTO 오픈 테크놀로지

8


이 책에 대하여

우선, 시간을 내어 집필진의 실제 경험과 지식을 담은 이 책을 손에 쥐어준 독자 여러분께 감사 를 드린다. 이 책에는 블록체인 기술의 진화에 기여해야 한다는 바람이 담겨 있다. 우리는 그동 안 기술 설계 선택, 아키텍처 선택, 비즈니스 고려 사항, 거버넌스 모델을 포함하되 이에 국한 되지 않는 수많은 고려 사항을 다루는 포괄적인 가이드가 부족하다는 문제로 어려움을 겪었다. 우리 집필진은 각자 고유하면서도 다양한 기술을 다루면서도 쉽고 단순하게 내용의 깊이를 다 루기 위해 노력했으며, 내용의 체계와 흐름에 초점을 맞추어 독자가 자연스럽게 따라갈 수 있 으면서도 각각의 부분은 독립성을 가질 수 있도록 했다. 이 책의 내용은 비즈니스 리더에서 블록체인 개발자까지, 실무적 경험을 통해 배우고자 하는 모든 대상 독자에게 초점을 맞추고 있다. 독자 여러분은 책을 통해 지적 즐거움과 함께 개인적 혹은 전문적 지식을 얻을 뿐 아니라, 이 책을 참고 자료, 일종의 수첩으로 사용한다면 정보에 입각한 설계 결정을 내리는 데에도 도움이 될 것이라고 믿는다. 집필진은 바쁜 일정 속에서 이 책을 쓰는 동안 다양한 도전에 직면했지만, 책의 내용을 가능한 한 최신 정보로 유지하게 했다. 블록체인 기술 환경은 변화무쌍하며 그 진화와 혁신 속도를 따라잡는 것은 큰 도전 과제였다. 집필진은 체계적으로 블록체인 관련 업데이트를 적용하여 이 책에 제시된 기반을 통해 독자 여 러분이 최신 블록체인 업데이트를 활용하는 프레임워크를 만들 수 있도록 도움이 되는 모델을 추출하기 위해 노력했으며, 또한 비즈니스 설계에 따른 기술 설계의 변화에 대해서도 많은 지 면을 할애했다. 다른 순수 기술 플랫폼과 달리 블록체인(그리고 블록체인 기반 비즈니스 네트 워크)은 비즈니스 특성에 많은 영향을 받으면서도 기술 중심적인 체계를 가지고 있다. 실무자 의 연구 결과와 문서화된 고려 사항을 통해 비즈니스 리더 및 기술 관리자가 정보에 입각한 의 사결정을 내리고, 집필진이 경험했던 실패를 피할 수 있기를 바란다. 이 책의 기술 내용은 IT 전문가, 블록체인 초보자, 고급 블록체인 개발자를 비롯한 독자 계층에 게 다양한 기술에 대한 견고한 기초를 제공하는 것을 목표로 한다. 실제 업무 사례를 모델로 한 응용프로그램 개발 스토리로 인프라 구축에서부터 데브옵스 모델, 모델 중심 개발에 이르기까 지 다양한 단계를 다루며, 응용프로그램 배포 시 블록체인 네트워크의 영향에 초점을 맞춘 다

9


양한 엔터프라이즈 기술 관리 문제를 다루었다. 보안 및 성능 설계를 위한 프레임워크도 제공 하므로, 기술 사용자에게는 특히 유용할 것이며 기술 설계 고려 사항으로 견고한 토대를 마련 할 수 있기를 바란다. 이 책의 후반부에서는 다양한 도전과 기회에 대한 실용적인 견해를 기술했으며, 독자 커뮤니티 가 도전을 통해 결과적으로 보상을 얻을 수 있는 기회를 잡기를 권장한다. 이 책에서는 하이퍼레 저 프로젝트를 중점적으로 다루지만, 책에서 다루는 핵심 주제가 블록체인 기술 분야에 보편적 으로 적용될 것으로 기대한다. 집필진의 시간과 통찰력을 들인 노력이 독자들에게 잘 전달되고, 블록체인 혁신을 위한 강력한 영향력을 행사할 수 있는 기반이 마련되기를 진심으로 바란다.

대상 독자 이 책은 블록체인 비즈니스 모델, 거버넌스 구조, 블록체인 솔루션의 비즈니스 설계 고려 사항 에 대한 포괄적인 시각을 제공하므로 비즈니스 리더에게 도움이 되며, 이 책에서 다루는 기술 환경, 기술 설계, 아키텍처 고려 사항에 대한 자세한 논의는 기술 리더에게 도움을 줄 것이다. 또한 이 책은 모델 기반 응용프로그램 개발을 통해 블록체인 응용프로그램 개발자가 개념을 숙 달하고 이해 수준을 높이도록 도와준다. 잘 구성된 콘텐츠를 통해 초보자도 블록체인의 개념 및 구조를 익힐 수 있다.

책의 구성 1장에서는 블록체인이 대체 무엇인가 궁금해하는 독자를 위해, 블록체인이 새로운 판을 짤 수 있는 이유, 그리고 어떤 혁신을 가져올 수 있는지를 알아보고 블록체인을 둘러싼 기술 생태계 를 조망한다.

2장에서는 블록체인 환경에 대한 이해를 바탕으로 하이퍼레저 패브릭에 대해 알아볼 것이다. 이 장의 목적은 하이퍼레저 패브릭의 아키텍처를 알아보면서 그 각 구성 요소를 이해하는 데 있다.

10


3장에서는 비즈니스 용례에 대해 알아보고, 블록체인을 사용하여 요구 사항에서 설계까지 이 르는 훌륭한 비즈니스 네트워크를 만드는 프로세스를 이해하는 데 중점을 둔다.

4장에서는 하이퍼레저 패브릭 위에서 스마트 계약을 구성하는 요소를 정의하는 것을 목표로 한다. 또한 스마트 계약과 관련된 몇 가지 용어를 소개하고 Go 언어를 사용하여 체인코드 개 발을 경험해볼 것이다.

5장에서는 앞에서 작성한 스마트 계약을 활용하여 네트워크에 필요한 응용프로그램 통합을 진 행할 것이다. 채널을 구성하고 클라이언트 응용프로그램에서 체인코드를 설치 및 호출하는 과 정을 경험할 것이고, 여기에 사용되는 다양한 통합 패턴을 알아볼 것이다.

6장에서는 비즈니스 네트워크를 모델링하는 데 필요한 기술과 도구를 소개할 것이다. 더 높은 수준의 추상화, 기반, 도구, 프레임워크를 사용하여 전체적인 종단 간 비즈니스 네트워크를 신 속하게 모델링하고 설계하고 배포하는 방법을 알아볼 것이다.

7장에서는 6장의 개념을 실제로 적용하여 최종 사용자 응용프로그램에서 전체 스마트 계약에 이르기까지 완전한 비즈니스 네트워크를 배포하는 단계를 설명할 것이다.

8장에서는 블록체인 네트워크에서 애자일 방식을 적용하는 데 필요한 측면에 중점을 둘 것이 다. 데브옵스 개념을 적용하여 블록체인에서도 CI 파이프라인을 구현할 수 있게 된다.

9장은 응용프로그램 변경 관리부터 적절한 성능 수준 유지 관리에 이르기까지, 분산 원장 솔루 션을 채택할 때 조직 및 컨소시엄이 직면하게 될 주요 활동 및 과제에 대한 인식을 높이는 것을 목표로 한다. 성공적인 네트워크 배포를 마치고 나면 많은 조직이 참여하고 트랜잭션 수가 증 가할 것이다.

10장에서는 거버넌스가 규제 산업에서 필요악이지만, 그것이 규제 대상 비즈니스 네트워크에 만 국한되지는 않는다는 내용을 다룰 것이다. 또한 비즈니스 네트워크의 수명과 확장성을 보장 해야 하는 이유에 대해 알아보고, 창립자 주도의 블록체인 네트워크의 생산성을 위한 중요한 고려 사항에 대해서도 살펴볼 것이다.

11


11장에서는 블록체인 네트워크의 보안 설계를 위한 기반을 다룰 것이다. 다양한 보안 구조와 하이퍼레저 패브릭의 보안을 자세히 다루므로, 보안 설계의 고려 사항을 이해하는 데에는 필수 적인 장이다.

12장에서는 앞으로의 과제와 기회에 대해 논의할 것이다. 공개된 기술의 사용을 통해 독자는 블록체인의 혁신 과정에 참여하고 기회를 누릴 수 있다.

이 책을 읽는 팁 1. 집필진은 책의 흐름과 구성에 집중했다. 책의 순서는 독자가 따라가기 쉽고 자연스러우면서 도 각 장의 주제별 독립성은 유지하도록 구성했다.

2. 각 장에서 블록체인의 측면을 하나씩 살펴볼 것이다. 구체적으로는 하이퍼레저 프로젝트를 다루지만, 그 핵심 개념은 보편적인 블록체인 기술 원칙을 다루고 있다.

3. 각 장의 ‘마치며’ 절 및 팁을 읽어보면서 다루는 주제를 간략하게 파악할 수 있다. 4. 일반적인 블록체인 비즈니스 및 기술 환경에 대해 다루는 장이 있고, 구체적인 기술 방법을 다루는 장도 있다. 두 가지 모두 지식 기반을 넓히는 중요한 주제이다.

예제 코드 이 책의 모든 코드는 다음 깃허브 저장소에서 다운로드할 수 있다. 䵱䵽䵽䵹䵼䵃䴸䴸䵰䵲䵽䵱䵾䵫䴷䵬䵸䵶䴸䵑䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻䵑䵪䵷䵭䵼䵘䵷䴸䵽䵻䵪䵭䵮䴶䵯䵲䵷䵪䵷䵬䵮䴶䵵䵸䵰䵲䵼䵽䵲䵬䵼

12


CONTENTS

지은이・옮긴이 소개 .......................................................................................................... 4 옮긴이의 말 ...................................................................................................................... 6 감수자의 말 ...................................................................................................................... 7 머리말 (크리스토퍼 페리스) ................................................................................................. 8 이 책에 대하여 .................................................................................................................. 9

CHAPTER

1 블록체인: 기업과 산업의 관점 1.1 용어 정의 - 블록체인이란? ........................................................................................... 26 1.2 블록체인 프레임워크의 4가지 핵심 구성 요소 ................................................................. 28 1.2.1 고려할 수 있는 추가 기능 ....................................................................................... 30

1.3 안전한 트랜잭션 처리 프로토콜의 기초 .......................................................................... 31 1.4 블록체인 기술의 현재와 미래 ....................................................................................... 32 1.4.1 대전환 ................................................................................................................ 33 1.4.2 블록체인 조달을 위한 경제적 모델 ........................................................................... 33 1.4.3 시행착오.............................................................................................................. 34 1.4.4 신뢰와 책임에 대한 약속 ........................................................................................ 35

1.5 블록체인 기술을 적용하는 산업 .................................................................................... 36 1.6 기업에서의 블록체인 .................................................................................................... 36 1.6.1 어떤 애플리케이션이 잘 맞는가? ............................................................................. 36 1.6.2 기업은 블록체인을 어떻게 보는가? .......................................................................... 38 1.6.3 블록체인 기술의 적용을 정당화하기 위한 리트머스 검사 .............................................. 39 1.6.4 기업 전반을 위한 블록체인 인프라 통합 .................................................................... 40

1.7 기업형 설계 원칙 ......................................................................................................... 42 1.7.1 비즈니스 동인과 진화 ............................................................................................ 42 1.7.2 지속 가능성의 보장 ............................................................................................... 43 1.7.3 블록체인 채택을 가속화하는 원칙 ............................................................................ 45

1.8 블록체인 프레임워크를 선택하기 위한 비즈니스 고려 사항 ............................................. 46

13


1.9 블록체인 프레임워크 선택을 위한 기술적 고려 사항 ....................................................... 47 1.9.1 신원 관리 ............................................................................................................ 48 1.9.2 확장성 ................................................................................................................ 49 1.9.3 기업 보안 ............................................................................................................ 49 1.9.4 개발 환경 정비...................................................................................................... 49 1.9.5 암호경제 모형 ...................................................................................................... 50 1.9.6 시스템적 거버넌스를 통한 탈중앙화.......................................................................... 50 1.9.7 기업 지원 ............................................................................................................ 50 1.9.8 용례 중심의 교체 가능한 선택지 사용 ....................................................................... 50

1.10 확장 가능성을 위한 기업 통합 및 설계 ........................................................................ 52 1.11 기타 고려 사항 .......................................................................................................... 54 1.11.1 합의, ACID 속성, CAP ....................................................................................... 54 1.11.2 SSC의 서명과 암호화를 통한 증명......................................................................... 55 1.11.3 HSM의 사용 ..................................................................................................... 55

1.12 마치며 ....................................................................................................................... 56

CHAPTER

2 하이퍼레저 패브릭 알아보기 2.1 개방형 컴퓨팅 기반 구축 .............................................................................................. 58 2.1.1 하이퍼레저 프로젝트의 기초 ................................................................................... 58 2.1.2 리눅스 재단.......................................................................................................... 59 2.1.3 하이퍼레저 .......................................................................................................... 59 2.1.4 오픈소스 및 개방형 표준......................................................................................... 59

2.2 하이퍼레저 프레임워크, 도구 및 빌딩 블록 .................................................................... 61 2.2.1 하이퍼레저 프레임워크 .......................................................................................... 62 2.2.2. 하이퍼레저 도구 ................................................................................................... 63 2.2.3. 블록체인 솔루션의 구성 요소 ................................................................................... 64

2.3 하이퍼레저 패브릭 구성 요소 설계 ................................................................................. 67

14


CONTENTS

2.3.1 하이퍼레저 설계의 원칙.......................................................................................... 69 2.3.2 CAP 정리 .......................................................................................................... 70 2.3.3 하이퍼레저 패브릭 참조 아키텍처 ............................................................................ 72 2.3.4 하이퍼레저 패브릭 런타임 아키텍처 ......................................................................... 74 2.3.5 컴포넌트화된 설계의 강점과 장점 ............................................................................ 75

2.4 하이퍼레저 패브릭 - 예제 트랜잭션 .............................................................................. 77 2.5 하이퍼레저 패브릭 알아보기 .......................................................................................... 80 2.5.1 블록체인 네트워크의 구성 요소 ............................................................................... 81 2.5.2 개발자 상호작용 ................................................................................................... 82

2.6 블록체인으로 운영되는 비즈니스 네트워크의 거버넌스 이해 ........................................... 84 2.6.1 거버넌스 구조 및 환경............................................................................................ 85 2.6.2 IT 거버넌스 ......................................................................................................... 86 2.6.3. 블록체인 네트워크 관리 ........................................................................................ 86 2.6.4 비즈니스 네트워크 거버넌스.................................................................................... 87

2.7 마치며 ......................................................................................................................... 88

CHAPTER

3 비즈니스 시나리오로 무대 설정하기 3.1 무역과 신용장 ............................................................................................................. 90 3.1.1 무역에서 신뢰의 중요성 ......................................................................................... 90 3.1.2 오늘날의 신용장 절차.............................................................................................. 91

3.2 비즈니스 시나리오 및 용례 ........................................................................................... 91 3.2.1 개요 .................................................................................................................. 91 3.2.2 실제 세계의 절차................................................................................................... 92 3.2.3 단순화된, 수정된 절차 ............................................................................................ 92 3.2.4 무역 금융 및 물류에 사용되는 용어 .......................................................................... 93 3.2.5 공유된 절차 작업 흐름............................................................................................ 95 3.2.6 공유된 자산과 데이터 ............................................................................................ 96

15


3.2.7 참가자의 역할 및 역량 ........................................................................................... 97 3.2.8 기존 절차에 비교했을 때 블록체인 응용프로그램의 이점 .............................................. 98

3.3 개발 환경 설정 ............................................................................................................ 98 3.3.1 네트워크 설계....................................................................................................... 99 3.3.2 필수 구성 요소 설치 ........................................................................................... 102 3.3.3 저장소 포크 및 복제 ........................................................................................... 103 3.3.4 네트워크 설정 생성 및 실행 ................................................................................. 103

3.4 네트워크 구성 요소의 설정 파일 ................................................................................ 113 3.5 무역 네트워크 예제 실행하기 .................................................................................... 114 3.6 마치며 ...................................................................................................................... 116

CHAPTER

4 Go 언어로 데이터 및 트랜잭션 모델 설계하기 4.1 체인코드 개발 시작하기 ............................................................................................ 118 4.1.1 체인코드 컴파일 및 실행 ..................................................................................... 119 4.1.2 체인코드 설치 및 인스턴스화 ............................................................................... 119 4.1.3 체인코드 호출 .................................................................................................. 120

4.2 체인코드 생성하기 ..................................................................................................... 121 4.2.1 체인코드 인터페이스 .......................................................................................... 121 4.2.2 체인코드 파일 설정하기 ...................................................................................... 122

4.3 접근 제어 ................................................................................................................. 128 4.3.1 ABAC ............................................................................................................ 128

4.4 체인코드 기능 구현 ................................................................................................... 133 4.4.1 체인코드 자산 정의 ............................................................................................ 134 4.4.2 체인코드 함수 코딩하기....................................................................................... 136 4.4.3 자산 생성하기.................................................................................................... 136 4.4.4 자산 읽기 및 수정 .............................................................................................. 138 4.4.5 메인 함수.......................................................................................................... 140

16


CONTENTS

4.5 체인코드 테스트 ....................................................................................................... 140 4.5.1 시뮬레이션........................................................................................................ 141

4.6 체인코드 설계 토픽 .................................................................................................... 145 4.6.1 복합 키............................................................................................................. 145 4.6.2 범위 쿼리 ......................................................................................................... 146 4.6.3 상태 쿼리 및 카우치DB ..................................................................................... 147 4.6.4 인덱스 ............................................................................................................. 149 4.6.5 ReadSet 및 WriteSet ...................................................................................... 150 4.6.6 다중 버전 동시성 제어 ........................................................................................ 151

4.7 로깅 출력 ................................................................................................................. 153 4.7.1 설정 ............................................................................................................... 153 4.7.2 로깅 API ......................................................................................................... 154 4.7.3 SHIM 로깅 레벨 ................................................................................................ 156 4.7.4 stdout 및 stderr .............................................................................................. 156 4.7.5 추가 SHIM API 함수 ......................................................................................... 157

4.8 마치며 ...................................................................................................................... 158

CHAPTER

5 네트워크 자산과 트랜잭션 노출시키기 5.1 완벽한 응용프로그램 구축 ......................................................................................... 160 5.1.1 하이퍼레저 패브릭 응용프로그램의 특성 ................................................................ 160 5.1.2 응용프로그램 만들기........................................................................................... 165 5.1.3 미들웨어 – 체인코드의 및 구동............................................................................ 165 5.1.4 사용자 응용프로그램 - 서비스 및 API 내보내기....................................................... 188

5.2 기존 시스템 및 프로세스와의 통합 ........................................................................... 196 5.2.1 설계 고려 사항 .................................................................................................. 196 5.2.2 탈중앙화........................................................................................................... 197 5.2.3 프로세스 정렬 ................................................................................................... 198

17


5.2.4 서비스 검색....................................................................................................... 200 5.2.5 신원 매핑 ......................................................................................................... 201 5.2.6 통합 설계 패턴 .................................................................................................. 202 5.2.7 신뢰성, 가용성, 서비스 가능성에 대한 고려 ............................................................. 205

5.3 마치며 ...................................................................................................................... 208

CHAPTER

6 비즈니스 네트워크 6.1 목적을 가진 활동의 세계 ........................................................................................... 210 6.1.1 비즈니스 네트워크를 위한 언어가 필요한가? .......................................................... 211

6.2 비즈니스 네트워크의 정의 ......................................................................................... 211 6.2.1 심화 개념.......................................................................................................... 212

6.3 참여자란? ................................................................................................................. 212 6.3.1 참여자의 유형 ................................................................................................... 213 6.3.2 참여자는 곧 대리인............................................................................................. 215 6.3.3 참여자와 신원 ................................................................................................... 216

6.4 자산이란? ................................................................................................................. 216 6.4.1 참여자 간의 자산 흐름 ........................................................................................ 217 6.4.2 유형 및 무형 자산 .............................................................................................. 218 6.4.3 자산의 구조....................................................................................................... 218 6.4.4 소유권은 관계의 일부.......................................................................................... 219 6.4.5 자산 수명 주기 .................................................................................................. 220 6.4.6 트랜잭션을 통한 자산의 수명 주기 기술.................................................................. 221

6.5 트랜잭션이란? ......................................................................................................... 222 6.5.1 변화의 근본적인 개념.......................................................................................... 222 6.5.2 트랜잭션의 정의와 인스턴스 ................................................................................ 223 6.5.3 암시적 트랜잭션과 명시적 트랜잭션 ...................................................................... 223 6.5.4 계약의 중요성 ................................................................................................... 224

18


CONTENTS

6.5.5 서명 ............................................................................................................... 225 6.5.6 다자간 트랜잭션 처리를 위한 스마트 계약 .............................................................. 225 6.5.7 디지털 트랜잭션 처리 ......................................................................................... 226 6.5.8 트랜잭션 시작 ................................................................................................... 226 6.5.9 트랜잭션 이력.................................................................................................... 227 6.5.10 트랜잭션 흐름.................................................................................................. 227 6.5.11 트랜잭션을 여러 비즈니스 네트워크로 분리 .......................................................... 228 6.5.12 트랜잭션 이력 및 자산 상태 ............................................................................... 228 6.5.13 트랜잭션 이력으로서의 비즈니스 네트워크 ........................................................... 229 6.5.14 규제 기관 및 비즈니스 네트워크 ......................................................................... 229

6.6 이벤트: 컴포저를 이용한 비즈니스 네트워크 설계의 관점.............................................. 230 6.6.1 보편적인 개념 ................................................................................................... 230 6.6.2 메시지는 이벤트의 알림....................................................................................... 231 6.6.3 이벤트 구조의 예 ............................................................................................... 232 6.6.4 이벤트와 트랜잭션 ............................................................................................. 232 6.6.5 외부 이벤트 vs. 명시적 이벤트 ............................................................................. 233 6.6.6 참여자의 행동을 촉발하는 이벤트 ......................................................................... 233 6.6.7 느슨한 결합 설계................................................................................................ 233 6.6.8 이벤트의 유용성 ................................................................................................ 234

6.7 비즈니스 네트워크 구현 ............................................................................................ 235 6.7.1 탈물질화의 중요성 ............................................................................................. 235 6.7.2 블록체인이 B2B와 EDI에 주는 혜택 ..................................................................... 236 6.7.3 블록체인과 상호작용하는 참여자 .......................................................................... 237 6.7.4 API를 사용하여 비즈니스 네트워크에 접근하기 ....................................................... 237 6.7.5 3계층 시스템 아키텍처 ....................................................................................... 238 6.7.6 하이퍼레저 패브릭과 하이퍼레저 컴포저................................................................. 238

6.8 마치며 ...................................................................................................................... 239

19


CHAPTER

7 비즈니스 네트워크의 예 7.1 신용장 예제............................................................................................................... 241 7.1.1 샘플 설치 ......................................................................................................... 242 7.1.2 샘플 실행하기 ................................................................................................... 242 7.1.3 프로세스 다시 보기 ............................................................................................ 254

7.2 신용장 프로세스 분석 ............................................................................................... 255 7.2.1 플레이그라운드.................................................................................................. 255 7.2.2 비즈니스 네트워크 보기 ...................................................................................... 256

7.3 비즈니스 네트워크 기술 ............................................................................................. 257 7.3.1 참여자 기술....................................................................................................... 257 7.3.2 자산 기술.......................................................................................................... 257 7.3.3 트랜잭션 기술.................................................................................................... 258 7.3.4 이벤트 기술....................................................................................................... 259

7.4 비즈니스 네트워크 모델 ............................................................................................ 260 7.4.1 네임스페이스 .................................................................................................... 260 7.4.2 열거형 ............................................................................................................. 260 7.4.3 자산 정의 ......................................................................................................... 261 7.4.4 참여자 정의 ...................................................................................................... 264 7.4.5 컨셉 정의 ......................................................................................................... 269 7.4.6 트랜잭션 정의 ................................................................................................... 270 7.4.7 이벤트 정의 ...................................................................................................... 271

7.5 라이브 네트워크 검사 ............................................................................................... 272 7.5.1 신용장 인스턴스 검토 ......................................................................................... 273 7.5.2 참여자 인스턴스 검사 ......................................................................................... 275 7.5.3 트랜잭션 인스턴스 검사 ...................................................................................... 275 7.5.4 네트워크에 새 트랜잭션 제출 ............................................................................... 276 7.5.5 트랜잭션 구현 방법 이해 ..................................................................................... 280

20


CONTENTS

7.6 비즈니스 네트워크 API 생성 ..................................................................................... 284 7.6.1 SWAGGER API 정의 ....................................................................................... 285 7.6.2 SWAGGER를 사용하여 네트워크 쿼리하기 .......................................................... 285 7.6.3 커맨드 라인에서 네트워크 테스트하기 ................................................................... 288 7.6.4 SWAGGER를 사용하여 새 편지 만들기 ............................................................... 288 7.6.5 네트워크 카드 및 지갑 ........................................................................................ 292 7.6.6 접근 제어 목록 .................................................................................................. 296

7.7 마치며 ...................................................................................................................... 297

CHAPTER

8 블록체인 네트워크에서의 애자일 8.1 프로모션 프로세스 정의 ............................................................................................ 300 8.1.1 스마트 계약 고려 사항 ....................................................................................... 300 8.1.2 통합 계층 고려 사항 ........................................................................................... 302 8.1.3 프로모션 프로세스 개요 ...................................................................................... 302

8.2 지속적 통합 파이프라인 구성 .................................................................................... 306 8.2.1 파이프라인 프로세스의 사용자 정의 ...................................................................... 306 8.2.2 스마트 계약 패키지 게시 ..................................................................................... 312

8.3 깃 저장소 설정하기 ................................................................................................... 314 8.3.1 스마트 계약의 코드 소유자 설정 ........................................................................... 314 8.3.2 마스터 브랜치 보호 ............................................................................................ 316 8.3.3 커밋 서명 및 유효성 검사를 위한 깃 설정................................................................ 318

8.4 종단간 프로세스 테스트 ............................................................................................ 321 8.4.1 새 트랜잭션 만들기 ............................................................................................ 321 8.4.2 테스트 케이스 추가하기 ...................................................................................... 325 8.4.3 새 버전 릴리스 .................................................................................................. 328

8.5 네트워크 업데이트 .................................................................................................... 330 8.5.1 컨소시엄에 알리기 ............................................................................................. 330

21


8.5.2 비즈니스 네트워크 업그레이드 ............................................................................. 331

8.6 마치며 ...................................................................................................................... 333

CHAPTER

9 블록체인 네트워크의 수명 9.1 하이퍼레저 패브릭 응용프로그램 수정 또는 업그레이드 .............................................. 336 9.1.1 패브릭 블록체인과 응용프로그램 수명 주기 ............................................................ 339 9.1.2 채널 설정 업데이트 ............................................................................................ 342 9.1.3 스마트 계약 및 정책 업데이트 .............................................................................. 355 9.1.4 플랫폼 업그레이드 ............................................................................................. 361

9.2 시스템 모니터링 및 성능 ........................................................................................... 365 9.2.1 측정 및 분석 ..................................................................................................... 366 9.2.2 패브릭 응용프로그램에서 측정 또는 이해해야 할 사항 .............................................. 367 9.2.3 패브릭 응용프로그램의 측정 및 데이터 수집 ........................................................... 369 9.2.4 성능을 위한 패브릭 엔지니어링 지침 ..................................................................... 376

9.3 마치며 ...................................................................................................................... 380

CHAPTER

10 거버넌스, 규제 산업의 필요악 10.1 탈중앙화와 거버넌스 ............................................................................................... 384 10.2 비즈니스 모델 탐색 ................................................................................................ 385 10.2.1 블록체인의 이점 ............................................................................................ 386 10.2.2 이익에서 수익에 이르기까지 ............................................................................ 389 10.2.3 네트워크 비즈니스 모델 .................................................................................. 389

10.3 비즈니스 네트워크에서 거버넌스의 역할 .................................................................. 393 10.4 비즈니스 도메인 및 프로세스 .................................................................................. 395 10.4.1 회원 수명 주기 .............................................................................................. 396 10.4.2 기금 및 수수료 .............................................................................................. 397

22


CONTENTS

10.4.3 규제 ............................................................................................................ 397 10.4.4 교육 ............................................................................................................ 398 10.4.5 서비스 수명 주기 ........................................................................................... 398 10.4.6 분쟁 ............................................................................................................ 399

10.5 거버넌스 구조 ........................................................................................................ 399 10.5.1 중앙화된 거버넌스 .......................................................................................... 400 10.5.2 탈중앙화된 거버넌스 ...................................................................................... 402

10.6 거버넌스 및 IT 솔루션 ............................................................................................ 402 10.6.1 온보딩 관리 ................................................................................................... 404

10.7 마치며 .................................................................................................................... 407

CHAPTER

11 하이퍼레저 패브릭 보안 11.1 보안에 영향을 미치는 하이퍼레저 패브릭 설계 목표 ................................................. 410 11.2 하이퍼레저 패브릭 아키텍처 ................................................................................... 412 11.2.1 패브릭 CA 또는 멤버십 서비스 공급자................................................................ 412 11.2.2 피어 ............................................................................................................. 413 11.2.3 스마트 계약 또는 체인코드 .............................................................................. 413 11.2.4 원장 ............................................................................................................ 413 11.2.5 개별 데이터 .................................................................................................. 414 11.2.6 정렬 서비스 .................................................................................................. 414

11.3 네트워크 부트스트랩 및 관리 - 보안을 향한 첫 단계 ................................................. 415 11.3.1 네트워크 생성하기 .......................................................................................... 415 11.3.2 새 구성원 추가 .............................................................................................. 416 11.3.3 체인코드 배포 및 업데이트 .............................................................................. 416 11.3.4 데이터 모델 .................................................................................................. 417

11.4 강력한 신원 - 하이퍼레저 패브릭 네트워크의 보안 핵심 ............................................ 417 11.4.1 패브릭 CA 부트스트랩하기............................................................................... 418

23


11.4.2 패브릭 CA의 사용자 관리에 대한 실질적인 고려 사항 ........................................... 421

11.5 체인코드 보안 ........................................................................................................ 421 11.5.1 체인코드를 다른 승인 피어와 어떻게 공유할까? ................................................... 422 11.5.2 누가 체인코드를 설치할 수 있을까? ................................................................... 422 11.5.3 체인코드 암호화 ............................................................................................ 422 11.5.4 속성 기반 접근 제어 ....................................................................................... 423

11.6 일반적인 위협 요소 및 하이퍼레저 패브릭이 이를 완화하는 방법 ......................................... 423 11.6.1 하이퍼레저 패브릭의 트랜잭션 개인 정보 보호 ..................................................... 424

11.7 하이퍼레저 패브릭과 양자 컴퓨팅 ............................................................................ 425 11.8 GDPR 고려 사항 ................................................................................................... 426 11.9 마치며 .................................................................................................................... 426

CHAPTER

12 블록체인의 미래와 앞으로의 과제 12.1 주요 하이퍼레저 프로젝트 요약 ............................................................................... 430 12.1.1 하이퍼레저 프레임워크 - 비즈니스 블록체인 기술................................................. 430 12.1.2 하이퍼레저 도구 ............................................................................................ 431

12.2 블록체인의 미래 ..................................................................................................... 433 12.2.1 기업 블록체인, 그리고 암호 자산 중심의 생태계 .................................................... 433 12.2.2 상호 운용성 - 비즈니스 서비스 통합 이해............................................................ 436 12.2.3 블록체인 솔루션의 확장성과 경제성 .................................................................. 436

12.3 참여를 통해 만들어나가는 하이퍼레저 블록체인 ........................................................ 437 12.4 마치며 .................................................................................................................... 440 한국어판 부록 : 하이퍼레저 패브릭 릴리스 노트 분석 (맹윤호) ................................................. 441 한국어판 부록 : 하이퍼레저 컴포저의 패브릭 버전 지원 (맹윤호).............................................. 445 찾아보기 ............................................................................................................................ 447

24


CHAPTER

1

블록체인: 기업과 산업의 관점

블록체인은 금융 서비스, 공급망, 물류 및 의료와 같은 산업의 비효율성과 비용을 해결하기 위 해 시간과 신뢰 문제를 근본적으로 해결할 것을 약속한다. 블록체인의 주요 기능으로는 불변 성immutability과 합의consensus 기반의 신뢰 시스템trust system에 의해 트랜잭션이 개정되는 공유 원장 이 있으며, 이는 여러 당사자 간의 진정한 디지털 상호작용을 원활하게 만들 수 있다.

shared ledger

이러한 디지털 상호작용은 시스템에 대한 신뢰에 연결되어 있을 뿐만 아니라 당사자 간의 상호 작용 기록을 조작 불가능하게 유지하도록 보증한다. 바로 이 특성이 부인 방지와 책임주의를 보장하고 공정한 행동을 장려한다. 블록체인 시스템 설계는 곧 신뢰를 내포하는 시스템의 구축 이라고 할 수 있다. 이 신뢰 시스템은 위험을 줄일 뿐만 아니라 트랜잭션 시스템에 보안을 높일 수 있는 암호학, 암호화, 스마트 계약 및 합의 구조와 같은 다양한 기술에 적용된다. 이 장에서는 블록체인의 면면을 다음과 같이 다룰 것이다. • 블록체인의 정의 • 블록체인 솔루션의 구성 요소 • 안전한 트랜잭션 처리 프로토콜의 기초 • 블록체인의 응용 분야 • 기업에서의 블록체인 • 기업형 디자인 원칙

1장 블록체인: 기업과 산업의 관점

25


• 블록체인 프레임워크를 선택하기 위한 사업적 고려 사항 • 블록체인 프레임워크 선택 시 고려 사항

용어 정의 - 블록체인이란? 블록체인의 기술적인 정의는, 서로 신뢰할 수 없는 주체 간의 분산 네트워크 내에서 유지 관리 되며 트랜잭션을 기록하는 변경 불가능한 원장이라고 할 수 있다. 모든 주체는 원장의 사본을 보관한다. 각 주체들은 합의 프로토콜을 실행하여 트랜잭션을 검증하고, 이를 블록으로 묶고, 블록들에 걸쳐 해시 체인을 구축한다. 이 과정을 통해 일관성을 유지하기 위해 트랜잭션을 순 서대로 나열하여 원장을 구성한다. 블록체인은 비트코인(䵱䵽䵽䵹䵃䴸䴸䵫䵲䵽䵬䵸䵲䵷䴷䵸䵻䵰䴸 )으로부터 출 발하였으며, 디지털 세계에서 신뢰할 수 있는 거래소를 운영하는 데 유망한 기술로 여겨지고 있다. 암호화폐의 기저에 깔린 블록체인은 누구나 특정한 신원이 없이도 참여할 수 있다는 점에 서 공공형public, 혹은 무허가형permissionless이다. 이러한 블록체인은 일반적으로 작업증명proof of work

( PoW )과 경제적 보상에 기반한 합의 프로토콜을 사용한다. 이와 대조적으로, 허가형

permissioned

블록체인은 신원이 알려진, 확인된 참가자 그룹 간에 블록체인을 실행하는 방법으로

발전했다. 허가형 블록체인은 서로 같은 목표를 공유하지만 서로를 완전히 신뢰하지는 않는 그 룹, 즉 펀드, 상품 또는 정보를 교환하는 사업자 간에 안전하게 상호작용이 가능한 방법을 제공 한다. 허가형 블록체인은 각 주체의 신원에 의존하여 구축할 수도 있고, 전통적인 비잔티움 장애 허용Byzantine fault tolerance ( BFT ) 합의를 사용할 수도 있다. BFT는 IT 솔루션에서 널리 사용되어온

프로토콜로, 네트워크의 노드들에 결함이 있는 상태에서도 합의에 도달할 수 있는 프로토콜이 다. 이 프로토콜은 장군들 사이에 배신자가 섞여 있음에도 전략에 대한 합의를 이루는 방식인 ‘비잔티움 장군의 문제’로부터 기인한다. 블록체인은 스마트 계약의 형태로 프로그래밍이 가능한 임의의 트랜잭션 논리를 실행할 수 있 다(예: 이더리움, 䵱䵽䵽䵹䵃䴸䴸䵮䵽䵱䵮䵻䵮䵾䵶䴷䵸䵻䵰䴸 ). 비트코인의 스크립트는 이 개념의 전신이었다. 스 마트 계약은 신뢰할 수 있는 분산 애플리케이션의 기능을 수행하며, 블록체인과 그 기저에 있 는 주체 간의 합의로부터 보안을 확보한다.

26

하이퍼레저 블록체인 개발


무허가형 블록체인에서 권한을 식별하는 것은 블록체인 플랫폼을 사용하려는 기업에게 필수적 인 요소이다. 사용 사례를 통해 합의 시스템, 거버넌스 모델, 자료구조 등에 좌우되는 기술을 어떻게 채택하는지 알 수 있다. 허가형 블록체인을 사용하면 기존의 사업 일부를 점진적으로 개선할 수 있으며, 이는 중요한 의미를 가진다. 아래 그림에서 은행의 컨소시엄이 중앙 청산소 clearing house

에 의존하지 않는 청산 및 결제를 위해 허가형 블록체인인 하이퍼레저를 어떻게 사용

할 수 있는지 확인할 수 있다.

현재의 중앙화된 청산 및 결제

하이퍼레저를 통해 탈중앙화된 청산과 결제

청산소는 거래 간의 중개자를 두어 한쪽이 조건을 위반하는 위험을 줄이기 위해 만들어진 기관 으로서, 은행들이 서로를 완전히 신뢰하지 않기에 필요하다. 조건 위반에 대한 위험은 무허가 형과 허가형 블록체인 간의 끊임없는 논쟁을 야기하지만, 이번 장에서는 그 논쟁에 대해서는 다루지 않는다. 블록체인은 현재 비즈니스와 비즈니스 모델을 변혁하고 혁신하는 방식을 제시 할 수 있다. 규제 산업에서 사용되는 대부분의 사례는 허가형 블록체인 모델을 사용한다. 이는 규제의 요구 사항 및 트랜잭션 처리의 실행 과정상의 경제적 요인 때문이다. 반면, 무허가 형 블록체인은 P2Ppeer-to-peer 트랜잭션 및 탈중개 주도형 모델과 같은 새로운 비즈니스 모델을 위한 플랫폼을 제공하지만, 그 정의상 무허가형 블록체인 구조는 트랜잭션의 무결성을 보장하 기 위해 일반적으로 PoW와 같이 엄청난 양의 컴퓨팅 자원을 사용하는 모델에 의존한다. 블록 체인 모델의 선택에 관계없이, 블록체인은 변혁 및 혁신에 대한 엄청난 가능성을 제시한다. 블록체인은 기술 플랫폼으로서 탁월한 잠재력을 가지고 있다. 블록체인은 다음과 같은 것들을 기업에 제공할 수 있다.

1장 블록체인: 기업과 산업의 관점

27


• 트랜잭션 데이터, 가치 및 상태를 본질적으로 비즈니스 논리와 가깝게 연계하는 설계 방식 • 블록체인을 기반으로 하여 탄탄한 트랜잭션 처리 기능과 신뢰성을 갖춘 안전한 프로세스 를 통해 비즈니스 거래를 안전하게 실행하고 커뮤니티를 통해 검증 • 기존 규제에 부합하는 허가된 대체 기술

NOTE_ 블록체인은 금융 및 무역 시스템 현대화와, 유가증권 및 거래 결제 회전율의 가속화와 같이 오랜 기 간 업계의 관심사였던 문제들을 해결할 잠재력을 지니고 있다.

블록체인 프레임워크의 4가지 핵심 구성 요소 블록체인 프레임워크에는 일반적으로 다음과 같은 네 가지 기본 구성 요소가 포함된다. • 공유 원장: 공유 원장은 분산 트랜잭션 기록만 추가한다. 비트코인 블록체인은 모든 데이 터를 모두가 볼 수 있도록 설계되었다. 그러나 블록체인은 소비자 데이터에 대한 규제도 고려해야 한다. 올바르게 구성된 SQL 또는 NoSQL 분산 데이터베이스를 사용하면 조작 을 불가능하게 하거나, 추가만 할 수 있는 의미구조semantics를 만들 수도 있다. • 암호학: 블록체인의 암호학은 인증 및 검증 가능한 트랜잭션을 보장한다. 블록체인의 설 계에 암호학은 필수적인데, 이는 높은 계산적 난도를 가정하고 뚫기 어려운 암호를 만드 는 데 중점을 두기 때문이다. 경제적 보상과 시스템 설계와 연관되기에 비트코인 블록체 인의 도전은 흥미롭다. 반면, 덜 민주적인 허가형 비즈니스 원장 네트워크에서는 암호학 에 관련된 고려 사항이 달라진다. • 신뢰 시스템 또는 합의: 신뢰 시스템은 네트워크의 힘을 사용하여 트랜잭션을 검증하는 것 을 말한다. 신뢰 시스템은 블록체인 시스템의 중심인 동시에 블록체인 애플리케이션의 핵심이다. 모든 검증이 합의를 통해 이루어지기 때문에 합의 시스템consensus system은 곧 신 뢰 시스템이라고도 부를 수 있다. 이러한 신뢰라는 기본 요소가 곧 블록체인 인프라의 전 반적인 설계 및 투자에 영향을 준다. 블록체인 공간에 새로운 참가자가 있을 때마다 신뢰

최근에는 컨소시엄 방식 등과 같이 간접 민주주의 방식도 고려되고 있다.

28

하이퍼레저 블록체인 개발


시스템은 수정되고, 특정 블록체인의 사용 사례에 특화된 변형이 만들어진다. 신뢰, 거 래, 소유권은 블록체인 기술의 필수 요소이다. 회사 간 거래의 경우, 신뢰 시스템은 참여 기업 간의 거래를 관리한다. P2P 모델 및 공유경제 구조를 가지는 B2B 모델 등의 특정 사례에 대해 가장 적합한 신뢰 시스템을 정의하기 위해서는 여전히 많은 과정이 필요하다. • 비즈니스 규칙 또는 스마트 계약: 스마트 계약은 블록체인 트랜잭션 데이터베이스에 포함되 어 트랜잭션과 함께 실행되는 비즈니스 규약이다. 이것은 블록체인 솔루션의 규칙 요소 이기도 하며, 각 트랜잭션의 상태와 가치의 흐름을 정의하는 데 필요하다. 다음 다이어그램은 이러한 개념을 잘 정리해서 보여준다.

공유 원장

스마트 계약

비즈니스 네트워크 사이에서 공유되며 추가만 가능한 분산 기록 시스템

트랜잭션 데이터베이스에 포 함되며 거래와 함께 실행되는 비즈니스 규약

암호학

신뢰 시스템

적절한 가시성을 보장한다. 트 랜잭션은 안전하고 인증되며 식별 가능하다.

관련된 참가자가 트랜잭션을 승인한다.

1장 블록체인: 기업과 산업의 관점

29


위의 4가지 구성 요소는 널리 확산되어 있는 개념으로, 블록체인 이전에도 수십 년 전부터 존 재해왔다. 공유 원장은 컴퓨터 기반 스프레드시트로의 이전과 비교할 수 있을 정도로 혁신적인 변화이지만, 그 기저의 비즈니스 규칙은 동일하게 유지된다.

1.2.1 고려할 수 있는 추가 기능 기업형 블록체인에는 또 어떤 것들을 추가할 수 있을까? 고려할 수 있는 다른 기능을 대략적으 로 알아보자. • 감사 및 로깅: 블록체인 솔루션에 감사와 로깅을 포함하면 부인 방지, 기술 근본 원인 분 석, 사기 분석 및 기업의 요구 사항 해결에 도움이 된다. • 엔터프라이즈 통합: 솔루션을 기업에 통합하는 방법도 고려해볼 가치가 있다. • 기존 기록 시스템system of record (SoR )과의 통합: 목표는 블록체인 솔루션이 CRM, 비즈니스 인텔리전스, 보고 및 분석 등의 기존 시스템을 지원하는지 확인하는 것이다. • 트랜잭션 처리 시스템과의 통합: SoR을 블록체인 도입 이전의 중간 단계로 보존하려면 트랜 잭션 처리 시스템으로 통합하는 것이 합리적일 것이다. • 블록체인을 포함하기 위한 설계: 기존 시스템에 미치는 영향을 최소화하여 기업이 블록체인 을 채택하는 속도를 높인다. • 모니터링: 모니터링은 규제를 준수하고 높은 가용성, 용량 계획, 패턴 인식 및 결함 식별을 보장하는 중요한 기능이다. • 보고 및 규제 측면의 요구 사항: 블록체인 도입의 중간 단계로 트랜잭션 처리 시스템을 채택 하는 경우에도 규제 문제를 해결할 준비가 되어 있어야 한다. 블록체인이 엔터프라이즈 적합성을 갖출 때까지, 또는 엔터프라이즈 소프트웨어가 블록체인 적합성을 갖출 때까지 는 보고 및 규제 측면의 요구 사항을 우회하기 위해 기존 SoR과의 연결을 만들어두는 것 이 좋다. • 엔터프라이즈 인증, 권한 부여 및 계정에 대한 요구 사항: 무허가형 블록체인인 비트코인 블록 체인과 달리 허가형 체계를 가진 엔터프라이즈 환경에서는 모든 블록체인 네트워크 참가 자를 식별하고 추적할 수 있어야 한다. 참가자가 생태계에 참여하기 위해서는 각 참가자 의 역할이 정의되어야 한다.

30

하이퍼레저 블록체인 개발


안전한 트랜잭션 처리 프로토콜의 기초 앞에서 암호화는 블록체인 솔루션의 핵심 구성 요소 중 하나라고 언급한 바 있다. 비트코인 블 록체인의 기본 보안은 원장의 모든 주요 구성 요소를 우아하게 암호화하여 연결함으로써 구성 된다. 구체적으로 설명하자면, 트랜잭션은 머클 트리Merkle tree를 통해 서로 연결한다. 머클 트리 는 모든 잎leaf 노드가 데이터로부터 계산된 해시를 가지고, 잎이 아닌non-leaf 노드가 모든 자식 의 해시를 포함하는 트리 자료구조의 개념을 기반으로 한다. 이 방법은 민감한 내용에 대한

child

잎 노드의 내용을 숨기면서도 해시를 남겨 트리 구조의 완결성을 보전하기에, 데이터의 무결성 을 보장하면서도 프라이버시를 유지한다. 머클 트리의 루트root는 블록 헤더에 포함되며, 블록 헤더는 이전 블록의 헤더에 대한 참조를 포함한다. 암호학적으로 강화된 상호연결성interconnectivity은 분산 원장을 더 안정적이고 안전하게 만든다. 어느 시점에서든, 구성 요소 사이의 연계 중 어디에라도 문제가 생기면 악의적인 공격에 노출 된다.

블록 해시:

블록 15 앞 블록의 해시:

블록 해시:

블록 해시:

블록 16

블록 17

앞 블록의 해시:

앞 블록의 해시:

서명

서명

서명

데이터베이스 해시

데이터베이스 해시

데이터베이스 해시

트랜잭션

트랜잭션

트랜잭션

트랜잭션

트랜잭션 또한 주로 머클 트리를 통해 블록체인 구조의 나머지 부분에 암호학적으로 연결된다. 블록 내에서 다른 모든 부분이 그대로인데 한 트랜잭션이 조작되는 경우, 블록의 모든 트랜잭 션과 해당 헤더 간의 연결은 끊어진다.

1장 블록체인: 기업과 산업의 관점

31


블록/이전 블록 해시 블록 해시:

블록 15

현재 블록 해시 현재 블록 번호

앞 블록의 해시:

이전 블록 해시 작성자 서명

서명

데이터베이스 해시

트랜잭션

데이터베이스 상태

이전에 기록된 블록에서부터 발생한 트랜잭션

트랜잭션

변경된 트랜잭션으로부터 새로 발생되는 머클 트리 루트는 이미 블록 헤더에 있는 루트와 일치 하지 않으므로, 블록체인의 다른 부분과 연결되지 않는다. 만약 우리가 계속해서 블록의 헤더 에서 머클 트리 루트를 변경한다면, 결국 헤더들의 연결을 끊게 되고 결국 블록체인 자체의 보 안 모델을 망가뜨리게 된다. 따라서, 블록의 내용만을 변경하는 경우에 블록체인의 나머지 구 성 요소는 안전하게 유지된다. 블록 헤더는 늘 이전 블록의 헤더를 포함하는 구조로 연결되기 때문이다.

블록체인 기술의 현재와 미래 블록체인은 이미 비즈니스를 혁신하고 있으며, 가까운 장래에 산업, 정부 및 우리의 삶을 크게 바꿀 것으로 전망된다.

32

하이퍼레저 블록체인 개발


1.4.1 대전환 암호화폐와 초기 코인 공개initial coin offering (ICO )의 세계, 그리고 규제된 비즈니스의 세계 사이는 상당히 분열되어 있다. 여기에서 규제된 비즈니스란 시장 잠재력과 운영 효율성을 평가하기 위 해 공동으로 노력하는 은행과 금융기관으로 구성된다. 양쪽 모두 이익 추구를 위해 블록체인이라는 추진력을 이용한다. 블록체인 생태계는 마치 사춘 기 청소년처럼 현상을 유지하고자 하는 것들에 도전하며 모든 것을 부정한다. 이러한 도전은 새로운 비즈니스 모델, 탈중개화에 대한 기대, 흥미로운 기술 혁신을 통해 가속되었다. 블록체 인이 추진력을 얻으면서 비트코인과 여타 암호 자산의 가치는 급상승했고, ICO가 등장하면서 기존의 자금조달과 관련한 규제를 모두 뛰어넘었다. 반면 기업 진영에서는 더 신속한 결제와 은행 간 이체, 디지털화를 통한 투명성, 공급망에서의 대칭적 정보 보급, 사물인터넷Internet of Things (IoT ) 장치 간의 특수한 신뢰 구축 등을 추구하면서 청산 및 결제와 관련된 산업 연합체가 점점 늘어나고 있다. 블록체인은 양쪽 진영의 공통의 주제로서 존재한다. 블록체인의 산업적 사용 사례에 대한 혁신 적인 솔루션을 지속적으로 발전시키고 개발한다면, 블록체인은 더욱 성숙하여 신뢰의 기반 위 에서 효율적이고 저렴한 비용의 시스템을 구축할 수 있을 것이다.

1.4.2 블록체인 조달을 위한 경제적 모델 블록체인 기술로 뒷받침되는 비즈니스 네트워크는 산업에 변화와 혁신을 가져올 수도 있지만, 그 번성을 위해서는 경제적 모델이 필요하다. 혁신이 목표라면 기술, 재능 및 시장 시너지에 대 한 투자가 경제적 인센티브의 유인과 결합될 수 있다. 예를 들어, ICO는 일반적으로 네트워크 상의 가치 생성 경제 시스템을 의미하는 용어인 토큰 경제tokenomics에 의존한다. 토큰이란 해당 시스템이나 네트워크에서 생성되는 가치의 단위로서, 공급자 또는 소비자를 위한 플랫폼을 만 들든, 비즈니스 모델에서 자체적으로 관리하는self-governing 가치 네트워크를 공동으로 구축하든, 다양한 주체들이 토큰을 사용하여 모든 이해관계자가 이익을 얻는 보상을 만들고, 분배하고, 공유하게 된다. 암호화폐로 대부분 자금을 조달받는 ICO는 벤처 캐피털(그리고 크라우드펀딩 프로젝트)이 주도하는 현재의 자본 구축 메커니즘을 거부한다. 이 분야에서는 증권형과 유틸리티형 코인 간

1장 블록체인: 기업과 산업의 관점

33


의 차이를 규정하기 위한 혁신적인 논쟁이 계속되고 있다.

ICO는 탈중앙화decentralization, 개방형 거버넌스open governance (또는 자치), 투명성을 근본으로 하는 경제 시스템을 구축하여 혁신에 대해 보상하고 중개자를 제거하고자 한다. 초기에 ICO 사례는 실패도 겪고 성공도 겪었지만, 어쨌든 암호자산cryptoasset이 교환 가능한 가치 창출의 기본 단위 가 되어 혁신을 위한 경제에 기름을 붓는 미래를 미리 보여주었다. 기업 진영에서는 기술을 이해하고 생태계, 비즈니스 네트워크, 규제, 기밀, 프라이버시 및 비 즈니스 모델을 재구성하여, 다양한 산업의 블록체인 네트워크에 영향을 미치는 데 중점을 두고 있다. 블록체인을 탐구하는 기업은 블록체인을 사용하여 혁신을 도모하고 결과를 빠르게 보여 줄 수 있는 유용한 사례를 찾고 있다. 블록체인은 트랜잭션 데이터, 출처 및 이력에 대한 근본적인 제어 기능을 제공함으로써 산업 영역에서의 정보 대칭성이 형성되도록 돕는다. 이는 작업 흐름의 효율화와 비즈니스 절차의 변 화로 이어질 수 있다. 그러나 초기의 많은 프로젝트는 탈중개화, 탈중앙화, 강력한 자체 거버넌 스 모델이라는 블록체인의 핵심 특성에 초점을 맞추지 않았다. 그럼에도, 거기에는 합당한 이 유가 있다. 산업 및 기존의 비즈니스는 현재의 비즈니스 목표, 모델, 성장에 집중하며, 그 무엇 보다도 규제 준수에 집중하는 경향이 있다. 기존의 비즈니스 운영에서 이런 점들이 강조된다는 것은 혁신적 모델로 자연스럽게 넘어가기가 어렵다는 것을 의미한다.

1.4.3 시행착오 어떠한 새로운 기술이든 항상 학습 곡선이 있다. 블록체인이 진화하고 산업 규제와 엮이기 시 작하면서, 이러한 산업 내에서 기밀성, 프라이버시, 확장성 및 성능과 같은 문제들을 해결하기 위해 설계상의 중요한 고려 사항들이 있다는 점이 금세 알려졌다. 이러한 요소들은 네트워크 를 관리하는 비즈니스 모델 및 블록체인 네트워크를 설계하는 것과 관련된 상당한 비용 문제로 이어진다. 이러한 도전 과제를 해결하는 것은 흥미로울 뿐만 아니라, 기존의 규제 산업과 기업 에서 이러한 문제를 해결하는 데 훌륭한 인재들이 참여하며 새로운 활력을 얻는 등의 긍정적인 영향도 생긴다. 기업은 블록체인 기술로 구축한 생태계와 네트워크가 진보와 성공에 기여할 것 으로 보고 있다. 허가형 네트워크(규제된, 기존의 기업형 비즈니스 네트워크) 역시 모든 이해관계자에게 혜택

34

하이퍼레저 블록체인 개발


을 주기 위해 아이디어를 짜고, 보상을 분배하고 공유하는 플랫폼에 기관들이 참여하도록 하는 인센티브 모델을 찾을 필요가 있다. 많은 전통적인 비즈니스 및 산업계에서 토큰 경제를 기반 으로 하는 경제적 인센티브를 무작정 채택할 수는 없지만, 새로운 가치를 낳고, 현대화를 가속 하기 위한 비즈니스 모델에 대한 탐구는 계속되어야 할 것이다.

1.4.4 신뢰와 책임에 대한 약속 신뢰와 책임에 관한 시스템적 문제로 점철된 많은 산업 분야에서, 블록체인 기술은 신뢰와 보 안을 이끌어 낼 수 있는 안전한 트랜잭션 네트워크의 토대가 될 것이다. 기술 측면에서 볼 때, 안전하고, 투명하며, 감사가 가능auditable하고, 효율적이며, 조작 불가능한 트랜잭션을 처리하고 기록하는 시스템을, 블록체인으로 쉽게 구축할 수 있다. 이런 기술 특성은 현재의 분산 트랜잭 션 시스템이 시달리고 있는 시간과 신뢰 문제를 해결하는 데 도움이 된다. 블록체인은 기본적으로 다중 계층 모델을 단일 계층 트랜잭션 처리 모델로 전환한다. 이것은 새로운 비즈니스 모델을 만들거나, 새로운 시스템을 통해 효과를 창출하거나, 탈중개화를 통해 산업을 근본적으로 혁신할 것이다. 탈중개화disintermediation란 은행을 통하지 않고 증권시장에 직접 투자하는 것과 같이 생산자와 소

비자 간의 중개자가 줄어드는 것을 의미한다. 역사적으로 금융 업계에서는 모든 거래가 거래 를 처리할 상대방을 필요로 했다. 탈중개화는 중개자를 없애는 것으로, 중재를 기반으로 하는 비즈니스 모델과 보상 경제를 혁신한다. 최근 몇 년 동안 마케팅에 대한 통찰과 보다 풍부한 사 용자 경험을 제공하고자 하는 조직의 욕구에 의해 주도된 디지털 기술의 결과로 엄청난 혁신이 있었다. 블록체인은 거래, 신뢰 및 소유권을 공식equation에 도입하여 혁신을 겨냥하는 기술이다. 블록체 인 데이터베이스 및 기록으로 대표되는 기술 패턴은 금융, 공급망 및 기타 거래 네트워크를 근 본적으로 향상시켜, 비용과 위험을 줄이면서 혁신 및 성장을 위한 새로운 기회를 제공한다.

1장 블록체인: 기업과 산업의 관점

35


블록체인 기술을 적용하는 산업 블록체인 사용 사례를 간단히 살펴보자.

전체 산업계에서 태동하는 블록체인 사용 사례들 은행

공급망

정치

•공급망 및 무역금융

•작업 흐름의 디지털화

•자산 등록

•고객알기제도(KYC)

•공급망 가시화

•주민 신원

•트랜잭션 저장, 결제 및 디지털

•출처 및 경로 추적

•허위와 실제 판별

금융시장

의료

보험

•거래 후 처리 과정

•의료 데이터 교환

•복잡한 위험 인식 범위

•미등록 증권, 사모펀드

•임상 시험 관리

•단체 보험

•참조 데이터

•결과 기반 계약

•매개변수 보험

•화폐 간 지급 결제

•약제 공급망

•자산 사용 내역

화폐

•배상 청구

•모기지 소매

생산

•공급망

•공급망

•충성 고객 프로그램

•생산 품목

•정보 공유(공급자-소매상)

•유지보수 추적

기업에서의 블록체인 지금까지 블록체인이 얼마나 다양한 산업 분야에서 부상하고 있는지 살펴보았다. 이제 기업에 서 블록체인을 사용할 때의 기본 원칙에 대해 이야기해보자. 왜 기업은 시스템이나 애플리케이 션에 블록체인 기술을 적용하려고 하는가?

1.6.1 어떤 애플리케이션이 잘 맞는가? 기업은 애플리케이션 설계 과정 중 기준을 정하여 블록체인 기술을 가장 잘 적용할 수 있는 곳 이 어디인지를 평가해야 한다. 블록체인을 어떠한 애플리케이션이나 시스템에 적용했을 때 도

36

하이퍼레저 블록체인 개발


움이 될지를 기업이 결정하는 몇 가지 기준의 예시는 다음과 같다. • 거래, 신뢰, 소유권이 중요한 애플리케이션: 이전에 설명한 것처럼, 거래, 신뢰, 소유권이라 는 세 가지 가치는 모든 블록체인 시스템의 기본 요소이다. 거래 및 소유권은 원장 항목 의 변동 및 이전을 의미하며, 여기서 신뢰는 트랜잭션 시스템이 가지는 신뢰가 필요 없는 trustless

성질을 칭한다.

• 기본적으로 거래의 성격이 있는 애플리케이션: 분산 데이터베이스, 즉 NoSQL이나 관계형 데 이터베이스에서는 왜 블록체인과 같은 이점을 얻을 수 없는지에 대해 종종 논쟁이 있다. 하지만 다자 간 거래는 애플리케이션을 블록체인에 적합하게 만드는 요인이다. 블록체인 기반 트랜잭션 시스템의 식별과 검증을 필요로 하는, 수많은 작은 거래들이 있는 장기적 실행 프로세스가 분명 존재한다. 반면 데이터베이스는 기업형 시스템에 맞게 유지되고 복제되어 사용할 수 있다. 다른 고려 사항으로는 시간이 지남에 따라 증가할 수 있는 데 이터 세트의 크기, 로깅 오버헤드 등이 있다. • 비독점적 참여자로 구성된 비즈니스 네트워크: 세 번째 기준은 분산 및 탈중앙화 컴퓨팅 모델 을 다룬다. 블록체인 신뢰 시스템은 모든 모델에서 작동할 수 있으나, 블록체인 비즈니스 네트워크의 신뢰는 비독점적으로 참여(허가형 컨소시엄 네트워크 모델)하는 다중 참여 자 구조에서 비롯된다. 과점oligopolistic까지도 허용될 수 있지만(허가형 프라이빗 네트워크 모델), 참가자가 합리적으로 행동한다 전제하더라도 중앙 집중적 관리를 막는 신뢰 모델 을 고안하는 것은 필수적이다. 많은 내부 사용 사례들은 이 원칙을 따르지 않기에, 분산 애플리케이션 모델에 더 적합하다. 블록체인을 어디에 의미 있게 사용할지를 이해하고 결정하고자 하는 기업의 경우, 사용 사례를 선택할 때 단순 명료한 접근 방식이 있다. 지속 가능한 블록체인 솔루션의 적절한 용례가 등장 한다면 장기적인 비즈니스 목표를 달성하고 기술 투자에 대한 높은 수익을 이룰 것이다. 이것은 기업 문제, 즉 기업이 자원과 시간을 들일 만큼 충분히 큰 문제, 그리고 같은 문제를 가 지고 있는 집단의 인식과 함께 시작한다. 회사가 이 기업 문제가 산업의 문제 (대차 업무, 담보대 출 등)이기도 하다는 사실을 깨달을 때, 블록체인의 가능성이 가장 큰 사례를 발견하게 될 것 이다. 조직은 기업형 애플리케이션을 위해 전반적인 블록체인의 이점을 파악하면서도, 전체 블록체 인 환경 중 작은 부분들에도 관심을 가져야 한다. 블록체인을 사용하여 특정 과제를 해결하는

1장 블록체인: 기업과 산업의 관점

37


혁신적인 방법들은 많이 있다. 많은 업체가 특정 사례를 처리하기 위해 특수하게 변형한 신뢰 시스템을 제공하며, 기존 산업에서 블록체인을 통해 최상의 이점을 얻을 수 있는 사례들을 정 의했다. 이러한 전문화된 업체는 빠른 디지털 상호작용에 대한 소비자의 요구를 충족시키기 위 해 빠른 솔루션을 제공하려 한다. 블록체인의 특성은 탈중앙화되고, 분산화되고, 전 세계적이며, 영구적이고, 코드를 기반으로 하는, 프로그래밍 가능한 자산 및 트랜잭션 기록과 같은 신속한 소비자 중심 결과물을 제공하 는 데 도움이 될 수 있다. 블록체인을 모든 기업형 애플리케이션 문제를 해결하기 위한 만능 도 구로 생각하는 것은 경계해야 하지만, 블록체인을 다양한 거래형 애플리케이션에서 사용할 수 있는 것은 분명하다. 이제부터 기업에서 블록체인을 어떻게 인식하는지, 이 기술을 기업형으로 도입하는 데 어떤 문 제가 있는지 논의해보겠다. 다음 절에서 기업의 관점에서 블록체인의 영역을 설정하는 데 도움 이 되는 세 가지 영역을 조망해볼 것이다.

1.6.2 기업은 블록체인을 어떻게 보는가? 급진적 개방성은 블록체인의 주요한 측면이지만, 기업에서는 이 급진적 개방성의 영향과 의미 를 고려하는 것이 중요하다. 공공형 블록체인은 매우 단순하게 작동할 수 있으며, 익명화된 합의 구조로 뒷받침되는 신뢰 시스템을 통해 검증된 모든 트랜잭션을 다루는 고도로 분산된 관리자master 목록을 지원한다. 그 러나 블록체인의 기본 원칙을 수정하지 않고도, 신뢰가 필요 없는 시스템 모델을 기업이 바로 적용할 수 있을까? 조직은 과연 이 혁신적 기술을 조직을 탈바꿈할 수 있는 길로 생각하는가? 아니면 단지 신뢰 시스템을 통해 현재의 프로세스를 좀 더 효율적으로 만들 수 있는 도구로 생각하는가? 어떤 쪽 이든, 기업은 블록체인을 채택하면서 현재의 시스템에 최소한의 영향을 미치고 싶어 하지만, 달성하기는 쉽지 않을 것이다! 결국, 현 시스템의 비효율적 설계는 기업으로 하여금 이러한 패 러다임 전환을 고려하도록 강제한다. 블록체인에 대한 다양한 개념과 사용 사례는 여전히 기업 의 수요와 거리가 있다. 블록체인을 실험하고 채택한 첫 번째 업계는 금융 서비스 부문이었다. 이 업계는 신생 기업의

38

하이퍼레저 블록체인 개발


물결에 의해 혼란에 빠질 수 있다는 두려움에 직면했다. 다른 많은 산업과 마찬가지로, 금융 업 계 역시 더 빠르고 저렴한 거래에 대한 소비자의 요구에 의해 변화하고 있다. 금융 서비스에는 무역금융, 거래 플랫폼, 지불 및 송금, 스마트 계약, 크라우드펀딩, 데이터 관리 및 분석, 시장 대출, 블록체인 기술 인프라 등의 잘 정의된 사용 사례가 있다. 금융업에서 보여준 블록체인의 용도는 앞으로 의료, 소매, 공공 등 다른 산업에도 침투할 것이다. 블록체인은 새로 태동하는 기술로서 많은 좋은 아이디어가 결집되어 있지만, 기업용으로 사용 하기에는 아직 미성숙한 상태이다. 표준에 대한 정의도 부족하여, 다중 도메인 체인 간의 상호 운용성을 높이기가 어렵다. 따라서 블록체인을 채택하는 기업은 더 많은 혁신에 기여하고 블록 체인 표준 개발에 필요한 것들을 지원할 수 있는 역량을 구축해야 한다. 이를 통해 기존 비즈니 스 관행을 개선하고 블록체인 기반의 신뢰 웹에 구축된 새로운 비즈니스 모델을 개발하는 특별 한 기회를 잡을 수 있을 것이다.

블록체인 - 트랜잭션 처리 메커니즘 기업 환경에서의 고려 사항 •기존 SoR과의 통합 •규제 요구 사항 •데이터 표준 - ISO20022, EDI 820 등

앱A

앱B

체인 A

원장 간 연결

체인 B

원장 간 연결

앱C

앱D

체인 C

체인 D

•트랜잭션 처리 및 기업 SoR 시스템 유지 를 위한 블록체인 역할 •설계 의도 - 최소한의 파괴적 혁신 - 기업 적용 가속

pBFT

BFT

블록/원장

PoW/PoS

암호학

RAFT

암호화

트랜잭션 처리 시스템으로서의 블록체인

규제 기업 - 블록체인 연결

기업 트랜잭션 시스템/ SoR

BI/데이터/ 통계

맞춤형

관리

1.6.3 블록체인 기술의 적용을 정당화하기 위한 리트머스 검사 근본적으로 블록체인은 트랜잭션 경제의 세 가지 측면을 다룬다. • 거래 • 소유권 • 신뢰

1장 블록체인: 기업과 산업의 관점

39


블록체인의 주목할 만한 기술 요소는 다음과 같다. • 신뢰 시스템의 기반 기술: 합의, 채굴, 공공 장부 • 개방형 네트워크상의 비밀 통신: 암호학 및 암호화 • 부인 방지 시스템: 프로세스 스택에 대한 가시성 블록체인 기술의 함의는 거대할 수 있지만, 조직은 기존 또는 새로운 프로젝트에 기업형 블록 체인을 적용할 수 있도록 특수한 기업 영역의 기준을 고안해야 한다. 블록체인 기술의 변동 가능성과 현재의 과도한 기대 곡선을 감안할 때, 기업은 체인 결정 매트 릭스를 도구로 사용하여 이 기반 기술을 비즈니스 영역에 적용하기 위한 체계적인 접근 방식 을 확보해야 한다. 이 접근법은 일관성 있는 블록체인 인프라와 신뢰 시스템 관리 자체에도 도 움이 되며, 많은 애플리케이션 기반 체인이 발전하고 기업의 가시성, 경영, 관리에 대한 요구가 커짐에 따라 더욱 중요해질 것이다.

1.6.4 기업 전반을 위한 블록체인 인프라 통합 기업이 블록체인을 채택한다면 기존 시스템에 대한 파괴적 혁신을 가져오는 목표를 설정해야 한다. 기업의 SoR과 어떻게 통합할지 생각해보는 것도 목표를 설정하는 한 가지 방법이다. 이 렇게 기업은 블록체인 기반 트랜잭션 처리를 구현하고 비즈니스 인텔리전스, 데이터 분석, 규 제 대응, 보고 같은 다른 애플리케이션에 대한 인터페이스로 기존 SoR을 이용할 수 있다. 기업 블록체인 기술의 인프라와, 기술을 사용하여 경쟁 우위를 확보하고자 하는 비즈니스 도메 인을 분리하는 것은 필수적이다. 블록체인은 다양한 비즈니스 중심 체인들 사이에서 기업 간 시 너지interprise synergy를 높이는 동시에, 사업 뒤에서 작동하는 보이지 않는 기업형 체인의 인프라라

고 할 수 있다. 이 관점은 비즈니스 영역과, 이를 지원하는 기술을 분리하여 생각한다. 체인 애 플리케이션은 적합한 신뢰 시스템이 있는 비즈니스 영역에서 관리해야 한다. 반복해서 말하지 만 신뢰 시스템은 블록체인의 핵심이며, 따라서 주어진 비즈니스 애플리케이션의 요구 사항에 적합해야 한다. 인프라 및 컴퓨팅 요구 사항의 비용은 기업에서 사용할 수 있는 신뢰 시스템을 어떻게 선택하는지에 따라 결정된다.

40

하이퍼레저 블록체인 개발


블록체인 기술 인프라를 분리하고 신뢰 중개자와 유연성을 더하는 설계, 그리고 모듈형 신뢰 시스템을 통해 교체 가능한 신뢰 시스템을 중심으로 아키텍처를 구축함으로써, 기업은 자금세 탁방지anti-money laundering ( AML ), 고객알기제도know your customer ( KYC ), 부인 방지, 기타 등등의 비즈니스와 규제 요구 사항에 집중할 수 있게 된다. 블록체인 애플리케이션의 인프라는 반드시 개방적이고, 모듈형이며, 모든 블록체인 형태에 적용 가능하게 구축하여, 쉽게 블록체인을 운 용할 수 있게 해야 한다. 기업 간 시너지는 기업형 체인의 내부 및 외부 연결interledger을 가능하게 하기 위한 수많은 기업형

블록체인 간의 협업을 제시한다. 이 모델에서 트랜잭션은 다양한 신뢰 시스템을 넘나들고, 기 업의 거버넌스 및 제어 시스템과의 상호작용에 대한 가시성을 제공한다. 프랙털 형태의 연결 및 관련된 기업 데이터 보호는 비즈니스 단위와 외부 기업 간의 상호작용에서 중요한 고려 사 항이다. 보이지 않는 기업형 체인 인프라는 기업 간의 커넥터를 발전시키고 API를 공개하여 기 존 시스템을 보다 블록체인에 적합하게 하는 기반을 제공할 것이다. 기업 간 시너지는 비즈니스 체인 간의 프로그래밍 가능한 조건부 계약(스마트 계약)으로 인해 급증할 것이다.

비전 – ‘기업 간 시너지’ 기업형 체인 인프라 BI/데이터 기업 시스템 파트너사/ 자율 분산형 조직

새로운 비즈니스 모델을 가능하게 하는 설계

interledger/ ILP

•보이지 않는 기업형 체인 인프라는 기반을 제 공함

결제 조건부 계약

BI/데이터 기업 시스템 모기지

•커넥터, API의 사용은 기존 시스템이 체인에 연계될 수 있게 한다.

조건부 계약

기업형 체인 인프라

•체인 간의 조건적 계약 – ‘기업 간 시너지’

BI/데이터 기업 시스템

•온전히 블록체인을 기반으로 하는 새로운 비 즈니스(예: P2P 대출, 크라우드펀딩)가 탄생

보안화 금융거래 BI/데이터

신원 인증 기업 시스템

크라우드펀딩

기업 시스템

1장 블록체인: 기업과 산업의 관점

41


기업이 블록체인을 받아들일 준비가 되었는지 어떻게 알 수 있을까? 더 중요한 질문은 이것이 다. 블록체인을 도입할 때 기존 트랜잭션 시스템에 통합하는 데 집중할지, 또는 기업을 고려한 블록체인 인프라와 결합하는 데 집중할지를 결정해야 한다. 기업형 블록체인의 이점을 최대한 활용하려면, 기업 통합에 둘 이상의 사용 사례가 필요하며 기업 간 시너지를 이끌어내야 한다. 가장 성공적인 블록체인 사용 전략은 처음에는 기술에 중점

을 둔 뒤, 기존 엔터프라이즈 비즈니스 시스템과의 통합을 고려하는 것이다. 이를 통해 집단의 이해를 증진하고 기업의 블록체인 채택을 가속화한다면, 과정상의 혼란이 최소화될 것이다.

기업형 설계 원칙 앞서 언급했듯이 블록체인 기술은 신뢰와 책임에 관한 시스템적 문제로 어려움을 겪고 있는 산 업에서 신뢰성 높고 보안이 강력한 안전한 거래 네트워크의 기초가 될 것이다. 이는 시장 및 비 용 효율성을 창출하는 것을 목표로 한다. 지난 몇 년 동안 블록체인 기술이 성숙해짐에 따라, 사람들은 기업과 비즈니스에서 이 기술을 사용하여 문제점을 해결하고 새로운 비즈니스 모델을 알리는 방법에 중점을 두었다. 블록체인 의 잠재력을 알기 시작한 조직은 이제 구식 프로세스, 문서 작업 및 기술의 시스템 비용으로 인 해 부담이 가해지는 비즈니스 네트워크를 재구성하기 시작했다.

1.7.1 비즈니스 동인과 진화 최근 기업들은 상호 연결되어 접근 가능한 시스템을 통한 협업을 하기 위해 내부 비즈니스 시 스템과 IT 인프라를 인터넷에서 운영해왔다. 블록체인 기술은 신뢰 비즈니스 네트워크를 통해 진정한 디지털 상호작용을 제공함으로써 이를 다음 단계로 끌어올리고 있다. 인터넷 시대에 성 공한 기업은 기술을 도입하여 적응했지만, 블록체인 시대에는 기술보다는 비즈니스가 확산의 원동력이 되었다. 블록체인 기술은 그 자체로도 흥미롭지만, 다음과 같은 비즈니스 네트워크의 다양한 메커니즘 측면에서도 평가를 받아야 한다.

42

하이퍼레저 블록체인 개발


• 합의 모델: 어떤 신뢰 시스템이 비즈니스 네트워크에 가장 적합한가? • 통제와 거버넌스: 어떤 주체가 무엇을 할 수 있는가? 시스템 이상이 있을 때 누가 조사 과 정을 진행하게 되는가? • 디지털 자산 생성: 누가 시스템에 자산을 생성하는가? 누가 그것을 관리하는가? • 발행 권한: 진정으로 탈중앙화된 시스템에서도 권한을 모두가 골고루 가지지는 않는다. 즉, 블록체인 네트워크에서는 과연 누가 거버넌스, 책임 및 규제를 담당할 것인가? • 보안 고려 사항: 네트워크가 공유 비즈니스 네트워크에서 발생하는 새로운 보안 문제를 비 롯한 기업의 보안을 어떻게 처리하는가? 다양한 비즈니스 영역, 예를 들면 모기지, 지불, 교환, 청산 및 특정한 자산의 정산과 같은 영역 에 초점을 맞춘 블록체인 네트워크를 상상해볼 수 있다. 기업 관점에서는 비슷한 생각을 가진 사업체가 합의 컨소시엄을 공유하는 중앙 집중식 네트워크를 생각해볼 수 있다. 이 중앙 집중 식 네트워크에 대한 아이디어를 뒷받침하는 실질적인 이유들은 다음과 같다. • 특정 영역에 특화되어, 비즈니스를 대표하는 대리인으로서의 스마트 계약을 구성하고, 운영, 관리, 감독할 수 있는 비즈니스 도메인 언어 • 자산의 디지털 형태에 대한 거버넌스, 운영, 가치 평가(교환성, 대체성 등)가 가능하도 록 정의된 자산 유형 • 모든 산업 및 비즈니스 네트워크가 개별적으로 규제되며, 규제 준수 및 기타 관련 비용을 비즈니스 네트워크에서 분담한다는 점을 고려했을 때 적절한 규제 정책 • 분석, 통계, 시장 데이터 등과 같은 기타 관련 비즈니스 기능 지금까지는 기업형 블록체인을 위한 비즈니스 동인을 다루어보았다. 다음으로 블록체인 네트 워크의 지속 가능성과 수명을 보장할 수 있는 요소를 살펴보도록 하자.

1.7.2 지속 가능성의 보장 블록체인 기반 비즈니스 네트워크는 계속해서 발전하고 성장하고 있으며, 그 과정에서 신뢰 모 델, 데이터 가시성, 경쟁 우위 확보를 위한 네트워크 활용 같은 핵심 문제를 다시 돌아보지 않 는다.

1장 블록체인: 기업과 산업의 관점

43


지속 가능성에 초점을 맞추는 것은 역설적으로 보일 수 있다. 공개적 협업 혁신을 촉진하는 동 시에, 다중 거래 네트워크에서 자산, 스마트 계약 및 전반적인 상호작용을 관리하는 합의 또는 신뢰 시스템이나 거버넌스 시스템 같은 구성 요소에 제재를 가하게 되기 때문이다. 블록체인 시스템 설계는 이 모든 것들을 고려해야 한다. 성공적인 시스템 설계를 갖춘 비즈니스 네트워크는 여러 당사자가 얽힌 시나리오에서 거래, 신 뢰, 소유권, 트랜잭션 가능성 같은 블록체인 원칙과 조화를 잘 이루어야 한다. 이러한 핵심 신 조를 구축하지 않으면 비즈니스 네트워크는 블록체인 기술의 가치를 지속 가능한 방식으로 실 현하지 못할 수 있다. 다음은 블록체인 비즈니스 네트워크를 지속적으로 성장시키고 유지하기 위한 7가지 설계 원칙 이다.

1. 네트워크 참여자는 비즈니스를 관리해야 한다. 2. 참여자가 네트워크에 가입하거나 탈퇴할 수 있는 유연성을 가질 수 있도록 네트워크가 확장 가능해야 한다.

3. P2P 트랜잭션을 용이하게 하면서 중요한 데이터를 보호하려면, 네트워크는 허가형 구조 를 갖출 뿐 아니라 강력하게 보호되어야 한다.

4. 네트워크는 혁신을 공유하기 위해 쉽게 접근 가능해야 하며, 글로벌 협업을 허용해야 한다.

5. 네트워크는 트랜잭션 처리와 암호화된 데이터 처리 모두에 대해 확장 가능해야 한다. 6. 네트워크는 기업 보안이 가능하면서 새로운 보안 문제를 해결할 수 있어야 한다. 7. 네트워크는 기업 내의 기존 SoC 및 트랜잭션 시스템과 공존해야 한다. 이 설계 원칙을 그래픽으로 표현해보았다.

44

하이퍼레저 블록체인 개발


지속 가능한 블록체인 비즈니스 네트워크를 위한 7가지 설계 원칙 네트워크 참여자는 비즈니스를 관리해야 한다.

참여자가 네트워크에 가입하거나 탈퇴할 수 있는 유연성을 가질 수 있도록 네트워크가 확장 가능해야 한다.

P2P 트랜잭션을 용이하게 하면서 중요한 데이터를 보호하려면, 네트워크는 허가형 구조를 갖출 뿐 아니 라 강력하게 보호되어야 한다. 네트워크는 혁신을 공유하기 위해 쉽게 접근 가능해야 하며, 글로벌 협업을 허용해야 한다.

네트워크는 트랜잭션 처리와 암호화된 데이터 처리 모두에 대해 확장 가능해야 한다.

네트워크는 기업 보안이 가능하면서 새로운 보안 문제를 해결할 수 있어야 한다.

네트워크는 기업 내의 기존 SoC 및 트랜잭션 시스템과 공존해야 한다.

1.7.3 블록체인 채택을 가속화하는 원칙 기업에서 블록체인을 채택하는 과정은 비즈니스 청사진, 기술 청사진, 기업 통합이라는 세 가 지 원칙에 의해 이루어진다. 블록체인 프레임워크를 선택할 때 고려해야 할 필수 사항 세 가지를 설명하면 다음과 같다. • 비즈니스 청사진: 블록체인은 신뢰를 기반으로 한 가치 있는 비즈니스 네트워크를 구축할 수 있다. 다만 이를 위해서는, 다양한 블록체인 프레임워크가 네트워크 상호작용 패턴, 비효율성, 취약성을 처리하는 방법을 이해하는 것이 중요하다. • 기술 청사진: 기술이 비즈니스와 밀접한 관련이 있다면, 조직은 자신의 필요에 맞는 적 절한 기술 및 아키텍처를 선택해야 한다. 여기서는 초당 트랜잭션 처리량transactions per second

(TPS ), 기업 통합, 외부 시스템 통합, 규제 및 규정 준수 요구 사항 등을 고려할 수

있다. 이러한 결정은 모두 블록체인을 채택하는 데 적절한 예산 책정에 요구되는 기술적 인 실사의 일부이다.

1장 블록체인: 기업과 산업의 관점

45


• 엔터프라이즈 통합: 블록체인을 엔터프라이즈 시스템, 특히 인접한 시스템에 통합하는 것 은 비즈니스 및 기술 측면 모두에서 중요한 고려 사항이다(후속 트랜잭션 시스템은 비즈 니스 시스템에 치명적인 영향을 미치기 때문이다). 경험적으로 조직이 계획 초기에 인접 한 시스템 통합에 집중하지 않으면, 블록체인 프로젝트에 상당히 큰 비용을 지불할 수 있 기에 블록체인을 채택하는 데 방해가 될 수 있다. 이하 절들에서 각 설계에 대한 고려 사항에 대해 좀 더 자세히 설명할 것이다.

블록체인 프레임워크를 선택하기 위한 비즈니스 고려 사항 조직의 약점을 해결하기 위해 블록체인을 채택할지 여부를 평가할 때 수많은 기준을 고려해야 한다. 다음은 비즈니스 관점에서 고려해야 할 몇 가지 사항들이다. • 개방형 플랫폼 및 개방형 거버넌스: 기업이 선택하는 기술 표준은 기업형 블록체인 채택, 규 정 준수, 거버넌스 및 솔루션의 전체 비용을 비롯한 모든 단계를 설정한다. • 솔루션의 경제성: 조직이 선택한 블록체인 프레임 워크가 무엇이든 간에 기존 비즈니스 모 델, 비용 환급, 형평성, 계정 관리에 대한 비용 조정 방식을 제공해야 한다. 이는 투자 수 익률과 직결된다. • 해결책의 수명: 조직은 신뢰할 수 있는 네트워크를 구축하기 위해, 네트워크의 비용을 지 불하고 운영을 유지하면서 추가 참가자 및 트랜잭션을 수용할 수 있도록 확장성을 갖추 어야 한다. • 규제 준수: 규제 준수 문제는 트랜잭션 처리와 밀접하게 관련되어 있으며, 자동화 비즈니 스 및 인간 중심 비즈니스 모두를 포괄한 워크플로/작업에 대한 업계별 보고/분석과 같 은 이벤트를 포함할 수 있다. • 인접한 시스템과의 공존: 블록체인 네트워크는 다른 기업, 네트워크 참여자, 인접 시스템과 공존할 수 있어야 한다. • 예측 가능한 비즈니스 성장 비용: 비즈니스 성장은 예측 가능한 수치에 의존한다. 역사적으 로 많은 업계에서 초당 트랜잭션 처리량에 주력했지만, 측정된 수치는 시스템 설계, 컴퓨 팅 비용, 비즈니스 프로세스에 따라 시스템마다 다르게 나타난다.

46

하이퍼레저 블록체인 개발


• 기술 및 인재에 대한 접근성: 지속적인 혁신으로 산업 및 기술이 진화하는 데 따른 블록체인 솔루션의 유지 보수 및 수명뿐만 아니라, 인재를 채용하는 것도 비용에 영향을 미친다. • 기술 공급 업체의 재정적 지원: 공급 업체를 선택할 때는 장기적인 지원 및 블록체인 솔루션 의 수명과 관련하여 생존 가능성을 생각하는 것이 중요하다. 공급 업체 또는 사업 파트너 의 비즈니스 모델이 가진 장기 비전과 지속 가능성을 검토해야 한다. • 전 세계적 범위 및 지원: 블록체인 솔루션은 전 세계적인 비즈니스 네트워크를 구축하고 관 련 기술을 활용하여 최소한의 혁신을 통해 네트워크를 확장하는 것을 지원한다. • 기술 및 산업별 표준에 대한 신뢰: 공유 기술 스택 및 배포를 표준화하는 것뿐만 아니라 업계 전문가가 문제 해결을 위해 효과적인 커뮤니케이션 플랫폼을 구축하는 데 표준은 필수적 이다. 표준은 저비용이며 사용하기 쉬운 기술을 가능하게 한다. 블록체인 공급 업체는 다음과 같은 다양한 전문성을 제공한다. • 다양한 신뢰 시스템: 합의, 채굴, 작업 증명 등 • 단일 신뢰 시스템에 고정 • 특정 사용 사례를 위해 특수 목적으로 구축된 인프라 구성 요소 • 개념 증명을 통한 현장 테스트를 거친 설계 표준화된 기술 구조를 기반으로 하는 기준 아키텍처를 갖지 못한 공급 업체는, 기업에 온전하 지 못한 블록체인 모델을 제공하여 기술 부문에 위험 요소가 될 수 있다. 비즈니스 측면에서는, 공개 표준 기반의 블록체인 접근 방식이 유연성과 교체 가능한 모듈형 신뢰 시스템을 제공하므로 가장 이상적인 옵션이다. 이 접근 방식은 리플Ripple과 같은 특수한 블록체인을 기업에 개방하고, 신뢰 시스템에 대한 관리 감독 계층을 제공하며, 이를 지원하는 기술과 별도의 비즈니스 도메인을 제공한다.

블록체인 프레임워크 선택을 위한 기술적 고려 사항 조직은 블록체인의 기술 관련 사항을 고려할 때, 단순한 하나의 애플리케이션이 아니라는 전제 를 가지고 시작해야 한다. 블록체인은 올바른 유지 관리 및 유지 보수를 위한 위험과 비용이 포

1장 블록체인: 기업과 산업의 관점

47


함된 실사용 환경의 네트워크이다. 블록체인의 기술적 영향을 평가할 때 숙고해야 할 몇 가지 중요한 사항은 다음과 같다.

1.9.1 신원 관리 신원 관리는 고객알기제도 (KYC ), 자금세탁방지 (AML ) 및 기타 보고/분석 기능과 같이, 신원 관 리가 중요한 비즈니스 결과를 가져오는 규제 산업에서 특히 복잡하고 중요한 주제이다. • 허가 기능은 각 회원의 등록 인증member enrollment certificate ( ecert ) 및 트랜잭션 인증transaction certificate

(tcert )에 대한 개념이다. 이것들은 각 주체가 트랜잭션이 완료되는 동안 허가를

받고 식별될 수 있게 한다. • 블록체인 네트워크에 참여하는 주체에 의해 유지되는 최종 사용자 신원은 추적을 위해

LDAP /사용자 레지스트리를 tcert 또는 트랜잭션 ID에 매핑한다(고객 파악 및 고객의 고객 파악). 신원 관리에 대한 다른 고려 사항들은 다음과 같다. • 일반적으로 고도화된 인증 및 권한 부여 시스템을 위해 상당한 투자가 이루어지고 보안 정책이 존재하기 때문에, LDAP 또는 기존 사용자 레지스트리는 사라져서는 안 되고 중 요한 설계 지점으로서 고려되어야 한다. • 신뢰 시스템은 블록체인 기술의 핵심이며(특히 트랜잭션 추적을 필요로 하는 사례의 경 우) 신원 사항 삽입에 대한 신뢰의 길을 열어야 한다. • 블록체인상에서의 신원, 그리고 블록체인에 대한 신원 • 신원 획득, 검사, 라이프 사이클 • 사용 사례에 기반한 신뢰 시스템과의 연계

LDAP: ‘경량 디렉터리 액세스 프로토콜(Lightweight Directory Access Protocol)’의 준말로, TCP/IP 위에서 디렉터리 서비스를 조회하고 수정하기 위한 응용 프로토콜. 이하 이 책의 모든 각주는 역자, 감수자, 편집자가 단 주석이다.

48

하이퍼레저 블록체인 개발


1.9.2 확장성 후속 트랜잭션 시스템이 비즈니스 시스템에 영향을 중대한 영향을 미칠 수 있기에, 확장성은 비즈니스 측면과 기술 측면에서 모두 고려해야 할 사항이다. 공유 원장 데이터베이스 선택, 인 접한 시스템 통합, 암호화, 합의 등에 대해 확장성을 고려하여 기술을 선택하면, 시스템의 네트 워크 멤버십 또는 트랜잭션 수의 성장을 위한 비용을 예상하는 것이 가능해진다.

1.9.3 기업 보안 기업의 보안에서는 세 가지 계층을 고려해야 한다. • EAL5, 네트워크, 인프라 격리 요구 사항과 같이 사례에 따른 특이한 이슈를 포함하는 물 리적 IT 인프라 층

• 암호화 모듈, 암호화 레벨, 저장된 데이터 암호화, 휴지기의 데이터 전송, 네트워크 참여 자 사이의 데이터 공개 등 필요 사항들을 포함하는 블록체인 미들웨어 계층 • 블록체인 합의 (신뢰 시스템 계층)는 블록체인의 핵심이자 기본적인 데이터 저장 특성을 담 보하는 데 필요하다. 네트워크에 더 많은 참여자가 있을수록, 자본 배분을 확장해야 한 다. 이는 기업 수준의 데이터 품질을 갖춘 공유 데이터 저장소를 낮은 진입 장벽으로 구축 하는 것을 의미한다. 아무리 작은 합의라도 아키텍처를 제대로 구현하는 데 필수적이다. 현재는 암호화폐 기반의 신뢰 시스템과 비암호화폐 기반의 신뢰 시스템 사이에 구분이 있다. PoW/PoS 같은 암호화폐 기반 신뢰 구조는 기업의 사용 사례에서는 지속 가능하 지 않기에, 허가형 블록체인에 대한 수요가 높아지고 있다.

1.9.4 개발 환경 정비 개발 환경 정비를 위한 고려 사항에는 통합 개발 환경, 비즈니스 모델링, 모델 중심 개발이 포 함된다.

1장 블록체인: 기업과 산업의 관점

49


1.9.5 암호경제 모형 암호경제 모델이란 시간을 거슬러 돌아가거나 다른 변경을 초래하지 않으면서도, 인증 및 경제 적 보상을 보장하기 위해 공개키 암호화를 사용하는 분산 시스템을 의미한다. 블록체인의 개념 과 컴퓨터 과학에서의 암호 기술의 이점을 완전히 이해하기 위해서는, 암호 기반 컴퓨팅 혁명 의 핵심 원칙인 탈중앙화 합의decentralized consensus 라는 개념을 먼저 이해해야 한다.

1.9.6 시스템적 거버넌스를 통한 탈중앙화 기존의 패러다임은 하나의 중앙 데이터베이스가 트랜잭션의 유효성을 결정하는 중앙 집중화된 합의였다. 탈중앙화 구조는 이를 파괴하여 탈중앙화 네트워크에 권한과 신뢰를 부여하고, 노드 가 공개된 블록에 트랜잭션을 연속적으로, 순차적으로 기록함으로써 고유한 체인, 즉 블록체인 을 생성한다. 해시 코드를 통한 암호화는 트랜잭션 원천에 대한 인증을 보장하여 중앙 중개자 의 필요성을 없앤다. 암호학 및 블록체인을 결합하여 시스템은 동일한 트랜잭션을 중복 기록하 는 것을 방지한다. 블록체인 시스템 설계에서는 탈중앙화 디지털 트랜잭션 처리를 허가형 네트워크에 적용하면서 도, 기업 차원에서 필요한 규제 준수 및 유지 관리 활동의 일부 측면은 중앙 집중화해야 한다.

1.9.7 기업 지원 블록체인에 대한 기업 차원의 지원은 예측 노력을 재검토하는 것과 동일한 이유로 중요하다. 블록체인은 여타 애플리케이션과 같이 생각해서는 안 된다는 것을 기억하자. 블록체인은 유지 보수 및 그 비용과 관련된 실사용 네트워크이며, 블록체인은 단순히 개발, 인프라 및 서비스를 위한 기존 애플리케이션을 사용할 수 없다.

1.9.8 용례 중심의 교체 가능한 선택지 사용 블록체인 솔루션이 용례 중심의 교체 가능한 선택지를 허용할 수 있는지 확인하려면 다음 문제 퍼블릭 블록체인의 관점에서는 권한을 부여하는 관리자의 존재마저도 중앙화된 플레이어로 보는 시각이 지배적이다. 따라서 엄밀하게는 ‘네트워크를 생성하는 데 필요한 필수적인 권한 설정 등에 사용되는 관리자는 제외된 탈중앙화’ 정도의 의미로 받아들여야 한다.

50

하이퍼레저 블록체인 개발


를 고려해야 한다.

공유 원장 기술 블록체인을 적용하고자 하는 용례, 설계 요구 사항, 문제 등은 모두 어떠한 공유 원장 및 데이 터베이스 기술을 선택할지 결정하는 데 도움이 된다.

합의 합의는 신뢰 시스템을 구축하고 블록체인 애플리케이션 인프라에 대한 기술 투자를 유도하기 에, 블록체인의 핵심이다. 또한, 모든 용례에 적합한 하나의 합의 유형은 존재할 수 없다. 각 용 례는 참가자 간의 상호작용을 정의하고, 합의 모델을 통해 가장 적합한 신뢰 시스템을 제안한다. 합의는 블록체인 네트워크에서 네트워크 요청 또는 트랜잭션(배포 및 호출)의 순서를 검증하 는 방법이다. 많은 경우에 하나 이상의 이전 거래(예를 들어 계좌 이체는 종종 이전 신용에 대 한 의존성이 있는 경우가 많음)에 의존하기 때문에 네트워크 트랜잭션을 올바르게 관리하는 것이 중요하다. 블록체인 네트워크에서는 단일 권한으로 트랜잭션 순서를 결정할 수 없다. 대신에 각 블록체 인 노드(또는 참여자)는 네트워크 합의 프로토콜을 구현함으로써 순서를 설정할 때 동등한 권 한을 갖는다. 따라서 합의는 공유 원장에 트랜잭션이 추가되는 순서를 결정하는 데 필요한 노 드들의 정족수를 확정하면 된다. 합의는 제안된 트랜잭션 순서의 불일치를 해결함으로써 모든 네트워크 노드가 동일한 블록체인에서 작동한다는 것을 보장한다. 즉, 블록체인 네트워크에서 트랜잭션의 무결성과 일관성을 보장한다.

암호화 알고리즘 및 암호화 기술 블록체인 시스템 설계의 선택은 암호 라이브러리와 암호화 기술에 따라서도 달라질 수 있다. 조직의 용례 요구 사항이 설계를 좌우하며 블록체인 애플리케이션 인프라에 대한 기술 투자를 이끌어낸다.

합의 알고리즘은 이 밖에도 여러 가지가 있다. 이를 비롯해, 이 책은 하이퍼레저 패브릭 사용자 입장에서 서술된 책이므로 퍼블릭을 비롯 한 전체 블록체인의 범위까지 포괄하지는 않는다는 점을 염두에 두자.

1장 블록체인: 기업과 산업의 관점

51


• 비대칭적: RSA (1024-8192 ), DSA (1024-3072 ), 디피-헬먼, KCDSA, 일반적인 타 원곡선 암호(ECDSA, ECDH, ECIES ) 및 사용자 정의, 브레인풀 곡선형. • 대칭적: AES, RC2, RC4, RC5, CAST, DES, 삼중 DES, ARIA, SEED • 해시/메시지 다이제스트/HMAC: SHA-1, SHA-2 ( 224-512 ), SSL3-MD5-MAC,

SSL3-SHA-1-MAC, SM3 • 임의 번호 생성: FIPS 140-2 승인 DRBG (SP 800-90 CTR 모드)

용례를 기반으로 하는 교체 가능한 선택지 앞에서 설명한 것처럼, 용례를 통해 참여자 간의 상호작용을 정의하고 합의 모델을 사용하여 가장 적합한 신뢰 시스템을 제안할 수 있다.

확장 가능성을 위한 기업 통합 및 설계 비용에 대한 고려와 함께, 기업의 기존 SoR과 공존하는 블록체인 네트워크를 설계하는 것은 매우 중요하다. 후속 트랜잭션 시스템은 필수적인 비즈니스 시스템에 영향을 미치기 때문에 시 스템 통합은 비즈니스 문제이면서 기술 문제이기도 하다. 필자는 많은 기업과 협력하는 과정에 서, 블록체인을 인접 시스템과 통합하는 것이 블록체인 프로젝트에 상당한 비용 효과가 있음을 발견했다. 반드시 기획 단계에서부터 논의가 되어야 기업에 도입할 때 문제가 생기지 않는다. 운영상의 문제를 생각하는 것도 중요하다. 신뢰 시스템은 거래, 신뢰, 소유권의 요소와 불변성, 출처, 합의와 같은 블록체인의 고유한 특성을 보호함으로써 중복되는 시스템 및 프로세스를 제 거하는 데 도움이 된다. 이러한 중복은 조직에 상당한 자원을 소모시켜 트랜잭션 처리 속도가 저하되고 관련 기회 비용이 발생한다. 블록체인 채택의 목표 중 하나는 기존 프로세스의 핵심 문제점을 해결하는 것이다. 이는 곧 신뢰를 높이고, 시간과 비용을 절약하며, 더 나은 고객 서 비스를 제공하는 투명한 원장을 위한 염원이기도 하다. 네트워크 확장 가능성extensibility 측면에서 보자면, 확장 가능성을 설계한다는 것은 구현을 기획 할 때 향후 성장을 고려한다는 것을 의미한다. 확장 가능성은 시스템의 확장 기능과 확장 기능 을 구현하는 데 필요한 노력 수준에 의해 결정된다. 확장 가능성은 블록체인 비즈니스 네트워

52

하이퍼레저 블록체인 개발


크 설계에서 매우 중요하다. 업계의 심한 변동성(모든 규제, 경쟁 압력, 시장 역학)에 적응해 야 할 뿐만 아니라 네트워크 성장(규제 기관의 증가, 시장 형성자, 파괴적 혁신, 서비스 공급자 등)을 수용해야 하기 때문이다. 다음은 네트워크 확장 가능성을 보장하기 위한 몇 가지 설계 고려 사항이다. • 멤버십의 융통성: 블록체인 네트워크는 네트워크에 역할이 있는 사람들과 참가자들만의 한정된 그룹으로 시작될 수 있지만, 새로운 참가자도 나중에 네트워크에 참여하기를 원 할 수 있고, 누군가는 네트워크에서 떠나기를 원할 수도 있다. 따라서 (공유) 데이터에 대한 액세스를 포함하여 멤버십 변경의 메커니즘을 고려해야 한다. 구성원 유형은 시간 이 지남에 따라 역할 및 유형이 변경될 수 있으므로 확장 가능성을 설계할 때 중요한 고 려 사항이다. • 컴퓨팅 자산: 암호화폐를 기반으로 하는 신뢰 시스템과 컴퓨팅 자산을 기반으로 하는 신뢰 시스템은 분리되어 있는데, 이는 꽤나 새로운 개념이다. 네트워크의 (컴퓨팅 자원을 제 공하는) 참여자들과 그들의 비즈니스 이해관계는 장기간 지속 가능한 인프라 구축 및 유 지 관리 비용을 결정하는 요인이다. 예를 들어, 규제 기관의 비용 모델은 블록체인 기반 비즈니스 네트워크의 주요 수혜자들의 비용 모델과 크게 다를 수 있다. • 공동 비즈니스 관심사: 블록체인 네트워크는 위험 감소, 신뢰할 수 있고 예측 가능한 트랜 잭션 네트워크, 규제 준수 비용 감소 등 비즈니스에 특별한 이점을 제공할 수 있다. 그러 나 이러한 공유된 이익은 조직이 네트워크에 가입하고 탈퇴할 때 데이터 공유 및 소유권 과 같은 다른 운영 문제를 야기할 수 있다. 데이터 소유에 관한 규정뿐만 아니라 데이터 의 지속성에 대한 업계의 요구 사항이 있으므로, 블록체인 시스템을 설계할 때 이러한 요 구 사항을 주의 깊게 고려해야 한다. • 거버넌스: 거버넌스는 블록체인 네트워크에서의 기술 인프라 및 데이터/스마트 계약 통제 같은 기술들을 관리하는 것을 포함한다. 다음 범주로 거버넌스를 계층화하기를 권장한다. - 블록체인 네트워크/기술 거버넌스 - 블록체인 데이터 거버넌스 - 블록체인 스마트 계약 거버넌스 - 블록체인 트랜잭션 관리 거버넌스

1장 블록체인: 기업과 산업의 관점

53


확장 가능성 설계의 목표는 블록체인 네트워크가 지속 가능한 운영 요소와 비즈니스 성장 요소 를 확보하는 것이다. 예를 들어 지속 가능한 모델에서는 모든 참가자가 디지털 자산을 받고 거 래하는 자체적인 비즈니스 프로세스를 관리하는 체인코드를 배포할 수 있는 한편, 변하고 있는 비즈니스 프로세스, 정책, 규제 요구 사항의 관리하에 비즈니스 참가자들을 넣을 수도 있다.

기타 고려 사항 앞서 언급한 측면과는 별도로 염두에 두어야 할 몇 가지 고려 사항이 있다. 이하 절들에서 간단 히 설명한다.

1.11.1 합의, ACID 속성, CAP NoSQL이 표준이 되었을 때, 다양한 NoSQL 시스템은 이 CAP 정리를 이해함으로써 문제를 해결했고, RDBMS 기업 커뮤니티는 ACID 속성을 확고히 유지했기 때문에, 합의 모델은 절대 로 없어지지 않을 것이다. 블록체인 역시 CAP을 깨고 ACID를 유지하기 위한 기본 요소를 제 공하는 것이 당연하다.

CAP CAP은 아래 내용의 약자이다. • Cconsistency (일관성 ): 합의는 어떤 일이 일어났는지, 어떤 순서로 진행되는지에 대한 단 하 나의 사실만을 보장한다. • Aavailability (가용성 ): 블록체인에 대한 모든 요청이 비동기적이라는 사실은 호출 애플리케 이션이 합의 및 내구성을 보장할 수 있게 한다(체인을 통해 이를 보장할 수도 있다). • Partition tolerance (단절내성 ): 합의는 충돌이 있으면 네트워크 파티션 후에 다시 연결될 때 충 돌을 방지한다.

54

하이퍼레저 블록체인 개발


ACID ACID는 아래 내용의 약자이다. • Aatomicity (원자성 ): 체인코드는 ‘모 아니면 도’와 같은 것이기에, 활동에 원자성을 부여할 수 있다. 모든 것들이 다 함께 일어나거나, 아예 아무것도 일어나지 않는 것이다. • Cconsistency ( 일관성 ): NoSQL의 새로운 세계는 일관성을 무너뜨린다. 여기에서의 C는

CAP의 C와 같은 것을 의미한다고 볼 수 있다. • Iisolation (격리 ): 격리란 두 개의 트랜잭션이 직렬화되어 있음을 나타내며, 이는 곧 블록 구 성 및 블록 간 연결 자체를 뜻한다. • Ddurability (내구성 ): 네트워크 전체를 체인으로 연결하고 복제하면, 하나 이상의 노드가 다 운되어도 데이터가 손실되지 않는다. 이것이 바로 모든 사람이 노드를 갖는 이유이자, 그 노드가 같은 위치에 없어서는 안 되는 이유다.

1.11.2 SSC의 서명과 암호화를 통한 증명 보안 서비스 컨테이너secure service container ( SSC ) 안에서는 소프트웨어, 운영체제, 하이퍼바이저

, 도커 컨테이너 이미지를 수정할 수 없다. SSC에 인증서가 포함되어 있으면 상대방에

hypervisor

게 SSC가 거짓이 아님을 알릴 수 있다. 예를 들어, SSC를 작성할 때 SSL 인증서를 포함하면

SSL 인증서가 항상 SSC 내에서 보호(암호화)된 상태이므로 진짜 인스턴스를 가지고 통신하고 있다고 증명할 수 있다.

1.11.3 HSM의 사용 위키피디아에 따르면, 하드웨어 보안 모듈hardware security module (HSM )은 강력한 인증을 위한 디지 털 키를 관리하고 보호하며 암호프로세싱cryptoprocessing을 제공하는 물리적 컴퓨팅 장치이다. 이 러한 모듈은 전통적으로 컴퓨터 또는 네트워크 서버에 직접 연결되는 외부 장치 또는 플러그인 카드의 형태로 제공된다. 보안 및 제어와 관련하여 HSM과 같은 높은 수준의 보안 장치를 관리하는 것은 큰 문제가 될 수 있다. 실제로 오늘날의 표준은 HSM 관리(및 키 관리) 시스템에 대해 확실한 방법 및 보안 수준을 요구한다.

1장 블록체인: 기업과 산업의 관점

55


마치며 기업에서 블록체인을 채택하는 과정에서는 균형을 유지해야 한다. 조직은 기존 인프라를 운영, 관리, 유지해야 할 뿐만 아니라, 변화를 가져올 수 있는 이 새로운 컴퓨팅 모델을 위한 길을 열 필요가 있다. 규제 산업에서 조직은 규제 준수를 위한 비용에 이중으로 영향을 받을 수 있다. 새로운 기술 플 랫폼일지라도 기존의 규제 프레임워크 및 최근 입증된 기술 아키텍처 표준 및 설계를 준수해야 하기 때문이다. 블록체인을 고려하는 기업은 자원 및 데이터를 보호하기 위해 여러 개의 보안 관리를 결합하여 계층화된 방어에 대한 원리를 채택함으로써, 실용적인 접근 방법을 모색할 수 있다. 계층적 방어 방식을 사용하면 디지털 자산/스마트 계약뿐만 아니라 원장 데이터도 보호 할 수 있다.

56

하이퍼레저 블록체인 개발


CHAPTER

2

하이퍼레저 패브릭 알아보기

이번 장에서는 하이퍼레저 패브릭 프로젝트의 구성 요소, 설계, 참조 아키텍처 및 전반적인 기 업적 응용 가능성에 대해 알아보자. 또한 리눅스 재단 Linux Foundation (LF )에서 주관하는 하이퍼레 저 프로젝트의 넓은 목표와 오픈소스 및 공개 표준의 중요성에 대해서도 논의할 것이다. 이 장 의 목표는 다양한 하이퍼레저 프로젝트의 다양성을 이해하고, 어떤 프레임워크가 특정 기업 분 야의 사용 사례와 소프트웨어 소비 모델에 적합한지 이해하는 것이다. 블록체인 기술 환경은 계속해서 변화하지만, 하이퍼레저 프로젝트는 기업의 실제 이용을 목표로 하고 다양한 인재 및 지역 사회의 이익에 부응하는 검증되고 성숙한 기술을 지원하는 구조를 목표로 한다. 이 장에서는 다음 내용을 다룰 것이다. • 하이퍼레저의 기초 • 하이퍼레저 프레임워크, 도구 및 구성 요소 • 하이퍼레저 패브릭 구성 요소의 설계 • 하이퍼레저 패브릭 – 예제 트랜잭션 • 하이퍼레저 패브릭 알아보기 • 블록체인으로 운영되는 비즈니스 네트워크의 거버넌스 이해

2장 하이퍼레저 패브릭 알아보기

57


개방형 컴퓨팅 기반 구축 리눅스, 자바와 같은 오픈소스 프로젝트는 상용 소프트웨어에 비해 낮은 비용으로 사용 가능한 대안으로 주류 비즈니스에서도 강점을 보인 바 있다. 대규모 개발자 커뮤니티의 지원 덕분에 오픈소스 프로젝트는 독점적인 소프트웨어와 경쟁할 수 있는 역량을 갖추었다. 인기 있는 오 픈소스 프로젝트는 공통 구현체를 통해 제품의 구성 요소를 형성하고 이를 통해 개방형 표준의 수립을 가속화하기도 한다. 개방형 표준을 사용하는 기업은 개발 비용과 서비스 예산을 절감함 으로써 더 높은 가치와 경쟁 우위를 점할 수 있다. 오픈소스는 개방형 표준 및 개방형 아키텍처와 함께 더 넓은 개념인 개방형 컴퓨팅 운동을 형 성한다. 이러한 운동은 통합 및 유연성을 가능하게 하고 고객이 소프트웨어 공급사에 종속되는 것을 피하도록 도와 고객에게 혜택을 준다. 기업은 다양한 산업 규제 및 기술 거버넌스 요구 사항을 준수해야 하므로, 개방형 기술의 의미 를 잘 고려해야 한다. 블록체인 기술이 비즈니스 네트워크를 강화한다는 것은 잘 알려진 사실 이지만, 규제 준수 및 기술 거버넌스와 관련된 문제는 기술의 소비, 관리 및 유지 관리 비용에 상당히 큰 영향을 미친다. 커뮤니티 주도의 개방형 혁신은 네트워크 중심의 소프트웨어 운용, 배포, 거버넌스, 규제 모델 과 블록체인 네트워크를 위한 가이드 프레임워크를 제공하여 혼돈 속에서 질서를 세운다. 블록 체인 기술이 비즈니스 네트워크를 작동시키기에, 비즈니스 네트워크를 정의하는 모든 응용프 로그램과 그 영향(기술 채택, 비용 및 복잡성)은 네트워크 전체를 아우른다. 따라서 개방형 공 동체 주도 기술 및 개방형 표준은 공동체 주도의 거버넌스 구조와의 연결을 통해 위험 관리 및 위험 완화 수단의 역할을 수행해야 한다. 이번 장에서 기술적인 논의와 함께 이 부분을 심도 있 게 다루어 볼 것이다.

2.1.1 하이퍼레저 프로젝트의 기초 하이퍼레저에 대한 개념을 잡기 위해 하이퍼레저 패브릭의 핵심 주체와 기본 요소를 먼저 살펴 보자.

58

하이퍼레저 블록체인 개발


2.1.2 리눅스 재단 리눅스 재단 ( LF )은 개방형 기술 개발을 지원하는 분야의 세계적인 선두 주자이며, 개발자 커뮤

니티에서 높은 평판을 얻고 있다. LF는 오픈소스 컴퓨팅을 통해 세계 최대의 과제들을 해결하 는 파트너십을 강화하고 있다. 2000년에 설립된 이래로 오픈소스 프로젝트에 엄청난 투자를 이어오고 있으며, 이는 하이퍼레저가 탄생한 생태계의 초석을 형성했다.

2.1.3 하이퍼레저 하이퍼레저는 LF에서 나온 오픈소스 프로젝트로서, 여러 산업 분야에 걸친 블록체인 기술을 발전시키는 데 도움을 주기 위해 만들어졌다. 하이퍼레저는 수많은 산업 분야의 리더가 함께 이끄는 글로벌 오픈소스 협력 프로젝트이다.

2.1.4 오픈소스 및 개방형 표준 앞에서 언급했듯 개방형 컴퓨팅 운동은 블록체인과 하이퍼레저의 토대를 마련했다. 오픈소스 는 소프트웨어 라이선싱 모델이다. 즉, 사용자는 오픈소스 라이선스로 배포되는 코드에 대한 권리를 가지며 이를 자유롭게 사용하거나, 향상시키거나, 재배포할 수 있다. 오픈소스 비즈니스 애플리케이션의 주요 이점 중 하나는 유연성이며, 이는 오픈소스 코드, 모 듈식 구성 요소 및 표준 준수 덕분이다. 이러한 유연성 덕에 조직은 최소한의 노력으로 기술을 적용하여 그 이점을 누릴 수 있다. 오픈소스 기술로 뒷받침되는 많은 애플리케이션 구성 요소 를 레고 블록처럼 조립하여 비즈니스 문제를 해결할 수 있으며, 이러한 구성 요소는 핵심 기능 세트와 함께 제공되어 각각 특정 비즈니스 요구 사항을 충족하도록 변경될 수도 있다. 개방형 표준 기술을 통해 서로 다른 구성 요소를 쉽게 통합할 수 있고, 사용자 정의가 가능한 추가 기 능을 모듈식 구성을 개발할 수도 있다. 따라서 오픈소스 비즈니스 애플리케이션은 매우 저렴한 비용으로 기본적인 기능을 제공할 뿐 만 아니라, 서비스 중에도 애플리케이션을 향상시키거나 조정하여 비즈니스 요구를 완벽하게 충족시킬 수 있다.

2장 하이퍼레저 패브릭 알아보기

59


개방형 컴퓨팅

개방형 아키텍처

커뮤니티 주도 혁신

개방형 표준

오픈소스

오픈소스 커뮤니티는 글로벌하고 다양한 인재풀과 커뮤니티로부터 나오는 아이디어와 창의력 을 흡수하여, 단일 업체에서 이루어지는 것보다 더 협력적 혁신을 창출한다. 이는 시장에 파괴 적 혁신을 일으켰고, 그 이점을 깨달은 사람들에게 성장의 기회를 제공했다. 하이퍼레저 및 그 프로젝트 계열과 같은 오픈소스 기술이 업계에 제공하는 이점은 다음과 같다. • 소프트웨어 소비 비용 절감: 오픈소스 기술 주도 프로젝트에는 배포, 유지 보수, 관리, 지원 등과 관련된 비용이 포함된다. 그러나 개발 비용이나 인력풀과 관련된 비용은 크게 줄어 든다. 내부 기술 거버넌스 구조와 하이퍼레저 프로젝트의 커뮤니티 중심 거버넌스 구조 를 연결하면 기술 거버넌스 및 규제 준수 비용을 크게 줄일 수 있다. 하이퍼레저 프로젝 트의 인기가 높아지면서 커뮤니티 참여도 증가했고, 이는 하이퍼레저 프레임워크 및 도 구와 관련된 다양한 인재풀의 활용성도 증대시켰다. 비즈니스 네트워크의 요구 사항 및 성장에 따라 비용을 계속 들여야 하는 기업의 입장에서는 상당히 큰 매력이다. • 혁신과 확장성: 기업과 비즈니스 네트워크는 소프트웨어 공급 업체를 고정하는 대신, 블록 체인 기술 공간에서 빠르게 진행되는 혁신을 활용하여 가장 혁신적이고 커뮤니티 활동이 많은 쪽을 선택할 수 있다. 커뮤니티 기반 혁신에 편승하면 프로젝트의 새로운 기술과 혁 신을 활용하고 비즈니스 네트워크 운영 및 관리 비용을 단순화할 수 있는 역량을 확대할 수 있을 뿐만 아니라, 다양한 경쟁 기술 및 보완 기술 요소를 사용할 수 있으며 기업의 아

60

하이퍼레저 블록체인 개발


CHAPTER

3

비즈니스 시나리오로 무대 설정하기

앞의 두 장에서는 블록체인 프로젝트의 전체적인 조망을 묘사하고 배경을 설명하는 데에 중점 을 두었다. 이번 장에서는 비즈니스 프레임워크 안에서 블록체인 기술이 어떻게 작동하는지, 그리고 다양한 하이퍼레저 프로젝트가 시간과 신뢰의 문제를 어떻게 해결하는지에 대해 알아 보자. 하이퍼레저 패브릭을 구성하는 구성 요소에 대한 이해를 바탕으로, 응용프로그램 설계 및 구현 고려 사항에 대해 알아보자. 이제부터 몇 장에 걸쳐 독자적인 스마트 계약을 만든 다음 응용프 로그램에 통합하는 과정을 안내할 것이다. 그리고 적절한 연습을 위해 인류 역사와 함께해온 몇 가지 사업적 용례, 즉 무역과 신용장 등을 활용할 것이다. 이 장의 목표는 신용장의 사업적 개념을 이해하고, 연관된 예제 시나리오를 살펴보고, 개발 환 경을 설정하는 방법을 익히는 것이다. 이 장의 내용을 요약하면 아래와 같다. • 신용장에 대한 이해 • 간소화된 비즈니스 시나리오 리뷰 • 개발 환경 설정

3장 비즈니스 시나리오로 무대 설정하기

89


무역과 신용장 역사를 거슬러 올라가보자. 과거의 상인들은 대륙을 여행하며 한 나라에서 천을 사서 다른 나 라에서 팔아왔다. 이를테면, 피렌체의 양모 상인은 좋은 품질의 양모를 사기 위해 새로 생긴 도 시국가 암스테르담으로 여행하고는 했다. 암스테르담의 항구에는 북유럽과 세계 곳곳에서 자 원이 들어오기 때문이다. 상인은 이곳에서 구입한 양모를 피렌체로 운반하고, 이 피렌체의 양 장점에 판매하며 양장점은 이 양모로 부유한 고객들을 위한 훌륭한 옷을 만들었다. 이것이 서 기 1300년의 상황이다. 당시는 금이나 기타 귀금속을 들고 다니면서 물건을 사고파는 통화의 용도로 사용하기 어려운 시기였다. 국가 간 경계를 초월하여, 암스테르담과 피렌체, 그 밖의 모 든 곳에서 사용할 수 있는 통화가 필요했다. 중국을 방문한 마르코 폴로는 그 번창하는 경제에서 상거래가 어떻게 이루어지는지 관찰했다. 칸 제국이 이룬 성공의 핵심에는 오늘날 우리에게 익숙한 선진 금융 기법이 자리잡고 있었다. 법정 통화, 지폐, 약속 어음 및 신용장은 모두 중국에서 시작되어 유럽에 전파된 것이다. 마르 코 폴로는 이러한 개념을 유럽으로 가져왔으며, 이러한 새로운 금융 기법은 로마제국의 몰락 이후 유럽에서 새로이 조성된 상업은행 산업이 발전하는 밑거름이 되었다.

3.1.1 무역에서 신뢰의 중요성 피렌체 상인은 이제 은행가에게 연락하여 암스테르담에서 양털을 사고 싶다고 말하고, 은행은 지불의 대가로 상인에게 신용장을 발급한다. 이 편지에는 최대 거래 금액, 지불 방법(일시불 혹은 할부), 구입 가능한 상품 등 다양한 조항이 있을 수 있다. 상인은 이제 암스테르담으로 이 동하고, 암스테르담의 양모 상점에서 양모를 선택한 후 대금, 혹은 신용장을 지불한다. 피렌체 의 은행가들은 돈 계산에서 믿을 만한 사람들이라고 유럽 전역에 알려져 있었기 때문에, 암스 테르담 상인은 기꺼이 신용장과 양모를 교환한다. 암스테르담 상인은 신용장을 은행가에게 들 고 가고, 은행가는 신용장에 해당하는 대금을 암스테르담 상인에게 지불한다. 물론, 피렌체와 암스테르담의 은행가는 이 서비스를 위해 각자의 고객(상인)에게 수수료를 받는다! 모두가 행 복한 시나리오다. 암스테르담과 피렌체의 은행가들은 서로의 계좌를 정산하기 위해 정기적으로 만났지만, 양모 상인들에게는 이런 정기적인 정산이 필요하지 않았다. 실질적으로, 피렌체와 암스테르담의 상

90

하이퍼레저 블록체인 개발


인들은 서로 신뢰 관계를 맺기 위해 각각의 은행가 사이의 신뢰를 이용하고 있었으며, 이는 매 우 정교한 개념이라고 할 수 있다. 덕택에 신용장을 사용하는 절차는 오늘날에도 전 세계에서 기본적인 사업 방식으로 남아 있다.

3.1.2 오늘날의 신용장 절차 하지만 시간이 지남에 따라 무역은 급속히 세계화되었고, 금융 산업이 폭발적으로 성장하면서 신용장 절차에 관련되는 금융기관의 수도 폭발적으로 증가했다. 오늘날 신용장 절차에 중개자 역할을 하는 금융기관의 수는 20개가 넘는다. 이런 조정에는 많은 인력과 시스템이 필요하기 때문에 상인과 은행 모두에게 과도한 시간, 비용 및 위험이 발생하게 된다.

NOTE_ 블록체인은 물리적으로 분산되어 있지만, 논리적으로 단일화되어 있는 시스템으로서 신용장 처리 과정의 문제를 줄일 수 있다. 이러한 시스템의 특성에는 투명성, 적시성, 자동화(비용 절감) 및 증분 지불과 같 은 새로운 기능이 포함된다.

비즈니스 시나리오 및 용례 국제 무역에는 상호 불신과 비효율적인 절차로 인한 상황이 늘 발생하며, 이를 해결하기 위해 만들어진 것이 블록체인이다. 그래서 간소화된 수출입 시나리오를 실제 세계에서 일어나는 비 즈니스의 용례로 선택하여 앞으로 몇 장에 걸쳐 활용할 것이다.

3.2.1 개요 이제부터 간단한 거래에 대한 시나리오를 기술할 것이다. 이 거래는 한 당사자가 다른 당사자 에게 물건을 판매하는 행위이다. 이때, 구매자와 판매자가 서로 다른 국가에 거주하면 거래가 복잡해지며, 수출업자가 대금을 받고 수입업자가 물건을 받는다고 보장하는 신뢰할 수 있는 공 통의 중개인이 없다. 오늘날 이러한 국제 무역 중개는 아래와 같은 주체에 의존하고 있다.

3장 비즈니스 시나리오로 무대 설정하기

91


• 대금의 지불 및 물품의 물리적 이동을 용이하게 하는 중개인 • 수출업자와 수입업자가 위험을 분산시키기 위해 진화시켜온 절차

3.2.2 실제 세계의 절차 수출업자와 수입업자의 각각의 은행은 지불을 용이하게 하는 중개자 역할을 한다. 이 경우 무 역 중개는 은행과 고객 사이의 신뢰 관계, 그리고 두 은행 사이의 신뢰 관계에 의해 실행된다. 이러한 은행은 일반적으로 국제적인 관계와 명성을 유지해야 한다. 따라서 수입업자의 은행이 수출업자의 은행에 대금을 지불하겠다는 책무(또는 약속)만 있으면 절차를 시작하기에 충분 하다. 수출업자는 수출국의 정부로부터 물품에 대한 허가를 받은 후, 믿을 만한 국제 운송 업체 를 통해 발송한다. 운송업자의 배달 증명이 있으면 수입업자의 은행에서 수출업자의 은행으로 대금을 지불하기에 충분한 조건이며, 이 정산은 화물이 목적지에 도착하는지 여부와 상관없이 이루어진다(일반 적으로 운송 중 분실 또는 손상에 대비하여 화물에 보험이 걸려 있다고 전제한다). 수입업자의 은행이 수출업자의 은행에 지불하기로 한 지불 약정에는 송달의 증거로 필요한 서류의 목록, 그리고 할부나 일시불 등 정확한 지불 방법에 대한 명시가 포함된다. 수출업자는 화물을 운송 업자에게 양도할 수 있는 서류 허가를 받기 전에 다양한 규제 사항을 이행해야 한다.

3.2.3 단순화된, 수정된 절차 블록체인이 거래의 절차를 원활하게 할 수 있다는 가치를 입증하기 위해, 이제부터 앞에서 설 명한 예시를 간소화하고 조금 변형한 용례를 사용할 것이다. 지불 약정은 수입업자의 은행에서 수출업자의 은행에 2회에 걸쳐 지불이 이루어진다고 기술한다. 수출업자는 규제 당국으로부터 통관 증명서를 받고, 화물을 운송업자에게 넘겨준 다음 영수증을 발급받는다. 영수증이 발급되 면 수입업자의 은행으로부터 수출업자의 은행으로의 첫 번째 지불이 이루어진다. 화물이 목적 지 항구에 도달하면 두 번째 지불, 즉 최종 지불이 이루어지고 절차가 완료된다.

92

하이퍼레저 블록체인 개발


3.2.4 무역 금융 및 물류에 사용되는 용어 아래에 설명하는 용어는 여기에서 설명할 거래 시나리오에 쓰이는 특정 도구 및 산출물을 나타 내기 위한 용어들이다. 이 장에서 구축할 응용프로그램은 아래와 같은 도구의 아주 단순화된 형태를 사용한다. • 신용장: 이 장의 첫 부분에서 보았듯이, 운송장은 은행이 선적된 화물의 증빙 서류를 확 인하면 수출업자에게 대금을 지불하겠다는 은행의 약속을 의미한다. 운송장을 줄여서 L/ Cletter of credit라고 부르며, 수입업자의 요청에 따라 수입업자의 은행에서 발행된다. L/C는

선적 증명서, 지불할 금액 및 해당 금액을 수취하는 당사자(이 경우에는 수출업자) 각각 에 대한 증빙 서류를 명시한다. L/C의 예는 다음 그림과 같다.

이해를 쉽게 하기 위해 이 신용장이라는 도구에 약간의 변형을 가하고자 한다. 첫째, L/C 는 수출업자에게 직접 발행되는 것이 아니라 수출업자의 은행에 발행된다. 둘째, L/C에 는 지불이 2회에 걸쳐 분납으로 이루어지며, 두 건의 문서가 작성되었을 때 첫 번째 지불 이, 화물이 목적지에 도착했을 때 두 번째 지불이 이루어진다고 명시된다. • 수출 허가: 수출국의 규제 당국이 특정 물품의 선적을 승인한 것을 말한다. 앞으로 본문에 걸쳐 E/Lexport license로 줄여서 표기할 것이며, E/L의 예시는 다음과 같다.

3장 비즈니스 시나리오로 무대 설정하기

93


• 선하증권: 운송업자가 선적물을 소지한 후 수출업자에게 발행하는 문서이다. 줄여서 B/Lbill 이라고 불리며, 영수증 역할을 하는 동시에 수수료를 대가로 지정 목적지까지 화물

of lading

을 운송하도록 운송업자에게 의무를 지우는 계약, 그리고 물품의 소유권 역할까지 한다.

L/C에도 B/L이 명시되며, 자동으로 지불 승인을 받기 위한 배송 증빙 서류 역할을 한다. B/L의 예는 다음과 같다.

94

하이퍼레저 블록체인 개발


CHAPTER

4

Go 언어로 데이터 및 트랜잭션 모델 설계하기

하이퍼레저 패브릭에서 체인코드는 개발자가 작성한 스마트 계약의 한 형태이다. 체인코드는 블록체인 네트워크의 이해 관계자가 합의한 비즈니스 로직을 구현하며, 구현된 기능은 클라이 언트 애플리케이션에 노출되어 올바른 권한을 가지고 있는 사용자가 호출할 수 있다. 체인코드는 패브릭 네트워크의 다른 구성 요소와 격리된 자체 컨테이너에서 독립적인 프로세 스로 실행된다. 승인 피어는 체인코드와 트랜잭션 호출의 수명을 관리한다. 체인코드는 클라이 언트 호출에 응답하여 장부를 쿼리하고 업데이트하여 트랜잭션 제안을 생성한다. 이 장에서는 Go 언어로 체인코드를 개발하는 방법을 배우고 시나리오의 스마트 계약 비즈니 스 로직을 구현할 것이다. 마지막 부분에서는 완전한 체인코드를 개발하는 데 필요한 핵심 개 념과 라이브러리를 살펴볼 것이다. 다음 절에서는 아래의 주소에서 체인코드의 전체 구현을 얻을 수 있는 개념과 관련된 코드 예 제를 살펴보자. 䵱䵽䵽䵹䵼 䵃䴸䴸䵰䵲䵽䵱䵾䵫 䴷䵬䵸䵶䴸䵑䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻䵑䵪䵷䵭䵼䵘䵷 䴸䵽䵻䵪䵭䵮 䴶䵯䵲䵷䵪䵷䵬䵮 䴶䵵䵸䵰䵲䵼䵽䵲䵬䵼 䴸䵽䵻䵮䵮 䴸䵶䵪䵼䵽䵮䵻 䴸 䵬䵱䵪䵲䵷䵬䵸䵭䵮䴸䵼䵻䵬䴸䵰䵲䵽䵱䵾䵫䴷䵬䵸䵶䴸䵽䵻䵪䵭䵮䵨䶀䵸䵻䵴䵯䵵䵸䶀䵨䵿䴺 TIP

이 코드는 3장에서 생성한 로컬에 클론한 깃 저장소에서도 사용할 수 있다. 䵽䵻䵪䵭䵮䵨䶀䵸䵻䵴䵯䵵䵸䶀 폴더와 䵽䵻䵪䵭䵮䵨 䶀䵸䵻䵴䵯䵵䵸䶀䵨䵿䴺 폴더 각각에 두 가지 버전의 체인코드가 있다. 나중에 9장에서 업그레이드를 설명하기 위해서

는 두 가지 버전이 모두 필요하다. 이 장에서는 v1 버전을 사용하여 Go 체인코드를 작성하는 방법을 알아볼 것이다.

4장 Go 언어로 데이터 및 트랜잭션 모델 설계하기 117


이 장에서 다룰 내용은 다음과 같다. • 체인코드 생성 • 접근 제어 • 체인코드 기능 구현 • 체인코드 테스트 • 체인코드 설계 주제 • 로깅 출력

체인코드 개발 시작하기 체인코드 코딩을 시작하기 전에 먼저 개발 환경을 설정해야 한다. 개발 환경을 설정하는 단계는 3장에서 설명한 바 있지만, 이제부터는 패브릭 네트워크를 dev 모드에서 시작할 것이다. 이 모드를 사용하면 체인코드를 작성하고 실행하는 방법을 제어할 수 있다. 이번 장에서는 이 네트워크를 사용하여 개발 환경에서 체인코드를 실행할 것이다.

dev 모드에서 패브릭 네트워크를 시작하는 방법은 다음과 같다. 䴭 䵬䵭 䴭䵐䵘䵙䵊䵝䵑䴸䵼䵻䵬䴸䵽䵻䵪䵭䵮䴶䵯䵲䵷䵪䵷䵬䵮䴶䵵䵸䵰䵲䵼䵽䵲䵬䵼䴸䵷䵮䵽䶀䵸䵻䵴 䴭 䴷䴸䵽䵻䵪䵭䵮䴷䵼䵱 䵾䵹 䴶䵭 䵽䵻䵾䵮

TIP

네트워크가 시작되는 동안 오류가 발생했다면, 남아 있는 도커 컨테이너로 인해 발생했을 가능성이 높다. 䴷䴸 䵽䵻䵪䵭䵮䴷䵼䵱 䵭䵸䶀䵷 䴶䵭 䵽䵻䵾䵮를 실행해서 네트워크를 중지하고 䴷䴸䵽䵻䵪䵭䵮䴷䵼䵱 䵬䵵䵮䵪䵷 䴶䵭 䵽䵻䵾䵮를 실행하면 문제

를 해결할 수 있다. 여기에서 䴶䵭 옵션은 스크립트가 dev 네트워크에서 작업을 수행한다는 것을 의미한다.

이제 개발 네트워크는 4 개의 도커 컨테이너에서 실행된다. 네트워크는 하나의 주문자, 䵭䵮䵿䵶䵸䵭䵮에서 실행되는 하나의 피어, 체인코드 컨테이너 및 CLI 컨테이너로 구성된다. CLI 컨

테이너는 시작할 때 䵽䵻䵪䵭䵮䵬䵱䵪䵷䵷䵮䵵이라는 블록체인 채널을 생성한다. 체인코드와 통신하기 위 해 CLI를 주로 사용할 것이다.

118 하이퍼레저 블록체인 개발


로그 디렉터리에서 로그 메시지를 확인해보면, 네트워크 시작 중에 실행되는 구성 요소 및 함 수가 나열되는 것을 볼 수 있다. 체인코드를 설치하고 호출되면 추가 로그 메시지를 받게 되므 로, 터미널을 열린 상태로 유지해야 한다.

4.1.1 체인코드 컴파일 및 실행 복제된 소스 코드에는 Go에 대한 모든 디펜던시가 이미 포함되어 있다. 이를 염두에 두고 다 음 단계를 따라 코드를 작성하면 체인코드를 실행하도록 하자.

1. 체인코드 컴파일: 새로운 터미널을 열고 다음 명령을 사용하여 체인코드 컨테이너에 연결하 고 체인코드를 빌드한다. 䴭 䵭䵸䵬䵴䵮䵻 䵮䶁䵮䵬 䴶䵲䵽 䵬䵱䵪䵲䵷䵬䵸䵭䵮 䵫䵪䵼䵱 䴭 䵬䵭 䵽䵻䵪䵭䵮䵨䶀䵸䵻䵴䵯䵵䵸䶀䵨䵿䴺 䴭 䵰䵸 䵫䵾䵲䵵䵭

2. 다음 명령을 사용하여 체인코드를 실행하자. 䴭 䵌䵘䵛䵎䵨䵙䵎䵎䵛䵨䵊䵍䵍䵛䵎䵜䵜䵆䵹䵮䵮䵻䵃䵀䴹䴾䴻 䵌䵘䵛䵎䵨䵌䵑䵊䵒䵗䵌䵘䵍䵎䵨䵒䵍䵨䵗䵊䵖䵎䵆䵽䶀䵃䴹 䴷䴸䵽䵻䵪䵭䵮䵨䶀䵸䵻䵴䵯䵵䵸䶀䵨䵿䴺

이제 피어에 연결된 체인코드가 실행되었다. 여기서 로그 메시지는 체인코드가 실행 중임을 나 타낸다. 네트워크 터미널에서 로그 메시지를 확인하여 피어의 체인코드 연결을 나열할 수도 있다.

4.1.2 체인코드 설치 및 인스턴스화 채널을 초기화하기 전에 채널에 체인코드를 설치해야 한다. 초기화는 䵒䵷䵲䵽 메서드를 호출한다.

1. 체인코드 설치: 새 터미널에서 CLI 컨테이너에 연결하고 다음과 같이 䵽䶀라는 이름으로 체인 코드를 설치하자. 䴭 䵭䵸䵬䵴䵮䵻 䵮䶁䵮䵬 䴶䵲䵽 䵬䵵䵲 䵫䵪䵼䵱 䴭 䵹䵮䵮䵻 䵬䵱䵪䵲䵷䵬䵸䵭䵮 䵲䵷䵼䵽䵪䵵䵵 䴶䵹 䵬䵱䵪䵲䵷䵬䵸䵭䵮䵭䵮䵿䴸䵬䵱䵪䵲䵷䵬䵸䵭䵮䴸䵽䵻䵪䵭䵮䵨䶀䵸䵻䵴䵯䵵䵸䶀䵨䵿䴺 䴶䵷 䵽䶀 䴶䵿 䴹

4장 Go 언어로 데이터 및 트랜잭션 모델 설계하기 119


2. 이제 다음 체인코드를 인스턴스화하자. 䴭 䵹䵮䵮䵻 䵬䵱䵪䵲䵷䵬䵸䵭䵮 䵲䵷䵼䵽䵪䵷䵽䵲䵪䵽䵮 䴶䵷 䵽䶀 䴶䵿 䴹 䴶䵬 䴰䶄䴫䵊䵻䵰䵼䴫䵃䵤䴫䵲䵷䵲䵽䴫䴵䴫䵕䵾䵶䵫䵮䵻䵒䵷䵬䴫䴵䴫䵕䵾䵶䵫䵮䵻䵋䵪䵷䵴䴫䴵䴫䴺䴹䴹䴹䴹䴹䴫䴵䴫䵠䵸䵸䵭䵮䵷䵝䵸䶂䵼䴫䴵䴫䵝䵸䶂䵋䵪䵷䵴䴫䴵䴫 䴻䴹䴹䴹䴹䴹䴫䴵䴫䵞䵷䵲䵿䵮䵻䵼䵪䵵䵏䵻䵮䵲䵰䵱䵽䴫䴵䴫䵏䵸䵻䵮䵼䵽䵻䶂䵍䵮䵹䵪䵻䵽䵶䵮䵷䵽䴫䵦䶆䴰 態䵌 䵽䵻䵪䵭䵮䵬䵱䵪䵷䵷䵮䵵

이제 CLI에 연결된 터미널에 체인코드와의 통신으로 인한 로그 메시지 목록이 포함된다. 체인 코드 터미널은 䵬䵱䵪䵲䵷䵬䵸䵭䵮 메서드 호출로부터 발생한 메시지를 출력하고, 네트워크 터미널은 피어 및 주문자 간의 통신에서 발생한 터미널 메시지를 출력한다.

4.1.3 체인코드 호출 이제 체인코드가 실행 중이므로 몇몇 함수를 호출할 수 있다. 우리의 체인코드는 자산을 생성 하고 검색하는 여러 메서드를 가지고 있다. 먼저 두 가지를 호출해보자. 첫 번째 메서드는 새로 운 무역 계약을 생성하고, 두 번째 메서드는 장부에서 계약을 가져온다. 다음 단계를 따라 호출 을 진행해보자.

1. 다음 명령을 사용하여 원장에 새로운 무역 계약을 올려보자. 䴭 䵹䵮䵮䵻 䵬䵱䵪䵲䵷䵬䵸䵭䵮 䵲䵷䵿䵸䵴䵮 䴶䵷 䵽䶀 䴶䵬 䴰䶄䴫䵊䵻䵰䵼䴫䵃䵤䴫䵻䵮䵺䵾䵮䵼䵽䵝䵻䵪䵭䵮䴫䴵 䴫䴾䴹䴹䴹䴹䴫䴵 䴫䵠䵸䵸䵭 䵯䵸䵻 䵝䵸䶂䵼䴫䵦䶆䴰 䴶䵌 䵽䵻䵪䵭䵮䵬䵱䵪䵷䵷䵮䵵

2. 다음 명령을 사용하여 장부에서 무역 계약을 가져오자. 䴭 䵹䵮䵮䵻 䵬䵱䵪䵲䵷䵬䵸䵭䵮 䵲䵷䵿䵸䵴䵮 䴶䵷 䵽䶀 䴶䵬 䴰䶄䴫䵊䵻䵰䵼䴫䵃䵤䴫䵰䵮䵽䵝䵻䵪䵭䵮䵜䵽䵪䵽䵾䵼䴫䴵 䴫䴾䴹䴹䴹䴹䴫䵦䶆䴰 䴶䵌 䵽䵻䵪䵭䵮䵬䵱䵪䵷䵷䵮䵵

dev 모드에서 네트워크를 실행하여 체인코드를 성공적으로 테스트했다. 다음 절에서는 처음 부터 체인코드를 생성하고 테스트하는 방법에 대해 알아보자.

NOTE_ dev 모드 프로덕션 환경에서는 체인코드의 수명이 피어에 의해 관리된다. 개발 환경에서 반복적으로 체인코드를 수 정하고 테스트해야 하는 경우, 䵭䵮䵿䵶䵸䵭䵮를 사용하여 개발자가 체인코드의 수명 주기를 제어할 수 있다. 또한 䵭䵮䵿䵶䵸䵭䵮에서는 䵼䵽䵭䵸䵾䵽 및 䵼䵽䵭䵮䵻䵻 표준 파일을 터미널에 전달하지만 프로덕션 환경에서는 그렇지 않다.

120 하이퍼레저 블록체인 개발


CHAPTER

5

네트워크 자산과 트랜잭션 노출시키기

지금까지 원장, 즉 네트워크에 대한 시스템 기록system-of-record을 직접 읽고 조작할 수 있는 스마 트 계약과 블록체인 응용프로그램의 핵심을 구축했다. 축하한다! 하지만 아직 끝이 아니다. 짐 작했겠지만 스마트 계약은 오용 또는 변조로부터 보호해야 하는 민감한 코드이다. 비즈니스 사용자에게 안전하게 배포할 수 있는 강력하고 안전한 응용프로그램을 제작하려면 스마트 계약을 하나 이상의 보호 계층으로 래핑하고, 클라이언트가 적절한 안전 장치를 통해 원격으로 접근할 수 있는 서비스로 설계해야 한다. 또한 원장과 스마트 계약을 공유하고자 하 는 다양한 이해 관계자는 다른 주체가 아닌 본인을 위한 구체적이고 고유한 비즈니스 논리 요 구 사항을 가질 것이다. 이러한 이유로 한 스마트 계약을 실행하는 하나의 블록체인 응용프로 그램이 서로 다른 이해 관계자에게 다른 관점으로 비추어지고 서로 다른 기능을 제공하게 될 수도 있다. 이 장에서는 앞에서 계속 예로 들어온 거래 응용프로그램을 가이드 및 예제로 사용하여 처음부 터 완전한 블록체인 응용프로그램을 구축하는 방법에 대해 알아볼 것이다. 그다음 이 응용프로 그램을 원하는 시나리오에 맞게 설계할 때 고려해야 할 여러 가지 고려 사항과 해당 응용프로 그램을 기존 시스템 및 프로세스와 통합하는 방법에 대해 학습할 것이다. 이번 장에서 다루게 될 주제는 다음과 같다. • 완전한 응용프로그램 구축 • 기존 시스템 및 프로세스와 응용프로그램의 통합

5장 네트워크 자산과 트랜잭션 노출시키기 159


완벽한 응용프로그램 구축 이번 절에서는 네트워크를 형성하기 위해 함께 참여한 비즈니스 개체가 쉽게 사용할 수 있는 핵심 스마트 계약을 중심으로 완전한 응용프로그램을 구축하는 방법을 알아보자. 하이퍼레저 패브릭의 트랜잭션 파이프라인을 다시 한번 살펴보며 사용자(또는 클라이언트)의 관점에서 블록체인 응용프로그램이 무엇을(어떻게) 하는지 먼저 알아볼 것이다. 그리고 코드 예제를 사 용하여 비즈니스 개체의 필요에 따라 네트워크를 구축, 설계, 구성하고, 적절한 설정을 블록체 인 트랜잭션의 여러 단계에 처음부터 끝까지 적용하는 방법을 알아볼 것이다. 이 과정이 끝나 면 패브릭 응용프로그램을 엔지니어링하는 방법과 간단한 웹 인터페이스를 통해 기능을 노출 시키는 방법을 이해할 수 있게 될 것이다. 이 장을 시작하기에 앞서 4장의 Go 프로그래밍을 사 용하여 개발된 스마트 계약 또는 체인코드를 숙지하기 바란다. 이 장의 뒷부분에서는 숙련된 엔터프라이즈 개발자를 서비스 디자인 패턴, 안정성 및 기타 일 반적인 엔지니어링 문제와 같은 고급 주제를 다룰 것이다. 이러한 문제점은 모든 분산 응용프 로그램에 해당하지만, 블록체인 기반 응용프로그램에만 해당하는 특별한 요구 사항과 문제점 에 대해서 알아보는 것도 의미가 있을 것이다.

5.1.1 하이퍼레저 패브릭 응용프로그램의 특성 이전 장에서는 네트워크 피어에 의해 유지 및 관리되는 공유된 복제 원장의 상태가 단계별 작 업 파이프라인을 통해 변경되는 과정을 알아보고 이를 통해 하이퍼레저 패브릭을 분산 트랜잭 션 처리 시스템으로 해석하는 관점을 설명하였다. 개발자에게 블록체인 응용프로그램은 사용 자가 스마트 계약에 트랜잭션을 제출하거나 상태를 읽을 수 있는 프로세스의 모음이다. 개발자 는 시스템 뒤 단에서 사용자의 요청을 트랜잭션 파이프라인의 다른 단계로 보내고, 그 결과를 추출하여 프로세스가 끝날 때 피드백을 제공해야 한다. 기본적으로 계약서가 손으로 구현되었 는지(4장 참조) 또는 하이퍼레저 컴포저로 구현되었는지(6장 참조)와 관계없이, 스마트 계약 에 대해 하나 이상의 래퍼 레이어를 구현하는 것은 응용프로그램 개발자가 할 일이다. 스마트 계약(또는 자산-개체 모델)를 핵심으로 개발된 응용프로그램은 일련의 보기 또는 서 비스 API를 갖춘 트랜잭션 처리 데이터베이스 응용프로그램으로 볼 수 있다. 그러나 개발자는 모든 하이퍼레저 패브릭 트랜잭션이 비동기적임을 명심해야 한다. 즉, 트랜잭션의 결과는 트랜

160 하이퍼레저 블록체인 개발


잭션이 제출된 세션과 동일한 통신 세션에서 사용할 수 없다. 이는 이전 장에서 보았듯이 합의 를 통해 네트워크의 피어가 트랜잭션을 공동으로 승인해야 하기 때문이다. 따라서 합의에 걸리 는 시간은 최대치가 보장되지 않으며, 트랜잭션 결과의 전달은 게시/구독 메커니즘으로 설계되 어야 한다. 다음 다이어그램은 개발자 관점에서의 블록체인 응용프로그램과 트랜잭션 파이프 라인을 묘사한 것이다.

1. 블록체인

2. 블록체인에

인스턴스화

피어가 참여

3. 피어에 스마트 계약 설치

원장

5. 스마트 계약에 쓰기 또는 읽기

4. 스마트 계약 원장 상태 초기화

사용자/애플리케이션에 결과 전달 그림 5.1 블록체인 응용프로그램 생성과 운영의 각 단계

다음 절에서는 이 다이어그램의 내용을 자세히 설명하고 특정 패브릭 메커니즘에 대응시켜 볼 것이다.

응용프로그램 및 트랜잭션 단계 응용프로그램을 만드는 첫 번째 단계는 블록체인 또는 공유 원장 자체의 인스턴스를 생성하는 작업이다. 패브릭 용어로 블록체인의 인스턴스를 채널이라고 부른다. 그러므로 블록체인 응용 프로그램의 첫 번째 단계는 채널의 생성, 그리고 네트워크 정렬 서비스를 채널의 제네시스 블 록과 함께 부트스트랩하는 단계이다. 다음 단계는 피어 네트워크의 초기화이다. 이 단계에서는 응용프로그램을 실행하기 위해 선택 된 모든 피어 노드를 채널에 가입시켜서 각 피어가 원장 사본을 유지, 관리할 수 있어야 한다.

5장 네트워크 자산과 트랜잭션 노출시키기 161


원장의 사본은 키-값 저장소의 형태로 초기화된다. 채널에 참여한 모든 피어는 원장 제출 권한 을 가지며, 원장 상태를 서로 동기화하기 위해 가십 프로토콜에 참여할 수 있다. 피어 네트워크가 생성된 후에는 해당 네트워크에 스마트 계약을 설치하게 된다. 스마트 계약 설치 전에 채널에 참여한 피어들이 스마트 계약을 실행하도록 선택되며, 이러한 피어는 승인 권한을 소유하게 된다. 스마트 계약 코드는 이후에 진행될 작업을 위해 이러한 피어에 배포되 고 설치된다. 스마트 계약은 패브릭 용어로 체인코드라고 불리며, 이 장의 나머지 부분에서 이 용어를 사용할 것이다. 승인 피어에 설치된 체인코드는 내장된 로직에 따라 초기화된다(4장 참조). 여기서 이전 단계 중 하나 이상에서 문제가 발생하지만 않는다면 응용프로그램이 잘 가동될 것 이다. 이제 응용프로그램이 켜져 있는 동안 체인코드로 트랜잭션을 보내서 원장 상태를 업데이 트하거나(호출) 원장 상태를 읽을(쿼리) 수 있을 것이다.

NOTE_ 응용프로그램은 시간이 지남에 따라 변화할 수 있으므로, [그림 5.1]에 기재되지 않은 특별한 작업 이 필요하다. 자세한 내용은 9장에서 다룰 것이다.

‘응용프로그램 만들기’와 이후 절에서는 4장의 체인코드에 이어지는 코드와 가이드를 중심으로 거래 응용프로그램을 구축하는 방법을 알아볼 것이다.

응용프로그램 모델 및 아키텍처 패브릭 응용프로그램 작성 프로세스는 체인코드로 시작하지만, 궁극적으로 개발자는 최종 사 용자 또는 소프트웨어 에이전트가 해당 체인코드와 어떻게 상호작용해야 하는지에 대해 신중 한 결정을 내려야 한다. 체인코드의 자산과 해당 체인코드를 실행하는 블록체인 네트워크의 작 동을 사용자에게 노출시키는 방법은 주의 깊게 다뤄야 한다. 이러한 기능이 제한없이 노출되 는 경우, 블록체인 부트스트랩 및 구성과 관련된 기능이 심각하게 손상될 수 있다. 체인코드 자 체의 올바른 작동은 내부 로직뿐 아니라 그 위에 구축된 적합한 접근 제어에 달려 있다. 앞 절 에서 보았듯 응용프로그램을 설정하고 사용을 준비하는 과정은 복잡한 과정이다. 또한 원장 갱 신 트랜잭션의 비동기적인 특성 때문에 체인코드와 사용자 간에 중재 계층이 필요하다. 사용자 가 네트워크 모듈의 세부 사항보다는 응용프로그램에 영향을 미치는 트랜잭션에 집중할 수 있

162 하이퍼레저 블록체인 개발


CHAPTER

6

비즈니스 네트워크

이 장에서는 비즈니스 네트워크business network라는 새로운 개념을 소개하고 설명할 것이다. 비즈니 스 네트워크가 무엇이며 어떻게 작동하는지 이해함으로써 블록체인 기술이 어떻게 급진적으로 진보할 수 있는지 이해할 수 있다. 블록체인, 특히 하이퍼레저 패브릭 블록체인은 비즈니스 조 직을 구성하는 정보와 프로세스를 근본적으로 단순화하여 비용을 줄이고, 네트워크 내의 비즈 니스에 새로운 기회를 창출함으로써 비즈니스 네트워크에 상당한 이점을 제공한다. 이 장에서는 비즈니스 네트워크의 개념이 어떻게 상호작용하는 거래 당사자를 통해 비즈니스 를 분석할 수 있게 하는지도 알아볼 것이다. 비즈니스 네트워크는 산업 영역에 따라 나뉘는데 하나의 네트워크를 사용하여 여러 용례를 지원하고 다른 비즈니스 네트워크와 연결하여 네트 워크 간의 네트워크를 형성할 수도 있다. 비즈니스 네트워크를 이해하려면 참여자, 자산, 트랜잭션, 이벤트와 같은 주요 용어를 이해할 필 요가 있으므로, 용어에 어느 정도 시간을 할애할 것이다. 그리고 이러한 용어를 통해 비즈니스 문제점을 분석하고 정의할 것이다. 비즈니스 요구 사항을 사용하면 솔루션을 구현하는 데 사용 할 수 있는 기술 청사진을 만들 수 있다. 이 장의 마지막까지 읽고 나면 하이퍼레저 패브릭 및 하이퍼레저 컴포저를 사용하여 이러한 아이디어를 구현할 준비가 될 것이고, 다음 장에서 실제 구현을 진행하게 될 것이다. 비즈니스 네트워크의 개념은 블록체인 네트워크를 구현하기 위해 필요할 뿐 아니라, 블록체인 분석, 기존 시스템과의 통합, 응용프로그램, 엔터프라이즈 아키텍처의 구조화와 같은 광범위한 문제에 적용될 수 있다. 이런 측면에서, 이 장은 나중에 네트워크를 구현하지 않더라도 따로 읽

6장 비즈니스 네트워크 209


어볼 만한 가치가 있을 것이다. 이 장에서는 다음과 같은 내용을 다룬다. • 비즈니스 네트워크를 위한 언어 • 비즈니스 네트워크의 개념 • 비즈니스 네트워크 정의 • 참여자 • 자산 • 트랜잭션 • 이벤트 • 비즈니스 네트워크 구현

목적을 가진 활동의 세계 비행기를 타고 대도시 상공을 날고 있다고 상상해보자. 공장, 은행, 학교, 병원, 소매점, 자동차 쇼룸, 배, 보트, 항구 등이 보일 것이다. 이러한 요소는 도시를 정의하는 구조이다. 도시를 더 자세히 살펴볼 수 있다면, 이러한 구조들 안에서 일어나는 상호작용을 보게 될 것이 다. 트럭은 철광석을 공장에 공급하고, 고객은 은행에서 돈을 인출하고, 학생들은 시험에 응시 하고 있을 것이다. 바쁜 세상이다. 이러한 활동을 좀 더 가까이서 지켜본다면, 이러한 사람들과 조직들이 의미를 가진 활동에 참 여하고 있음을 알 수 있다. 학생에 대한 교사의 평가는 학생의 대학 진학에 사용될 것이다. 은 행이 고객에게 대출을 제공하여 고객은 집을 이사할 수 있다. 공장이 원자재로 부품을 만들면 고객은 이를 조립하여 복잡한 완제품을 만들어낸다. 딜러로부터 중고차를 구입하는 고객은 구 입한 차량으로 직장에 출퇴근하거나 휴가를 떠난다. 이 모든 구조의 다양성과 그 사이의 과정은 경탄스럽다. 모두가 함께 일하며 이루어지는 상호 작용이 어떻게 이렇게 자연스럽게 이루어질 수 있을까?

210 하이퍼레저 블록체인 개발


이 모든 다양한 활동에 어떠한 공통점이 있는 것은 아닐까? 이 모든 복잡성을 이해할 수 있게 해주는 반복적인 패턴이 있을까? 가장 중요한 질문은 모든 활동에 적용할 수 있는 하나의 공통 적인 해결책이 있을까? 이 수많은 사람들과 조직이 하는 활동을 동일하게 취급할 수 있는 특성 이 있을까? 대답은, 물론 ‘그렇다’이다. 다음 절에서 더 자세히 알아보자.

6.1.1 비즈니스 네트워크를 위한 언어가 필요한가? 비즈니스 네트워크란 이러한 모든 활동을 조망하고 매우 단순한 언어로 설명할 수 있는 사고 방식이다. 우리의 목표는 블록체인에게 설명할 수 있는 언어를 통해 세상을 공식화하는 것이 고, 블록체인은 간단한 기술이기 때문에, 비즈니스 네트워크의 언어 역시 그 어휘가 단순해야 할 것이다. 다음 절부터 실제로 이 언어가 무엇인지 알 수 있을 것이다. 하지만 본격적으로 시작하기 전에, 블록체인이 이해할 수 있는 언어를 왜 만들어야 할까? 이러 한 언어를 만들 수 있다면, 블록체인의 모든 이점을 그 언어로 묘사된 세계로 가져올 수 있을 것이다. 블록체인의 이점이 가져오는 효과는 명확하다. 바로 신뢰이다. 신뢰가 향상되면 대학교는 학생이 제출하는 고등학교 성적표가 사실임을 확신할 수 있다. 은행 은 고객의 재정적 복리에 대해 확신할 수 있기 때문에 가능한 가장 낮은 이자율로 고객에게 대 출을 제공할 수 있다. 고객은 제품에 들어가는 부품의 품질을 신뢰할 수 있기에 제조 업체가 제 품에 대해 더 높은 가격을 책정할 수 있다. 마지막으로, 중고차의 구매자는 차량의 사용 내역에 대한 믿음을 가질 수 있기 때문에 확신을 가지고 구매에 임할 수 있다!

비즈니스 네트워크의 정의 비즈니스 네트워크의 개념을 통해 이러한 모든 아이디어를 요약할 수 있다. 비즈니스 네트워크는 트랜잭션(거래)으로 이루어진 수명 주기를 가지는 참여자, 그리고 자산의 집 합이다. 트랜잭션이 완료되면 이벤트가 발생한다.

6장 비즈니스 네트워크 211


무엇을 의미하는지 한 번에 이해하기 힘들 것이다. 이 간단한 두 문장으로 그 모든 복잡성을 설 명할 수 있을까? 사실 그렇다. 이제부터 설명할 참여자, 자산, 거래, 이벤트의 의미를 이해하고 나면 다양한 인간 행위의 복잡성을 비교적 간단한 어휘로 설명할 수 있게 될 것이다.

6.2.1 심화 개념 실제로 비즈니스 네트워크의 이면에는 심화된 개념이 존재한다. 바로 기술 도메인의 언어, 어 휘가 비즈니스 도메인의 언어, 어휘와 밀접하게 일치해야 한다는 점인데, 이를 통해 비즈니스 개념과 기술 개념 간의 번역으로 인한 비용 장벽을 낮출 수 있다. 비즈니스 네트워크는 기반 기 술을 비즈니스와 동일한 언어로 설명하여 기술과 비즈니스의 괴리를 벗어날 수 있다. 이를 통 해 세상에 대한 추론을 보다 쉽게 하고, 아이디어를 시스템으로 전환하는 작업을 더 정확하게 할 수 있다. 사실상 비즈니스 네트워크 언어의 어휘는 처음에는 매우 간단하게 시작되지만, 실제 세계에서 일어나는 일의 세부 사항과 뉘앙스를 설명하다 보면 시간이 지남에 따라 구조가 매우 풍부해질 수 있다. 여기에 대해서는 나중에 다시 다루기로 하고, 먼저 참여자의 개념에 대한 설명부터 시 작해보자.

참여자란? 셰익스피어는 ‘세계는 남성과 여성이 배우가 되는 단계’라고 말했다. 이와 비슷하게 비즈니스 네트워크는 어떤 형태의 상호 이익을 위해 상호작용하는 배우들의 집합을 가지고 있다. 우리는 이러한 행위자를 비즈니스 네트워크의 ‘참여자participant’라고 부른다. 예를 들어, 교육 네트워크 의 참여자는 학생, 교사, 학교, 대학, 시험관 또는 정부 조사관이 될 수 있다. 보험 네트워크의 참여자는 보험 계약자, 중개인, 보험업자, 보험 회사, 보험 회사, 규제 기관 또는 은행이 될 수 있다. 참여자의 개념은 비즈니스 네트워크를 이해하는 데 중요하다. 처음에는 다소 낯선 용어가 있지

212 하이퍼레저 블록체인 개발


CHAPTER

7

비즈니스 네트워크의 예

이 장에서는 현실 세계의 사례를 포함하는 예제 비즈니스 네트워크를 통해 지금까지 논의한 모 든 개념을 종합할 것이다. 하이퍼레저 컴포저의 신용장 예제를 자세히 살펴보고 참여자, 자산, 트랜잭션, 이벤트가 코드에서 어떻게 실현되는지 이해하는 시간을 가질 것이다. 그리고 비즈니 스 네트워크의 사용, 분석, 정의, 그리고 정의를 통해 API 생성, 테스트, 예제 응용프로그램 통 합을 진행하는 방법에 대해 설명할 것이다. 이번 장은 개념을 실제로 구현하는 데 필요한 포괄 적인 둘러보기가 될 것이다. 신용장 예제를 사용하는 이유는 블록체인과 관련하여 일반적으로 논의되는 가장 잘 알려진 프로세스에 해당하기 때문이다. 우선 신용장의 프로세스에 대해 다루 고, 왜 이것이 대표적인 예제로 사용되는지 살펴볼 것이다.

신용장 예제 예제 시나리오를 만들어보자. 이탈리아 기업 ‘퀵픽스 IT’의 소유주인 앨리스는 미국에서 ‘콩가 컴퓨터’를 운영하는 밥으로부터 컴퓨터를 구매하기를 희망하고 있다. 앨리스는 자신의 주거래 은행인 ‘디네로 은행’에 신용장을 신청할 예정이다. 앨리스가 신청하는 신용장은 밥의 주거래 은행인 ‘이스트우드 은행’에서 지불 수단으로 인정받을 것이다. 이 시나리오를 바탕으로, 이제부터 䵱䵽䵽䵹䵼䵃䴸䴸䵰䵲䵽䵱䵾䵫䴷䵬䵸䵶䴸䵱䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻䴸䵬䵸䵶䵹䵸䵼䵮䵻䴶䵼䵪䵶䵹䵵䵮䴶 䵪䵹䵹䵵䵲䵬䵪䵽䵲䵸䵷䵼 에 있는 신용장 예제 응용프로그램을 사용하여 전체 과정을 시험해볼 것이다.

7장 비즈니스 네트워크의 예 241


이 저장소에는 비즈니스 네트워크의 여러 예제 응용프로그램이 포함되어 있으며 우리는 그중 신용장 예제를 사용할 것이다.

7.1.1 샘플 설치 3 장에서 실습을 모두 마쳤다면 필요한 환경 구성은 모두 완료되어 있을 것이다. 이제 예 제 응용프로그램의 저장소 (䵱䵽䵽䵹䵼 䵃䴸䴸 䵰䵲䵽䵱䵾䵫 䴷 䵬䵸䵶 䴸 䵱䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻 䴸 䵬䵸䵶䵹䵸䵼䵮䵻 䴶 䵼䵪䵶䵹䵵䵮 䴶 䵪䵹䵹䵵䵲䵬䵪䵽䵲䵸䵷䵼 )을 깃허브 계정에 추가한 후 다음 명령을 사용하여 로컬 시스템에 복제해보자. 䵬䵭 䵅˂‫ ݽ‬䵰䵲䵽 Ȩʮߥ̀䵇 䵰䵲䵽 䵬䵵䵸䵷䵮 䵰䵲䵽䵉䵰䵲䵽䵱䵾䵫䴷䵬䵸䵶䵃䵅‫؜‬ӭ؉ 䵰䵲䵽䵱䵾䵫 ؎˹䵇䴸䵬䵸䵶䵹䵸䵼䵮䵻䴶䵼䵪䵶䵹䵵䵮䴶䵪䵹䵹䵵䵲䵬䵪䵽䵲䵸䵷䵼䴷䵰䵲䵽

해당 디렉터리를 탐색하고 다음 명령을 사용하여 신용장 샘플 응용프로그램을 설치하자. 응용 프로그램을 다운로드하고 설치하는 데 몇 분이 걸린다. 䵬䵭 䵬䵸䵶䵹䵸䵼䵮䵻䴶䵼䵪䵶䵹䵵䵮䴶䵪䵹䵹䵵䵲䵬䵪䵽䵲䵸䵷䵼 䵬䵭 䵹䵪䵬䵴䵪䵰䵮䵼䴸䵵䵮䵽䵽䵮䵻䴶䵸䵯䴶䵬䵻䵮䵭䵲䵽 䴷䴸䵲䵷䵼䵽䵪䵵䵵䴷䵼䵱

설치 스크립트는 또한 브라우저에서 응용프로그램의 프레젠테이션 계층을 시작할 것이다. 그 럼 이제 본격적으로 예제를 실행해보자.

7.1.2 샘플 실행하기 브라우저는 네트워크의 서로 다른 참여자에 해당하는 여러 탭을 열 것이다. 서로 다른 탭을 클 릭하면 각각에 해당하는 네트워크의 참여자를 볼 수 있다. 이제부터 예제를 돌리면서 각각의 참여자 입장이 되어 볼 것이다. 그럼 응용프로그램 사용 절차를 한 단계씩 알아보자.

242 하이퍼레저 블록체인 개발


1 단계 - 신용장 요청 준비 첫 번째 단계는 요청을 준비하는 단계이다.

1. 브라우저에서 첫 번째 탭을 선택하면 다음 페이지가 표시된다.

2. 이제 우리는 앨리스가 된 것이다(그렇게 가정하자). 앨리스의 은행 및 계좌의 세부 정보를 볼 수 있다. Apply (적용 ) 버튼을 클릭하면 신용장을 신청할 수 있다.

3. 신용장을 요청할 수 있는 페이지가 나타난다.

7장 비즈니스 네트워크의 예 243


2단계 - 신용장 요청 이번 단계는 밥의 컴퓨터를 구매하기 위한 신용장을 요청하는 첫 번째 단계이다. 모든 화면의 상단에는 전체 절차 중 현재 진행 중인 위치가 정확히 표시된다.

예를 들어 페이지 왼쪽에는 거래 당사자의 세부 정보, 즉 앨리스와 밥의 세부 정보가 표시된다. 회사 이름과 계정 세부 정보를 확인하자.

244 하이퍼레저 블록체인 개발


CHAPTER

8

블록체인 네트워크에서의 애자일

여기까지 잘 따라왔다면 하이퍼레저 패브릭에서 실행되는 관련 스마트 계약과 함께 완전한 기 능의 탈중앙화 응용프로그램을 갖췄을 것이다. 살림살이가 좀 나아질 만한 지식이 생기지 않았 는가? 그런데 솔루션은 시간이 지남에 따라 발전한다. 규제가 변경되거나, 컨소시엄에 새 구성 원이 가입하거나, 스마트 계약에 간단한 버그가 생길 수도 있다. 이유가 무엇이든 솔루션은 성 장하게 되어 있는데, 견고한 개발 및 운영 방식을 갖추지 못하면 변화에 맞춰 나가는 일이 힘들 어질 것이며 인생도 덩달아 힘들어질 것이다.

IT 조직의 개발 프로세스에서 민첩성을 유지하는 것도 어려운데, 컨소시엄에서는 어떻게 민첩 성을 확보할 수 있을까? 서로 다른 속도의, 다양한 문화권의 기업들이 어떻게 경쟁력을 유지하 면서 솔루션을 개선하고 유지할 수 있을까?

IT 업계의 애자일 및 데브옵스 주제는 업계의 오랜 화두이지만, 이 장에서는 이러한 개념 중 일 부를 블록체인 네트워크에 적용하는 데 초점을 맞출 것이다. ‘일부’를 적용하는 이유는, 블록 체인에 관련되어 특화된 부분을 강조할 것이기 때문이다. 자동화와 지속적 통합continuous integration (CI ) 및 지속적 배포continuous delivery (CD ) 파이프라인을 통해 블록체인 네트워크가 인력, 프로세 스, 기술에 미치는 영향에 대해 알아볼 것이다. 이 장에서는 다음과 같은 내용을 다룬다. • 프로모션 프로세스 정의 • 지속적 통합 파이프라인 구성

8장 블록체인 네트워크에서의 애자일 299


• 소스 제어 보호 • 네트워크 업데이트 • 팀 구조에서 컨소시엄의 의미

프로모션 프로세스 정의 프로모션 프로세스는 모든 시스템 수정이 통과해야 하는 핵심적인 활동 및 관문의 집합을 정 의한다. 일반적으로 개발, 패키징, 테스트(예: 단위 테스트, 기능 검증, 통합 테스트), 버전 관 리, 배포가 포함된다. 일반적으로 조직은 프로젝트 및 지원 팀이 기대하는 바를 설명하기 위해 문서화되고 표준화된 접근 방식을 갖게 된다. 하이퍼레저 패브릭 네트워크의 경우 다음과 같은 두 가지 이상의 프로모션 프로세스가 있다. • 스마트 계약: 이러한 구성 요소는 시스템 참가자 간의 비즈니스 상호작용에 필수적이므 로, 모든 참가자가 계약 내용에 동의해야 한다. • 통합 계층: 프로모션 프로세스는 네트워크의 경계에 있기 때문에 그 소유자가 특정 조직 인지, 컨소시엄인지에 따라 영향을 받는다. 네트워크 정책 변경을 제어하는 프로세스가 있을 수도 있는데, 이 역시 스마트 계약 프로모션 프로세스와 거의 일치할 것이다. 파이프라인 설정을 알아보기 전에, 두 가지 프로모션 프로세스의 고려 사항을 먼저 자세히 알 아보자.

8.1.1 스마트 계약 고려 사항 앞에서 언급했듯 스마트 계약은 모든 블록체인 네트워크 참가자 간의 비즈니스 상호작용에 매 우 중요하다. 본질적으로 트랜잭션의 유효성을 확인하기 위한 규칙과 조건이 포함되어 있으므 로, 모든 참가자와 조직이 그 타당성에 동의하는지 확인해야 한다. 그렇지 않으면 신뢰가 손상 된다.

300 하이퍼레저 블록체인 개발


스마트 계약의 프로모션 조건에는 다음이 포함된다. • 이슈 추적 가능성: 이슈가 버그 수정인가, 혹은 새로운 기능일까? 조직은 구현에 옮기기 전 에 이슈의 종류를 파악하고 승인해야 할 필요가 있다. • 모든 테스트의 성공적인 실행: 대부분의 테스트는 자동화되어야 하고 그 결과가 기록되어야 한다. • 주요 당사자의 코드 리뷰: 조건에 대한 검토 없이 계약서에 서명하는 사람은 없을 것이다. 코드 리뷰는 비슷한 역할을 수행한다. • 영향 평가: 스마트 계약의 새 버전이 이전 버전과 호환 가능한가? 이전 버전과 호환되지 않는 변경 사항에 대해서는 추가적인 계획이 필요하다. • 주요 당사자의 승인: 다른 모든 사항을 앞두고 모든 관련자들의 승인을 얻었는가? 승인 내 역은 어디에 기록되는가? 여기서 주요 당사자의 정의는 컨소시엄에 의해 정의될 것이다. 주요 당사자는 현재 스마트 계 약을 사용하는 모든 조직일 수도 있고, 또는 창립 조직의 기술 리더 또는 구성원의 하위 집합을 나타낼 수도 있다. 스마트 계약 프로모션의 조건에 앞서, 프로모션의 빈도 또한 신경 쓸 여지가 있다. 어떤 조직 은 분기별 사이클에 익숙하지만 어떤 조직은 주간 배포에 익숙하다. 이러한 요소가 사전에 논 의되지 않으면 마찰이 발생한다. 컨소시엄이 예상하는 수준에 조직이 맞추어 나가기 위해 필요 한 운영 비용에 직접적인 영향을 미치기 때문이다. 스마트 계약은 전체 네트워크에 적용될 수 도 있고, 한 쌍의 참가자들에게만 적용될 수도 있다. 이러한 스마트 계약의 범위 지정과 다양한 조합에 따라 프로모션에 필요한 시스템 역시 달라진다. 중요한 것은, 오해와 분쟁을 미연에 방지하기 위해서는 스마트 계약을 수정하는 조건과 프로세 스가 컨소시엄에 의해 미리 정의되어야 한다는 것이다. 어떤 점에서 이것은 기존의 계약서 수 정 절차와 다르지 않다. 갈등을 피하기 위해서는 계약 수정 조건을 미리 합의해야 한다.

8장 블록체인 네트워크에서의 애자일 301


8.1.2 통합 계층 고려 사항 5장에서 보았듯이 조직 및 컨소시엄이 네트워크에서 트랜잭션을 호출하는 데 사용할 수 있는 몇 가지 패턴이 있다. 이러한 패턴은 프로모션 프로세스 관리에 도움이 된다. 응용프로그램의 서비스 계층에서 직접 패브릭 SDK를 호출하면 응용프로그램의 소유자가 해 당 프로모션 프로세스를 관리해야 한다. 만약 그 대신 컨소시엄이 REST 게이트웨이의 사용을 도입한다면 스마트 계약과 같은 프로세스를 따라 배포가 진행될 것으로 기대할 수 있다. 소유자와 상관없이, 통합 계층에서 제공하는 추상화는 스마트 계약과 응용프로그램을 분리시 키는 중요한 역할을 하므로 어쨌든 계속 발전할 것으로 예상된다. 그렇다고 해서 영향 평가의 중요성이 사라지지는 않는다.

8.1.3 프로모션 프로세스 개요 개념에 대한 정의를 마쳤으니, 이제 응용프로그램의 프로모션 프로세스를 좀 더 자세히 알아보 자. 이제부터 소프트웨어 설정 관리 도구로 깃을 사용하고, 프로모션 프로세스를 지원하기 위 해 소셜 코딩social coding 기법을 다음과 같이 활용할 것이다. • 깃 이슈를 사용하여 새로운 기능이나 버그 수정 사항을 기록할 수 있다. • 깃 브랜치를 사용하여 제안된 수정 사항을 분리할 수 있다. • 깃 GPG는 모든 커밋과 태그에 서명하는 데 사용된다. • 풀 요청(풀 리퀘스트)pull request은 소스 코드 관리 체계를 강화하는 데 사용된다. 다음 다이어그램은 응용프로그램 설정에 사용할 프로세스를 요약한 것이다.

302 하이퍼레저 블록체인 개발


블록체인 테스트 네트워크

아티팩트 저장소

배포 인프라 및 코드 트래비스 CI

빌드

패키지

단위 테스트

풀 요청

FV/IV 테스트

서명 및 게시

풀 요청

브랜치 마스터 리베이스

태그 릴리스

커밋 푸시 커밋 푸시

클론

개발자

1 개발자

클론

2

TIP

로컬 빌드 및 테스트

로컬 빌드 및 테스트

풀 요청이란?

이 장에서는 독자가 이미 깃의 개념에 익숙하다고 가정한다. 만일 깃이 낯설다면, 깃에 대해 먼저 알아보는 것을 권 장한다. 간단히 요약하면, 풀 요청이란 사람들이 포크(즉, 서로 다른 저장소의 코드) 또는 브랜치(같은 저장소 내의 코드) 간에 코드 변경 사항을 주고받을 수 있는 프로세스이다. 이는 모든 코드 변경 사항을 검토하고, 주석을 달고, 궁극적으로 승인하는 정형화된 절차를 제공한다.

이제 이 프로세스를 자세히 살펴보고 신뢰 문제와 코드의 출처에 초점을 맞출 것이다. 지금까 지 논한 바와 같이 스마트 계약은 블록체인 네트워크의 중심에 있으므로, 불미스러운 사건을 피하기 위해 그 이력을 면밀히 추적해야 한다. 이러한 관점에서 요구 사항(깃 이슈)으로부터 배포까지 이력 관리가 필요하다. 따라서 모든 코드 수정 작업은 깃 이슈로부터 시작해야 한다. 해당 기능의 범위가 무엇인지(기 능 요청 또는 버그 수정) 올바르게 식별하고, 예상되는 작업을 정확하게 설명해야 한다.

8장 블록체인 네트워크에서의 애자일 303


거버넌스에 대한 측면은 몇 개의 장에 걸쳐서 다루겠지만, 일단은 이슈의 우선순위가 정해지고 나서 컨소시엄의 우선순위에 따라 작업이 할당될 것이라고 가정할 수 있다. 개발자가 문제에 대한 작업을 할당받고 나면, 첫 번째로 할 일은 해당 깃 이슈와 관련된 모든 코드 변경 사항을 추적하는 임시 깃 브랜치를 만드는 것이다. 안정적인 버전의 코드를 나타내 는 마스터 브랜치에서는 절대 코드 수정을 수행해서는 안 되며, 새로운 기능과 버그 수정은 안 정적인 스트림으로 통합하기 전에 철저히 검토해야 한다. 개발자는 자신의 로컬 환경에서 모든 적절한 테스트를 실행하고, 코드 준비가 완료되고 모든 단위 테스트가 성공적으로 완료되면 수정된 코드를 해당 브랜치로 커밋해야 한다. 깃은 변경 사항을 커밋할 때 GPG를 사용하여 모든 작업에 서명할 수 있는 기능을 제공한다. 그럼 GPG란 무엇일까? GNU 프라이버시 가드GNU Privacy Guard의 약자이며 䵸䵹䵮䵷䵹䵰䵹 표준의 공 개 구현체이다. 기본적으로 개인 키를 사용하여 데이터를 서명하고 암호화하는 데 도움이 되는 도구를 제공한다. 깃은 개발자가 작업에 서명할 수 있도록 GPG를 구현했다. 각 커밋 또는 태 그에 작성자의 GPG 키를 사용하여 서명할 수 있으므로 커밋에 대한 부인 방지가 가능하다.

GPG를 사용하여 코드를 수정하는 이유는 무엇일까? 일부는 이것이 오버헤드라고 말할 수 있 지만, 수정되는 코드는 법적 계약을 나타내며 네트워크 신뢰의 근원에 있다고 간주할 수 있다. 이러한 관점에서 저자의 신원이 의심할 여지없이 입증되었는지 확인하는 것이 바람직할 수 있다. 일반적인 커밋에 단일 요소 인증을 사용하는 것만으로는 소유권을 입증하기에 충분하지 않을 수 있다. 인터넷에서 신원 도용에 대해 알려진 여러 사례만 봐도 이는 명확하다. 커밋에 대한 서명이 없으면, 불순한 개발자가 자신의 이익을 위해 스마트 계약을 수정하고 자 신이 코드 변경을 하지 않았다고 주장하면 큰 문제가 생길 수도 있을 것이다. 이런 일이 일어나 면 네트워크의 실행 가능성이 위태로워질 것이고, 이는 커밋 서명을 사용할 때의 불편함보다 훨씬 불편한 상황이 될 것이다. 개발자가 커밋에 서명하고 나면 풀 요청을 제출할 준비가 된 것이다. 풀 요청은 다음과 같은 기 준을 검사하도록 설정되었다. • 임시 브랜치는 마스터 브랜치의 최신 상태를 반영했다. • 모든 커밋이 서명되었다. • 코드 소유자는 코드 변경 사항을 검토하고 승인했다.

304 하이퍼레저 블록체인 개발


CHAPTER

9

블록체인 네트워크의 수명

지금까지의 실습을 통해 패브릭 네트워크는 이제 스마트 계약을 통해 다른 엔티티를 연결하고, 웹 인터페이스를 통해 사용자에게 서비스하는 응용프로그램을 설정하고 실행할 수 있게 되었 다. 또한 개발자와 시스템 관리자가 코드를 유지 관리하고 업데이트를 푸시하며 네트워크 구성 을 관리할 수 있도록, 시스템 보호 및 서비스 중단 없이 시스템 테스트 및 유지 보수를 수행할 수 있는 절차도 마련되었다. 하지만 이것이 응용프로그램의 최종적인 상태는 아니다. 응용프로그램에 대한 요구와 기대는 계속 늘어나며, 특히 여러 시점에서 서로 다른 요구 사항을 갖는 여러 주체가 공동으로 작업하 는 응용프로그램에서는 더욱 그렇다. 또한 응용프로그램의 특성과 기능이 손상되지 않은 상태 에서도 소프트웨어 자체가 지속적으로 변경되고 발전해야 한다는 수요도 있다. 마지막으로 분 산 서비스를 지향하는 응용프로그램(모든 하이퍼레저 패브릭 응용프로그램에 해당)은 시간에 따라 변화하는 사용자의 성격과 수에 따라 하드웨어 및 소프트웨어 자원 할당을 변경할 준비를 갖추어야 한다. 따라서 블록체인 응용프로그램은 수명 주기 동안 많은 변경 사항을 거치며, 코드 및 설정 업데 이트가 필요하다. 이러한 변경 사항이 패브릭 네트워크 또는 일반적인 블록체인에 국한되지는 않지만, 변경 사항 적용을 위해 필요한 메커니즘과 이러한 메커니즘을 선택하는 데 고려해야 할 사항은 플랫폼에 따라 다르며 이는 이 장의 주제가 될 것이다. 먼저 예제 코드를 통해 구체 적인 시나리오를 설명하고, 시스템 업그레이드를 계획하는 구성 및 지침을 바탕으로 패브릭 응 용프로그램을 수정하는 여러 가지 방법을 검토할 것이다. 그런 다음 응용프로그램 및 네트워크

9장 블록체인 네트워크의 수명 335


구성원 변경 사항과 산업 규모의 블록체인 응용프로그램에 적용되는 관련 사항을 논의할 것이 다. 이 장의 후반부에서는 응용프로그램 및 시스템 자원의 상태를 모니터링하고 고성능을 보장 하기 위해 시스템을 설계 또는 업그레이드하는 시스템 유지 관리 방법에 대해 알아볼 것이다. 이 장에서는 다룰 내용은 다음과 같다. • 하이퍼레저 수정 및 업그레이드 • 패브릭 응용프로그램, 패브릭 블록체인, 응용프로그램의 수명 주기 • 네트워크에 새 조직 추가하기 • 체인코드 논리 수정 • 체인코드의 디펜던시 업그레이드 • 승인 정책 업데이트 • 시스템 모니터링 및 성능 • 컨테이너 및 응용프로그램 프로파일링 • 응용프로그램 성능 측정

하이퍼레저 패브릭 응용프로그램 수정 또는 업그레이드 5장에서 살펴본 일반적인 하이퍼레저 패브릭 응용프로그램의 설계는 수명 주기 동안 필요한 업그레이드 유형에 대한 힌트를 담고 있다. 패브릭 네트워크 및 사용자의 요구 사항이 시간이 지남에 따라 변하는 다양한 방식을 살펴보자. • 소프트웨어 업데이트: 변경 및 업그레이드는 소프트웨어 유지 관리의 필수적인 부분이다. 버그, 성능 비효율성, 보안 결함(예: 윈도우 업데이트 서비스)을 개선하기 위해서는 수 정이 필요하다. 예상치 못한 문제를 처리하기 위해 소프트웨어에 대해 주요 설계 변경이 이루어지는 경우도 있으며, 이는 드물지만 필연적으로 발생한다. 또한 대부분의 응용프 로그램이 다른(제3자) 소프트웨어에 종속되어 있기 때문에 하나의 업그레이드는 이전 소프트웨어의 해당 사항에 대한 변경을 파생시킨다. 윈도우 서비스 팩의 예를 생각해보자. 하이퍼레저 패브릭 세계에서 응용프로그램 개발자, 또는 시스템 관리자는 응용프로그램

336 하이퍼레저 블록체인 개발


CHAPTER

10

거버넌스, 규제 산업의 필요악

의사결정 과정이 불분명한 프로젝트를 경험한 적이 있는가? 이러한 프로젝트의 구성원은 다양 한 이해 관계자의 영향으로 의사결정이 끊임없이 뒤집어지고 수정되어 고통을 느끼게 된다. 보 통 이런 상황에서는 정치가 시작되고, 프로젝트의 목적 달성이 어려워지고, 예산이 삭감되며, 장기적인 비전이 누락되거나 혼란을 겪게 된다. 이런 문제는 기존의 IT 프로젝트에서 항상 발생하는데, 블록체인 프로젝트는 특히 이해 관계자 가 더 많다는 특징이 있다. 일반적으로 비즈니스 네트워크를 구성하는 조직은 때로는 경쟁하고 때로는 협력하는 관계를 가진다. 즉, 상반되는 시각, 견해, 관심사로 인한 문제에 언제나 노출 되어 있는 셈이다. 개발자이든 CIO이든, 이러한 프로젝트의 특징을 이해하고 거버넌스 모델을 통해 문제를 완화 하는 방식을 알아두면 프로젝트의 미래를 준비하는 데 큰 도움이 될 것이다. 이 장에서는 다양한 산업에서 볼 수 있는 몇 가지 패턴을 소개하고, 이러한 블록체인 비즈니스 네트워크를 형성하는 방법과 기본적인 거버넌스 모델의 기능을 탐구한다. 이 장에서는 다음 항목에 대해 설명한다. • 거버넌스란? • 다양한 비즈니스 모델 • 비즈니스 네트워크에서 거버넌스의 역할

10장 거버넌스, 규제 산업의 필요악 383


• 일반적인 거버넌스 구조 및 단계 • 고려할 역할 및 프로세스 • 거버넌스가 IT 솔루션에 미치는 영향

탈중앙화와 거버넌스 왜 블록체인 책에서 거버넌스를 다루고 있는지 궁금한 독자도 있을 것이다. 블록체인 네트워크 는 결국 탈중앙화되어 있는데, 이는 단일 개체의 통제에서 자유롭다는 의미가 아닌가? 이는 기 술적인 측면에서 볼 때 사실이지만, 어쨌든 블록체인 프로젝트 역시 사람이 하는 일이며 엔터 프라이즈급 블록체인 네트워크가 성공하기 위해서는 네트워크 수명 주기 전반에 걸쳐 많은 결 정을 내릴 필요가 있다. 탈중앙화된 익명성 비허가형 블록체인 네트워크인 비트코인조차도 중요하고 어려운 결정을 처 리해야 한다. 한 예로 비트코인 블록 크기에 관한 논쟁이 있다. 비트코인 초기에는 블록 크기에

1MB의 제한이 설정되었다. 그런데 네트워크가 확장됨에 따라 이 한계가 문제가 되었다. 수많 은 제안이 발표되었지만 비트코인 노드 전체에 대한 합의가 필요하기 때문에 제안에 담긴 변경 사항에 동의하기는 어려웠다. 이 논쟁은 2015년에 시작되었지만 비트코인 커뮤니티는 2018 년 2월에 문제에 대한 부분적 해결책인 세그윗SegWit이 실행될 때까지 기다려야 했다. 세그윗은 분리된 증인segregated witness의 약자로 트랜잭션 페이로드에서 서명을 분리하여 블록 내에서 더 많

은 트랜잭션을 포함하는 방식으로 문제를 완화하였다. 즉, 수많은 토론과 의견 교환을 통해 부 분적인 해결책을 얻은 것이다. 또한, 블록체인 비즈니스 네트워크는 그 근본적인 속성 때문에 모든 참가자가 서로를 완전히 신뢰하지 않는 환경에서 신뢰를 창출해야 한다. 이런 상황에서 네트워크를 관리하는 방법에 대 해 어떻게 합의할 것인가? 갈등과 이질적인 견해가 있음을 알면서 이를 어떻게 해결할 수 있을까? 우선 핵심 조직의 중요 한 의사결정권자를 참여시키는 프로세스가 필요하다. 참가자가 결과를 따르고 존중하는 데 동 의하는 프로세스에 대한 기본 합의가 필요하다. 네트워크를 관리govern할 방법, 즉 거버넌스가 필요하다.

384 하이퍼레저 블록체인 개발


그렇다면 거버넌스는 순전히 의사결정에 관한 것인가? 그렇지 않다. 거버넌스는 의사결정 프 로세스를 안내하는 프레임워크를 제공하는 방법론이다. 거버넌스는 역할과 책임에 대한 명확 한 묘사를 제공하고, 결정에 도달하고, 의사소통하기 위한 합의된 프로세스가 있음을 보장한다. 지금까지 다룬 의사결정에 대한 내용은 일반론에 가깝지만, 거버넌스 프로세스를 통해 관리해 야 하는 의사결정 유형은 무엇일까? 자금 지원, 기능 로드맵, 시스템 업그레이드 및 네트워크 확장을 다루는 모든 것이 확실히 거버넌스 프로세스에서 다루어야 할 핵심 주제라고 할 수 있다. 비즈니스 및 IT 거버넌스는 방대한 주제이다. 그래서 IT 업계의 실질적인 가이드를 목표로 하 는 많은 IT 거버넌스 표준을 찾을 수 있다. 그러한 표준의 몇 가지 예는 다음과 같다. • IT 인프라 구조 라이브러리Information Technology Infrastructure Library (ITIL ): ITIL은 주로 IT가 비즈니 스에 서비스를 제공하는 방법에 중점을 두고 있으며, IT 서비스 관리를 지원하는 프로세 스 모델을 정의하는 것을 목표로 하며 IT 서비스를 근본적인 기술적 세부 사항보다는 비 즈니스적 장점을 제공하는 기능으로 표현한다. • 정보 및 관련 기술에 대한 제어 목표Control Objectives for Information and Related Technologies (COBIT ): 이 표준은 거버넌스와 관리의 두 부분으로 나뉜다. COBIT의 거버넌스 부분은 평가, 방향, 모니터링 프로세스에 대한 일련의 제어 목표를 통해 기업 목표를 달성하도록 보장하는 데 중점을 둔다. 어느 쪽이든 표준 접근법은 항상 비즈니스 모델 및 맥락에 맞게 적응시키고 조정해야 한다.

비즈니스 모델 탐색 비즈니스 모델은 조직이 시장에서 가치를 창출하고 획득하는 방법의 흐름을 설명하는 구조를 만드는 데 중점을 둔다. 비즈니스 네트워크의 맥락에서 가치 사슬을 살펴보고 그 가치의 출처를 이해하는 것은 흥미로 운 일이다. 블록체인 네트워크가 재정적 관점에서 매력적인 이유는 무엇일까? 1장에서 보았듯 이 블록체인 기술은 비효율성 및 운영 비용을 절감, 시간과 신뢰의 문제를 해결할 수 있는 기회 를 제공한다.

10장 거버넌스, 규제 산업의 필요악 385


10.2.1 블록체인의 이점 시간과 신뢰의 문제를 해결하면 어떤 이점이 생길까? 다음 절에서 이러한 이점을 구현할 수 있 는 위치 및 방법에 대한 몇 가지 예를 살펴보자.

공급망 관리 공급망 시스템은 생산자부터 물류 서비스 공급자, 항만 당국, 제조 업체, 소비자까지 많은 행위 자로 구성된다. 업계에서는 다양한 규제를 다루어야 하며, 여러 조직 간에 많은 데이터 교환이 이루어지지만 단일한 버전의 진실을 확보하는 것은 불가능하다. 공급망에 대한 신뢰 부족은 데이터가 경쟁 업체에 누출될 수 있다는 많은 조직의 두려움에 기 인한다. 이를 다음과 같은 문제로 해석할 수 있다. • 투명성: 내 주문은 어디에? 내 컨테이너는 어디에? 투명성이 없으면 제조 업체의 예측에 영향을 미치고 생산 지연이 발생할 수 있다. • 관리 오버헤드: 데이터를 여러 번 입력해야 하므로 사람의 노력과 조정 프로세스를 통해 오류를 감지해야 한다. • 분쟁: 정보의 공통 출처에 대한 접근성 부족으로 인해 다양한 행위자에 대한 인식이 불일 치할 수 있고, 이러한 불일치가 분쟁으로 이어진다. • 조사: 분쟁을 해결하기 위해서는 여러 당사자가 사실을 수집하고 문제를 해결하기 위한 노력을 기울여야 한다. 이러한 맥락에서 탈중앙화, 허가형 원장은 경쟁자가 민감한 정보에 접근하는 것을 방지하면서 모든 주문과 모든 선적을 실시간으로 추적할 수 있음을 의미한다. 이 모델은 각 트랜잭션의 출 처를 쉽게 증명할 수 있기 때문에, 중복된 데이터 항목을 제거하고 사람의 실수를 줄이며 신속 한 조사에 기여할 것이다. 세계 경제 규모를 감안하면 잠재적인 절약 효과를 상상하기는 어렵지 않다. 허가형 원장을 통 해 관리되는 단일한 버전의 진실이 있고 모든 관련 주체가 정보에 접근할 수 있는 세계를 상상 해보면, 이러한 시스템이 공급망 전체에 가져오는 즉각적인 이점을 알 수 있다.

386 하이퍼레저 블록체인 개발


CHAPTER

11

하이퍼레저 패브릭 보안

하이퍼레저 패브릭은 모듈형 블록체인 시스템으로서 알려진 행위자의 집합이 블록체인 네트 워크(소위 허가형 블록체인 )에 참여하고 행동을 수행할 수 있도록 설계되었다. 모듈형 시스템 이 가지는 특성 덕택에 패브릭을 다양한 설정으로 배포할 수 있다. 하이퍼레저 패브릭의 여 러 가지 배포 설정은 사용자뿐 아니라 네트워크 운영자가 여러 가지 보안 관련 사항을 고려하 게 한다. 하이퍼레저 패브릭은 공개 키 기반 구조 (PKI ) 시스템이므로, PKI 시스템과 관련된 보안(및 복 잡성)을 그대로 이어받았다. 집필 시점에서 하이퍼레저 패브릭의 최신 버전인 v1.1이 출시되 었다. TIP

블록체인 네트워크의 설계와 구현에 대한 보안적 측면은 이전 응용프로그램 단원에서 다루었으므로, 여기에서 는 하이퍼레저 패브릭의 보안 기능에 대한 더 심층적인 정보를 다루고자 한다.

이 장에서는 다음과 같은 내용을 다룬다. • 보안에 영향을 미치는 설계 목표 • 하이퍼레저 패브릭 아키텍처 개요 • 네트워크 부트스트랩 및 관리 - 보안을 향한 첫 단계 • 강력한 신원 - 하이퍼레저 패브릭 네트워크의 보안 핵심 • 체인코드 보안

11장 하이퍼레저 패브릭 보안 409


• 일반적인 보안 위협과 하이퍼레저 패브릭이 이를 대비하는 방법 • 하이퍼레저 패브릭과 양자 컴퓨팅 • GDPR 고려 사항

보안에 영향을 미치는 하이퍼레저 패브릭 설계 목표 하이퍼레저 패브릭의 보안을 이해하려면 보안 측면의 주요 설계 목표를 먼저 살펴보아야 한다. • 기존 구성원이 네트워크에 새 구성원을 추가하는 방법을 결정: 네트워크의 새 조직 가입을 승인 하려면 네트워크의 기존 조직이 동의해야 한다. 이 원칙은 허가형 블록체인을 형성하는 기초이다. 특정 조직이 소프트웨어를 다운로드하고 네트워크에 연결하기만 하면 가입되 는 것이 아니라, 네트워크 기존 구성원이 새로운 구성원을 승인하는 정책에 동의해야 한 다(예: 다수결 투표). 그러면 하이퍼레저 패브릭이 이를 공식화한다. 투표에서 새 구성 원이 승인되면 해당 구성원의 디지털 증명서를 기존 네트워크에 추가할 수 있다. • 기존 구성원이 설정/스마트 계약을 업데이트하는 방법을 결정: 첫 번째 항목과 마찬가지로 네트 워크 설정 변경이나 스마트 계약의 배포, 또는 인스턴스 생성에도 네트워크 구성원의 동 의가 필요하다. 즉, 이러한 동의 절차가 하이퍼레저 패브릭을 허가형 블록체인으로 기능 하게 하는 요인이다. • 원장 및 관련 스마트 계약 (체인코드 )이 관련된 피어로만 범위를 한정하여 보다 광범위한 개인 정 보 보호 및 기밀 유지 요구 사항을 충족: 공공형 블록체인 네트워크에서 모든 노드에는 블록

체인 원장 복사본이 있으며 스마트 계약을 실행한다. 정보의 기밀성 및 범위 지정을 유지 하려면 거래와 연결된 원장(하이퍼레저 패브릭의 채널 및 채널 개인 데이터)을 저장하는 피어 그룹을 만들어야 한다. 이러한 원장을 업데이트하는 스마트 계약(하이퍼레저 패브 릭의 체인코드)은 해당 그룹의 구성원에게만 적용된다. TIP

채널에 참여하는 구성원만이 해당 채널의 설정을 업데이트하는 방법을 결정할 수 있어야 한다.

• 스마트 계약을 범용 언어로 작성: 하이퍼레저 패브릭의 주요 설계 목표 중 하나는 스마트 계 약을 Go 및 자바스크립트와 같은 범용 언어로 작성할 수 있게 하는 것이다. 그런데 스마 트 계약 실행을 위한 범용 언어를 허용하면 시스템에 다양한 보안 문제가 노출될 수 있

410 하이퍼레저 블록체인 개발


다. 특히 실행 전 스마트 계약을 확인하고 배포하기 위한 거버넌스 및 프로세스가 없는 경우 문제가 많을 것이다. 그래서 범용 언어로 작성된 스마트 계약은 실수로 발생할 수 있는 위험을 제한하기 위해 합리적으로 격리되어야 한다. • 트랜잭션 무결성의 보장: 트랜잭션은 스마트 계약의 실행 그 자체이다. 트랜잭션은 다른 피 어가 임의로 변조하지 못하도록 작성되고 저장되어야 하며, 트랜잭션에 일어난 변조를 감지하기 쉽게 만들어져야 한다. 일반적으로 트랜잭션 무결성을 보장하려면 암호화 기본 요소를 사용해야 한다. • 업계 표준의 활용: 시스템은 디지털 ID (예 : X.509 인증서) 및 피어 간의 통신(예: TLS 및 gRPC )을 위해 업계 표준을 활용해야 한다. • 트랜잭션 실행 및 유효성 검증의 분리: 기존 블록체인 네트워크는 트랜잭션 실행과 유효성 검사를 결합하여 블록체인 네트워크의 노드 간에 합의를 도출했다. 이렇게 결합된 합의 방식으로는 합의 알고리즘을 교체형으로 구현하기가 어렵다. • 플러그인형 설계: 시스템은 모듈형 설계를 가져야 하며 각 모듈은 표준 인터페이스를 통해 플러그인이 가능해야 한다. 하이퍼레저 패브릭은 네트워크에 특정 모듈을 연결하는 기능 을 통해 다양한 설정에서 사용할 수 있는 유연성을 제공한다. 그러나 이러한 플러그인 기 능은 하이퍼레저 패브릭을 기반으로 하는 블록체인 네트워크의 두 가지 인스턴스가 서로 다른 보안 속성을 가질 수 있음을 의미하기도 한다. 이러한 원리가 하이퍼레저 패브릭의 보안에 어떤 영향을 미치는지 이해하기 위해 하이퍼레저 패브릭의 아키텍처를 다시 짚고 넘어갈 필요가 있다. 아키텍처에 대한 깊은 설명은 앞에서 다 룬 바 있으므로, 여기에서는 보안에 관련된 부분만 간략히 살펴보자.

11장 하이퍼레저 패브릭 보안 411


하이퍼레저 패브릭 아키텍처 하이퍼레저 패브릭 아키텍처를 다음과 같이 도식화할 수 있다.

개별 데이터

원장 (블록+전역 상태)

체인코드

패브릭 CA (MSP)

패브릭 CA (MSP)

원장 (블록+전역 상태)

피어

피어

체인코드

피어

피어

체인코드

패브릭 CA (MSP)

패브릭 CA (MSP)

원장 (블록+전역 상태)

개별 데이터

정 렬 서 비 스 체인코드

개별 데이터

원장 (블록+전역 상태)

개별 데이터

하이퍼레저 패브릭 아키텍처

11.2.1 패브릭 CA 또는 멤버십 서비스 공급자 멤버십 서비스 공급자 ( MSP )는 조직의 피어 및 사용자를 위한 디지털 ID를 생성하는 역할을 한

다. 새 조직이 채널에 참여하려면 피어의 ID를 기존 네트워크에 설정해야 한다. 패브릭 CA는 MSP의 구현체로 네트워크 구성원의 사용자를 등록하고 디지털 ID (X.509 인 증서)를 발급하는 메커니즘을 제공한다. 패브릭 CA는 일반적으로 도커 컨테이너에서 실행된 다. 각 패브릭 CA는 등록된 ID와 X.509 인증서를 저장하는 백엔드 데이터베이스(기본값은

SQLite이고 PostgreSQL 또는 MySQL과 같은 다른 옵션이 있다)로 구성된다. 패브릭 CA는 사용자의 개인 키를 저장하지 않는다.

412 하이퍼레저 블록체인 개발


CHAPTER

12

블록체인의 미래와 앞으로의 과제

이 책이 여러분에게 블록체인 기술 프로젝트를 위한 하이퍼레저를 소개하고 전반적인 비즈니 스 관점을 다루는 흥미롭고 유익하고 교육적인 여정이 되었으면 하는 바램이다. 블록체인 기술 및 하이퍼레저 프레임워크 및 도구의 속도와 발전이 급격히 변화함에 따라, 이 책은 집필진 모 두에게 흥미로운 프로젝트였다. 집필진은 탄탄한 콘텐츠를 바탕으로 블록체인 비즈니스 네트 워크 솔루션 설계의 핵심 요소 중 일부에 대한 심층적인 통찰력을 제공하기 위해 노력했다. 집 필진의 다수는 블록체인 기술 커뮤니티, 기술 및 사고 리더의 핵심적인 구성원으로 활동하는 데, 아직 개인 정보, 기밀성, 확장성 등의 복잡한 문제를 해결하는 데 아직 갈 길이 멀다고 생각 한다. 또한 장기적으로는 네트워크 중심 코드 접근 방식을 통해 인프라 관리를 통해 예측 가능 한 거래 비용으로 경제적으로 실행 가능한 솔루션을 제공해야 할 것이다. 비즈니스 네트워크를 운영하는 비즈니스 모델은 트랜잭션과 관련된 네트워크 프로세싱의 비용 및 예측 가능성에 따 라 달라지기 때문에 이는 중요한 고려 사항이다. 이 책에서 다루는 주제의 범위를 넘어서, 오늘날의 중앙화된 관리 세계와 비즈니스 트랜잭션의 모든 측면에 대한 완전한 탈중앙화는 일종의 스펙트럼으로 봐야 한다. 완전한 탈중앙화를 이루 고 블록체인의 완전한 약속을 달성하는 길은 쉬운 일이 아니다. 업계 리더와 업계 컨소시엄이 수행하는 선도적인 프로젝트들은 기술, 신뢰, 트랜잭션 위험을 이해하기 위한 노력으로 간주되 어야 한다. 이것은 대부분 탈중앙화된 세계로 완전히 전환되기 전에 이루어지며, 업계의 도전 자 또는 스타트업이 주도하는 경우도 많다. 중앙화와 탈중앙화의 스펙트럼은 흥미로운 관점이 며, 혁신은 그 양면에서 기다리고 있다. 각 산업에 특화된 혁신 및 채택의 패턴을 통해 프로덕 션 수준 블록체인 기반 비즈니스 네트워크의 준비 상태를 알 수 있다.

12장 블록체인의 미래와 앞으로의 과제 429


이 책의 각 장은 독자가 올바른 콘텐츠를 올바르게 사용할 수 있도록 신중히 선정되었다. 그러 면서도 개념 증명을 뛰어넘는 프로젝트를 위한 블록체인 기반 비즈니스 및 기술 설계를 다루기 위해 필요한 광범위한 논의 및 구현 세부 사항을 의미 있게 다루기 위해 노력하였다. 이 책의 집필진은 업계의 실무자로서 블록체인 네트워크 설계에 필요한 비즈니스 이해와 기술 통찰력 모두에서 어려움을 직접 경험했다. 결국 이 분야의 통찰력, 분류학, 일반적인 디자인 패턴이 심 각하게 부족하다는 사실이 동기 부여가 되어 이 책을 위해 에너지와 시간을 투입했다. 이제부터 몇 가지 중요한 주제에 대한 간략한 요약과 주요 내용을 제공하고, 다양한 장의 주제 요소를 묶어 기술 전망, HL 프로젝트, 엔터프라이즈 중심 블록체인 기술 간의 구분, 암호 자산 중심의 세계 등에 대한 깊은 이해를 도모하고자 한다. 혁신과 결과적 비즈니스 모델의 재창조 가 우리가 아는 것처럼 세상을 변화시키려는 새로운 경제적 가치로 인도할 것이므로, 중앙화와 탈중앙화 양측 모두의 동기와 기술 발전을 이해하는 것이 필수적이다.

주요 하이퍼레저 프로젝트 요약 이제부터 이 책을 쓰는 시점에 진행 중인 주요 하이퍼레저 프로젝트와 각 프로젝트가 블록체인 기술 설계의 요소에 제공하는 보완적인 가치를 요약하고 검토하고자 한다.

12.1.1 하이퍼레저 프레임워크 - 비즈니스 블록체인 기술 하이퍼레저 프레임워크 중 몇 가지를 다시 살펴보자. • 하이퍼레저 버로: 허가형 스마트 계약 해석기를 갖춘 모듈식 블록체인 클라이언트로 EVM 사양을 따른다. • 하이퍼레저 인디: 탈중앙화된 신원 관리를 목적으로 만들어진 분산 원장이다. • 하이퍼레저 소투스: 자원의 소비를 최소화하면서 대규모 분산 밸리데이터를 대상으로 하는 새로운 합의 알고리즘인 경과 시간 증명 (PoET )을 탑재하였다. • 하이퍼레저 이로하: 분산 원장 기술을 필요로 하는 인프라 프로젝트에 간단하고 쉽게 통합 할 수 있도록 설계된 비즈니스 블록체인 프레임워크이다.

430 하이퍼레저 블록체인 개발


APPENDIX

A

한국어판 부록 : 하이퍼레저 패브릭 릴리스 노트 분석

독자들이 하이퍼레저 패브릭의 흐름과 최신 트렌드를 더 쉽게 이해할 수 있도록 이 책에 쓰인

v1.1부터 감수 시점에서 최신 버전인 v1.4까지의 릴리스 노트를 수록했다. 공식 문서를 바탕 으로 하되 가장 큰 변화만 추렸고, 패브릭에 대한 배경지식을 기반으로 재구성한 부분도 있다. 특히 이벤트 허브 내용은 호환성 이슈가 있을 수 있으므로 알아두면 도움이 될 것이다.

v1.4 공식 문서 䵱䵽䵽䵹䵼䵃䴸䴸䵱䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻䴶䵯䵪䵫䵻䵲䵬䴷䵻䵮䵪䵭䵽䵱䵮䵭䵸䵬䵼䴷䵲䵸䴸䵮䵷䴸䵻䵮䵵䵮䵪䵼䵮䴶䴺䴷䴽䴸䶀䵱䵪䵽䵼䵷䵮䶀䴷䵱䵽䵶䵵

하이퍼레저 패브릭의 첫 번째 장기 지원 릴리스 • 사용성serviceability 및 운용 향상: v1.4부터는 최초로 버그 수정이나 패치 등의 장기 지원 릴리 스를 제공한다. 릴리스 날짜부터 1년간 지원되며 v1.4.1, v1.4.2, … 같은 일련의 패치 들이 이루어질 예정이다. 2019년부터 상용 블록체인 프로젝트를 시작하는 거의 모든 곳 에서 해당 버전을 사용할 것으로 기대된다. • 애플리케이션 개발을 위한 프로그래밍 모델 향상: 탈중앙화 애플리케이션(dAPP ) 작성이 더 쉬워짐. Node.js SDK 및 Node.js 체인코드에서 모델링 모델을 프로그래밍하면 dApp 을 더 직관적으로 개발할 수 있으므로 애플리케이션 로직에 집중할 수 있다. 기존 䵷䵹䵶 패 키지는 계속 사용할 수 있지만 새로운 䵷䵹䵶 패키지는 개발자 생산성과 사용 편의성을 향

한국어판 부록 : 하이퍼레저 패브릭 릴리스 노트 분석

441


상시키는 추상 계층을 제공합니다.

프라이빗 데이터 향상 • 조정reconciliation: 프라이빗 데이터 컬렉션에 추가된 조직의 피어가 현재 자격이 있는 이전 트랜잭션의 개인 데이터를 열람할 수 있게 되었다. • 클라이언트 접근 제어: 별도의 체인코드 로직을 작성할 필요 없이 클라이언트의 조직 컬렉 션 멤버십에 따라 체인코드 내에서 접근 제어를 자동으로 시행한다.

v1.3 공식 문서 䵱䵽䵽䵹䵼䵃䴸䴸䵱䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻䴶䵯䵪䵫䵻䵲䵬䴷䵻䵮䵪䵭䵽䵱䵮䵭䵸䵬䵼䴷䵲䵸䴸䵮䵷䴸䵻䵮䵵䵮䵪䵼䵮䴶䴺䴷䴼䴸䶀䵱䵪䵽䵼䵷䵮䶀䴷䵱䵽䵶䵵 참고 문서 䵱䵽䵽䵹䵼䵃䴸䴸䵳䵲䵻䵪䴷䵱䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻䴷䵸䵻䵰䴸䵫䵻䵸䶀䵼䵮䴸䵏䵊䵋䴶䵁䴹䴿䴼

• 아이덴티티 믹서를 활용한 MSP 구현: 영지식 증명을 사용하여 신원을 익명으로 유지하는 방법으로, 테스트 환경에서 Identity Mixer MSP 구성 생성기로 䵲䵭䵮䵶䵲䶁䵰䵮䵷을 지원한다. • 키 수준의 승인endorsement 정책 설정: 기본값인 체인코드 레벨의 승인 정책을 키 기반의 승인 정책으로 재정의할 수 있다. • 페이지네이션을 사용하여 카우치DB 상태 데이터베이스 쿼리: 이제 클라이언트는 페이징을 사 용하여 고성능을 유지하면서 큰 데이터 세트를 사용할 수 있다. • 개발자를 위한 체인코드: Go와 Node.js와 마찬가지로 자바의 체인코드 중 빠져 있던

Core API 기능들이 다수 추가되었다. 프라이빗 데이터, 양방향 TLS, 단위 테스트 및 몇 가지 버그 수정과 함께 문서가 업데이트되었다(JIRA: FAB-8063 ). • 피어 채널 기반 이벤트 서비스: 피어 채널 기반 이벤트 서비스는 v1.1 때부터 있던 것으로, 이제 이전 버전의 이벤트허브event hub는 지원하지 않는다. v1.3으로 업데이트하기 전에, 구 버전의 이벤트 허브는 반드시 채널 기반의 이벤트 서비스로 교체되어야 한다.

442 하이퍼레저 블록체인 개발


v1.2 공식 문서 䵱䵽䵽䵹䵼䵃䴸䴸䵱䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻䴶䵯䵪䵫䵻䵲䵬䴷䵻䵮䵪䵭䵽䵱䵮䵭䵸䵬䵼䴷䵲䵸䴸䵮䵷䴸䵻䵮䵵䵮䵪䵼䵮䴶䴺䴷䴻䴸䶀䵱䵪䵽䵼䵷䵮䶀䴷䵱䵽䵶䵵 • 프라이빗 데이터 컬렉션: 채널 구성원의 하위 집합 간에 특정 데이터/트랜잭션을 기밀로 유 지하는 방법이 추가되었다. 피어 CLI를 사용 시 체인코드 인스턴스에 䴶䴶䵬䵸䵵䵵䵮䵬䵽䵲䵸䵷䵼䴶 䵬䵸䵷䵯䵲䵰 䵯䵵䵪䵰를 사용하면 컬렉션을 전달할 수 있다.

• 서비스 검색: 클라이언트 응용프로그램을 단순화하기 위해, 정렬자, 피어, 체인코드 및 승 인endorsement 정책을 포함하여 네트워크 서비스를 동적으로 검색할 수 있게 되었다. • 접근 제어: 채널을 기반으로 피어 함수들과 어떻게 상호작용할 수 있는지에 대해 클라이 언트 신원들을 구성하는 방법이 접근 제어 목록(ACL )에 추가되었다. • 유연한 승인 및 검증: 체인코드 단위에서 승인과 검증 방식을 필요에 따라 교체하여 사용할 수 있게 되었다.

v1.1 참고 문서 䵱䵽䵽䵹䵼䵃䴸䴸䶀䶀䶀䴷䵵䵲䵷䵴䵮䵭䵲䵷䴷䵬䵸䵶䴸䵹䵾䵵䵼䵮䴸䵱䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻䴶䵯䵪䵫䵻䵲䵬䴶䴺䴺䴶䵸䵾䵽䴶䶀䵱䵪䵽䵼䴶䵷䵮䶀䴶 䵶䵪䵬䵲䵮䵴䴶䵳䴮䵌䴽䴮䵂䵂䵭䵻䶃䵮䵳䵬䶃䶂䵴䴸

하이퍼레저 패브릭 • 롤링 업그레이드 (JIRA: FAB-5556 ): 서비스의 중단 없이 호환성 이슈가 있는 애플리케 이션을 업데이트하는 기능으로, 상용 프로젝트에 필수적인 기능 중 하나. 하나의 블록체 인 네트워크에 여러 개의 패브릭 버전이 존재할 때, 버전 간 용량capability 요구 사항 등도 반영할 수 있다. • 이벤트 서비스 (JIRA: FAB-6911 & FAB-5481 ): 채널 수준에서도 이벤트를 발생시킬 수 있는 기능. 이벤트를 받을 수 있는 대상이 더 정교화되었다. • 카우치DB 인덱스 (JIRA: FAB-3067 ): 카우치DB의 트랜잭션 성능 이슈를 해결하기 위 해 인덱스를 체인코드에 포함했다. 원장들의 값을 쿼리하는 게 가능해지며 기존보다 성 능 향상이 이루어졌다.

한국어판 부록 : 하이퍼레저 패브릭 릴리스 노트 분석

443


• 자바스크립트 체인코드 ( JIRA: FAB-2331 ): Go와 자바 체인코드와 마찬가지로 자바스 크립트로 체인코드를 작성할 수 있게 되었다. 일반적인 자바스크립트 애플리케이션처럼 䵷䵹䵶이나 Node.js의 많은 기능을 사용할 수 있게 되었다.

• TLS 커뮤니케이션 (JIRA: FAB-6715 ): 단방향과 양방향 인증을 위한 TLS 커뮤니케이션 을 지원하게 되었다. • 원장 암호화 (JIRA: FAB-830 ): 체인코드 암호화 라이브러리를 통해 원장 자체를 암호화 할 수 있게 되었다. 개인 정보나 비즈니스 정보 등 민감한 정보를 관리할 수 있는 거버넌 스 형성이 가능해진 것으로, 큰 변화 중 하나로 손꼽힌다. • 속성 기반의 체인코드 접근 제어 및 클라이언트 신원 확인을 통한 액세스 제어 결정용 체인코드 API ( JIRA: FAB-5346 & FAB-6089 ): 이전에는 트랜잭션을 발생시킨 사용자의 키를

복호화한 결괏값으로 체인코드 함수를 구현해야 했으나, 이제는 이미 생성된 키에 속성 만 추가할 수도 있게 되었다. 개발자의 체인코드 생산성을 향상시켜준 기능이다.

하이퍼레저 패브릭 CA • CRL (JIRA: FAB-5300 ): CA가 문제가 있는 인증서 목록을 업데이트해도 MSP를 조 직, 채널 레벨에서 재발행하는 게 가능해졌다. 일부 인증서 이슈가 발생하더라도 서비스 운영에 주는 영향을 최소화할 수 있게 되었다. • 끊김 없는seamless 패브릭 CA 설정 (JIRA: FAB-5726 ): 설정의 추가, 삭제, 수정 등이 네트 워크 재시작 없이 가능해짐. 무중단 서비스 등에 필수적인 업데이트이다.

하이퍼레저 패브릭용 Node.js SDK • 커넥션 프로파일 (JIRA: FAB-5363 ): Node.js SDK에 커넥션 프로파일 기능이 추가되어 패브릭 노드 연결이 매우 간단해짐. 이전에는 모두 개발했어야 하지만, 이제 간단한 설정 만으로도 연결이 가능해졌다. 맹윤호

444 하이퍼레저 블록체인 개발


APPENDIX

B

한국어판 부록 : 하이퍼레저 컴포저의 패브릭 버전 지원

하이퍼레저 컴포저는 직관적인 사용자 인터페이스와 비즈니스 네트워크 정의의 용이성으로 많 은 사랑을 받아왔고, 패브릭 v1.1까지 기능 대부분을 지원했다. 실질적으로 프로젝트를 진행 하는 경우, 컴포저를 사용했을 때와 사용하지 않았을 때의 프로젝트 기간과 난이도가 크게 달 라질 정도가 되었다.

컴포저 플레이그라운드

한국어판 부록 : 하이퍼레저 컴포저의 패브릭 버전 지원

445


하지만 오픈소스 커뮤니티의 하이퍼레저 패브릭에 대한 관심도에 비해 상대적으로 컴포저에 대한 관심도는 떨어져, IBM 주도의 컴포저 개발은 패브릭에 더 역량을 집중하는 것으로 개발 기조가 변경되었다. 기조가 변경되면서 패브릭 v1.2 이후에 대한 지원은 ‘대부분의 기능 지원’ 에서 toleration support로 변경되었다. 즉 v1.2 이후 새로운 기능 대부분은 컴포저에서 지원 이 안 되고, 이전 버전의 기능 중 중요한 기능만이 상위 버전에서의 작동을 보장하는 방향으로 변경된 것이다. 하이퍼레저 패브릭 v1.4는 최초의 장기 지원이 이루어지는 패브릭 버전이 되었고, 패브릭

v1.1 이전 버전을 지원하던 컴포저 v0.19.x에서 v0.20.x로의 버전 업그레이드 시에는 원장 데이터 손실(䵱䵽䵽䵹䵼䵃䴸䴸䵰䵲䵽䵱䵾䵫䴷䵬䵸䵶䴸䵱䶂䵹䵮䵻䵵䵮䵭䵰䵮䵻䴸䵬䵸䵶䵹䵸䵼䵮䵻䴸䵲䵼䵼䵾䵮䵼䴸䴽䴾䴿䴽 ) 등의 이슈가 발생 할 수도 있다. 따라서 본 서적을 참고하여 상용 프로젝트를 진행할 경우, 적어도 컴포저 버전은

v0.20.x 이상을 사용하여 최소한 toleration support를 받을 수 있도록 하는 게 좋다. 패브릭 의 새 기능이 반드시 필요한 프로젝트의 경우는 컴포저를 사용한 구성을 제외하고 패브릭 자체 의 네트워크 구성을 이용하고 체인코드를 작성하는 것을 권한다.

446 하이퍼레저 블록체인 개발


INDEX ㄱ

개방형 거버넌스

사물인터넷(IoT)

34

경과 시간 증명(PoET) 계약

선하증권(B/L)

62, 430

33 94

속성 기반 접근 제어(ABAC)

224

고객 신원 체인코드(CID) 고객알기제도(KYC)

기업 간 시너지

130

41, 48

공개 키 기반 구조(PKI) 기록 시스템(SoR)

수출 허가(E/L)

25, 72, 409,

128

93

스마트 계약

66, 72, 82, 83, 226, 300

신용장(L/C)

93, 258

30

40, 41, 42

유럽 연합 일반 데이터 보호 규칙(GDPR)

이더리움 가상 머신(EVM)

다중 버전 동시성 제어(MVCC)

이벤트

단순 속성

71, 151

62, 430

73, 209, 212, 230

262

인증서 서명 요청(CSR)

418

등록 인증(ecert)

인증서 해지 목록(CRL)

421

48, 128

라이프사이클 시스템 체인코드(LSCC) 레벨DB

397, 415

179

자금세탁방지(AML) 자산

74

41, 48

209, 212, 215, 217

자산 수명 주기

220

작업증명(PoW)

26

마찰 감소

장치 참여자

224

멤버십 서비스 공급자(MSP)

99, 128, 130, 412

215

전자 문서 교환(EDI)

235, 236

정보 및 관련 기술에 대한 제어 목표(COBIT)

제이슨 웹 토큰(JWT)

보안 서비스 컨테이너(SSC)

55

지속적 배포(CD)

367

지속적 통합(CI)

분산형 트랜잭션 처리 시스템 불변성

385

189

299 299

81

비잔티움 장애 허용(BFT) 비즈니스 네트워크

26, 414

참여자

209, 436

비즈니스 네트워크 아카이브(BNA)

76, 329

참조 속성 체인코드

209, 212 262 62, 72, 421

초기 코인 공개(ICO)

33

찾아보기

447


INDEX 초당 트랜잭션 처리량(TPS) 추출-변환-적재(ETL)

45

367

ㅋ 카우치DB

74

크래시 장애 허용(CFT)

414

ㅌ 타원곡선 DSA(ECDSA) 탈중개화

35

탈중앙화

34

탈중앙화 합의 트랜잭션

420

50

209, 212, 221, 223

트랜잭션 인증(tcert)

48

ㅎ 하드웨어 보안 모듈(HSM) 합의

55

25, 73, 81

합의 시스템

28

기 타 ACID(원자성, 일관성, 격리, 내구성)

54~55, 70

BASE(기본 가용성, 소프트 상태, 최종 일관성) CAP(일관성, 가용성, 단절내성)

54, 70

CRUD(생성, 읽기, 갱신, 삭제)

126

dev 모드

120

GNU 프라이버시 가드(GPG) IT 인프라 구조 라이브러리(ITIL)

448 찾아보기

304, 318 385

71



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.