Defi Dapp 설계초안

post-thumbnail

아키텍처


app과 dapp에 가장 큰 차이로는 기본적인 앱은 서버로 통신이 이루어진다면 Dapp은 블록체인 네트워크로 이루진다고 볼 수 있다. 디테일하게 들어간다면 웹과 서버에서 기본적인 데이터를 통신한다면 거기다가 지갑을 가지고 블록체인 네트워크와 통신하는 기능이 더해진다고 볼 수 있다.

백엔드서버를 이용하지않는 경우도 있다. 큰 데이터나 서비스에 관련된 로직들은 서버에서 관리하지만 대게 보안적인 문제로 프론트에서 트랜잭션에서 이루어진다.
(실제로는 EVM환경에서 스마트컨트렉트로 블록체인네트워크로와 이어진다.)

Dapp 설계시 고려사항

  1. 어떤 블록체인 네트워크를 사용할 것인가?
  2. 어떤 지갑을 사용할 것인가?
  3. 서버/DB를 사용할 것인가? 어떤 데이터를 어디에 저장할 것인가?
  4. 블록체인 노드는 어떤 서비스를 사용할것인가? (Infura, Alchemy 등)

1. 어떤 블록체인 네트워크를 사용할 것인가?

  • 스마트컨트렉트는 어떤걸 사용할지( 솔리디티? Rust? 등)
  • 개발 커뮤니티 활성화 정도
  • 블록체인 네트워크에 기본적인 안정성 (이더리움)
  • 가스비 대납/NFT 컨셉
  • 개발툴(Remix)

2. 서비스/사업적 관점

  • 생태계 활성화 정도
  • 법적 재제
  • 출시 국가
  • 서비스 종류
  • Grand Program 지원 여부

3. 탈중앙 정도

  • 완전 탈중앙 vs 부분적 탈중앙 vs Private

개인적으로는 안정적인 네트워크와 개발 커뮤니티가 잘 활성화되어 있는 이더리움이 있지만 가스비 측면에서 레이어2를 활용한 폴리곤도 적합하다고 볼 수 있다. 현재 전체적인 전망은 다양한 지갑, 다양한 네트워크를 활용해 플랫폼에 맞는 네트워크를 고를 수 있게 되어있다.

2. 어떤 지갑을 사용할 것인가?

  1. 서비스 자체 지갑 구현 (프라이빗키를 직접 관리)
  2. 브라우저 확장 지갑 (메타마스크 등)
  3. QR 연동 방식 지갑 (Wallet connect)
  4. 3rd party 계정 연동 지갑 (구글, 페이스북 등 연동)

3. 서버/DB를 사용할 것인가? 어떤 데이터를 어디에 저장할 것인가?

팬케이크 스왑같은 경우는 모든 데이터를 스마트컨트렉트에서 가져와 프론트에 보여주는 서버를 거치지 않는 완전 탈중앙화 방식이다. 또 요즘 많이 사용하는 NFT같은 경우는 메타데이터와, 이미지URL을 IPFS라는 탈중앙화 저장소에 저장을 하고, 이 밖에도 블록체인 데이터에 직접 저장을 하는 경우, 아닌 경우를 잘 구분해 나아가야한다.

4. 블록체인 노드는 어떤 서비스를 사용할것인가? (Infura, Alchemy 등)

자체적인 운영이 필요한 블록체인 노드의 경우에는 Node Provider Service를 결정해야한다. 블록체인의 RPC노드를 제공해주는 서비스로 직접 노드를 구축하지않아도 블록체인 노드를 운용할 수 있다. 클레이튼 같은 경우는 Public RPC 노드가 따로있어 과금이 존재하지 않는다.

<출처>
패스트캠퍼스 블록체인 강의
https://fastcampus.co.kr/dev_online_blockchain/?utm_source=google&utm_medium=cpc&utm_campaign=hq%5E220810%5E212587&utm_content=%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8&utm_term=&gclid=CjwKCAjw79iaBhAJEiwAPYwoCDgCNtnG1kmN6lZ23U1YSoYHPDAxHQ2Jd0wdbfHb-pOl8br6OULqPxoC4WIQAvD_BwE

0개의 댓글