트랜잭션

트랜잭션

    Go 언어로 블록체인 메인넷 만들기 - 디지털 서명(Signature)

    Go 언어로 블록체인 메인넷 만들기 - 프로토타입 Go 언어로 블록체인 메인넷 만들기 - 작업증명(PoW) Go 언어로 블록체인 메인넷 만들기 - 영속성 Go 언어로 블록체인 메인넷 만들기 - CLI(Command Line Interface) Go 언어로 블록체인 메인넷 만들기 - 트랜잭션(Transaction) Go 언어로 블록체인 메인넷 만들기 - 거래#1 Go 언어로 블록체인 메인넷 만들기 - 키와 주소, ―지갑 Go 언어로 블록체인 메인넷 만들기 - 거래#2 Go 언어로 블록체인 메인넷 만들기 - 디지털 서명(Signature) 서명 이전 포스트인 Go 언어로 블록체인 메인넷 만들기 - 거래#2 에서 서명 구현을 미룬 바 있는데, 이제 서명을 구현해보도록 하자. 일단 서명이 무엇인지부터 고민해야 ..

    Go 언어로 블록체인 메인넷 만들기 - 거래#2

    type TXOutput 이제 거래에서 주소를 사용 할 것이며 이후에 서명도 만들고 거래를 검증도 해야하기 때문에 TXInput, TXOuput 의 구조를 바꿔줄 필요가 있다. TXOutput 에서는 이전에 .ScriptPubKey 를 사용했지만 비트코인에서 구현하는 스트립트 언어를 구현하여 표현할 것이 아니기 때문에 지불 대상자의 공개키 해시(Public Key Hash)를 가지게 될 것이다. 이러한 공개키 해시는 주소에서 Base58CheckDecode 를 하면 얻을 수 있다. type TXOutput struct { Value uint64 PubKeyHash []byte } func .NewTXOutput() *TXOutput 새로운 TXOutput 을 생성한다. 이전에는 만들지 않았지만 이번에 새..

    Go 언어로 블록체인 메인넷 만들기 - 트랜잭션(Transaction)

    이번에는 블록체인의 구성요소 중 또 하나의 요소인 트랜잭션을 만들어보자. 트랜잭션을 이해하기 제법 시간이 걸렸는데, 포스트를 적어가면서 하나씩 풀어나갈 생각이다. 현재 이 포스트는 트랜잭션의 초입부분이며 이후에 거래, 공개키와 개인키 등 다뤄야 할 내용이 또 있다. type Transaction 트랜잭션은 기본적으로 Block 에 포함된다. 우리가 Data 라는 필드를 블록에 포함시켰었는데 그것 대신에 거래들이 포함될 예정이다. 트랜잭션은 하나의 거래다. 현실세계에서 일어나는 거래를 어떻게 표현할 수 있을까? 비트코인에서 제시하는 거래의 아이디어는 제법 흥미롭다. 먼저 거래는 입력 값(Input Transaction)과 출력 값(Output Transaction)이 있다. 하나의 트랜잭션은 다수의 입력과..