TIL11 Blockchain Transaction

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

거래 스크립트 구성

기본 개념

  • queue, stack이 사용되는데 컴퓨터 공학에서 말하는 큐,스택과 살짝 다르다
  • 큐에 피연산자, 연산자 순서를 잘 세워놔야한다

Locking Script

  • <sig> 피연산자. 개인키로 만든 시그니처.
  • <pubK> 피연산자. 공개키

Unlocking Script

받는 사람한테는 Locking Script로 만든 출력값이 온다

  • DUP 연산자. 복사자, 복사한다. 피연산자는 1개만 필요하다.
  • HASH160 연산자
  • PubKHash 피연산자
  • EQUALVERIFY 연산자. 등호랑 같다. 같는지 확인함.
    • true continue
    • false break
  • CHECKSIG 연산자. 시그니처가 맞는지 확인하는 연산자
    • true continue
    • false break

Bitcoin 개발자 문서

💡 개인키는 정해진 공간을 절대 벗어나지 않는다 (ex. Bob's Computer)

합의알고리즘

  • 첫 파트는 블록을 생성해서 퍼뜨리는 과정 (동기화)
    • 모든 노드가 동기화가 되었을 때, 전파가 멈춘다
  • 두 번째 파트는, 누가 더 긴 체인을 갖고 있느냐를 확인하는 과정

전파되는 과정

채굴하고 동기화하고, 채굴하고 동기화하고 🔁

  • A, B 가 동시에 생성되었다면, 같은 해시값을 가졌을까? => NO
  • 블록 보상과 거래가 똑같더라도, 지갑주소가 다르기 때문에 머클루트가 다를 것이고 블록해시값도 다를 것이다

  • 서로 다른 블록이 비슷한 블록을 생성하여 다른 노드로 전파되었을 때, C는 어떤 블록을 가져올까? 핑크체크를 받을까, 청록체크를 받을까?

    • 일단 일시적으로 멈춘다. 길이가 같기 때문에.
    • 길이가 더 긴 체인의 블록을 가져오고, 더 짧은 길이를 가진 노드도 긴 노드 정보로 동기화된다.

    uncle block - 블록이 되었다가 탈락이 된 블록

0개의 댓글