[Tezos] 테조스 기술 백서 리뷰 1장 (ICO 타임라인: 2017년 7월1일 ~ 7월 14일)

in #kr7 years ago (edited)

안녕하세요, @kjooss 입니다.

최근에 1000억이상 규모로 ICO투자를 많이받는 코인들 (EOS, Bancor) 이 늘어나고 있는데,

오늘 설명드릴 Tezos는 제가 글을 작성하는 현재시간 7월 4일 10:13분 기준으로 2000억이상 투자받은 상태입니다.

Screen Shot 2017-07-04 at 10.14.27 PM.png

아직 9일가까이 남았으니, ICO 투자전에 기술적인부분을 파악하고 투자하시는데 도움이 될까해서 글을 작성합니다.

Tezos 기술백서는 4개의 장으로 나뉘어져있고

1) 소개

2) 자가수리 원장

3) 암호화 데이터 보안

4) 결론

순서로 정리되어있습니다.

오늘은 4개의 장중 1,2번째 장인 소개, 자가수리 원장에 대한 기술적 리뷰를 작성하겠습니다.

1) 소개

Abstract에서는 2가지 특징을 설명했는데,

첫번째) Ocaml이라는 프로그램 언어를 사용

두번째) 스스로 진화하는 기능

2개입니다.

Ocaml

Ocaml이라는 프로그램 언어는 함수형프로그래밍 언어 (Functional Programming language)로 대표적인 예로는 파이썬이 있습니다.

제가 대학교에서 해당 언어를 통해서 직접 개발을 해본적이있는데, 해당언어의 특징은

1)바이트 레벨로 명령어를 번역한다
2)객체지향프로그래밍 언어들처럼 각각의 객체 타입을 설정하지 않아도 된다.
3)반복함수(recursive function) 형식이 많아, 짧은코드로 많은 기능을 수행할수 있다.

입니다.

코드가 간단하고 짧은만큼, 또한 바이트 레벨로 명령어를 번역하기때문에,
빠르다가 가장 큰 특징이 아닌가 합니다.

대부분의 함수가 몇줄의 코드만으로 많은 기능을 수행할수 있는것도 또다른 특징입니다.

Ocaml은 그렇게 대중적인 언어가 아니지만, 빠르고 메모리 리크 이슈가 적기때문에,

최근 Facebook에 여러 서비스를 Ocaml로 개발한 사례가 있으며,

Microsoft에서도 .NET의 개발을 Ocaml로 개발하고 있습니다.

스스로 진화하는 기능(원장)

대부분의 블록체인 코인들의 프로토콜은 총 3개로 이뤄지는데,

  1. 블록을 발견하고, 처리(transaction)을 전파하는 네트워크프로토콜
    -transaction이란 지갑간 코인이동 또는 코인을 소모하여 하나의 지갑으로부터 다른지갑으로 옮겨가는 기능을 뜻합니다.
  2. 처리(transaction)가 올바르게 수행됐는지 확인하는 처리 프로토콜
  3. 고유의 체인으로부터 합의(consensus)를 수행하는 합의 프로토콜
    -consensus란 블록체인에서는 다수의 miner가 각각 소유한 블록과 새롭게 생성된 블록, 그 블록의 포함된 내용을 서로 확인하여, 새롭게 생겨난 블록 또는 내가 현재 소유한 블록이 올바른지 체크하는 과정입니다.

아래는 합의 프로토콜에 대한 간략한 그림 예시입니다.
Screen Shot 2017-07-04 at 11.07.39 PM.png

다수의 분상원장을 소유한 사람(채굴자)들이 합의를 했을시에만, 새롭게 생긴 블록이 유효하다고 판단되고, 매 새로운 처리(transaction)이 일어날때마다 새롭게 블록이 추가되어 체인으로 연결됩니다.

채굴이란 새롭게 블록을 발견하는데 기여를 한 사람에게 (채굴기)에게 인센티브를 주는것으로 생각하시면 됩니다.
-(tezos는 채굴을 할수없는 코인입니다)
보통의 POW (proof of wallet) 블록체인들은 채굴을 통해 합의를하고 합의가 이뤄졌을때만 유효한 블록으로 인정되지만,

Tezos는 POS (proof of stake) 블록체인으로 채굴이 불가능합니다.

또다른 차별점으로는,
다른 POW 베이스 (비트코인, 이더리움 등)의 코인들과는 다르게, 전체 블록을 소유하지않고 하나의 체인만 소유하게 되고, 더 좋은 체인 있을때만 소유하는 체인을 교체하게됩니다.
더 좋은 체인이란 많은 합의(consensus)를 얻어 높은 점수를 얻은 블록이라고 생각하시면 됩니다.

그럼 체인을 하나만 소유하는데 어떻게 그 체인안에 있는 블록이 유효한지 체크할까요?
많은 합의를 얻어 점수가 높을수록 빠르게 블록을 만들고, 점수가 낮을수록 느리게 블록을 만듭니다.
유효하지 않은(가짜 transaction 혹은 잔고부족으로 처리할수 없는 transaction) 블록이 포함된 체인의 경우에는 점수가 계속 낮은 상태로 유지되고, 블록이 만들어지기 이전에 다른 유효한 블록이 포함되어진 높은 점수의 체인으로 변경되서 유효하지 않은 체인은 자연스럽게 프로그램상에서 무시될것이란 주장입니다

위에서 설명한 하나의 체인을 소유하는 알고리즘으로 더 빠르게 처리가 가능하고

문제가 되는 유효하지 않은 체인(점수 낮음)을 자연스럽게 다른 점수 높은 체인으로 교체되면서 속도와 보안을 둘다 가질수 있는게 다른 블록체인과의 차별점입니다.

위에 설명된 Tezos 프로토콜은 Tezos를 소유한 사람의 요청에 의하여 개정할수 있고, 투표를 통해 더 좋은 프로토콜로 진화 할수 있습니다.

새롭게 개정될 프로토콜은

  1. set_test_protocol 기능을 통해서 테스트 넷에서 교체되고
  2. promote_text_protocol 기능을 통해서 현재 테스트되는 프로토콜을 tezos의 새로운 프로토콜로 교체합니다.

프로토콜이 교체되는 과정은

  1. sha256으로 암호화된 해쉬로 저장되고, 따로 추가적인 시스템 콜 요청없이 바로 Tezos에 적용되게 됩니다.

================================================

암호화 데이터보안 부분과 결론은 다음 기술백서 2장에서 다루겠습니다.

Sort:  

함수형 프로그래밍 언어는 파이썬이 아니라 스칼라 아닐까요?

제 관심사가 eos에 있어 다른 ico가 눈에 안들어 왔습니다. 좋은 정보 감사합니다.

ㅠㅠㅠㅠㅠㅠ 묻힌게 너무 아쉬운 글이네요 풀봇하겠습니다

잘 봤습니다. 저도 좀 관심있게 보던 부분이었는데 잘 적어 주셨네요. 감사합니다. 팔로우 합니다. 맞팔 신청합니다.

Congratulations @kjooss! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received
You made your First Comment

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

제가 찾고있던 테조스 정보네요 너무 묻힌거 같아 아쉽습니다..

좋은정보 감사합니다

이제서야 봤습니다! 좋은 글 감사합니다.

좋은글 감사합니다.
테조스가 Ocaml이란 언어를 사용해서 얻는 이점을 조금이나마 알게된것 같습니다.