Blockchain/Bitcoin 7

[Bitcoin] 비트코인 UTXO

은행 계좌는 현재 잔액에 대한 정보를 가지고 있습니다. 반면에, 비트코인에서 '잔액'이라는 개념은 존재하지 않습니다. 단순히 지갑의 트랜잭션 결과물로 잔액의 개념을 대체합니다. 누군가 내 지갑에 9BTC를 전송했다고 가정해봅시다. 일반적인 은행 계좌라고 한다면 잔액은 9BTC가 될 것입니다. 하지만 비트코인은 UTXO를 이용하여 5BTC, 3BTC, 1BTC로 표현합니다. 쉬운 설명을 위해 1BTC = 100원이라고 가정하겠습니다. 은행 계좌는 900원의 디지털 화폐를 보유하고 있고, 비트코인은 500원, 300원(실제는없지만), 100원 동전을 가지고 있는 것과 같습니다. UTXO (Unspent Transaction Output) 말 그대로 사용하지 않은 트랜잭션 출력입니다. 여기서 출력값은 누구에게..

Blockchain/Bitcoin 2021.04.13

[Bitcoin] 비트코인 작업 증명 (PoW)

블록체인은 탈중앙화 시스템으로 트랜잭션의 신뢰를 보장할 제3자가 존재하지 않습니다. 때문에 누가 트랜잭션을 보장하고, 그것을 어떻게 신뢰할 수 있는지가 굉장히 중요합니다. 작업 증명(Proof of Work)은 1993년 Cynthia Dwork, Moni Naor가 발명한 서비스 요청자로부터 특정 작업을 요구하여 서비스 거부 등의 공격을 차단하기 위한 알고리즘입니다. 비트코인은 작업 증명을 통해 신뢰를 보장합니다. 여기서 '작업'은 해시 퍼즐을 푸는 것이고, 각 노드는 해시 퍼즐을 풀어낸 노드에게 트랜잭션을 블록에 작성할 권한을 주는 것에 대해 합의합니다. 여기서 해시 퍼즐을 풀어낸 노드를 '마이너'라고 부르며 퍼즐을 풀고 보상을 받는 과정을 '마이닝'이라고 합니다. 해시 퍼즐은 해시 값이 목푯값보다 ..

Blockchain/Bitcoin 2021.03.23

[Bitcoin] 비트코인 머클루트 (Merkel root)

머클트리 머클트리란 1979년 컴퓨터 과학자 Ralph Merkle가 발명한 해시 트리로, 이진 트리 구조이며 각 노드 값이 해시값 입니다. 그렇기 때문에 머클루트 값을 이용하여 빠른 데이터 검증이 가능합니다. from : ihpark92.tistory.com/57 머클루트 머클루트는 머클트리의 루트 노드 값을 리틀 엔디언(Little Endian) 방식으로 바꾼 것입니다. 만일 머클트리에서 하나의 노드라도 값이 변경되었다면, 같은 입력으로 머클트리를 다시 생성했을 때 머클루트의 값 또한 변경되기 때문에 트리를 순회하지 않아도 데이터가 변경되었음을 확인할 수 있습니다. 머클트리 생성 과정 최초 데이터를 SHA256형태의 해시값으로 변환합니다. 가장 가까운 노드 2개를 한쌍으로 묶어 합친 후 그 값을 해시..

Blockchain/Bitcoin 2021.03.23

[Bitcoin] 비트코인 거래 과정

본 포스팅은 이곳을 참조하여 작성했습니다. 1. 비트코인 거래 생성 Son이 Kane에게 1비트코인을 전달하는 거래가 발생했다고 가정해봅시다. 이것은 1비트코인을 전달한다는 의사표시일 뿐, 실제로 코인이 전달된 것은 아닙니다. 2. 비트코인 거래 서명 비트코인을 전달하려면 송신자(Son)와 수신자(Kane) 중 누가 거래를 생성했든 비트코인의 소유자(Son)가 해당 거래에 대한 디지털 서명을 해야 합니다. 서명 완료 후에 해당 거래 정보(트랜잭션)가 블록체인에 쓰여지고, 검증을 통과하면 해당 거래는 유효한 거래가 될 수 있습니다. 디지털 서명은 흔히 수표를 이서와 유사합니다. 'Son이 Kane에게 1비트코인을 전달' 이라는 내용의 수표에 이서한 것이라고 생각하면 됩니다. 3. 비트코인 거래 정보 전달 ..

Blockchain/Bitcoin 2021.03.19

[Bitcoin] 비트코인 블록체인 특징

비트코인 블록체인 특징에 대하여 소개합니다. 아래 특징들은 비트코인 블록체인뿐만 아니라, 다른 블록체인도 거의 유사합니다. 탈중앙성 (Decentralization) 탈중앙화(Decentralized)는 단 하나의 존재가 모든 프로세싱을 제어하지 않는 것입니다. 이전 포스팅 내용처럼 탈중앙화 시스템(네트워크)은 여러 서버가 일을 분산해 처리하는 것이 아니라 동일한 일을 중복해서 처리합니다. 블록체인에 참여하는 모든 노드들은 각자 저장 장치(외부 기억 장치)에 블록체인을 저장합니다. 각 노드는 작업을 반복한 후 그 결과를 일치시키는 합의 과정을 통해 일의 결과에 대한 신뢰도를 향상 시킬 수 있습니다. 즉, 비트코인의 거래에 대한 신뢰를 보장할 수 있습니다. 또한 탈중앙화 시스템은 각 노드가 중앙 서버 역할..

Blockchain/Bitcoin 2021.03.19

[Bitcoin] 비트코인 블록체인 블록 구조

블록헤더 - 이전 블록 해시 : 32바이트 크기의 이전 블록 헤더의 해시값(SHA-256를 두 번 적용한 값)으로 이것을 이용하여 블록을 묶음 - 머클루트 : 32바이트 크기의 거래가 발생할때마다 업데이트 되는 값으로, 트랜잭션의 내용을 입력으로 해시값을 구하고 이를 트리구조로 저장한 머클트리의 루트 값 - 난이도 비트 : 4바이트 크기의 해시 퍼즐의 난이도 조절 수치 - 타임스탬프 : 4바이트 크기의 블록이 생성되는 시간 - Nonce : 4바이트 크기의 다음 블록을 생성하기 위한 값으로, 이 값을 조정하여 다음 블록의 이전 블록 해시값(현재 블록 해시값)을 계산 각 블록들은 '이전 블록 해시' 값을 이용하여 서로 연결되는데, 이것을 체인이라고 합니다. 새로운 블록을 현재 블록체인에 연결하는 것은 마이..

Blockchain/Bitcoin 2021.03.18

[Bitcoin] 비트코인과 블록체인

비트코인 (Bitcoin) 비트코인 창시자 사토시 나카모토(Satoshi Nakamoto)는 2008년, "비트코인: P2P 전자 캐시 시스템" 논문에서 비트코인을 그 누구의 간섭도 받지 않는 결제 수단이라고 설명했습니다. 비트코인은 은행을 거치지 않고 개인과 개인이 직접 화폐를 거래할 수 있도록 탈중앙화 시스템을 도입한 온라인 가상 화폐입니다. 여기서 탈중앙화 시스템은 바로 '블록체인'입니다. 블록체인 (Blockchain) 블록체인은 비트코인을 서비스하기 위한 운영 체계입니다. 사토시 나카모토의 논문에는 '블록체인'이라는 고유명사가 단 한 번도 등장하지 않고, 블록과 체인이라는 일반 명사가 독립적으로 사용될 뿐입니다. 즉, 블록체인의 개념을 고안하지는 않았으나 가상 화폐를 중심으로 한 분산 원장 및 ..

Blockchain/Bitcoin 2021.03.17