DApp 정의
디앱(DApp)
또는 댑
이란 Decentralized Application의 약자로서, 이더리움, 큐텀, 이오스 같은 플랫폼 코인 위에서 작동하는 탈중앙화 분산 애플리케이션을 말한다. 간략히 분산앱이라고도 한다. 플랫폼 위에서 작동하는 디앱의 암호화폐는 코인(coin)이라고 하지 않고 토큰(token)이라고 구별하여 부르기도 한다. ‘Daap’가 아니라 ‘DApp’가 올바른 표기법이다. ‘Dapp’ 또는 ‘dApp’이라고도 쓴다. 단수형이 아니라 복수형으로 표현하여, 디앱스(DApps) 또는 댑스(dApps)라고도 한다.
개요
디앱이란 블록체인을 기반으로 돌아가는 애플리케이션을 말한다. 쉽게 말해 이더리움 기반 디엡이라면 디앱에서 상호작용하는 데이터들이 이더리움 블록체인에 기록되고 불러내어지는 애플리케이션이라고 이해하면 된다. 현재, 이더리움, 이오스, 스팀 등에서 돌아가는 모든 디앱들을 합치면 약 3,000여 개가 존재한다.
애플 앱스토어에만 220만여 개가 넘는 앱이 존재하는데, 이와 비교하면 아주 초라한 숫자이기도 하다. 전체 디앱 중에서 게임, 거래소, 도박 등을 뺀 실생활과 밀접한 영역의 디앱들의 유저 수 비중은 40%도 안 된다.
디앱은 스마트폰 블록체인
을 기반으로 한 운영체제에서 구동된다는 것이 차이점이다. 아이폰은 ISO 운영체제를 갤럭시에는 안드로이드 OS를 사용한다. 블록체인
은 이러한 OS라고 생각하면 된다. 어떤 블록체인을 기반으로 구동되는지에 따라 이더리움 디앱, 이오스 디앱 등으로 구분할 수 있는 것이다.
등장배경
블록체인에서 디앱은 스마트 계약
이 도입되면서 생겨났다. 스마트 계약이 없는 비트코인에는 디앱이 존재하지 않는다.
이더리움 창시자인 비탈릭 부테린은 이더리움에 스마트 계약을 처음 도입했다. 이 후 이더리움은 최초의 메인넷으로 무수한 디앱들을 탄생시켰다.
특징
디앱 개념은 아직 초기 단계에 있다. 디앱으로는 응용 프로그램이 다음 네 가지 특징을 나타내야 한다.
- 탈중앙화 구조 : 디앱은 OS 개발에 필요한 소스 코드가 누구에게나 공개돼 있다.
- 뛰어난 개인정보 보호 : 데이터를 블록체인에 기록하기 때문에 저장에 있어 안전하다.
- 오픈 소스 : 가장 중요한 속성은 이러한 앱이 모든 사람에게 핵심 소스 코드를 제공해야 한다는 것이다. 디앱의 핵심 특징은 자율성과 만장일치로 이루어져 있음으로 기본적으로 변경 사항은 모든 사용자 또는 대부분 사용자가 결정해야 한다. 또한, 코드는 모든 사용자가 체크 아웃 할 수 있어야 한다.
- 분산형 자연 : 이름에서 알 수 있듯이 분산형 응용 프로그램은 분산된 블록체인 또는 모든 암호화 기술에 모든 것을 저장하여 중앙 권한의 위험으로부터 응용 프로그램을 저장하고 자치 특성을 강조한다.
- 인센티브(Incentivization) : 앱이 분산형 블록체인을 기반으로 하므로 네트워크의 레코드 유효성 검사기에 암호화 토큰이나 가치가 있는 디지털 자산 형태로 보상/ 인센티브를 부여해야 한다.
- 알고리즘 : 분산 앱은 암호화 시스템에서 가치 증명을 나타내는 컨센서스 메커니즘이 필요하다. 본질적으로 이는 암호 토큰의 가치를 부여하고 사용자가 중요한 암호 토큰을 생성하기 위해 합의한 합의 프로토콜을 만든다.
앱과 디앱의 차이
- 디앱은 사용자가 계정을 생성하는 절차부터 앱과 다르다. 일반 앱은 회원가입을 할 때는 개인정보를 입력해 계정을 만들고 로그인 후 즉시 서비스를 이용한다. 하지만, 디앱의 경우 계정을 만들 때,
이더리움
,이오스
등 해당 블록체인 지갑을 보유하고 있어야 한다. 해당 블록체인 서비스에 참여함으로써, 보상으로 받는 암호화폐를 저장하고 거래하기 위한 지갑을 준비하는 것이다. - 이더리움 기반 디앱은 이더리움 지갑을, 이오스 기반 디앱은 이오스 지갑을 갖춰야 한다. 예를 들어 이더리움 게임으로 잘 알려진 크립토키티를 이용하려면 메타마스크라는 이더리움 지갑을 만들고, 서비스를 이용할 때마다 메타마스크 인증을 해야 한다.
- 디앱과 기존 앱 개발의 가장 큰 차이점이라면 얼마나 엄격하게, 정밀하게 점검하느냐이다. 쉽게 말해, 디앱은 소프트웨어 개발보다는 하드웨어 개발과 더 비슷하다. 어떤 회사가 하드웨어를 완성했다면 제품을 공개하기전에 반드시 엄격하게 정밀하게 테스트를 한 후 공개해야 한다. 하드웨어 개발이 끝난 뒤 공개되었을 때, 미처 발견하지 못한 문제점들이 생긴다면 기존 소프트웨어 수정보다 훨씬 더 많은 돈과 시간을 요구한다. 왜냐하면
디앱 개발에서 스마트 계약이 메인넷에서 한번 실행되면 절대 변경이 안 되기 때문이다.
- 만약 오류가 생긴다면 스마트 계약에서 발견된 버그 때문에 사용자들의 암호화폐를 잃어버릴 가능성도 배제할 수 없다. 그래서 쉽게, 그리고 빠르게 개발하여 공개할 수 없는 이유도 된다.
- 이와 반대로 기존 앱 개발은 빠르게 변하는 트렌드에 맞춰 새로운 서비스를 계속해서 만들어내는 것에 집중하는 편이다. 개발자로서 최소한의 실행 가능한 제품 즉, MVPs를 만들고 사람들이 직접 테스트하게 한 후 가능한 한 빨리 업데이트된 버전을 출시하는 것이 요새 앱 개발의 추세이지만 현재 디앱 개발자들에게는 적합하지 않은 추세다.
출처자료: 현암 코딩
정리해서, 기존 앱은 구글 플레이 스토어나 앱 스토어에 등록하여 구글과 애플의 중앙화
된 서버에서 관리를 받는 반면에,
디앱은 분산된 P2P 간의 자율적인 연결에 의해 탈중앙화
된 이더리움, 이오스, 트론 등과 같은 스마트계약 기능이 있는 블록체인 플랫폼 위에서 작동되는 방식이다.