Web3 얘기에서 절대로 빠질수 없는 블록체인에 대해 얘기해보려고 한다.
aws에서 설명하는 블록체인 내용은 이러하다.
블록체인 기술은 비즈니스 네트워크 내에서 정보를 투명하게 공유할 수 있도록 하는 고급 데이터베이스 메커니즘입니다. 블록체인 데이터베이스는 연쇄적으로 연결된 블록에 데이터를 저장합니다. 네트워크의 합의 없이 체인을 삭제하거나 수정할 수 없으므로 이 데이터는 시간 순서대로 일관성이 있습니다. 그 결과 블록체인 기술을 사용하여 주문, 결제, 계정, 기타 트랜잭션을 추적하기 위해 불변하거나 변경 불가능한 원장을 생성할 수 있습니다. 이 시스템에는 무단 트랜잭션 항목을 방지하고 이러한 트랜잭션의 공유 보기에서 일관되게 생성하는 기본 제공 메커니즘이 있습니다.
해당 설명 그대로 블록테인은 데이터를 분산된 네트워크에 안전하게 저장하고 관리할 수 있는 기술이다. 각 블록은 고유한 암호화 해시 값을 가지며, 이전 블록의 해시 값과 연결되어 있다. 하지만 이런 연결 구조로 인해 블록체인은 데이터의 조작이 매우 어렵다.
일단은 블록체인의 구조에 대해 알아보겠다.
크게 두가지로 되어있다.
1. 블록(Block)
블록은 블록테인에서 데이터가 저장되는 기본 단위이다. 블록은 여러 요소로 구성되어 있으며, 이 요소들은 블록체인의 무결성, 보안성, 그리고 신뢰성을 보장하는 데 중요한 역할을 한다.
1.1 헤더(Header)
블록 헤더는 블록의 메타데이터를 포함하고 있으며, 블록을 식별하고 다른 블록들과의 관계를 정의하는 중요한 정보들을 담고 있다. 이전 블록의 해시 값, 타임스탬프, 난이도, 논스 등이 포함되어 있다.
해당 단어의 뜻은 이러하다
- 이전 블록의 해시(Previous Block Hash): 이전 블록의 고유한 해시 값을 포함하고 있습니다. 이 해시 값은 현재 블록이 어떤 블록 뒤에 오는지를 결정하며, 블록체인을 연결하는 역할을 합니다.
- 타임스탬프(Timestamp): 블록이 생성된 시간을 기록합니다. 이는 블록체인에서 각 블록의 생성 순서를 확인하는 데 사용됩니다.
- 난이도(Difficulty): 블록을 채굴하거나 생성하는 데 필요한 연산의 난이도를 나타냅니다. 난이도는 네트워크의 상태에 따라 조정되며, 이는 블록 생성 속도를 일정하게 유지하기 위한 목적을 가지고 있습니다.
- 논스(Nonce): 블록의 해시를 특정 조건에 맞게 변경하기 위해 임의로 선택된 숫자입니다. 주로 작업 증명(Proof of Work) 방식에서 사용됩니다. 채굴자는 논스를 계속해서 변경해가며 해시 값을 계산해, 특정 조건(예: 해시 값이 특정 개수의 0으로 시작해야 함)을 만족시키는 해시를 찾아야 합니다.
- 머클 루트(Merkle Root): 블록 안에 있는 모든 트랜잭션 데이터의 요약 값을 포함합니다. 이는 트랜잭션 데이터를 효율적으로 검증하는 데 사용됩니다. 모든 트랜잭션이 머클 트리 구조로 조직되고, 그 최상단에 위치한 해시 값이 머클 루트로서 블록 헤더에 저장됩니다.
1.2 트렌잭션 데이터(Transaction Data)
트랜잭션 데이터는 블록에 실제로 저장되는 주요 정보이다. 블록체인에서는 주로 다음과 같은 종류의 데이터가 트랜잭션 데이터에 포함된다.
- 거래 내역(Transaction Records): 블록체인 네트워크에서 발생한 거래 내역이 기록됩니다. 예를 들어, 비트코인 블록체인에서는 비트코인의 송금 내역이 기록됩니다.
- 스마트 계약(Smart Contracts): 블록체인에서 자동으로 실행되는 계약 코드가 포함될 수 있습니다. 이 코드는 미리 정의된 조건이 충족되면 자동으로 실행됩니다.
- 다른 종류의 데이터: 특정 블록체인에서는 의료 기록, 공급망 정보, 또는 다른 형태의 데이터가 트랜잭션으로 기록될 수 있습니다.
Web3중에 거래내역을 확인할수 있는 사이트중 ARKHAM이 대표적이다.
https://www.arkhamintelligence.com/ko
1.3 해시(Hash)
해시는 블록체인에서 매우 중요한 요소로, 블록의 무결성을 보장한다. 즉 블록체인은 보안이 매우 중요하기에 3자가 확인하기 불가능한 해시 알고리즘을 사용한다. 블록체인에서는 SHA-256을 사용했으나 요즘에는 SHA-3를 사용한다. 왜냐하면 SHA-3는 SHA-2와 비슷한 보안 수준을 제공하지만,
- 저항성: SHA-3는 SHA-2와 다른 알고리즘을 사용하기 때문에, 양자 컴퓨팅 등 새로운 기술이 SHA-2를 위협할 가능성이 생기더라도 SHA-3는 그 영향에서 자유로울 수 있다.
- 유연성: SHA-3는224비트, 256비트, 384비트, 512비트 해시 출력 크기를 지원하며, 다른 암호화 시스템과의 호환성이나 특정 요구사항에 맞추어 사용할 수 있다.
- 구조적 차이: SHA-3는 스펀지 구조라는 새로운 설계를 채택하여 해시 값을 생성하는 방식이 다르다. 이로 인해 SHA-3는 특정 암호 해독 공격에 대해 더 나은 저항성을 가질 수 있다.
이 3가지의 장점으로 인해 새로운 블록체인 개발이나 스마트 컨트렉트를 할때 SHA-3을 사용한다.
2. 체인(Chain)
블록체인의 "체인"은 블록들이 서로 연결되어 형성된 구조를 의미한다. 이 연결은 각 블록이 이전 블록의 해시 값을 포함함으로써 이루어진다.
2.1 블록 연결 구조
각 블록은 바로 이전 블록의 해시 값을 블록 헤더에 포함하고 있다. 이로 인해 블록체인은 순차적으로 연결되며, 이는 다음과 같은 장점을 제공한다.
- 변경 불가능성: 블록체인에서 데이터의 무결성을 보장하는 중요한 메커니즘. 만약 누군가가 특정 블록의 데이터를 변경하려고 하면, 해당 블록의 해시 값이 변하게 됩니다. 하지만 이 해시 값은 다음 블록에 포함되어 있기 때문에, 이후의 모든 블록의 해시 값도 변경되어야 합니다. 따라서 하나의 블록을 변경하려면 전체 체인의 블록을 변경해야 하는데, 이는 블록체인이 분산되어 여러 노드에 저장되어 있기 때문에 사실상 불가능합니다.
- 추적 가능성: 블록체인은 각 블록이 이전 블록과 연결되어 있어, 체인 전체의 모든 거래 내역을 시간 순서대로 추적할 수 있습니다. 이는 블록체인 네트워크에서 투명성을 높이고, 사용자가 데이터를 신뢰할 수 있도록 합니다.
3. 블록체인의 보안
블록체인의 보안은 주로 해시 함수, 작업 증명(Proof of Work), 그리고 분산 네트워크 구조에 의해 유지된다. 특히 작업 증명 방식에서는 블록을 생성하기 위해 채굴자들이 높은 연산력을 동원해 특정 조건을 만족하는 해시 값을 찾아야 한다. 이 과정은 매우 어려워 블록을 임의로 변경하는 것을 방지하지만, 검증 과정은 상대적으로 쉽고 빠르게 이루어진다.
해시 함수: 입력 데이터를 고정된 길이의 암호화된 문자열로 변환하는 알고리즘이다. 블록체인에서는 SHA-256과 같은 해시 함수가 주로 사용한다. 대표적으로 3가지 특성에 대해 설명하겠다.
- 일방향성: 입력 데이터를 통해 해시 값을 쉽게 계산할 수 있지만, 해시 값으로부터 원래 입력 데이터를 추정하는 것은 불가능하다.
- 충돌 저항성: 서로 다른 두 입력 데이터가 같은 해시 값을 가질 확률이 매우 낮습니다. 이를 통해 해시 값이 고유성을 유지할 수 있다.
- 작은 변경에 대한 민감성: 입력 데이터의 작은 변화도 완전히 다른 해시 값을 생성합니다. 이로 인해 데이터의 무결성을 쉽게 확인할 수 있다.
블록체인에서는 각 블록의 내용(트렌잭션 데이터, 블록 헤더 등)을 해시 함수에 입력하여 고유한 해시 값을 생성한다. 이 해시 값은 블록의 디지털"지문"역할을 하며, 데이터의 무결성을 보장하는 데 핵심적인 역할을 한다.
'Web지식 > web3' 카테고리의 다른 글
Web3의 합의 메커니즘 (9) | 2024.09.22 |
---|---|
스마트 컨트렉트(Smart Contract) (5) | 2024.09.01 |
web3.0 탈중앙화란? (0) | 2024.08.17 |
web2란? (0) | 2024.08.03 |
Web1.0란? (0) | 2024.07.28 |