4/8 수업 중

1. 거래 과정

Q )

A:송금자 B:수신자
1 ) B는 A에게 자신의 공개키(지갑주소)를 보낸다.

2 ) A는 [B에게(수신처 : B의 공개키 = B의 지갑 주소) xxBTC를 보내겠다는 내용]을 전자서명을 위해 자신의 개인키를 이용해 암호화해서 전체 비트코인 네트워크에 뿌린다. 비트코인 블럭에 포함된 트랜젝션이 확증이 되어 네트워크에 기록되는 것.

3 ) 비트코인 네트워크는 이게 진짜 A가 자기 지갑의 돈을 B에게 보내겠다는게 맞는지 A의 공개키를 통해 검증한다.

4 ) 3번이 성공하면 전체 비트코인 네트워크는 A가 맞다는 것을 확인하고 A의 지갑의 비트코인은 xxBTC만큼 줄어들고 B의 지갑의 비트코인은 xxBTC만큼 늘어난 것으로 체인에 넣어 확증한다.(트렌젝션 풀에 들어가고 수수료 많이 낼수록 빠르게 확증)

 

A ) 맞음.

 

2. 거래 형태

Q ) B가 A한테 지갑주소를 보내는 것은 데이터 전달이 직접적으로 일어나는 것이지만,

A의 비트코인이 B한테 전달되는 것은 데이터 전달이 직접적으로 이동되는 것이 아니라 비트코인 네트워크의 체인을 이용한다. 실제로 이동한게 아니라 해당 비트코인 블럭이 A가 B한테 줘서 B의 소유라는 것이 네트워크 상에 확인되어있고, 나중에 B가 C에게 보낼 때 위와 동일한 과정을 통해 해당 비트코인의 소유자만 추적해서 거래를 하는 것이다. 즉, 현실에서는 이게 이만큼의 돈이다 하고 동전이 실제로 이동하지만 비트코인의 거래는 전자서명을 통해 전체 네트워크 상에 있는 특정 비트코인의 주소의 소유자만 확인하고 소유권만 넘겨주는 방식으로 거래가 되는 것이다.

 

A ) 맞음.

 

기타

블록 : 비트코인 거래를 약 10분 단위로 모은 것으로 채굴이 일어나는 단위, JSON 형태로 기록.

블록체인 : 현재까지의 블록이 모두 이어진 것으로 현재까지 일어난 모든 비트코인 거래가 시간순으로 기록된 장부. 네트워크상의 모두에게 나누어지는 공개된 공공원장.

 

 

4/13 수업 중

전자서명에서

non-segwit blocks : 2017년 이전 1MB - 전자서명 분리 이전

segwit blocks :  이후 4MB 소프트웨어 버전업 - 전자서명 분리 이후

 

 

4/24 수업 중

1. Swap Temp 관련

Q ) 교수님 근데 방금 보면 close만 있고 삭제는 없는 것 같은데 스왑 한 다음에 파일 2개를 모두 남기는건가요?

 

A ) 맞음.
현재 우리가 실습하는 블록체인 코드에서 보면 writeTX 스왑 후에 delete False로 되어있음. -> 이렇게 되면 계속 어딘가 Temp에 파일이 쌓이게 됨. 이 위치는? 라이브러리가 정함.

왜 이렇게?
당시에 디버깅을 위해 False로 했었고 동시성 처리가 안 되어 False로 했었음. 지금은 고친 것 같은데 확인해봐야 함. -> 공부할 때는 남겨두면 디버깅도 가능하고 백업용으로 남겨둘 수도 있지만 현업에서는 이렇게 하면 안 되고 삭제를 해야한다.

단. ERP(돈이 거래되는 곳)에서는 일부러 남기기도 한다.

 

기타

def writeBlockchain에서

newline = ‘ ‘ -> 개행. 이게 없으면 옆으로 주르륵 붙음. 리눅스에서는 이거 빼도 . 운영체제 특성.

 

 

 

 

'개발자 > Blockchain' 카테고리의 다른 글

Blockchain (블록체인)의 구조  (0) 2020.03.30

+ Recent posts