[Hands-on 필수 준비 사항] 쇼핑몰 예제를 통한 Microservice 개발/배포 실습 - 황주필 부장 / 강인호 부장, 한국오라클
Oracle Blockchain_JaeHo Park_CTO
1. 블록체인 아키텍처 구상부터,
설계, 구현, 서비스 과정까지
경험에서 얻은 교훈
돕다/피치파이브
박재호(jaypark@dobda.kr/jaypark@pitch5.team)
2. ICON 소개
• ICON(https://icon.foundation/?lang=ko)
• 2017년부터 본격적으로 개발이 시작된 허가형(permissioned) 블록체인
인 루프체인(loopchain)을 토대로 만들어진 스마트컨트랙트까지 지원
하는 퍼블릭 블록체인
• 은행/증권사/보험사를 비롯한 금융사, 병원, 대학들을 상호 연결하는
블록체인의 블록체인을 표방
• 인터넷이 여러 지역 네트워크(LAN)가 결합된 광역 네트워크(WAN)로
연결되어 전세계로 뻗어나가는 형태로 발전했듯이 블록체인도 상호 연
결되어 가치를 높이는 형태로 발전되리라 예상하고 있기에 이런 움직
임은 사람들의 많은 호응을 이끌어냄
4. ICON 특징
• 플랫폼 특성
• 블록체인의 허브 역할
• 자체적인 암호화폐(ICX)와 이에 기반한 각종 토큰을 기반으로 다양한
DApp을 돌릴 수 있는 플랫폼
• 주요 특징
• 독자적인 거버넌스 체계를 기반으로 통화 발행, 보상, 벌칙, 수수료에
대한 정책을 정의
• 합의 알고리즘으로 작업 증명 (PoW, Proof of Work) 방식 대신에 위임
지분 증명(DPoS, Distributed Proof of Stake) 방식을 사용
• 상호 합의를 이끌어내는 과정에서 컴퓨팅 파워와 전력 낭비 없이 빠르게 거래를
처리해 결정적인 방식으로 확정
5. ICON 스마트컨트랙트 지원
• SCORE(Smart Contract On Reliable Environmen)
• 이더리움이나 EOS와 마찬가지로 SCORE라는 파이썬 기반의 독자적인
스마트컨트랙트를 지원
• 이를 활용해 크라우드 세일부터 토큰 정의와 교환, 분산형 애플리케이션 개발이
가능
• 개발자 지원
• ICON 테스트넷과 메인넷에 연동 가능한 SDK(현재 자바와 파이썬 버전이 공개되
어 있으며, 향후 자바스크립트 버전도 공개될 것이다)
• 크롬 확장을 기반으로 하는 지갑(ICONex)과 안드로이드/iOS용 지갑
• 거래를 추적하기 위한 블록 탐색기(ICONTracker)
• 생산성을 높이기 위한 통합 개발 환경(T-Bears)까지 제공
• ➔ 블록체인 전반에 걸친 인프라스트럭처를 충실하게 구축
6. ICON 인터체인 기능
• BTP(Blockchain Transmission Protocol)
• 공증(Notary) 채널을 통해 송신 블록체인의 거래가 수신 블록체인으로
전달되는 방식으로 구현
• 거래 유형
• 암호화폐나 토큰 등의 재화(asset)의 소유권 이전과 관련이 있음
• 궁극적으로는 원격 함수 호출(RPC, Remote Procedure Call)와 유사하게 원격 블
록체인의 스마트컨트랙트를 호출하고 결과를 돌려 받는 원격 스마트컨트랙트 호
출(RSC, Remote Smartcontract Call)까지 포함
• 참고: 결정성 문제로 인해 초기에는 DPoS 방식의 블록체인과 연계
7. 블록체인 기술 정의와 소유권의 관계
기술적인 정의 소유권
블록과 거래 데이터 소유권 관련 데이터
데이터 변경에 대한 내재적인 저항력, 즉 무결성 소유권에 대한 진실을 판단하고 유지하는 능력
검증과 합의 알고리즘 개별 노드들이 일관된 소유권 상태에 도달하는 기초
암호화 기법 식별, 인증, 승인
8. 블록체인 아키텍처 핵심 고려사항
• Public vs Consortium vs Private
• 무엇을 선택하느냐에 따라 합의 알고리즘이 결정된다
• PoW vs PoS
• 기술적으로 중요한 사항
• 블록 생성 과정에서 사용되는 합의 알고리즘
• 스마트컨트랙트 엔진(그리고 결과를 합의하는 알고리즘)
9. 블록체인 설계 과정에서 어려운 난제
• 크립토이코노미: 가상 통화 유통과 가치
• 인플레이션과 디플레이션
• 수수료
• 블록체인 이해 당사자들의 관점을 고려
• 블록 생성자: 최대한 많은 수익
• DApp 운영자: 운영비용 절감
• 사용자: 최대한 적은 비용
• 거버넌스
• 누가 통제권을 발휘하며, 어떤 절차에 의거해 운영 방식을 변경하나?
10. 블록체인 구현이 어려운 이유(1)
• 원장 데이터베이스 관련 고려 사항
• 단순 분산 데이터베이스일까?
• Replication 가능한 RDBMS → 복제 과정에서 생기는 문제에 대응하지 못함
• 결함 포용이 가능한 블록체인 원장 → 다수결에 의한 무결성 보장
• 스마트컨트랙트 관련 고려 사항
• 거래가 일어날 때 자동으로 계약이 체결된다면?
• 전통적인 환경에서는 비즈니스 논리를 SQL로 해결 → 애플리케이션이나 저장 프
로시저 사용
• 블록체인 환경에서는 비즈니스 논리를 스마트컨트랙트로 해결 → 온체인에서 구
동되므로 합의가 필요
11. 블록체인 구현이 어려운 이유(2)
• 기술적인 비유
• 블록체인 = 원장을 보관하는 NoSQL 형태의 불변 분산 데이터베이스
• 스마트 컨트랙트 = 원장 거래 내용에 따라 동작하는 서버리스 애플리
케이션
• 구현 난이도가 높은 이유
• 네트워크로 연결된 분산 컴퓨팅: 대기시간(latency)
• 상태를 저장하고 비교하고 검증: 무상태형(stateless)에 비해 복잡한 처
리 과정이 필요
12. 블록체인 메인넷 서비스 고려 사항(1)
• 거래소 상장(listing)과 토큰 스왑
• 상장
• ICO → 서비스 개통 → 상장
• 스왑
• ERC-20와 메인넷 토큰은 어떻게 서로 교환되나?
• 누가 어떻게?
• 참고) 원자적인 스왑
13. 블록체인 메인넷 서비스 고려 사항(2)
• Soft fork vs Hard fork
• Soft fork: 규칙을 강하게 만들어 노드에 적용(규칙 제한 강화)
• 이전 버전과 호환: 예) 블록 크기 축소
• 점진적인 업그레이드
• Hard fork: 규칙을 약하게 만들어 노드에 적용(규칙 제한 약화)
• 이전 버전과 비호환: 예) 블록 크기 확장
• 급진적인 업그레이드: 계획적인 하드 포크인 경우에는 시점을 미리 공표
• 사례
• Segwit(Segregated Witness)
14. 블록체인 도입을 위한 프레임워크(1)
• 인터넷 역사로부터 배운 교훈
• TCP/IP 규약을 토대로
• 킬러 앱인 이메일 등장 블록체인의 현재 수준
• 이후 웹 브라우저 등장
• 검색 엔진과 상업적인 목적의 사이트 등장
• 전자상거래 플랫폼으로 확장
• 소셜 서비스로 확장
• 모바일까지 확장
• 하드웨어, 소프트웨어, 서비스가 모두 단일 플랫폼에서 구동
15. 블록체인 도입을 위한 프레임워크(2)
• 단일 목적으로 활용
• 적용도 쉽고 효과도 빠르게 거둘 수 있지만 한계가 많음
• 예: 비트코인
• 지역화
• 제한된 사용자가 즉각적인 가치를 높이기 위해 복잡하게 활용 → 채택 가능성이 높음
• 예: permissioned blockchain(FX, 관세, 재정 거래, 주식 매매)
• 대체
• 많은 이해 관계자가 단일 목적으로 활용 → 채택 가능성은 떨어지지만 파급력이 막강
• 예: 기존 통화 시스템 대체
• 변환
• 기존 경제/사회/정치 시스템 자체의 속성을 변경 → 기존에 없던 새로운 뭔가를 창출
• 예: 스마트 컨트랙트
16. 블록체인 도입을 위한 프레임워크(3)
단일 목적
으로 활용
대체
지역화 변환
창의성
이해 관계자 다양성
낮음
높음
낮음 높음
https://hbr.org/2017/01/the-truth-about-blockchain
17. 블록체인 도입에 앞서 고려할 사항(1)
• 분산 시스템으로서 블록체인
• 중앙통제 시스템으로 하지 못하는 작업이 있는가?
• 이해 관계자 사이의 관계가 복잡해서 단순한 파이프라인으로 구축하기
어려운가?
• 데이터 저장소로서 블록체인
• 어떤 데이터를 저장할 것인가?
• 어떤 트랜잭션과 연산을 사용할 것인가?
• 상호 감시 시스템으로서 블록체인
• 참여자들의 신뢰 수준이 어느 정도인가?
• 원장과 비즈니스 논리의 무결성과 투명성을 어느 정도 요구하는가?
18. 블록체인 도입에 앞서 고려할 사항(2)
• Legacy 시스템과 블록체인 사이의 관계 정립
• 어떤 자료를 어디에 저장할 것인가? 관계형 DBMS, 분산 원장, 상태 DB
• 어떤 업무를 어디서 수행할 것인가? WAS, DBMS, 스마트 컨트랙트
• 양쪽을 어떻게 연결할 것인가?
19. 블록체인 DApp 개발에서 가장 중요한 것은?
1. 무엇을 만들 것인가?
• 블록체인에 적합한가?
• 기존과 비교해 사용성/편의성/비용절감 효과가 확실한가?
2. 암호화폐 경제학
• 토큰 소유자들에게 어떤 이익을 제공하는가?
• 지속 가능한 모델인가?
3. 아키텍처
• 구체적이며 구현 가능한가?
• 메인넷 선정 기준이 무엇인가?
• 온/오프체인 연계 방안은 무엇인가?
20. DApp 구현시 자주 저지르는 실수
• 보안 문제
• 토큰 관련해 제 3자가 임의로 조작할 수 있다면?
• ERC-20 구현 관련 다양한 실수
• 결정성 문제
• 스마트컨트랙트 결과를 모든 노드가 합의할 수 없다면?
• 예) 게임 등을 위해 난수 사용, 오프체인 상태 사용, 운영체제 의존, 외부 입력
• 성능 문제
• 스마트컨트랙트는 클라우드 서버리스에 비해 엄청나게 비싼 연산
• CPU와 메모리 관련
• 생각해볼 사항
• 처리가 너무 느릴 경우 어떤 영향을 미치나?
• 연산량이 많을 경우 어떤 영향을 미치나?
21. 블록체인의 플랫폼화/서비스화 동향
• 블록체인 플랫폼화
• 클라우드 업체 중심: IBM(블루믹스/하이퍼레저), 마이크로소프트(코코
프레임워크), AWS(Managed Blockchain(하이퍼레저, 이더리
움)/Quantum Ledger Database), 오라클(블록체인 클라우드 서비스/하
이퍼레저)
• 대부분 허가형 블록체인에 초점을 맞춤
• 거버넌스 문제: 플랫폼/서비스에서 제공하는 노드를 모두 클라우드 업
체에서 관리하기 때문에 퍼블릭의 의미가 없음
• 성능 문제: TPS를 높이기 위한 목적
22. 절찬리에 판매 중(역서) 절찬리에 판매 중(저서)
salaryup.io에서
블록체인 온라인 스터디 진행 중