TIL 35 - 코인 & 토큰

프동프동·2023년 2월 10일
0

TIL

목록 보기
35/46
post-thumbnail

블록체인에서 채굴이 무엇인지 설명할 수 있다.

블록체인 네트워크에 노드로 트랜잭션을 검증하여 분산원장을 기록하고, 보상으로 암호화폐를 얻는 것을 뜻하며 땅을 파서 광물따위를 캐내는 행위에서 유래

채굴 노드가 무슨 일을 하는지 이해할 수 있다.

비트코인을 예시로.

노드가 비트코인 네트워크에 접속하면

네트워크 동기화

새 노드는 비트코인 네트워크에 합류한 이후, 다른 노드에게 과거의 블록들을 요청해 블록체인을 다운로드 한다.

트랜잭션 검증

새로운 트랜잭션(거래 기록)을 수신한 노드는 반드시 해당 트랜잭션이 올바른 트랜잭션인지 검증하는 과정이 필요

💡 [비트코인에서 트랜잭션을 검증하는 단계]
1) 원본 데이터를 자신의 개인키로 암호화를 진행하여 디지털 서명을 진행
2) 원본 데이터와 디지털 서명된 데이터를 노드에 전파
3) 트랜잭션을 받은 노드는 해당 트랜잭션이 진짜인지에 대한 검증을 위해 트랜잭션을 송신한 노드의 공개키를 이용하여 복호화 진행
4) 거래 데이터와, 원본 데이터를 비교하여 수정된 데이터가 있는지 데이터의 무결성을 검증
5) 수신 받은 트랜잭션이 진짜 거래로 판단될 경우 블록체인에 해당 트랜잭션을 업데이트하고 블록체인 네트워크에 연결된 노드들에게 해당 트랜잭션을 다시 전파

블록 유효성 검사

채굴자와 풀 노드는 특정 규칙에 따라 수신한 블록을 평가하여 유효성 검사를 시작한다.

새로운 블록 생성

채굴자는네트워크에 브로드캐스팅된 트랜잭션의 유효성을 검사한다

작업 증명(PoW) 수행

채굴 과정의 핵심으로 채굴자가 해시 퍼즐을 풀어 유효한 블록을 찾는다
이때 채굴자는 블록 헤더에 있는 논스(Nonce)를 사용하여, 논스 값을 계속 바꿔가며 결과 해시값이 설정된 목표값보다 작을 떄 까지 반복

💡 [블록 헤더의 논스(Nonce)와 트랜잭션의 논스(Nonce)는 어떤 차이가 있을까요?]
논스(Nonce)라는 단어는 크게 두개의 다른 의미로 쓰입니다.
블록 헤더의 논스(Nonce)는 해시 함수의 입력값 중의 하나로하여 계산되는 블록의 해시값이 특정 숫자보자 작아지게 하는 값으로 쓰입니다.
트랜잭션의 논스(Nonce)는
이더리움에서 쓰이는 발신 주소의 속성**으로, 이중지불문제 방지를 위해 도입되었습니다. 해당 주소에서 발생한 트랜잭션 건수를 세어서 동적으로 계산되는 값으로 쓰입니다.

보상 수령

해시 퍼즐의 해를 구한 노드는 즉시 결과를 다른 노드에 전파하고, 다른 노드들은 그 결과를 검증하여 그 블록을 승인합니다. 승인되면 채굴자는 비트코인과 관련된 트랜잭션 수수료를 보상으로 받는다.

채굴과 관련된 다양한 개념들(보상, 거래 수수료, 해시율, TPS, 채굴 풀)에 대해 이해할 수 있다.

보상

  1. 해를 구한 노드는 즉시 결과들 다른 노드에 전파하고
  2. 다른 노드들은 그 결과를 검증하여 블록을 승인한다.
  3. 블록이 승인되면 채굴자는 비트코인과 해당 트랜잭션 수수료를 보상으로 받는다.

거래 수수료

채굴자들이 특정 거래 기록들을 블록에 포함시켜서 블록체인에 추가할 수 있도록 제공되는 인센티브

  • 트랜잭션을 승인하는데 도움을 제공하거나 악의적인 노드의 공격으로부터 네트워크를 보호하는데 일조한 채굴자와 검증자에게 보상으로 지급하게된다.

트랜잭션 수수료를 사용하는 두 가지 이슈

  • 네트워크상의 악의적인 공격(스팸)방지
    • 거래 수수료는 대규모 스팸 공격과 이를 실행하는 데 무척 많은 비용이 들도록 합니다.
  • 채굴자에게 인센티브 제공
    • 네트워크를 원활하게 유지하는 것에 대한 보상

더 많은 수수료를 지불할 수록 트랜잭션 검증 과정이 빨라진다.

해시율(Hashrate)

초당 해시 계산 개수 비율, 비트코인 네트워크 상의 채굴자들이 블록을 찾기 위해 해시를 계산하는 속도

TPS

1초당 처리할 수 있는 트랜잭션의 개수
100만 TPS는 1초당 100만건의 트랜잭션을 처리할 수 있는 속도

원장이 분산화되고, 참여노드가 증가할수록 TPS는 느려지고 수수료는 증가한다.

다양한 채굴 방법에 대해 설명할 수 있다.

작업 증명, 지분 증명, 위임 지분 증명에 대해 각각 이해하고, 그 차이점을 설명할 수 있다.

PoW(Proof of Work)

유효한 블록을 만드는 데 충분한 계산 자원을 소모했다는 증명

어떤 트랜잭션이 발생했을 경우 해당 트랜잭션이 유효한 트랜잭션인지에 대한 검증과, 새로운 블록이 진짜인지, 가짜인지에 대한 검증을 수행한다는 특징을 갖고 있습니다.

  • 장점
    • 보안성
      • 51% 이상의 공격을 받아야한다.
  • 단점
    • 전력량

PoS(Proof of Stake)

해당 암호화폐를 보유하고 있는 지분율에 비례하여 의사결정 권한을 주는 합의 알고리즘

자신의 지분, 즉 스테이킹한 자산을 통해 블록을 생성하게 된다.
지분의 크기에 비례해 다음 블록의 검증 노드로 선택될 확률이 결정되며, 블록 생성 권한과 거래 수수료를 보상으로 받게 된다 PoS는 네트워크 참여자 모두가 블록을 검증할 수 있는 기회를 갖게되는 방식인데, 가지고 있는 지분이 많으면 많을 수록 블록 검증 기회를 더 많이 얻을 수가 있다. 다시 말해 가지고 있는 재산에 비례하여 보상이 주어지게 되는 것

  • 장점
    • 환경 친화적
    • 인센티브에 대한 강한 동조 및 지지
      • PoW : 채굴자 - 암호화폐 보유자 간 이해관계가 일치하지 않을 수도 있다.
      • PoS : 검증인 - 암호화폐 보유자의 이해관계가 같아지게된다.
    • 채굴 풀의 중앙집중화를 해결
  • 단점
    • 불안전한 해결책
    • 불공평한 경제 모델
    • Nothing at Stake Problem
  • 이더리움의 캐스퍼 프로젝트
    • 합의 알고리즘인 PoW를 PoS로 전환하는 것을 목표로 하는 프로젝트
    • 캐스퍼 네트워크는 캐스퍼 CBC 사양으로 구축된 최초의 라이브 베팅 증명(PoS) 블록체인
  • 기존의 PoS와 캐스퍼의 차이
    • 캐스퍼 PoS 작동 방식의 핵심 중 하나가 악의적인 검증인들을 처벌하는 기능.
      검증인들이 Nothing at Stake 문제와 같이 악의적인 행위를 하면 처벌을 받게 된다. 여기서 처벌이란 검증인들이 스테이킹한 지분을 차감하는 것을 의미

위임 지분 증명(DPoS)

암호화폐 소유자들이 각자의 지분율에 비례하여 투표권을 행사하여 대표자를 선정하고, 선정된 대표자들끼리 합의하여 의사결정을 내리는 합의 알고리즘

  • 장점
    • 소규모 참여자도 이득을 볼 수 있음
    • 빠른 거래 속도(TPS)
      • 합의하는 주체가 적기에 같은 시간에 훨씬 더 많은 거래를 처리할 수 있으며 수수료가 거의 없다
  • 단점
    • 네트워크 보안
      • 지분을 위임받은 대표자들의 수가 제한되어 있기 때문에 보안에 취약할 수 있다.
    • 대표자의 수
      • 네트워크가 커질 수록 대표자의 수는 늘어나야하지만 대표자의 수가 많아질 수록 위임지분증명이 가지고 있는 속도의 장점이 줄어들게 된다.

코인과 토큰의 차이점을 설명할 수 있다.

토큰은 메인넷에 기반해 만들어진 가상 자산, 블록체인 네트워크 위에서 발행된 지역화폐라고 할 수 있습니다.
토큰이 사용될 수 있는 곳은 발행된 블록체인 네트워크 내로 제한됩니다.

FT(Fungible token)

대체 가능성이린, 특정 자산의 각 단위를 상호 대체할 수 있다는 것이며, 기본적으로 서로 구분되지 않음을 의미한다.

  • 서로 자유로운 교환이 가능하며
  • 동일 단위의 1:1 교환이 발생할 경우, 내가 가진 단위는 동일하기에, 사실상 교환이 발생하지 않았던 것과 다름이 없다.

NFT(Non-fungible token)

블록체인 상에서 특정한 형태의 자산을 나타내는 암호화 토큰 중 하나
상호 대체가 불가능하기 때문에 디지털 영역에서 진위나 소유권을 증명하는 데 사용할 수도 있다

NTT(Non-transferable token)

전송 불가능한 토큰 또는 양도 불가능한 토큰이라 불리는 NTT는 한 번 할당되면 양도할 수 없는 토큰

기존 토큰 이코노미의 문제점을 이해할 수 있다.

토큰 이코노미는 어떠한 행동을 끌어내기 위해 ‘토큰'을 보수로 주고, 그 토큰의 유/무형의 가치와 교환됨으로써 그 행동을 강화하는 방법

토큰 이코노미의 3요소

토큰 이코노미는 크게 세 가지 요소로 나뉩니다.

  • 토큰(Tokens)
  • 강화제(Back-up Reinforcers)
  • 특정 목표 행동(specifed target behavior)

블록체인에서의 토큰 이코노미가 어떻게 문제를 해결했는지 이해할 수 있다.

기존 토큰 이코노미의 문제점

행동 심리학에서의 토큰 이코노미는 네 가지 문제점

  1. 토큰의 교환가치가 비합리적인 경우
    • 토큰 자체에 가치가 별로 없거나, 너무 조금 주는 바람에 사용자가 토큰을 받든, 받지 않든 큰 이익을 보지 않는 경우
    • 사용자가 토큰을 받아봤자 자신에게 충분한 이익이 되지 않는다고 생각하면, 토큰을 받든 안 받든 별로 신경 쓰지 않을 것입니다.
  2. 토큰의 발행/지급/기록이 투명하지 않은 경우
    • 토큰을 얼마 받았는지 알 수 없는 경우
    • 토큰을 누가, 언제, 왜 발행했는지 공개하지 않는다면 토큰 시스템 자체를 불신하게 될 수도 있다.
  3. 토큰의 교환가치 또는 비율에 일관성이 없는 경우
    • 토큰 시스템 자체가 공정하지 않은 경우
  4. 미래 교환가치에 확신이 없는 경우
    • 토큰 시스템이 지속되지 않는 경우도 있다. 특정 토큰 시스템이 그닥 인기가 없다면 토큰의 가치가 지속해서 하락할 것이다.

블록체인에서의 토큰 이코노미

블록체인에서의 토큰 이코노미 동작 방식

  • 사용자가 ‘특정 목표 행동’을 수행하여 생태계{에 기여한다.
  • 해당 플랫폼에서는 기여에 대한 보상으로 토큰을 지급
  • 사용자는 금전적 가치를 지니는 토큰을 다시 사용하거나, 거래소를 통해 이득을 취한다.
  • 중요한 점은 특정한 행동을 했을 때 보상(토큰)을 받는다는 것이다.

해당 과정을 통해 자연스레 생태계가 활성화된다.
사용자는 토큰을 가지고 세가지 액션을 취할 수 있다.

  1. 토큰 보유(hold)
  2. 토큰 교환(exchange)
  3. 토큰 사용(Use)

기존 문제점을 어떻게 해결할까?

  1. 토큰의 교환 가치
  2. 블록체인 기술을 활용한 투명성 확보
  3. 탈중앙화된 토큰 관리 주체

체인 별 토큰 이코노미의 특징을 이해할 수 있다.

인센티브를 통한 네트워크의 확장

코인과 토큰의 각 거래 방법에 대해 설명할 수 있다.

[중앙 거래소에서 거래 방법]
거래소에서는 고객들에게 코인과 토큰을 구분 짓지 않고 동일하게 보여주며 손쉽게 거래할 수 있게 해줍니다. 거래소에서는 아래와 같은 방법으로 거래를 진행하여 코인과 토큰을 동일한 것처럼 거래 가능하게 해줍니다.

  1. 거래소에서는 고객에게 암호화폐(코인 or 토큰) or 돈을 입금받아 해당 정보를 DB에 저장합니다.
    (이때 고객별로 암호화폐 지갑을 생성하여 거래소 중앙 서버에서 관리하기도 합니다.)
  2. 고객은 자신의 계정이 가진 암호화폐 or 입금 금액의 가치만큼 거래소에서 거래를 합니다.
  3. 이 거래에 대한 기록 및 자산 변동 내역은 거래소 DB에 저장됩니다.
  4. 고객은 거래가 완료된 자산을 자신의 지갑으로 출금합니다. 이때 거래소는 DB 기록을 기반으로 고객들에게 입금받았던 암호화폐 or 거래소가 보유한 암호화폐를 고객의 지갑으로 전송합니다.

코인과 코인간의 거래에 대해 이해할 수 있다.

서로 다른 네트워크를 사용하기 때문에 코인과 코인의 거래는 직접적으로 이루어질 수가 없습니다.

브릿지(Bridge)

브릿지는 코인을 거래한다기보다는, 코인을 다른 코인(체인과 체인간의 자산 교환)으로 변경하는 하나의 방법입니다. A라는 네트워크에 존재하는 코인을 B라는 네트워크의 코인으로 변경해주는 서비스를 브릿지라고 합니다.

앞에서 다른 네트워크의 코인끼리는 거래할 수 없다고 했었는데 어떻게 된 걸까요? 다른 네트워크끼리의 거래는 당연히 불가능합니다. 하지만 브릿지는 이를 독특한 방법으로 풀어냈습니다.

브릿지는 실제 자산을 다른 네트워크로 옮긴다기보다는, 원래 있던 네트워크에 코인을 묶어두고 다른 네트워크에서 유동할 수 있게 하는 기술입니다.

브릿지 작동 방식 예 (이더리움 → 클레이튼)

  1. 이더리움 메인넷 특정 주소로 이더(ETH)를 전송
  2. 받은 이더를 Lock 하고, 클레이튼에서 oETH라는 토큰을 새로 발행
  3. oETH는 새롭게 발행된 토큰이지만, 같은 양만큼의 이더가 묶여있기에, 이더리움 체인에서의 이더와 같은 가치를 가진다고 취급

브릿지도 실제로는 다른 네트워크 코인간의 직접적인 거래는 불가능하지만, Lock & Mint 이라는 방법을 사용하여 FROM 체인에서 자산을 묶어두고, TO 체인에서 자산을 새로 발행하여, 다른 네트워크 코인간 거래가 가능하게 서비스를 제공합니다.

코인과 토큰간의 거래에 대해 이해할 수 있다.

같은 네트워크의 코인 - 토큰 거래

토큰 자체가 코인에 귀속되기 떄문에 네트워크 상에서 코인으로 토큰을 교환하기도, 토큰을 코인으로 교환하기도 쉬운편

토큰을 발행한 스마트 컨트랙트에서 스왑을 구현하여 사용하거나, Uniswap 같은 스왑 dApp, DeFi 서비스등을 사용한다.

다른 네트워크의 코인 - 토큰 거래

코인과 코인이 서로 다른 네트워크일 경우, 이를 거래하는 것은 불가능했습니다. 때문에 당연하게도 서로 다른 네트워크의 코인과 토큰도 거래가 불가능합니다.

거래하기 위해서는 보유하고 있는 코인을 토큰이 존재하는 네트워크로 이동한 뒤, 이를 다시 원하는 토큰으로 스왑해야합니다.

토큰과 토큰간의 거래에 대해 이해할 수 있다.

같은 네트워크의 토큰 - 토큰 거래

스왑 서비스를 이용하면 쉽게 거래가 가능

다른 네트워크의 토큰 - 토큰 거래

다른 네트워크의 코인 - 토큰 거래와 동일하지만 하나의 액션이 추가된다.

서로 다른 네트워크 간 이동하기 위해서 보유하고 있는 토큰을 해당 네트워크의 코인으로 변경한 뒤, 이 코인을 브릿지를 이용하여 다른 네트워크의 토큰을 발행받고 이를 원하는 토큰으로 스왑

💡 서로 다른 네트워크의 토큰 - 토큰의 거래 예 (A 네트워크의 토큰, B 네트워크의 토큰)
1. A 네트워크의 토큰을 A 네트워크의 코인으로 스왑
2. A 네트워크의 코인을 토큰이 존재하는 B 네트워크로 브릿지를 사용하여 이동
3. 브릿지를 사용하여 발행받은 B 네트워크의 토큰을, 거래하고자 했던 토큰으로 스왑

profile
좋은 개발자가 되고싶은

0개의 댓글