[블록체인] 왜 블록체인인가?

HwangJerry·2023년 4월 28일
0
post-thumbnail

블록체인 네트워크


Client-Server Network

오늘날 대부분의 비즈니스 네트워크는 중앙 집중적인 클라이언트-서버 방식으로 이루어져 있습니다. 이는 모든 클라이언트의 요청을 수행해야 하는 강력한 서버를 구축해야 하므로 구현하는 비용이 비싸지만, 그만큼 확장성이 좋고 관리가 편합니다.

하지만 이는 서버에 모든 데이터와 권한이 치중되어 있다는 단점이 있고, 신뢰성의 문제가 발생할 수 있습니다. 서버만 해킹되면 서버에서 관리하는 모든 데이터가 위험에 노출될 수 있으며, 서버만 가질 수 있다면 모든 조작 권한을 가지게 됩니다.

P2P Network

블록체인은 Client-Server 네트워크가 갖는 정보의 비대칭성을 해결하고, 구조상 강력한 신뢰를 보장하며, 시장경제 논리를 철저히 따르는 시스템을 구축할 수 있는 탈 중앙적인 P2P 네트워크를 통해 구현되었습니다.

P2P 네트워크 상에서는 서버와 클라이언트의 구분이 사라지며, 모두가 동일한 데이터를 갖고 서로의 요청을 처리해주게 됩니다. 이를 통해 권한의 분배가 아닌 권한의 평등을 이룹니다. 또한 누군가가 데이터를 조작하려고 시도하여도 막대한 노드의 데이터를 동시에 조작하지 않는 이상 그 가능성은 불가능에 수렴하게 되어 네트워크가 보유한 정보의 투명성과 신뢰성이 보장됩니다.

블록체인의 동작 방식


비트코인 시스템에서 블록체인은 아래 기술을 활용하여 트랜잭션을 기록하고 자산을 추적하는 프로세스를 용이하게 하는 공유 불변 원장입니다. (출처: IBM.com)

  • 사용자의 거래가 포함된 블록
  • Hash 및 합의를 통해 블록 연결
  • 중앙화된 서버가 아닌 분산된 네트워크
  • 거래의 위변조를 막기 위한 암호화
  1. [지갑 생성]:
    사용자는 개인 키공개 키로 구성된 디지털 지갑을 생성합니다. 이 지갑은 사용자의 블록체인 상에서의 잔액(UTXO) 및 거래 기록을 관리합니다.

  2. [거래 생성]:
    사용자가 송금을 하려면 지갑 내의 UTXO를 통해 사용 가능한 잔액을 파악한 후, 수신자의 지갑 주소와 송금할 금액을 선택합니다. 그런 다음 송신자의 개인 키로 거래에 서명하여 거래를 생성합니다. 서명은 거래의 무결성과 송신자의 신원을 보장합니다.

  3. [생성된 거래를 네트워크 상에 전파]:
    사용자가 생성한 거래는 블록체인 네트워크에 있는 노드들에게 전파됩니다. 이 과정에서 네트워크 내의 다른 노드들이 거래를 검증하여 유효한 거래인지 확인합니다.

  4. [각 노드들이 전달받은 거래들로 블록 생성 시작]:
    네트워크의 노드들은 유효한 거래들을 모아 하나의 블록에 포함시킵니다. 그런 다음, 노드들은 블록에 대한 작업 증명(Proof of Work, PoW)과정을 거쳐 블록을 생성하려고 합니다. 이를 채굴이라고 하며, 이 과정은 난이도가 높은 수학 문제를 해결해야 하므로 높은 연산력이 필요합니다.

  5. [특정 노드가 블록 생성 성공 시 생성한 블록을 네트워크상에 전파]:
    어떤 노드가 블록 생성에 성공하면, 해당 블록을 네트워크에 전파합니다. 네트워크의 다른 노드들은 전파된 블록을 받아 검증합니다.

  6. [각 노드들이 블록 검증 후 블록체인에 연결]:
    네트워크의 노드들이 전파된 블록을 검증한 후, 해당 블록이 유효하다고 판단되면 블록체인에 연결합니다. 이렇게 연결된 블록들은 시간 순서대로 거래 내역을 기록하게 됩니다. 그리고 새로 연결된 블록에 포함된 거래들은 확정되어 더 이상 변경되지 않습니다. 이렇게 블록체인에 연결된 블록들은 사용자들의 거래 내역을 안전하고 투명하게 저장하는 역할을 합니다.

블록체인의 특징


블록체인은 위와 같은 과정을 통해 운영되는 시스템입니다. 이를 통해 얻을 수 있는 특징은 다음과 같습니다.

  1. [중앙 서버나 기관이 없는 탈중앙화]:
    블록체인은 여러 노드들이 서로 연결된 분산된 네트워크로 구성되어 있습니다. 이러한 구조로 인해 중앙 서버나 기관이 필요하지 않으며, 모든 노드가 동일한 데이터를 저장하고 검증합니다. 이렇게 탈중앙화된 구조는 중앙 서버의 고장이나 해킹의 영향을 받지 않으며, 신뢰성과 안정성을 높이는 데 도움이 됩니다.

  2. [모든 기록이 공개되는 투명성]:
    블록체인의 모든 거래와 블록 정보공개적으로 접근이 가능하며, 누구나 이를 조회할 수 있습니다. 이렇게 투명한 정보 공개는 데이터의 무결성을 보장하고, 사용자들이 거래 내역을 검증할 수 있도록 합니다. 투명성은 부정행위를 방지하고, 시스템의 신뢰성을 높이는 데 기여합니다.

  3. [거래 당사자 간 보장되는 익명성]:
    블록체인에서의 거래는 공개 키 기반의 주소를 사용하여 진행됩니다. 이 주소는 사용자들의 실제 정보와 직접적으로 연결되지 않아, 거래 당사자들의 익명성을 보장합니다. 그러나, 거래 내역이 공개되기 때문에 완전한 익명성을 제공하는 것은 아닙니다. 따라서 일부 블록체인은 익명성을 강화하기 위한 기술을 도입하고 있습니다. 그 예시로 Zcash는 zk-SNARKs를 사용하여 거래에 대한 정보를 숨기고, Dash는 PrivateSend 기능을 통해 거래의 익명성을 강화합니다.

  4. [모든 기록이 변경되지 않아 증거로 활용할 수 있는 불변성]:
    블록체인은 블록들이 서로 연결되어 있는 구조로, 한번 생성된 블록변경이 불가능하게 설계되어 있습니다. 새로운 블록이 연결될수록 이전 블록들의 무결성이 더욱 강화되며, 이러한 불변성은 데이터의 신뢰성과 합의를 보장합니다. 블록체인에 저장된 정보는 변조가 거의 불가능하여, 증거로 활용될 수 있는 가치가 있습니다.

비잔틴 장군 문제


비트코인은 비잔틴 장군 문제를 Proof of Work (PoW) 알고리즘을 사용하여 해결합니다. 비잔틴 장군 문제는 분산 시스템에서 신뢰할 수 있는 합의를 이루기 위해 고안된 문제로, 비트코인의 경우 블록체인 네트워크 상의 모든 참가자들이 동일한 거래 목록을 합의해야 합니다.

PoW 알고리즘은 다음과 같은 방식으로 비잔틴 장군 문제를 해결합니다:

  • 난이도: 비트코인 네트워크는 채굴 난이도를 조절하여 채굴자들이 블록을 생성하기 어렵게 만듭니다. 이는 블록 생성 속도를 일정하게 유지하고, 공격자가 손쉽게 블록체인을 조작하는 것을 방지합니다.

  • 경쟁: 채굴자들은 블록을 생성하기 위해 서로 경쟁하며, 높은 컴퓨팅 파워를 필요로 합니다. 채굴자는 특정 난이도에 맞는 해시 값을 찾기 위해 무작위 수(nonce)를 변경하며 시도합니다. 이 과정은 많은 컴퓨팅 자원과 에너지를 소비합니다.

  • 블록 보상: 채굴자가 올바른 해시 값을 찾으면 새로운 블록이 생성되고, 해당 채굴자에게 비트코인 보상이 주어집니다. 이 보상은 채굴자들이 네트워크에 참여하고, 경쟁하며, 솔직하게 행동하는 동기를 부여합니다.

  • 가장 긴 체인 규칙: 비트코인 네트워크에서 참가자들은 가장 긴 PoW 체인을 합의된 체인으로 간주합니다. 공격자가 이 체인을 조작하려면 해당 체인보다 더 긴 체인을 생성해야 합니다. 그러나 이를 위해서는 공격자가 전체 네트워크의 51% 이상의 해시파워를 확보해야 하며, 이는 실질적으로 불가능하다고 여겨집니다.

profile
알고리즘 풀이 아카이브

0개의 댓글