상태 변환 시스템, 상태 변환

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