본문 바로가기

연재내용/이더러움-솔리디티

[이더러움/솔리디티] 03 - 트랜잭션이란 무엇인가


[이더러움/솔리디티] 03 - 트랜잭션이란 무엇인가

이전에 우리가 이더러움을 받았던 내용을 생각해봅시다.

나의 이더러움 주소를 입력한 후 submit 버튼을 누른 후 Transaction Id가 생성되었습니다.

트랜잭션 아이디가 생성된 후 내 이더러움 주소를보면 이더러움이 들어와있죠.

이때 web3가 무엇인지에 대해 알아야합니다. web3란 이더러움을 호환하여 사용하기 위한
자바스크립트 라이브러리로 Generic JSON RPC 스펙을 따릅니다. nodejs상에서도 돌릴 수 있으며 이더러움의 송금 수신 지갑생성등을 도와주는 라이브러리입니다.

트랜잭션을 알기위한 용어

용어 설명
nonce 0에서 시작하여 해쉬값을 찾는 수
to 받는 주소
value 보내는 이더러움의 양
gas price 송금을 위해 지불할 이더러움의 양(=가스)
gaslimit(startgas) 허용할 최대 이더러움의 양(=가스)
v 암호화 데이터 영역
r 암호화 데이터 영역
s 암호화 데이터 영역

다시 우리가 이더러움을 요청했을때로 돌아가봅시다. 저걸 구현한다고 했을때

  • submit 버튼을 누릅니다.
  • 내가 입력한 Address값이 백엔드 서버로 보내집니다.
  • 백엔드 서버에서 web3를 통해 트랜잭션을 생성합니다.
  • 백엔드 서버는 생성한 트랜잭션이 컨펌되기를 기다립니다.
  • 컨펌이 완료되면 성공메세지와 트랜잭션 id를 보여줍니다.

그렇다면 왜 트랜잭션을 기다리고 트랜잭션이란 무엇일까요?

블록체인을 기존의 기성 화폐를 대체하기 위해 출발했습니다. 우리가 일반적으로 은행을 통해
송금을하면 바로 송금이 이루어집니다. 즉 중앙은행에서 모든걸 처리하기때문에 중앙은행에만
데이터가 정상적으로 통신이 되어지면 됩니다. 하지만 블록체인은 다릅니다.

중앙에 서버가 있는것이 아닌 여러개의 노드들로 이루어져있습니다. 즉 중앙서버는 중앙서버

노드1개만 있는데 반해 블록체인은 여러개의 노드들이 있는것이죠. 그래서 내 트랜잭션이

여러 노드중 하나로 연결이 되면 전달받은 노드가 다른 노드에게 이 사실을 알려주어야합니다.

노드 역시 여러개의 트랜잭션으로 이루어져있습니다.

내가 트랜잭션을 요청했을때 다른사람들 역시 트랜잭션을 요청했을것입니다.

그 트랜젹슨을 묶어줍니다.

그리고 그걸 블록으로 묶어줍니다. 그리고 그 블록을 또 다른 블록들과도 묶어줍니다.

이런 트랜잭션을 묶어 블록으로 만들고 다시 노드로 만드는 과정을 우리가 흔히 듣는

"마이닝"에서 처리하게됩니다. 이렇게 묶는 연산과정을 마이닝 컴퓨터들이 처리하는것이죠

그럼 잠시 블록체인이란 무엇인가로 돌아가보겠습니다.