
BlockChain 이란?
블록체인은 분산 원장 기술의 한 형태로 연결된 블록들의 연속체로 구성된 데이터 구조를 말합니다. 각 블록은 트랜잭션, 타임스탬프, 이전 블록의 해시값 등을 포함하고 있으며 이런 블록들이 연결되어 체인을 형성하게 됩니다.
분산 데이터 저장 환경에 저장하게 되어 누구든 임의로 수정할 수 없고 누구나 변경의 결과를 열람 할 수 있습니다.
BlockChain 4대 요소
- 트랜잭션(Transaction) : 브록체인의 기본적인 데이터 단위로 일련의 작업이나 이벤트를 나타냅니다. 트랜잭션은 디지털 서명을 포함하여 보안성이 강화되며 이 서명은 해당 트랜잭션을 발생시킨 주체가 그 트랜잭션을 승인했음을 증명합니다.
- 분산 원장(Distributed Ledger) : 네트워크에 모든 참가자가 동일한 데이터 사본을 공유합니다.
- 합의 알고리즘(Consensus Mechanism) : 네트워크 참가자 간에 데이터의 유효성과 블록 추가에 대한 합의가 이루어지고 네트워크의 신뢰성과 안전성을 보장하며 악의적인 공격이나 데이터 조작을 방지합니다. 분산 네트워크에서 중앙화된 기관이 없기 때문에 하나의 체인을 구성하는것이 매우 중요하기 때문에 분산화된 네트워크에서 모든 사용자들이 납득 할 수 있는 거래내역을 하나로 만들어주는 것이 합의 알고리즘이다.
- 암호화(Cryptography) : 블록체인의 데이터 보호와 무결성, 신원 보장을 하기위해 사용되는 기술로 트랜잭션은 디지털 서명을 통해 검증되며 데이터의 무결성은 암호화된 해시를 통해 보장됩니다.
Block의 구성
- Block은 특정 정보를 담아 놓은 객체를 말합니다.
- Block을 생성할 때 블록에 대한 이해를 쉽게 하기 위해 Header와 Body를 구분합니다.
Block Header 구성 요소
- 이전 블록의 해시 : 이전 블록의 해시값을 저장하여 블록들이 체인으로 연결됩니다.
- 트랜잭션의 해시 : 블록 내의 모든 트랜잭션들을 대표하는 하나의 해시값입니다.
- 버전 정보 : 버전 정보를 나타냅니다.
- 블록의 높이 : 몇번째 블록인지 알 수 있는 정보를 나타냅니다.
- 블록의 생성 시간 : Block의 생성 시간 정보를 나타냅니다.
- Merkle Root : Block에 body 내용을 해싱한 값을 나타냅니다.
- Difficulty : 합의 알고리즘에서 사용되는 난이도 값을 나타냅니다.
- Nonce : 채굴 과정 중에 변경되는 값으로 적절한 해시값을 찾기 위해 사용됩니다.
Block Body 구성 요소
- 트랜잭션 내용 : Block에 저장할 데이터를 객체 형태로 나타냅니다.
PoW(Proof of Work)
- 비트코인 최초의 합의 알고리즘이다.
- 새로운 블록을 블록체인에 추가하려면 난이도에 따른 값을 찾는 반복작업을 해야하는데 그 작업을 완료했다는 작업 증명 방식이다.
- 문제를 해결하는 것은 시간과 컴퓨팅 자원을 많이 소모하며 해결자는 보상을 받습니다.
- bitcoin이 PoW를 사용하는 가장 대표적인 블록체인입니다.
장점
- 초기 블록체인 시스템에 안정적이며 검증된 방식입니다.
- 네트워크를 안전하게 유지합니다.
단점
- 많은 저력을 소모하기 때문에 환경문제로 지적받기도 합니다.
- 채굴의 난이도가 높아질수록 중앙화될 가능성이 있습니다.
PoS(Proof of Stake)
- Block을 생성하고 트랜잭션을 검증하기 위해 참여자의 지분을 사용하는 합의 알고리즘입니다.
- 담보 같은 느낌으로 보상을 받기 위해 암호화 토큰을 스테이킹하고 스테이킹한 양에 비례하여 채굴 권한을 부여 받으며 확률은 스테이킹한 토큰량에 비례합니다.
- 전력 소비를 줄여 환경 친화적입니다.
장점
- 전력 소모가 적어 환경에 더 친화적입니다.
- 중앙화의 위험이 PoW 보다 적습니다.
단점
- 스테이킹한 양에 비례하여 채굴 권한을 부여 받기 때문에 많이가지고 스테이킹사람에게 유리합니다.
- 초기 도입된 블록체인에서는 Long-Range Attack, nothing at Stake Problem 같은 보안 문제가 있을 수 있습니다.
PoA(Proof of Athority)
- 권위 있는 기관에서 조건에 맞는 노드를 증명해서 이들간에 합의를 이루는 방식으로 신뢰도가 높은 특정 참가자나 기관들이 검증자로 선정됩니다.
- 검증자는 블록을 생성하거나 트랜잭션을 검증하는 역할을 담당하게 됩니다.
- 네트워크에 참여한 멤버들한테 네트워크 운영에 참여할 권리를 주고 전원이 해당 권한을 위임하여 투표를 진행할 수 있습니다.
장점
- 효율성 : PoA는 트랜잭션 처리 속도가 빠르며 높은 확장성을 가집니다.
- 에너지 효율 : PoW 같은 다른 합의 알고리즘에 비해 매우 적은 에너지를 소모하여 환경 친화적입니다.
- 신뢰성 : 검증자가 신원 및 신뢰도를 기반으로 선정되므로 검증자를 신뢰할 수 있는 참가자만 네트워크를 유지합니다.
단점
- 중앙화 경향 : 검증자가 네트워크를 제어하기 때문에 중앙화의 위험이 있습니다.
- 신뢰 문제 : 검증자의 선택이 부정확하거나 악의적인 검증자가 포함될 경우 네트워크의 안정성이 위협 받을 수 있습니다.
블록체인의 거래정보 변경이 불가능한 이유
- 해시 연결 : Block의 Merkle Root 계산에 이전 블록의 해시가 포함되어 있기 때문에 하나의 블록의 내용이 변경되면 변경된 block부터 다음 block들의 해시 변경이 이어지기 때문입니다.
- 분산 원장 : 하나의 거래를 변경하려면 네트워크 상의 대다수의 노드에 저장된 데이터를 모두 변경해야 하기 때문에 실질적으로 불가능합니다.
- 합의 알고리즘 : 새로운 블록이 추가될 때는 네트워크의 참가자들이 합의 알고리즘을 통해 그 블록의 유효성을 검증하고 누군가 과거의 거래를 변경하려고 하면 그 변경 사항은 네트워크의 다른 참가자들에 의해 검증되기 때문에 대부분의 경우 거절됩니다.
- 경제적 비용 : 특히 PoW 같은 합의 알고리즘에서 과거의 블록을 변경하려면 엄청난 계산 능력과 에너지가 필요하게 되는데 이를 위해 필요한 자원의 비용이 매우 많이 들기 때문에 공격자에게 이득이 되지 않습니다.
- 디지털 서명 : 트랜잭션은 디지털 서명에 의해 보호되며 거래를 변경하려면 해당 디지털 서명도 변경되여 하는데 개인 키 없이는 불가능합니다.
728x90
'BlockChain' 카테고리의 다른 글
| [BlockChain] Wallet 구조 알아보기 (1) | 2023.09.22 |
|---|---|
| [BlockChain] 비트코인 구조 알아보기(2) (0) | 2023.09.21 |
| [BlockChain] 비트코인 구조 알아보기(1) (1) | 2023.09.05 |