CODEDRAGON ㆍSecurity/Blockchain
상태 변환 시스템
· 기술적으로 봤을 때, 비트코인이나 이더리움은 일종의 상태 변환 시스템으로 볼 수 있습니다.
· 상태 변환 시스템은 현재 비트코인 소유권 현황으로 이루어진 하나의 상태(State)와 이 현재 상태의 트랜잭션을 받아서 그 결과로써 새로운 상태를 출력해주는 상태 변환 함수로 구성되어 있습니다.
은행 시스템에 비유
· 상태(State)는 모든 계좌의 잔고 표(balance sheet)이고 트랜잭션은 A에서 B로 $X를 송금하라는 요청이며, 상태 변환 함수에 의해 A의 계좌에서는 $X가 감소하고 B의 계좌에서는 $X가 증가합니다.
· 만약 처음에 A의 계좌에 있는 금액이 $X 이하였으면 상태 변환 함수가 에러로 리턴합니다.
상태 변환
상태 변환을 비트코인 장부에서는 Apply라는 상태함수로 정의할 수 있습니다.
은행 거래를 예시
Alice가 50달러, Bob이 50달러를 가지는 계좌 잔고 상태입니다.
[이더리움 Transaction 구조 예시 1]
Alice에게서 Bob으로 20달러를 전송하는 트랜잭션을 발생하면, Apply 상태 변환 함수는 결과로 Alice 30달러, Bob 70달러의 새로운 상태를 반환하게 됩니다.
APPLY({ Alice: $50, Bob: $50 },"send $20 from Alice to Bob") == { Alice: $30, Bob: $70 } |
[이더리움 Transaction 구조 예시 2]
만약 Alice 에서 Bob 으로 70달러를 전송하는 트랜잭션을 발행하면, 상태 변환 함수는 새로운 상태 대신 에러를 반환하게 됩니다.
APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR |
'Security > Blockchain' 카테고리의 다른 글
A Next-Generation Smart Contract and Decentralized Application Platform - White Paper, 차세대 스마트 컨트랙트와 탈중앙화된 어플리케이션 플랫폼 - White Paper(이더리움 화이트페이퍼;백서) (0) | 2020.02.26 |
---|---|
상태(state) (0) | 2020.02.20 |
함수 호출(Function Calls) - Internal Function Call vs External Function Call (0) | 2020.02.09 |
이더리움 통화량 (0) | 2020.02.02 |
비트코인 블록 탐색기(Blockchain Explorer) (0) | 2020.01.27 |