티스토리 뷰

긴 연휴가 끝나고 맞이한 주말이네요.
그리고 다음 주면 또 빨간 날이!! 모두들 화이팅합시다용

오늘 준비한 글은 블록체인 이더리움 작동 원리(이더리움을 구성하는 3가지)에 대한 글입니다.
이더리움의 기본적인 내용을 알고 싶으신 분들은 아래 링크로 이동하시면 됩니다.

이더리움 특징 https://blog.naver.com/dpesther/221363694116
이더리움 사용 https://blog.naver.com/dpesther/221365822544
참고한 원문은 이곳에 있습니다.

글이 길다고 느껴지시면 맨 아래 요약만 읽으셔도 됩니다 ^^;

블록체인 공부와 인사이트를 기록하는 개인적인 공간입니다. 
저도 공부하면서 정리하는 것이라 잘못된 내용이 있을 수 있습니다.
그런 경우 댓글 남겨주시면 참고하겠습니다.
그 외 
무례한 댓글들은 무통보 신고/삭제하겠습니다.

그럼 시작합니다.

 

이더리움은 멈추지 않는(Unstoppable) 탈중앙화 애플리케이션(DApp)을 만드는 플랫폼이다.
(Unstoppable 한국어로 그대로 번역해서 단어가 매끄럽지 못합니다. 혹시 적당한 단어가 있다면 댓글로 알려주세요. 반영하도록 하겠습니다)
Unstoppable의 이유는 애플리케이션의 작동을 멈추기 위해선 전 세계에 퍼져있는 수백 대의 컴퓨터의 이더리움 네트워크를 멈춰야 하기 때문이다. 즉, 사실상 불가능하다. 그래서 Unstoppable이라고 하는 것이다.

지금부터는 
이더리움의 작동 원리(내부 구조-3가지 요소) 대하여 최대한 쉬운 단어로 단순화하여 설명하려고 한다.
그전에 이더리움을 처음 듣는 사람이 있다면, 
이곳으로 가서 이더리움의 기본적인 내용들을 우선 읽고 오는 것을 추천한다 :)

 

 

 

간단하게 아래 그림으로 그린 것처럼, 이더리움은 여러 개의 레이어(Layer)로 이루어진 구조라고 이해하면 된다.

가장 아래에 깔려 있는 첫 번째 기본이 되는 ‘이더리움 블록체인(Ethereum Blockchain)’ 레이어다.
트랜잭션을 처리하고 지속적으로 공유 데이터베이스를 업데이트하는 대규모 네트워크이다.
두 번째는 소프트웨어 레이어인 ‘스마트 컨트랙트(Smart Contract)’이다.
스마트 컨트랙트는 Solidity라는 프로그래밍 언어를 사용하여 이더리움 블록체인 플랫폼에서 스마트 컨트랙트를 실행할 수 있게 한다. 
마지막 
세 번째 레이어는 ‘DApp(Decentralized Application)'이다.
이더리움 사용자들에게 다양한 서비스를 제공하는 애플리케이션으로 구성되어 있다.
특별히 주목해야 할 점은 이더리움 하드웨어와 소프트웨어 레이어를 활용하여 탈중앙화된 애플리케이션(DApp)을 만들고, 중앙화로 인해 생겨나는 오류들을 제거하며, 계속해서 운영될 수 있게(Unstoppable) 만든다는 것이다. 누구든 함부로 중단시킬 수 없다.

지금부터 각 레이어들을 자세히 알아보도록 하자.

 

1. 이더리움 하드웨어 레이어: 블록체인(Blockchain)

당신이 지금 보고 있는 이 글은 물론 웹에서 볼 수 있는 대부분의 내용은 데이터 센터에 있는 서버에 의해서 호스팅 된다.
인터넷 창을 켜고 검색을 하게 되면 컴퓨터(클라이언트)가 해당 서버에 연결하여 원하는 콘텐츠를 다운로드한다.
과거 클라이언트-서버 인프라는 많은 클라이언트에게 콘텐츠를 배포하는 중앙 집중형 저장소(서버)가 거의 없는 인터넷용으로 설계되었지만, 오늘날의 인터넷은 우리 모두가 콘텐츠 제작자이자 사용자이기 때문에 (Web 2.0) 많은 클라이언트들을 다른 클라이언트와 연결하는 것이 가능하게 되었다.
컴퓨터는 거대한 네트워크에 연결할 수 있고 콘텐츠를 생성한 컴퓨터에서 콘텐츠를 요청한 컴퓨터까지 서로 주고받을 수 있다. 콘텐츠를 서로 전달하는 이 대규모 컴퓨터 그룹을 바로 Peer-to-peer network(P2P)라고 부른다.

이더리움 하드웨어(Ethereum Hardware) 레이어는 트랜잭션을 계산하고 공유 원장에 순서대로 기록하는 P2P 네트워크이다. 
네트워크에서 공유되는 모든 정보 즉 발생하는 모든 트랜잭션을 기록할 수 있는 탈중앙화 된 데이터베이스를 구축한다.
네트워크에 있는 각각의 컴퓨터를 노드(Node)라고 부른다.
노드는 들어오는 트랜잭션의 유효성을 확인하고, 다음 블록으로 구성한 다음 전체 이더리움 네트워크에 있는 노드들에게 알린다(Broadcast). 
이곳에 가면 실시간으로 트랜잭션을 처리하는 이더리움 네트워크를 확인할 수 있다.

 

트랜잭션에는 가치(Value)와 정보(Information) 모두 포함된다.
그전의 이더리움 글에서도 가치와 정보 이야기를 계속했는데 정확히 어떤 의미인지 모르는 사람들도 있을 것이다.
나도 공부하며 많은 글들을 읽고 있는데 영어에서 표현하는 가치와, 정보.. 여간 헷갈리는 게 아니다.
우선 이 글에서 말하는 
‘가치’는 Ether, 이더리움 플랫폼의 디지털 통화이다.
그리고 
‘정보’는 데이터를 전달하고 작업을 트리거 할 수 있는 코드(Code)이다.
이 부분은 이더리움의 소프트웨어 레이어와 더 관련이 있으며 하드웨어 레이어는 인터넷을 통해 연결된 수백 대의 컴퓨터로 이루어진 것이다.

누구나 노트북에서 코드를 실행하고 네트워크 트랜잭션을 처리할 수 있다.
비트코인처럼 이더리움 네트워크도 인센티브 제도가 있다.
실제로 사람들은 (노드, node) ‘Ether’를 보상으로 받는다.
이것은 플랫폼에서 실행되는 애플리케이션을 사용하는데 쓸 수 있는 중요한 자산이다.

짧은 설명이지만 여러분이 이더리움 하드웨어 레이어를 전반적으로 이해하기에는 충분할 것이다.
만약 컴퓨터가 어떻게 작업하고 트랜잭션을 어떻게 처리하는지에 대해 자세히 알고 싶다면
이 글을 읽는 것을 추천한다.

 

2. 이더리움 소프트웨어 레이어: Solidity

이더리움 플랫폼의 유연성은 초기 비트코인과 블록체인 애호가들 사이에서 큰 인기를 끌었다.
사실, 비트코인은 가치를 거래(교환) 하는 통화(Currency)로 만 설계되어 있는 반면 이더리움은 비트코인 기술을 확장하고 더 광범위한 범용 블록체인을 구축하기 위해 개발되었다.
(일전에 설명한 … 이더리움은 비트코인의 하드 포크..)
이더리움 소프트웨어 레이어는 통화뿐만 아닌 집, 빌딩, 신원, 예술 작품의 저작권 등 
모든 형태의 가치 거래를 가능하게 설계되었다.

 

"이더리움(Ethereum), 비트코인(Bitcoin) 그 자체를 뛰어넘다."

 

그렇게 하기 위해 Solidity라는 완전히 새로운 프로그래밍 언어가 탄생하게 된다.
자바스크립트(JavaScript)와 매우 유사하다.
Solidity를 사용하여 개발자들은 기본 트랜잭션 로직을 ‘스마트 컨트랙트’라는 간단한 프로그램으로 작성할 수 있다.

예를 들어보자.
철수와 영희가 민수에게 5 ETH를 보내면, 자동으로 민수의 지갑에서 수연이에게 2 ETH가 보내진다.
스마트 컨트랙트는 이와 같은 논리를 실제로 실행할 수 있다.
(사실 이 예시만으로는 스마트 컨트랙트가 완전히 이해가 되지 않을 것입니다. 이 부분보다 더 길게 설명된 글은 여기를 참조 바랍니다.)

또한 이더리움은 누구든지 이더리움 사용자와 교환이 가능한 새로운 디지털 화폐(사실상 ‘토큰’이 더 정확하다)를 만들 수 있다.
카페에서 사용하는 포인트를 디지털화하는 것부터 특정 시장에서 새로운 경제를 창조하는 것(토큰 이코노미)까지 다양한 애플리케이션으로 구현이 가능하다.

아래 그림을 보면 Solidity 코드가 어떻게 생겼는지 볼 수 있다.
이 기본적인 스마트 컨트랙트는 새로운 토큰을 생성하고 다른 사용자에게도 전송할 수 있다.

 

모든 이더리움 코드는 github.com에서 확인 가능한 오픈 소스이다.
코드를 보고 작성할 줄 안다면 누구나 위에서 보여준 코드를 
다운로드하여 새로운 애플리케이션을 무료로 개발할 수 있다. 이더리움의 오픈 소스 특성은 누구나 새로운 코드 작성할 수 있고, 공유가 가능하다는 것이다.
Wikipedia를 생각하면 쉽다. 누구나 편집자가 되어 새로운 정보와 기사를 추가하거나 편집할 수 있다.
이처럼, 이더리움 플랫폼도 비슷하다.
커뮤니티가 계속해서 새로운 코드를 추가하고, 개발하고, 버그를 발견하여 수정하여 전체 이더리움 플랫폼이 발전되고 있음을 보여준다.


Solidity 프로그래밍 언어를 배우고 싶은 사람이 있다면 이더리움 공식 웹사이트 무료 교육 사이트를 확인하면 된다.

요약하자면, 이더리움 소프트웨어 레이어는 소프트웨어 개발자들이 가치(Ether)를 프로그래밍하여 전송이 가능하게 하며, 스마트 컨트랙트를 설계할 수 있게 한다.
모든 스마트 컨트랙트 코드는 공개된 소스여서 실제로 실행되는 프로그램인지 확인이 가능하다.

 

3. 이더리움 애플리케이션 레이어: DApps

위에서 설명한 첫 번째, 두 번째 레이어의 조합을 통해 이더리움은 타사의 애플리케이션을 실행할 수 있는
탈중앙화된 글로벌 슈퍼컴퓨터 역할을 할 수 있게 된다.
초기에는 많은 사람들이 이더리움의 ‘Token emission’ 기능을 사용하여 새로운 프로젝트 초기 자본 조달(ICO) 하는 데만 한정된 활동만 했었다.
하지만 이더리움 애플리케이션은 금융/경제적인 부분(단순히 토큰 발행이 아닌..)을 뛰어넘어 큰 확장이 가능하다고 본다.
현재 이더리움에 900개 이상의 애플리케이션이 있으며, 그중 약 30%가 활발하게 활동 중이고 나머지 70%는 아직 개발 중이다.

 

계속해서 이야기하지만, 이더리움은 모든 이들에게 오픈돼 있고 투명하다.
많은 개발자들이 모여 이더리움 플랫폼의 기능과 애플리케이션의 확장을 위해 더 강력하고 큰 커뮤니티를 구축하고 있다.

공공, 탈중앙형 애플리케이션을 구축하게 된다면 몇 가지 이점이 있다.

*투명성
누구나 코드를 읽을 수 있으며 애플리케이션이 코드대로(약속한 대로) 작동하는지 확인할 수 있다. 모든 트랜잭션도 공개되며 어디로부터 온 건지 추적이 가능하다.

*탄력성
일단 애플리케이션이 이더리움에서 한번 실행되면 중지하는 것은 불가능하다.

*발전되는 코드(code)
코드가 공개돼 있기 때문에 해커들이 코드를 읽고 공격할 수 있다.
그래서 최대한 빨리, 효과적으로 버그를 수정할 수 있어야 한다. 이러한 이유로 더 나은, 더 안정적인 코드가 나온다.

매일 새로운 블록체인 프로젝트들이 쏟아지고 있다.
특별히 여러 애플리케이션들이 현재 우리가 살고 있는 세상이 더 나아지기를 바라는 마음에서 시작하는 프로젝트들이 많다(예: 
WWF).
기대하는 것은 이더리움이 현재 인터넷이 가지고 있는 여러 문제들을 더 투명하고, 개인 정보 보호를 지향하며, 더 나은 미래로 전환하는데 큰 역할을 할 수 있기를 바란다.

*****요약하자면,
이더리움에는 총 3가지 큰 특징(레이어)이 있다.
첫 번째는 블록체인 그 자체의 기술적인 특징(탈중앙화, 투명성, 공개 등등) -> 
하드웨어
두 번째는 Solidity 개발 언어로 탄생한 스마트 컨트랙트 -> 
소프트웨어
세 번째는 첫 번째 + 두 번째 합친 특징 바로, 단순 화폐로써의 기능을 뛰어넘는 다양한 탈중앙화된 애플리케이션 개발 가능 -> 
애플리케이션

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함