[블록버스터즈 리포트] 현재 Dapp이 완전히 탈중앙화 될 수 없는 이유 - 서울대학교 블록체인 학회 디사이퍼(Decipher) 김재윤
탈중앙화 어플리케이션, 즉 Dapp(Decentralized Application)의 핵심인 스마트 컨트랙트는 탈중앙화된 플랫폼인 블록체인 상에서 모든 노드가 실행하고 검증한다. 따라서 서버가 다운돼서 실행을 못 시킬 확률이 매우 낮고, 그 결과의 무결성(integrity)을 보장할 수 있다. 하지만 스마트 컨트랙트를 활용해서 유저와 인터렉션(interaction)할 수 있는 형태인 Dapp은 완전히 탈중앙화 되어 있지 않다.
Dapp의 구조
Dapp의 핵심 로직이 작성된 스마트 컨트랙트는 블록체인으로 동작한다고 하더라도 대부분의 유저는 블록체인에 기록된 데이터에 직접 접근하지 않는다. 대신 Dapp 서비스 제공자가 만들어 둔 인터페이스에 접근하여 가공된 데이터를 보고 인터렉션을 한다. 디지털 데이터는 누군가 의미를 부여하지 않으면 단순한 데이터 쪼가리에 불과하기 때문이다.
예를 들어, 가장 유명한 Dapp인 크립토 키티의 경우, 스마트 컨트랙트에는 고양이의 유전자를 기록해두고, 크립토 키티 서비스 제공자가 미리 만들어 둔 비밀 알고리즘으로 유전자를 해석하여 어떻게 생긴 고양이에 매핑(mapping)되는지 보여준다.
그림 1. 크립토키티사가 해석해서 보여주는 고양이들
(출처: https://www.cryptokitties.co)
또한, 유저들의 긍정적인 사용자 경험(UX, User Experience)을 위해서는 빠른 응답 시간을 보장할 수 있어야 한다. 일반적인 사용자들은 풀 노드를 유지하지 않기 때문에 서비스를 이용하려면 풀 노드 하나를 선택하여 요청을 보내야 하는데 풀 노드 입장에서는 이미 수많은 요청을 처리하고 있기 때문에 특정한 서비스를 이용하는 사용자의 요청에 대한 응답을 미루거나 거부할 수도 있다.
일반 사용자들은 풀 노드의 개념이 부족한 경우가 많고, 설령 안다고 하더라도 응답을 해 주는 풀 노드를 찾아다니는 것은 굉장히 불편하기 때문에 서비스 제공자가 미리 데이터를 받아와서 직접 관리하는 데이터베이스에 캐싱(caching)한 뒤 그 데이터를 유저에게 안정적으로 보여준다.
그림 2. Dapp의 구조
결론
정리하자면, 현재 Dapp들은 서비스 제공자가 블록체인과 유저 사이에서 데이터에 의미를 부여해주고 데이터를 캐싱하여 빠른 응답 속도를 제공해준다. 다시 말해, 서비스 제공자가 사라지면 Dapp 서비스도 의미가 없어진다는 것을 의미한다.
또한, 블록체인에 기록되는 해석할 수 없는 원본 데이터는 조작되지 않더라도 그 데이터를 해석해서 유저에게 보여주는 서비스 제공자는 해석 로직을 조작할 수 있다. 따라서 Dapp 서비스는 백엔드(back-end)에 블록체인을 사용하긴 하지만 서비스 자체는 매우 중앙화된 형태로 돌아간다고 볼 수 있다. 블록체인의 성능이 개선되어 많은 사람들이 노드를 유지하고, 로컬에서 데이터를 직접 해석하는 방식으로 어플리케이션을 이용하기 전까지는 이렇게 반 중앙화된 형태로 서비스를 이용할 수밖에 없을 것이다.
지금 INBEX를 방문해보세요!