-
[Blockchain 101] 블록체인의 기술적인 구조Intern/블록체인 2024. 11. 26. 16:53
• 블록체인은 기술적으로 어떤 특성을 가지고 있길래 위변조가 어려운가?
➀ 분산 원장 기술
모든 참여자가 동일한 거래 기록을 보유하여 데이터 위변조 시 전체 네트워크에서 이를 검증하고 거부할 수 있습니다.
➁ 암호화
블록의 데이터는 암호화되어 저장되고, 해시값이 블록의 고유 ID로 사용되며, 블록의 데이터가 변경되면 해시값도 바뀝니다.
➂ 체인 구조(Singly Linked List 구조)
각 블록은 이전 블록의 해시값을 포함하기 때문에, 하나의 블록을 변경하려면 연결된 모든 블록을 재작업해야 합니다.
➃ 합의 알고리즘
네트워크의 모든 노드가 거래를 검증하고 승인해야 하기 때문에, 단일 노드의 변조로 인해 시스템 전체를 변경하기 어렵습니다.
• Block이란?
블록은 데이터를 저장하는 기본 단위로, 블록체인의 구성 요소입니다. 각 블록은 아래와 같은 정보를 포함합니다.
➀ Header : 이전 블록의 해시값, 타임스탬프, 난이도 등 메타데이터
➁ Data : 거래 기록이나 스마트 계약 데이터
➂ Hash : 블록의 고유 식별자(블록 내 데이터와 헤더를 기반으로 생성된 암호화 값)
• Transaction이란?
트랜잭션은 블록체인 네트워크에서 발생하는 데이터 변경 작업을 의미하고, 주로 자산 이동이나 계약 실행을 나타냅니다.
ex) A가 B에게 비트코인을 전송하면 이 기록이 하나의 트랜잭션으로 저장됩니다.
트랜잭션은 다음 정보를 포함합니다.
➀ 발신자 주소 ➁ 수신자 주소 ➂ 전송 금액 ➃ 디지털 서명
• Hashing / Transaction Hash?
- Hashing : 입력 데이터(트랜잭션 등)를 고정된 길이의 암호화된 데이터로 변환하는 과정입니다.
- Transaction Hash : 트랜잭션의 고유 식별자로 트랜잭션 데이터(보낸사람, 받는 사람, 금액 등)를 해싱하여 생성됩니다.
- 특성
➀ 고유성 : 동일한 입력은 항상 동일한 해시값을 생성
➁ 무결성 : 데이터 변경 시 완전히 다른 해시값 생성
➂ 비가역성 : 해시값을 통해 원본 데이터를 추정할 수 없음
• Singly Linked List?
(체인구조)
Singly Linked List는 블록체인의 데이터 구조로 사용되는 방식입니다.
- 특징
➀ 각 블록은 이전 블록의 해시값을 포함합니다.
➁ 처음 블록부터 현재 블록까지 순차적으로 연결됩니다.
- 장점 : 데이터를 체인처럼 연결해서 위변조 방지
- 단점 : 데이터 검색 속도가 느림
• 전자서명?
전자서명은 거래의 진위성과 무결성을 보장하는 기술입니다.
(무결성 : 데이터의 정확성, 일관성, 유효성이 유지되는 것)
- 작동 원리
➀ 개인키(Private Key)로 데이터를 서명합니다.
➁ 공개키(Public Key)로 서명을 검증합니다.
- 특징
➀ 발신자의 신원 확인이 가능합니다.
➁ 데이터 변조 여부 확인이 가능합니다.
• Private Key / Public Key ?
- Private Key (개인키) : 데이터를 암호화하거나 디지털 서명을 생성하는 키로, 사용자만 알고 있어야 합니다.
- Public Key (공개키) : 개인키로 암호화된 데이터를 복호화하거나 디지털 서명을 검증하는 키입니다.
(복호화 : 암호화된 데이터를 정상적인 데이터로 변경하는 과정)
- 사용 방식
➀ 비대칭 암호화 방식에서 사용
➁ 개인키로 서명하면 공개키로 검증 가능
• 비대칭키 암호화 알고리즘?
비대칭키 암호화 알고리즘은 공개키와 개인키를 사용하는 암호화 방식입니다.
- 대표적인 알고리즘 : RSA, ECC
- 특징
➀ 공개키로 암호화한 데이터는 개인키로만 복호화 가능
➁ 개인키로 서명한 데이터는 공개키로 검증 가능
반응형'Intern > 블록체인' 카테고리의 다른 글
[Blockchain 101] Proof of Stake(PoS) (0) 2024.11.30 [Blockchain 101] Proof of Work(PoW) (0) 2024.11.28 [Blockchain 101] 블록체인의 장단점 (0) 2024.11.27 [Blockchain 101] 브릿지 (0) 2024.11.27 [Blockchain 101] Smart Contract (0) 2024.11.27