비트코인과 이더리움의 약점

황희윤·2022년 2월 14일
0

기존 블록체인 플랫폼의 약점

1. 확장성 (Scalability)

얼마나 많은 일을 신속히 처리할 수 있는지

  • 비트코인이더리움 같은 경욱 확장성에 문제가 많음. 따라서 사용자가 한번에 너무 많이 몰리게 되면 과부하가 올 수 있음.

  • TPS ( Transaction Per Second ) : 초당 몇개의 거래 처리

    • Visa : TPS 1700
    • 비트코인 : TPS 7
    • 이더리움 : TPS 15 ~ 20
    • 클레이튼 : TPS 4000
  • Block Interval : 블록 생성 간격

    • 블록 하나 하나가 생길 때 어느 정도의 생성 시간 간격을 두고 만들어지는가
    • 비트코인 : 10분
    • 이더리움 : 15초 ~ 20초
  • 이더리움 : 20 TPS + 15초 Block Interval = 20*15 = 300 transactions

  • 만약 이더리움으로 송금하면, 이더리움 블록이 생성 되어야 거래가 진행되기 때문에 15초의 대기시간이 필요하다. 비트코인의 10분보다는 빠르지만, 여전히 느리다.

이더리움과 비트코인이 느린 이유

  • 기존의 중앙 서버에서는 큰 request가 들어올 경우 많은 서버들이 request를 나누어 병렬적으로 처리를 하기에 서버의 개수를 증가시키면 처리 속도를 늘릴 수 있다.

  • 하지만 노드라는 서버를 가진 블록체인 네트워크는 일을 분산시킬 수 없기 때문에 모든 노드가 모든 일을 해야 한다.

  • 그래서 전체 네트워크에서 가장 낮은 퍼포먼스의 노드를 기준으로 전체 네트워크의 속도가 낮아지는 하향평준화가 발생한다.

  • 컴퓨터 한 대로 구성된 네트워크나 백 대의 컴퓨터로 구성된 네트워크나 생산성에서 큰 차이가 없다.

  • 네트워크 자체 속도 느림

2. 완결성 ( Finality )

변경 불가능한 최종적인 상태

  • 블록이 Final하다는 건?

    • 블록에 담긴 TX(거래 Transaction)가 바뀔 수 없다는 걸 보증
  • 비트코인 & 이더리움

    • 완결성 부족

    • 확률론적 완결성만 제공

    • 예를 들어 비트코인으로 비행기 티켓을 샀다면, 구매 후 즉시 결제가 되어야 하는데 결제가 확정적으로 난 게 아니라 높은 확률로 결제가 됨.

    • 그래서 나중에 보면 결제가 안됬을 확률도 있음.

    블록체인블록체인 평균시간Finality까지의 평균 시간
    비트코인10분60분 (6번의 검증)
    이더리움15초6분 (25번의 검증)
    • 만약 비트코인으로 송금을 한 다면, 10분이 지나서 나의 거래기록이 저장된 블록이 생성되어 체인에 붙었다고 해도, 그 거래를 확정하려면 그 뒤로 5개의 블록이 더 붙어야 한다는 것이다. 그 정도로 많은 블록이 추가로 붙은 체인이어야만 메인 체인으로 인정 해 줄 수 있다.

    • 반대로 말하면, 비트코인은 60분동안은 내 거래내역이 처리가 안될 수 있다.

    • 너무 생산성이 떨어지기 때문에, 특히 최종성이 떨어지기 때문에 상용화가 힘듬.

    • Finality : TX가 변경 불가라는 합리적인 보장 받기까지 기다려야되는 시간

    • 완결성은 일정 시간 후에 확률적으로만 달성할 수 있고, 100% 확신할 수 없다.

    • 클레이튼은 Finality까지 1초면 충분!

3. Fork ( 분기 발생)

블록체인에서 블록들의 연결이 나눠지는 현상

  • Fork가 발생하는 이유

    • 블록체인 P2P 네트워크에서 모든 참여자들이 독립적으로 채굴을 할 수 있기 때문에
  • 비트코인 & 이더리움의 작업 방식 : 작업증명(PoW) 방식

    • 블록체인에 블록 추가하기 위해 문제를 품 (Hash 값 찾기)

    • 여러 노드들이 경쟁을 하면서 푸는데, 만약 두 개의 노드가 우연히 거의 똑같은 시간에 풀어버리면 블록체인에 붙여질 후보 자격으로 두 개의 블록이 올라감. 이 때 분기 발생.

    • 분기가 발생하면 노선이 두 개로 갈라진다. 이 때 그 다음으로 문제를 푼 노드들이 이어서 붙게 되는데 두 노선 중 하나를 선택한다.

    • 두 노선 중 더 길게 이어진 노선이 선택되고, 다른 노선은 고아 노드라고 불리면 사라지게 된다.

  • 51% 공격

    • Fork를 이용해서 블록체인을 조작할 수 있다.

    • 아까처럼 만들어진 두 개의 노선에서 원하는 노선 하나에 51% 이상의 컴퓨팅 파워를 줘서 다른 노선보다 더 긴 노선을 만들어버리는 것이다.

    • 하지만 이 조작 방법도 약점이 있는데, 이렇게 조작을 하면 해당 암호화폐에 대한 신뢰가 떨어져서 가치가 떨어지게 된다.

    • 또한 이 51%의 컴퓨팅 파워를 가지려면 매우 높은 비용이 필요해서 오히려 적자가 날 수 있다.

4. BFT ( 비잔티움 결함 허용 )

  • 참여 노드 수 제한 / 성능 높임

  • But 분산화 약화 / 투명성 저하

요약

  • 포크완결성 부족은 블록체인 서비스가 상용화되기까지 해결해야 될 중요한 문제다.

  • 사용자는 블록체인 포크가 해결되고, 블록이 충분히 쌓여서 트랜잭션을 되돌릴 수 없게 될 때까지 기다려야 하기 때문이다.

  • 만약 금융 서비스에 이 문제를 대입해보면, 사용자가 다른 사람에게 자금을 전송했다고 가정할 경우, 서비스는 30분에서 60분이 지나야 이체가 유효하다는 것을 확인할 수 있다.

  • 포크가 하나의 체인으로 병합되고, 트랜잭션을 되돌릴 수 없게 몇 개의 블록이 쌓일 때까지 기다려야 하기 때문이다.

profile
HeeYun's programming study

0개의 댓글