본문 바로가기

블록체인 이론15

해시 함수와 비대칭 암호화 기법 해시 함수란 입력의 길이에 상관없이 항상 고정된 길이의 출력을 생성하는 함수를 의미한다. 해시 함수는 임의 길이의 데이터를 고정된 길이의 유일한 값(해시)으로 매핑하는 함수이다. 블록체인에서 사용되는 해시 함수는 다음과 같은 특징을 가진다: - 결정성(Deterministic): 동일한 입력에 대해 항상 동일한 출력(해시)을 생성한다. - 빠른 계산: 입력 데이터의 크기와 상관없이 해시 값을 빠르게 계산할 수 있다. - 충돌 방지: 두 개의 다른 입력이 동일한 출력을 가질 확률이 극히 낮다. - 원본 가리기: 출력값으로부터 입력값을 유추하기 매우 어렵다. - 데이터 무결성: 입력 데이터에 아주 작은 변화라도 출력 해시에는 큰 변화가 생긴다. sha256 과 해시 퍼즐 블록체인에서 사용하는 해시함수는 sh.. 2024. 2. 21.
트랜잭션 (transaction), UTXO, 서명 블록체인 네트워크에서 트랜잭션은 자산의 이동, 스마트 컨트랙트의 실행 등 네트워크 상에서 발생하는 모든 종류의 데이터 교환을 의미한다. 트랜잭션은 네트워크의 참여자들 사이에서 가치의 이전이나 특정 작업의 수행을 요청하는 데 사용된다. 각 트랜잭션은 네트워크에 의해 검증되고, 블록체인에 영구적으로 기록된다. 비트코인 트랜잭션 구조 버전 번호 : 채굴자와 노드가 트랜잭션 처리에 사용할 규칙을 지정하는 데 사용 입력 카운터 : 트랜잭션에 포함된 입력의 개수 입력 리스트 : 블록의 첫 트랜잭션은 코인베이스 트랜잭션(Coinbase Transaction)으로 입력 리스트에는 하나 이상의 트랜잭션 입력이 포함 출력 카운터 : 출력의 개수를 나타내는 양의 정수 출력 리스트 : 트랜잭션에 포함된 출력 락 시간 : 트랜.. 2024. 2. 21.
블록의 구조 블록의 정의 블록은 거래내역, 데이터 등을 저장하는 단위로 하나의 블럭에 여러개의 거래내역, 데이터가 저장된다. 구조 블록을 식별할 수 있는 정보가 담긴 해시 해시 : 블록 식별자. 헤더에 있는 6가지 정보를 합친 후 sha256 알고리즘으로 변환한 값 블록의 다양한 정보가 들어있는 헤더 프로토콜 버전 정보 바로 이전 블록의 해시 블록이 생성된 시간정보 계산의 난이도를 나타내는 bits 일정 난이도 계산 작업을 통해 나온 결과 값이며 작업 증명을 의미하는 Nonce 개별 거래정보의 거래 해시를 2진 트리로 구성할때 머클 트리 뿌리에 위치한 머클 루트 2024. 2. 21.
Nonce Nonce는 블록체인 기술에서 사용되는 중요한 개념 중 하나로, 특히 작업 증명(Proof of Work, PoW) 합의 알고리즘에서 핵심적인 역할을 한다. Nonce는 "Number Only Used Once"의 약어로, 한 번만 사용되는 숫자를 의미한다. 이 숫자는 블록의 유효성을 검증하는 데 사용되며, 블록체인 네트워크의 보안과 무결성을 유지하는 데 중요한 역할을 한다. Nonce의 역할과 작동 방식 블록체인에서 블록을 생성하기 위해, 블록 생성자(채굴자)는 특정 조건을 만족하는 Nonce 값을 찾아야 한다. 이 조건은 보통 블록의 해시값이 특정 난이도 목표보다 낮아야 한다는 것을 의미한다. 난이도 목표는 네트워크의 계산 난이도(bits)에 의해 결정된다. 채굴자는 블록 헤더 정보(프로토콜 버전, .. 2024. 2. 21.
이더리움 Nonce 검증 이더리움에서의 Nonce 검증 과정은 트랜잭션의 순서와 무결성을 보장하기 위해 중요하다. 이더리움의 각 계정은 자신만의 Nonce 값을 가지고 있으며, 이 값은 해당 계정에서 발생한 트랜잭션의 수를 나타낸다. 계정의 Nonce는 계정이 생성될 때 0으로 시작하며, 계정에서 새로운 트랜잭션이 실행될 때마다 1씩 증가한다. 이더리움에서 Nonce 검증 과정 1. 트랜잭션 제출: 사용자가 트랜잭션을 생성하고 네트워크에 제출한다. 이 트랜잭션에는 발신자의 계정 주소, 수신자의 계정 주소, 전송할 이더(ETH)의 양, 트랜잭션 수수료(가스), 그리고 발신자의 현재 Nonce 값이 포함된다. 2. Nonce 확인: 네트워크의 노드(특히, 트랜잭션을 처리하는 채굴자 또는 검증자)는 트랜잭션의 유효성을 검증하기 위해 .. 2024. 2. 21.
머클트리 비트코인에서의 머클트리와 이더리움에서의 머클트리의 구조는 다소 차이가 있다. 우선 머클 트리(Merkle Tree)는 블록체인 기술에서 데이터의 무결성을 검증하는 데 사용되는 데이터 구조이다. 이 구조는 특히 거래 데이터의 무결성을 효율적으로 검증하기 위해 설계되었다. 여기서 "무결성"이란 데이터가 변경되지 않았음을 의미한다. 비트코인 머클트리 머클 트리의 기본 원리 머클 트리는 기본적으로 이진 트리 구조를 가지며, 각 노드는 자식 노드의 해시값을 합친 후, 그 결과를 다시 해시한 값으로 구성된다. 이 과정은 트리의 최상단에 도달할 때까지 반복되며, 최상단에 위치한 노드를 "머클 루트"라고 한다. 거래 해시와 머클 트리 1. 거래 해시화: 블록 내의 각 거래는 해시 함수를 통해 고유한 해시값으로 변환된다.. 2024. 2. 21.