Notice
Recent Posts
Recent Comments
250x250
반응형
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

Tyojong

WEB3 기본 개념 본문

web3/basic knowledge

WEB3 기본 개념

Tyojong 2025. 7. 6. 21:13
반응형

블록체인 (Blockchain)

암호자산(디지털 자산)의 근본이 되는 기술.

조작할 수 없는 거래 기록을 작성하는 것이 가능하고 중앙집권화된 관리 주체 없이 누구나 살펴보고 참여하는 것이 가능하다. (탈중앙화)

블록들이 시간순으로 연결되어 체인처럼 이어져 있는 구조이기 때문에 블록체인(Blockchain) 이라고 부른다.

블록

블록체인 네트워크 상에서 거래(트랜잭션) 내역이 영구적으로 저장되어 있는 데이터 구조.

각 블록에는 새로 생성된 거래 내역 뿐만 아니라 이전 블록의 해시까지 포함하고 있기 때문에 위/변조가 어렵다.

트랜잭션 ≓ 송금 기록, 블록을 더 잘게 나눈 단위

블록 ≓ 거래(트랜잭션)를 담고 있는 상자

 


스마트 컨트랙트(Smart contract)

블록체인을 기반으로 하는 자동화된 계약. (현대에는 블록체인 내에서 동작하는 애플리케이션을 부르는 말)

누구나 스마트 컨트랙트에 요청을 할 수 있고 일정한 수수료를 바탕으로 실행되어 결과가 저장된다.

자동화된 은행과 같은 여러 구현체를 작성하는 것이 가능하다.

여러 블록체인 네트워크에서 채택되어 사용하고 있는 개념으로 다양한 언어를 사용해 구현할 수 있다.

 

블록체인은 확장성(Scalability), 탈중앙화(Decentralization), 보안성(Security) 세 특징을 모두 만족시키려고 하지만 한 문제를 해결하기 위해서는 한 문제를 포기해야하는 문제가 계속 발생한다. 이를 블록체인 트릴레마(Blockchain trilemma)라고 부른다.

스마트 컨트랙트의 설계 기본 원칙

  • Observability : 계약 당사자 간의 계약 조건을 수행할 수 있는 적절한 이행 능력이 있는지 관찰하거나 서로 입증할 수 있어야 한다.
  • Verifiability : 중재인이나 제3자에게 계약 위반 또는 이행을 입증할 수 있어야 한다.
  • Privity : 계약 내용과 이행에 대한 정보 통제는 필요한 만큼만 당사자들에게 제공해야 한다. (단, 지정된 인원 외 외부 인원이 계약을 통제할 수 없어야 한다.)
  • Enforceability : 계약을 강제로 이행할 수 있는 능력이 있어야 한다 .(단, 강제 가능성을 최소화 해야 한다.)

스마트 컨트랙트의 동작 원리 (이더리움)

이더리움 블록체인 네트워크는 검증자(Validator)라고 불리는 네트워크 참여자들이 블록을 생성하고 검증한 뒤 네트워크에 배포한다.

스마트 컨트랙트는 이 블록체인 네트워크 상에서 동작하는 애플리케이션이고 검증자는 스마트 컨트랙트의 실행 결과를 전달 받으면 재검증하여 네트워크에 포함시키는 역할을 맡는다.

네트워크 이용자들은 이더리움 화폐인 이더(Ether)를 통해 가스(Gas)라고 불리는 수수료를 지불하게 되고 검증자는 이를 가져간다.

  1. 배포자(Deployer)가 스마트 컨트랙트를 네트워크상에 배포한다.
  2. 판매자(Seller)가 판매하고자 하는 자산을 스마트 컨트랙트에 넘긴다.
  3. 구매자(Buyer)가 계약서를 확인한 뒤 금액을 입금한다.
  4. 스마트 컨트랙트가 판매자에게 재화, 구매자에게 금액을 받았기 때문에 거래가 실행되어 판매자에게 돈을 주고 구매자에게 재화를 넘겨준다.

스마트 컨트랙트의 장단점

장점

  • 블록체인 네트워크에서 실행된다는 점에서 불변성 보장
  • 스마트 컨트랙트의 구현에 따라 투명성기밀성 보장
  • 탈중앙화
  • 중개자가 없는 경우 틀랙잭션 수수료를 제외한 추가적인 금액을 지불하지 않아도 된다.

단점

  • 법적 규제가 없어 스마트 컨트랙트로 입은 피해는 온전히 본인이 감당
  • 블록체인 네트워크에 따라 거래가 진행되는 속도가 느릴 수 있다.
  • 모두에게 노출되어 있다는 특성상 공격에 더 취약하다.

스마트 컨트랙트 취약점

기밀 데이터 노출 블록체인에 기밀 데이터가 유출되는 경우 모든 사용자에게 해당 값이 노출될 수 있다.
가스 그리핑(Gas griefing) 트랜잭션에 필요한 가스를 임의로 조절해 다른 대상과 상호작용하는 코드가 올바르게 호출/동작되지 않도록 한다.
Read/Write-What-Where 스마트 컨트랙트 실행 중 배열의 값을 원하는 대로 읽거나 변경해 잘못된 흐름으로 실행되게 한다.
인증 부재/오용 특정 유저만 사용할 수 있어야 하는 기능에서 인증 기능을 구현하지 않거나 잘못 구현하는 경우 발생 한다.
잘못된 랜덤 값 랜덤 값을 생성할 때 블록 생성 시간과 같은 블록체인 내의 데이터를 활용하는 경우 공격자가 이 값을 예측해 공격이 가능하다.
재진입성(Reentrancy)을 이용한 취약점 이더리움 스마트 컨트랙트가 가진 재진입 특성을 이용해 특정 함수를 여러 번 실행하거나 제약 조건을 우회하는 등 스마트 컨트랙트가 의도하지 않은 흐름을 만들어낼 수 있다.
상호작용 결과 미확인 스마트 컨트랙트가 다른 대상과 상호작용한 뒤 결과가 올바른지 확인하지 않는 경우 논리적 오류를 만들어 낼 수 있다.
언더/오버플로우 계산된 값이 변수형이 표현할 수 있는 범위를 벗어나는 경우 잘못된 결과를 초래할 수 있다.
잘못된 함수 호출 선언 이더리움 스마트 컨트랙트는 각 함수가 호출될 수 있는 조건을 visibility를 선언해 결정하는데 내부에서만 실행되어야 하는 함수가 외부에서 호출될 경우 문제가 발생할 수 있다.

 


참여와 합의 알고리즘

일반적으로 참여는 블록 조회, 블록 생성, 트랜잭션 생성 세 가지 관점으로 나눠 볼 수 있다.

알고리즘

  • 퍼블릭 블록체인(Public blockchain)은 모든 사람이 블록 조회와 트랜잭션 생성이 가능하다.
  • Proof of Work (PoW) 합의 알고리즘을 사용하는 블록체인은 모든 사람이 블록 생성을 할 수 있지만 상당한 컴퓨팅 파워가 필요하다.
  • Proof of Stake (PoS), Delegated Proof of Stake (DPoS) 등의 합의 알고리즘은 일정 자산을 보유하고 다수의 참여자들에게 민주적으로 선택받아야 블록을 생성할 수 있는 권한을 언을 수 있다.
  • 프라이빗 블록체인(Private blockchain)은 지정된 인원만 참여가 가능하다.
  • 하이브리드 블록체인(Hybrid blockchain)은 퍼블릭과 프라이빗 블록체인의 특성을 결합해 선택적으로 블록을 공개한다.

 

포크

블록체인 프로토콜에 새로운 기능을 추가하고 싶은 경우 사용자 간의 합의가 이루어져야지만 업데이트가 가능하다. 합의가 이루어져 새로운 기능이 추가되어 기존과 달라지는 경우 분기가 일어났다는 의미로 포크(Fork)라고 지칭한다.

  • 하드 포크(Hard fork) : 이전 버전의 프로토콜과 호환이 안 되는 경우
  • 소프트 포크(Soft fork) : 이전 버전과도 호환이 가능한 경우

 


테스트넷&메인넷

스마트 컨트랙트를 개발하면 메인넷(Mainnet)에 올린다. 하지만 작성한 스마트 컨트랙트에 버그가 있으면 문제가 발생할 수 있기 때문에 테스트넷(Testnet)에서 우선 테스트를 진행한다.

 

이더리움에는 SepoliaGoerli라는 두 개의 공개 테스트넷(Public testnet)을 지원한다.

공개 테스트넷은 큰 스케일의 네트워크에서 직접 실행할 수 있고 테스트넷을 위한 여러 온라인 툴이 있다는 장점이 있다.

하지만 사용하기 위해서는 Faucet이라고 불리는 서비스를 통해 이더리움 토큰을 테스트넷 계정을 받을 필요가 있어 불편하다는 단점이 있다.

728x90

'web3 > basic knowledge' 카테고리의 다른 글

Foundry  (0) 2025.07.08