학회_공부해요/디지털포렌식

[암호화폐 수사] 03. 블록체인 이해하기

yenas0 2024. 4. 2. 20:50
반응형

블록체인

특정 유형의 소프트웨어나 장치가 아니라 네트워크의 여러 노드에 각기 분산돼 흩어져 있는 장부상에 컨트랙트와 트랜잭션을 기록하는 개념
불법 구매, 자금 세탁, 사기 행각이 블록체인 시스템에서 일어날 수 있음.
기술을 이해해야 범행해 대한 해석 및 예측이 가능


블록의 구조

블록체인은 블록 내부에 모여 있는 수많은 트랜잭션이 채굴이라는 과정을 통해 블록으로 만들어지고 이러한 블록잉 연결된 블록들의 체인
블록이 채굴되면 아무것도 추가 또는 변경이 금지(잠금) -> 블록에 담긴 각 트랜잭션은 ‘승인’
블록은 채굴로 잠금된 후 이전 블록과 수학적으로 연결되어 위에 쌓임
비트코인: 수학 퍼즐이 약 10분 마다 풀려 트랜잭션들이 블록에 채굴, 블록 하나의 크기는 1MB 미만.
이더리움: 약 15초마다 채굴. 트랜잭션은 트랜잭션 풀이나 채굴된 블록 안에 있을 수 있음

블록은 이전 블록과 함께 해시되고 이를 포함해 다른 방법으로도 해시됨. 더 많은 블록이 쌓일수록 하위 블록에 담긴 트랜잭션을 변경하는 것이 어려워짐.

전체 암호화폐 채굴량의 상당 부분을 지배하는 자는 51% 공격 개시 가능
일반적으로 채굴에 성공한 6개의 블록이 쌓이면 그 체인은 사실상 변경이 불가


블록 헤더

채굴된 모든 블록에는 상당히 많은 야의 정보가 포함된 헤더 존재.
헤더는 블록을 형성하는 모든 트랜잭션의 꼭대기에 차례대로 위치.
트랜잭션을 플랫폼마다 파일 크기 상이.
전체 블록에서 2번째이며 80바이트로 구성됨
블록헤더는 버전(4), 이전 블록 해시(32), 머클 루트(32), 타임 스탬프(4), 난이도 목표(4), 난수(4)로 구성된다.

이전 블록 해시

이전 블록 헤더의 해시를 의미하며 직전에 존재하는 블록에 대한 링크를 제공(블록의 헤더만 해시됨. 블록헤더만 항상 고유한 값)


머클 루트

머클 트리 파생 개념으로 블록에 포함된 모든 트랜잭션들의 해시
해시되는 과정
- 트랜잭션 ID들이 짝을 이룸
- 한 쌍의 ID값이 새로운 값 생성(중간 해시)
- 중간 해시를 이중으로 해시(SHA256)
- 또 다른 TXID랑 쌍 이뤄서 루트 남을 때까지 이중 해시 반복
머클 트리는 중간 해시를 검토하는 것만으로도 트랜잭션 순서 식별할 수 있게 함


타임스탬프

유닉스 시간으로 기록
채굴에 성공한 채굴자가 헤더의 해시를 시작한 순간이 타임스탬프


난이도 목표

난이도 목표와 난수는 함께 작동
수학 퍼즐을 풀기 위해 또는 작업 증명을 위해 채굴자가 찾아야 할 것이 무엇인지 정하고 블록을 마감하는 역할 수행
블록 헤더 해시의 최댓값의 인코딩 버전

Hex에서 원시 블록의 분해
내부 바이트의 순서는 문자열을 66바이트로 쪼개고 각각의 바이트는 빅엔디안으로, 전체적으로는 리틀엔디안으로 기록한다.


트랜잭션의 번호

트랜잭션의 번호는 블록 헤더의 바로 뒤에 있으며 내부 바이트 순서 포맷으로 저장
헤더 이후 FD표시 발견 가능 -> 바로 다음 2바이트가 트랜잭션의 수

블록 높이

제로 블록에 쌓인 블록의 수

포크

하드포크: 채굴자가 기존의 블록체인과 호환되지 않는 기본 소프트웨어 및 프로토콜 변경 사항에 대한 요청을 수락하는 것
소프트 포크: 이전 버전과 호환이 가능하도록 소프트웨어를 업그레이드 하는 것


웹 사이트와 소프트웨어에 표시된 데이터를 검사할 수 있으려면 미해석된 원시 정보의 확보가 필수적
포크를 갈림길에 비유해 설명
비트코인과 이더리움은 채굴시간과 헤더 등에서 차이를 보임.
채굴시간이 빨라질수록 블록이 동시에 생성될 확률이 늘어남


51% 공격: 과반수 이상이 찬성하면 나머지 세력이 반대하더라고 과반수의 의견을 따르게 됨
트랜잭션: 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산자들을 모아놓은 것
TXID(Transaction ID): 디지털 자산을 전송할 때 경로를 구분 짓는 식별 번호

반응형