TIL10 Blockchain

shnae·2023년 11월 1일
1
post-thumbnail

이진트리

  • 노드는 값을 지닐 수 있고 자체로 존재할 수 있음

  • 자식이 무조건 2명인 트리

  • 모든 단계에서 항상 짝수가 나와야한다

    예) 가장 가까운 2^n 을 찾아야한다
    자식 노드가 5개인 경우 몇 개의 노드가 필요한가? 8개

  • 홀수인 경우 자기 자신을 복제하여, 자기 자신이 루트노드가 된다

2가지 복제 방법

  • 자식도 복제하는 방법
  • 자식 없이 복제하는 방법

머클루트 실습

💡 2 가지 방법에 따른 프로세스도 달라진다

Little Endian

  1. ADAEF4993DAB0B128B4322DAEEE02293C9D09581DDC1687DECD7DFBDC7BE2364

  2. 0564F397FA0E88060E97E60220E59F2969E0B181B474DCBD66C48D3A12995ECC

  3. 0A4021E921932060422C70F63B0FE3134C12F529BF0D9677A965779E193E4DBA

2개씩 붙여준다
0 + 1: ADAEF4993DAB0B128B4322DAEEE02293C9D09581DDC1687DECD7DFBDC7BE23640564F397FA0E88060E97E60220E59F2969E0B181B474DCBD66C48D3A12995ECC
1 + 2: 0A4021E921932060422C70F63B0FE3134C12F529BF0D9677A965779E193E4DBA0A4021E921932060422C70F63B0FE3134C12F529BF0D9677A965779E193E4DBA

SHA Hash x2
0 + 1: 305cf0995d347c5fd30471d372119321dc7017ef9722e82cbd4c372f9d865f26
2 + 2: 9ae87aa826516e24cc5d255f69af483c80e28f9be25f06b7fae7265216f8bf74

두 스트링을 합친걸 또 SHA Hash x2
0 + 1 + 2 + 2: 7577367633b52c5aa129c068645b1aa8be0cd3c7f296cf57189134004fdbceab

Big -> Little
ABCEDB4F0034911857CF96F2C7D30CBEA81A5B6468C029A15A2CB53376367775

노드를 복제하는 경우에는, 두 스트링 합친 걸 Hash 함수를 다시 두번 돌린 다음 Big->Little Endian으로 바꿔준다


내 개인키로 풀고, 상대방(A) 공개키로 잠근다
A의 개인키로 풀고, B의 공개키로 잠근다
B의 개인키로 풀고, C의 공개키로 잠근다
돈을 쓸 때는 개인키를 사용한 디지털 서명을 사용한다
돈을 받을 때는 공개키를 이용한 월렛 주소를 사용한다

UTXO 방식의 거래

  • Unspent Transaction Output
  • 입력값 사용되지 않는 출력값으로부터 온다
  • UTXO 사용되지 않은 출력값'
  • UTXO가 거래하려는 값보다 크거나 같아야 거래가 성립한다
  • Transaction Fee 입력값과 출력값의 차이. 채굴자에게 간다.

거래 수수료

스크립트 구성 (잠금 + 해제)

  • 저어엉말 어려울 예정 🫠
  • Lock 잠금
  • Unlock 잠금해제
  • UTXO는 풀리고 잠기고 풀리고 잠기고의 연속이다

Unlocking Script

  • 나의 공개키가 상대방이 만든 공개키가 일치하는건지 확인하는 스크립트

0개의 댓글