마스터링 이더리움 12장: DApp

쌍제이(JJVoiture)·2022년 9월 8일
0

DApp: Decentralized Application

장점

  • 지속성: 스마트 컨트랙트로 제어되기 때문에 backend는 블록체인 플랫폼에서 탈중앙화되어 관리된다. 플랫폼이 작동되는 동안에는 계속 사용가능하다.
  • 투명성: 누구나 코드를 검증할 수 있고 DApp과 interaction한 내용은 기록에 남는다.
  • 검열 저항: 사용자는 중앙의 간섭없이 DApp과 interaction할 수 있고 배포된 코드는 변경할 수 없다.

DApp의 구성 요소

  • Backend
  • Frontend
  • DB(Storage)
  • Messaging
  • Name Resolution

Backend

  • 스마트 컨트랙트는 코드와 어플리케이션의 상태를 저장한다.
  • 계산에 드는 비용, 즉 gas fee를 최소화해야 한다.
    --> 어떤 내용을 저장할 지 고민하는 게 필수적.

Frontend

웹 표준 기술(HTML, CSS, JavaScript)를 사용할 수 있고 익숙한 라이브러리나 프레임워크를 사용하면된다.

Data Storage

  • gas fee와 블록 gas limit 때문에 스마트 컨트랙트에 많은 데이터를 저장하는 것은 지양해야 한다.
  • 꼭 필요한 데이터만 on-chain에 기록해야 한다.
  • 나머지 data는 off-chain 스토리지 플랫폼을 사용한다.
    cloud storage나 IPFS, SWARM 같은 p2p 스토리지가 될 수 있다.

IPFS(Inter-planetary File System)

냅스터, 토렌트 등 P2P 방식으로 대용량 파일과 데이터를 공유하기 위해 사용한다.
기존 HTTP 방식은 데이터가 위치한 곳의 주소를 찾아가서 원하는 콘텐츠를 한꺼번에 가져오는 방식이었으나, IPFS는 데이터의 내용을 변환한 해시값을 이용하여 전 세계 여러 컴퓨터에 분산 저장되어 있는 콘텐츠를 찾아서 데이터를 조각조각으로 잘게 나눠 빠른 속도로 가져온 후 합혀서 보여주는 방식으로 작동한다.

탈중앙화 메시지 통신 프로토콜

  • App의 중요한 요소 중 하나는 프로세스간 통신(Inter-Procss Communication: IPC)이다.
  • App이 돌아가기 위해서는 여러 개의 프로세스가 동작하고, 서로 긴밀하게 통신해야 한다.
    ex) 문자 메시지 앱: 주소록 앱과 통신하여 메시지를 수신할 사람의 전화번호를 가져와야 한다.
  • 기존 App은 중앙 서버를 이용한다.
  • DApp은 p2p 네트워크를 이용하여 탈중앙화 방식으로 통신한다.

Whisper

  • 탈중앙화된 메시지 프로토콜
  • geth에 포함
  • Ethereum P2P 프로토콜 상에서 유저 간 암호화 메시지 송수신 프로토콜
  • 공유되는 메시지는 암호키를 가지고 있는 수신자만 확인 가능
  • 1:1, 1:N 메시지 전송 가능

Ethereum Name Service(ENS)

인터넷에서 DNS처럼 인터페이스를 사람이 읽을 수 있는 내용으로 사용할 수 있게 한다.
ex) ethereum.eth

  • ENS도 기본적으로 스마트 컨트랙트를 갖는 DApp이다.
  • ENS는 엄밀히 도메인의 hash와 계정 주소를 연결한다.
  • ENS는 DNS처럼 도메인을 사는 것이 아니라, 일정 이더를 입금하고 사용권을 갖는 것이다. 사용 완료 후에는 이더를 돌려 받는다.
  • ENS는 최상위 컨트랙트에서 이더를 보관하는데, 하나의 컨트랙트가 많은 금액의 이더를 보관하는 것을 피하기 위해서 증서 하나 하나에 대해서 증서 컨트랙트를 생성하고, 이더를 보관한다.
profile
안녕하세요. 중구난방 개발자 쌍제이입니다.

0개의 댓글