Web 3.0은 무엇인가

Web 3.0은 무엇인가

2024년 3월 31일

일반적인 백엔드 vs 스마트 컨트랙트 vs Cosmos SDK #

코인을 발행하기 위해 여러정보를 찾아봤다.
다른 사람이 만들어둔 네트워크에 내 코인을 발생하는 스마트 컨트랙트와 Cosmos SDK를 이용해서 네트워크부터 구현하는 방법이 있었다.
겉핥기로 공부했지만 대략적인 차이는 아래와 같다.

App vs dApp (Decentralized Application) #

fef0e82a-2ab3-4eb4-8b8f-d13af9087b8c

App #

앱이라 함은 사용자와 상호작용 하는 프론트엔드와 실제 서비스로직이 포함된 백엔드가 합쳐져서 사용자에게 편리한 서비스를 제공하는걸 목적으로 하고있다.
하지만 기존 방식의 서비스 백엔드는 회사가 제공하기 때문에 생기는 단점들이 몇가지 있다.

  1. 회사가 데이터의 주도권을 가지고있기 때문에 검열될 가능성도 있고, 불투명하게 운영됨
  2. 회사의 서버가 다운된 경우 서비스를 계속 이용하기 어려울 수 있음
  3. 보통 회원가입을 개인정보(고유 식별 정보)로 하기 때문에 익명성이 보장되지 않음

dApp #

dApp은 탈중앙화된 앱이라는 의미이며 블록체인을 이용해서 P2P 형식으로 서버를 운영하는 방식이다.
블록체인에 스마트 컨트랙트(계약)로 구현된 백엔드로직을 올려두고, 특정 상황에서 미리 정해둔 규칙을 지키며 백엔드의 역할을 수행하게 한다.

  1. 개인들이 데이터를 가지고 있기 때문에 동시에 여러 클라이언트를 해킹하지 않는 이상 정보 유출이나 서버 다운을 대응할 수 있음
  2. 지갑으로 인증하기 때문에 익명성이 보장됨

dApp 단점

  1. 기능을 실행할때마다 가스비를 내야하기 때문에 비쌈
  2. 단일 노드인 경우 결국 중앙집중식과 다르지 않음

스마트 컨트랙트 vs Cosmos SDK #

스마트 컨트랙트 #

스마트 컨트랙트는 행위에 대한 계약서를 블록체인에 올려두고(이때 불변상태의 계약이됨), 특정 조건에 맞춰 강제로 이행하게 만드는 방식이라고 보면 된다.
ex) 저에게 10 클레이튼을 주시면 제가 만든 POLYMOLLY를 100개 드리겠습니다.
ex2) 븐히를 생각해보면 BNB로 NFT를 구매하고, 경험치가 모이면 레벨업 시킬 수 있으며 카드 능력이 올랐다. 몬스터를 잡는 경우 랜덤한 가격의 BNB를 지급해줬다. 이런걸 모두 계약서로 작성하는 것이고 사실상 백엔드로 할 수 있는 모든일을 할 수 있다.


cosmos SDK #

85a711f3-c5d8-4b74-846b-25b2c76c1bbd

간단하게 말하면 블록체인을 만들 수 있는 sdk 이고, 모듈 형식으로 구현해서 백엔드 역할을 수행하게 한다.
처음엔 genesis 파일을 작성해서 코인의 발행과 분배를 설정하고, 모듈들을 컴파일해서 블록체인의 백엔드 역할을 하면서 모든 기록들이 genesis 블록에 연결된다.


실행 순서 #

  1. 스마트 컨트랙트나 모듈이 생성될때 배포 트랜잭션이 생성되며 네트워크의 노드들에게 전파되고 검증되면 노드들이 가지고 있는 블록체인 가상머신에 업데이트 된다. (자세한 로직은 2~4에서 설명)
  2. 사용자가 특정 백엔드 함수를 호출하려 하면 트랜잭션을 생성한다.
  3. 트랜잭션은 모든 네트워크의 노드에게 전파되며 노드에서 트랜잭션을 검증한다.
  4. 검증이 완료되면 블록체인에 포함되며 호출한 함수가 실행된다.

어차피 구현은 스마트 컨트랙트 #

처음엔 그냥 간단하게 코인 발행하고 nft만 발행하는게 OpenSea의 Create 기능을 사용하는것과 다를게 없다고 느껴서 cosmos SDK로 눈을 돌렸던 건데, 스마트 컨트랙트도 여러가지 많은 일들을 할 수 있다는걸 알게돼서 상대적으로 간단한 스마트 컨트랙트를 사용하기로 결정했다.

comments powered by Disqus