클레이튼(Klaytn) 스마트계약과 탈중앙앱 시리즈#1

Jeongmin Yeo (Ethan)·2020년 11월 7일
0

클레이튼

목록 보기
1/2
post-thumbnail

안녕하세요 Skkrypto 5기 여정민입니다. 평소에 Klaytn에 관심이 많았는데 한양대학교 일반대학원(석사과정) 블록체인 융합학과에서 한학기 동안 진행한 Klaytn 수업이 있더라구요. 그래서 이 수업에 대한 내용을 여러분에게 공유하고자 글을 썼습니다! 이 글을 통해서 카카오 블록체인 자회사 그라운드엑스(Ground X)가 개발한 클레이튼(Klaytn), 'Blockchain Application' 개발, 블록체인 SDK 등의 사용법을 학습하실 수 있습니다.


SECTION 1. 블록체인의 기본

1-1 블록체인이란?

간단히 얘기하면 정보를 블록 단위로 저장하는 저장기술을 말합니다. 그 블록들이 연결되어 있고 이것이 체인형태로 연결되어 있어서 블록체인이라고 합니다 자료구조인 Linked-List와 유사하다고 생각하시면 됩니다 Linked-List의경우 자기 앞에 있는 노드를 기억하는 것처럼 블록체인도 같은 방식으로 구현되어 있지만 기억하는 방법은 해시함수를 통해 기억합니다.


1-2 해시함수란?

해시함수는 데이터의 길이가 어떠하든 간에 고정된 길이의 데이터로 변환해주는 함수를 말합니다. 해시함수의 특징을 살펴보면 하나의 데이터에서 오직 단 하나의 해시만 도출됩니다.

임의의 데이터 X와 Y가 있을떄

A. IF X == Y THEN Hash Function(X) == Hash Function(Y)

X와 Y가 같다면 해시 값이 같아야 합니다

B. IF X! = Y THEN Hash Function(X)! = Hash Function(Y)

X와 Y가 같지 않다면 해시 값은 다릅니다

C. IF Hash Function(X) == Hash Function(Y) THEN X == Y

해시 값이 같다면 X와 Y가 같습니다

해시함수의 특징을 좀 더 살펴보면 같은 해시 함수(SHA-256)으로 조금만 다른 데이터를 해시할 경우 결과값이 크게 다른 것을 확인할 수 있습니다

A. 문자열 ‘hello!’를 SHA-256으로 해시한 결과는 다음과 같다.

CE06092FB948D9FFAC7D1A376E404B26B7575BCC11EE05A4615FEF4FEC3A308B

B. 문자열 ‘hello?’를 SHA-256으로 해시한 결과는 다음과 같다.

B45CF64669F2F8DA6C6CC2DB0329EC1A37D067B9AB7640C029CFD44EB4BF928A

그럼 이제 이 해시 함수를 통해서 블록과 블록을 어떻게 연결할까요? 해시를 사용해 데이터를 포인팅 했다고 해서 해시 포인터를 사용합니다 좀 더 자세히 얘기하면 뒤의 블록은 앞의 블록의 해시를 기억합니다 블록에는 많은 데이터가 들어있고 이 데이터가 조금만 바뀌어도 해시 값은 달라집니다 그러므로 어떤 블록을 기억하는지 결정적으로 알 수 있습니다 그리고 블록마다 Sequence가 있기 때문에 우연히 동일한 블록이 존재한다고 해도 블록 포인터가 잘 못 가리키는 일은 없습니다.


1 – 3 블록은 어떻게 구성되어 있을까요?
블록은 Header와 Body로 구성되어 있습니다 Body가 정보의 묶음이라면 Header는 이 Body를 설명하는 역할을 합니다 그리고 이 Header에 앞의 블록을 기억하는 해시가 저장되어 있습니다

1 – 4 블록의 높이
실제로 불록체인을 표현할 때 높이가 있는 이런 모양으로 표현합니다. 블록체인에서 블록은 블록 생성시간이라는 주기를 가지고 블록을 만듭니다 그리고 이런 최근의 블록이 위로 오도록 정렬되며 블록이 생성될 수록 높이가 늘어납니다 이 쌓아진 순서가 블록의 높이라 부르며 첫번쨰 블록을 편의상 블록의 높이를 0이라고 합니다

profile
좋은 습관을 가지고 싶은 평범한 개발자입니다.

1개의 댓글

comment-user-thumbnail
2021년 9월 13일

여정민 개발자님 안녕하세요,
헤드헌팅사 유니코써치의 김만규 컨설턴트입니다.

블록체인 관련 Job Position JD에서 모르는 사항을 공부 중
개발자님의 블로그에서 좋은 자료를 발견,
덕분에 공부하는데 부담을 조금이나마 덜 수 있었습니다.

감사드리며, 앞으로도 좋은 글 기대하겠습니다.

또한 혹시 이직을 준비하고 계시다면 제가 도움 받았듯,
개발자님의 이직과정이 즐거운 경험이 될 수 있도록 최선을 다해 지원하겠습니다.

감사합니다.

Tel) 010 4913 7163
Email) leo@unicosearch.com
Linkedin) https://www.linkedin.com/in/no1recruiting/

답글 달기