728x90
반응형
Blockchain Application (BApp)
- 블록체인 어플리케이션(BApp)은 블록체인을 사용하는 어플리케이션
- 기존의 기술로 풀기 어려운 문제들을 블록체인의 특성을 활용하여 풀어내는 것이 목적
- 불변성과 투명성이 대표적인 블록체인 특성
- 한번 기록된 정보는 변경할 수 없다.
- 정해진 규칙(e.g., 블록생성 등 프로토콜이 가진 규칙, 컨트랙트로 구현된 규칙)에 따라 상태를 변경
- 기록의 내역이 블록에 공개되어 있으므로 누구든지 정보의 진실여부를 확인 가능
BApp들이 블록체인을 사용하는 유형
- As a Payment Channel
- 토큰 사용 결제
- As a Storage
- 블록체인을 안전한 저장소로 인식
- As a World Computer
- 모든 노드가 동일한 연상 수행
- 어느 한 노드에 의전하지 않는 탈중앙화 실행 환경
BApp의 유형
- Fully decentralized
- 사용자(클라이언트)가 직접 블록체인과 통신
- Semi-decentralizeed with centralized proxy
- 클라이언트가 블록체인과 통신하기 위해 중개 서버와 통신
- 블록체인 기반으로 만들어진 서비스가 있고 그 서비스를 사용자들이 사용하는 형태
- 클라이언트 ↔ 중개서버 ↔ 블록체인
Fully Decentralized | Semi-decentralizeed with centralized proxy | |
---|---|---|
장점 | - 높은 투명성 - 신뢰형성에 필요한 비용 없음- (설치형 BApp의 경우) 관리 비용 낮음 |
- (기존의 서비스들과 동일한) 높은 수준의 UX - 사용자가 블록체인과 직접 통신할 필요 없음 - 로직 변경 비교적 쉬움 - 제약사항 어느정도 완화 |
단점 | - 사용자 책임 증가, 어려운 UX - 로직 변경 어려움 - 경우에 따라 사용자가 블록체인에 상시 접속할 필요 및 블록 복제 할 필요가 있음 |
- 신뢰 비용 발생 - 서비스가 Single Point of Failure (SPoF)가 됨 : 언제든지 다운 될 수 있다 : 서버가 여러 대 - 관리 비용 높음 |
다른 서버나 서비스에 의존하지 않고 블록체인과 직접 통신 한다면 탈중앙화되었다고 본다.
BApp 개발
- 프론트엔드 (Frontend)
- 사용자가 직접 사용하는 프로그램 (e.g., mobile app, web page/app)
- User Interface (UI), 통신, 이벤트 처리 등을 사용자 환경 고려 개발
- TX 생성, 서명, 전송 등을 프론트엔드에서 처리
- 백엔드 (Backend)
- 블록체인 동기화 등 컴퓨팅 리소스가 많이 필요한 일을 처리하는데 적합
- 블록체인 동기화, 블록 파싱(parsing), TX 전달, 가스비 대납 등을 백엔드에서 처리
- 컨트랙트 (Contract)
- Fully decentralized = Frontend + Blockchain
- Web + Klaytn
- Android + Klaytn
- Windows + Klaytn
- Semi-decentralized = Frontend + Server + Blockchain
- Web + Java Server on AWS + Klaytn
- Android + Node.js Server on Azure + Klaytn
프론트 엔드 개발
- BApp이 실행되는 환경에 따라 개발 방법이 달라짐
- 프론트엔드 개발에 영향을 끼치는 실행환경 중 하나가 지갑
- 지갑의 존재유무에 따라 개발방법이 변경
- 특정 지갑을 사용할 경우 해당 지갑이 제공하는 라이브러리를 사용
백 엔드 개발
- 블록체인 프로토콜 이외의 정보 관리할 때 필요
- UX 향상 및 서비스 구현을 위해 TX 외 다른 정보 필요한 경우 백엔드 운영
- e.g., 문서 공증 BApp
- 사용자가 문서 공증을 위해 BApp 사용
- 문서의 해시를 포함한 공증기록은 블록체인에 기록
- 정보의 누설을 원치 않을 경우 문서 원본은 블록체인에 기록하기 어려움
- 문서를 클라이언트에 보관할 수 있으나 분실의 위험, 여러 장치에 접근할 수 없는 점 등이 문제
- 백엔드에서 안전하게 원본 문서를 관리하여 편리한 서비스 구현이 가능
- 서비스 제공자가 실행환경을 결정
- 개발방법 선택이 비교적 자유로운 편이나 대부분의 경우 플랫폼 SDK 존재 유무에 따라 방향 결정
반응형
'블록체인 > Klaytn' 카테고리의 다른 글
18장 - 공급망(Supply Chain) 관리 (0) | 2023.05.26 |
---|---|
17장 - 지갑 (0) | 2023.05.26 |
15장 - Klaytn SDK: caver-js (0) | 2023.05.26 |
14장 - 소스코드 컴파일링 (0) | 2023.05.26 |
13장 - Solidity 기본 구조 (0) | 2023.05.25 |