Web 1.0, 2.0, 3.0
•
Web 1.0: 서비스 제공자가 자신의 정보를 보여줌.
•
Web 2.0: 사용자들이 상호작용하는 플랫폼 (예: 페이스북)으로, 개인화된 뷰 제공.
•
Web 3.0: 데이터 조작과 소유권 문제, 가치의 교환을 중시.
각 단계는 멸종이 아닌 기능이 더해지면서 발전함.
Web 3.0이 Web 2.0을 대부분 대체하지는 않을 것이다. Web 3.0은 2에서 기능이 더해진 것이며, 필요한 곳에서 유용하게 쓰일 것이다. 블록체인 자체를 대단하게 생각할 필요는 없고, 데이터가 조작 불가능한 형태로 저장할 필요가 있는 부분에서 블록체인이 도입될 것이다.
블록체인 간 데이터가 상호교환 가능한 형태의 multi-chain이 메인이 될 것이라고 생각한다. 백엔드에 저장되는 데이터는 여전히 존재하고, 특수한 경우에만 데이터를 블록체인에 저장한다.
소유권과 데이터 관리
컨텐츠를 만든 사람에게 소유권이 있어야 하며, 내 데이터를 통해 기업만 돈을 벌어서는 안 된다.
이미지를 다운받아 올리면 원본 소유자를 증명하기 어렵고 가치를 저장하기 힘들다.
이미지의 해시값을 다르게 하기 위해 perceptual hash라는 방법을 사용하여 유사한 해시값을 생성할 수 있다.
블록체인과 데이터 처리
Web2 vs Blockchain
Web 2.0은 프론트가 있고 백엔드에서 데이터를 가져와 보여주는 구조이다.
블록체인은 비효율적인 시스템이지만, 그 비효율을 통해 데이터의 무결성을 보장하는 consensus를 제공한다.
프론트에서 데이터를 제공할 때 서명을 처리하는 wallet이 필요하고, wallet에 요청을 보내야 하며 endpoint 노드가 필요하다.
프론트 입장에서는 웹 서비스에서 접근하는 엔드포인트와 wallet과 연결된 엔드포인트가 필요하다. 서비스가 늘어날수록 endpoint가 많아져 관리가 힘들어진다.
○ Wallet
○ Web3 SDK
○ RPC request to Blockchain nodes
○ Blockchain Indexed data
블록체인에서 public endpoint를 제공하기도 하지만, 장애에 대한 보장이 부족하다. 따라서 서비스 제공자가 자체적으로 엔드포인트를 구축해야 안전성을 확보할 수 있다.
백엔드에서는 API/DB설계할때 블록체인 데이터와 상호작용하는 방식을 고려해야하고 블록체인 내에서의 변화를 listen해서 DB의 데이터를 변경해야하는 경우도 있다.
트랜잭션과 데이터 추적
•
Account-based: 트랜잭션 추적이 어려움
•
UTXO: balance 추적이 어렵다.
블록체인 돌아가는데 필요한 핵심 정보는 아님. 필요한 정보는 누군가 서비스 운영을 통해 제공해야 한다. 이를 indexer라고 한다.
블록체인의 한계점 중 하나는 외부 CEX에서 온 데이터가 온체인에 관여하기 어렵다는 점이다.
Oracle을 통해 외부 데이터를 온체인으로 가져오고, 다른 체인의 정보를 온체인화 시켜야 한다.
온체인과 오프체인의 정보를 동시에 활용하여 가격이 급락해 청산이 발생하는 경우를 막을 수 있다.
블록체인이 Web 3.0을 지원하기 위한 구현이 어렵고, 결함이 발생할 확률이 늘어난다.
스마트 계약과 엔드포인트
스마트 계약, wallet, endpoint, indexer, oracle을 이해해야 한다.
프론트 입장에서 개발 프로세스는 크게 다르지 않지만, 상호작용할 것들이 늘어난다. 백엔드 API 호출만 하면 됐던 것이 wallet과의 상호작용도 필요하고, Web 3.0 SDK도 필요하다.
블록체인이 모든 데이터를 들 수는 없으며, 개인정보 같은 데이터는 블록체인에 저장할 수 없다.
블록체인 데이터의 변경을 감지해야 할 경우도 있다.
스마트 계약
스마트 계약은 블록체인에 들어가는 프로그램으로, 트랜잭션 제출에 의해 실행된다.
누구든 어떤 트랜잭션을 실행했는지 확인할 수 있고, rollback이 불가능하다. 이더리움 해킹 사건 발생 시 rollback을 위해 해킹 발생 이전의 블록으로 돌아가는 경우가 있었지만, 이를 동의하지 않는 사람들은 Ethereum Classic 체인을 만들었다.
Oracle은 체인 밖의 데이터를 체인 안으로 가져오는 역할을 한다.
하나는 price feed, 즉 CEX의 가격을 온체인으로 올리는 것이다.
Oracle 서비스 제공자가 한 군데면 악용 가능성이 있으므로, 탈중앙화하여 운영하고 aggregate된 값을 사용한다.
Wallet
Wallet의 핵심 기능은 트랜잭션을 만들어 서명을 붙이는 것이다.
서비스가 사용자의 돈을 관리하는 경우 custodial 방식으로, 은행처럼 관리해야 하며 규제가 필요하다.
Non-custodial 방식에서는 private key를 유저가 직접 가지고 있어야 하며, 잃어버리면 복구가 불가능하다.
사용자 입장에서 키 관리가 어려운 문제가 있다.
Endpoint 노드는 블록체인에 접근하기 위한 노드이며, full 노드는 서비스 제공자를 통해 참여할 수 있다.
Indexer: 블록체인 자체의 정보만으로는 사용이 어렵고, 유저가 원하는 정보를 쉽고 빠르게 제공해야 한다.
노드가 직접 transaction history 등의 정보를 output으로 내놓는것은 비효율적이므로 indexer로 제공함. Alchemy 등이 있음.


