이더리움 네트웍과 샤딩의 이해 > 이더리움 뉴스

체인톡 (ChainTalk.io) - 이더리움 커뮤니티

블록체인 소개자료4
암호화폐 비판에 대한 반론
dapp 개발 예제로 배우기 사이트 (한글)42

1  and  xy  이더리움  블록체인  비트코인  Dapp  ico 

이더리움 뉴스

이더리움 네트웍과 샤딩의 이해

페이지 정보

작성자 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물  (120.♡.120.♡) 작성일18-05-02 22:51 조회1,098회 댓글0건

본문

 

일반적인 네트워크 구조는 '클라이언트 -서버'구조입니다. 

 

 Ethereum Nodes와 Sharding이란 무엇입니까?

중앙에 서버가 있습니다. 그리고 서버에 연결하려는 사용자가 있습니다. 필요한 정보를 얻기 위해 탐색을 할수 있습니다. 

이것이 인터넷에서 작동하는 일반적인 방식입니다. 웹에서 필요한 정보를 얻기를 요청하면 결과가 다시 나타납니다. 

이것이 클라이언트-서버의 일반적인 모델입니다.  이 모델의 문제는 무엇일까요? 

 

모든것이 서버에 의존하기 때문에 항상 서버가 있어야합니다. 그리고 클리이언트가 많아져서 요청이 많아지면 병목현상이 

생깁니다. 주서버가 어떤 이유로 작동을 멈춘다면 연관된 구성원이 영향을 받게 됩니다. 네트워크가 중앙 집중화되어 있기 때문에 

서버에서 민감한 정보를 많이 갖고 있습니다. 누구든지 서버를 해킹하여 정보를 얻을수도 있을것입니다. 또한 검열 문제등도 있습니다. 특정 항목(영화, 노래,서적)등이 마음에 들지 않는다고 판단하고 네트웍에 전파하지 않기로 결정하면 어떻게 될까요?(토렌트가 발전한 이유처럼 )

 

따라서 이런 문제를 대응하기 위해 다른 종류의 아키텍처가 등장했습니다.  동등한 특권을 가진 참여자들간에 전체 작업부하를 분할하는 네트워크입니다. 중앙에 서버가 없습니다. 이것을 피어-투-피어 네트워크라고 합니다. 

 

Ethereum Nodes와 Sharding이란 무엇입니까?

 

사람들이 피어-투-피어 네트워크를 사용하는 이유?

피어-투-피어 네트워크의 주요 용도중 하나는 파일 공유입니다.  다운로드를 위해 클라이언트-서버 모델 보다는 느리지만 검열을 받지 않으며 중앙 권한이 없으므로 중앙 시스템의 검열을 받지 않으며 참여자가 늘어날수록 다운로드를 원활히 할수 있습니다. 

Ethereum Nodes와 Sharding이란 무엇입니까? 

 

암호화폐에서 네트워크와 노드의 사용

 

이더리움의 네트워크 구조에 대해서 알아보면 

이더리움은 피어-투-피어 네트워크로 구조화 되어 있습니다. 참여자는 노드들에에 특별한 특권을 부여받지 않습니다. 평등한 네트워크를 만드는 것입니다. 노드에는 특별한 권한이 부여되지 않지만 기능 및 참여가 다를수 있습니다. 중앙 서버가 없으며 계층도 없습니다.  

 

분산된 암호화폐는 간단한 이유 때문에 그 철학에 충실하도록 구조화 되어 있습니다. 이 생각은 모든 사람은 평등한것으로 생각되고 모두가 통화의 가치를 결정할수 있는 통화 시스템을 갖추는 것입니다. 이는 비트코인과 이더리움의 기본적인 철학입니다. 

중앙시스템이 없다면 사람들이 특정 거래가 발생한것을 어떻게 알수 있습니까?  예를 들어 A라는 사람이 B라는 사람에게 동전을 주었다고 했을때 이는 네트워크로 전파됩니다.(가까운 노드부터 Write ) 모두가 알게 될때까지 전파됩니다. (전체 블록체인에 동일정보완성) 

 

그렇다면 이더리움의 노드는 무엇입니까? 노드는 이더리움 네트워크에 참여하는 컴퓨터 입니다.  이는 세가지 방식으로 참여할수 있습니다. 

 

1. 라이트 클라이언트 사용

2. 풀 노드 운영 

3. 트랜젝션 확인하기 위한 채굴 

 

라이트 클라이언트(Light Client)란? 

앞에서 이야기한 Peer-to-Peer 시스템은 동료(Peer)라고 하는 노드간 네트워크 책임을 분산시키는 것입니다. 

네트워크에 참여하기를 원하지만 전체 블록체인을 다운로드 하지 않는 형태를 라이트 클라이언트라고 합니다.

풀노드(Full Node)란?

이더리움 모든 합의 규칙을 시행하는 이더리움 네트웍에 연결된 모든 컴퓨터와 연결된 노드를 이야기합니다. 풀노드는

사용자의 컴퓨터에 블록체인 정보 전체를 다운로드 합니다.  풀노드는 다음의 역할을 합니다. 

* 각 블록에 올바른 보상이 되었는지 

* 트랜젝션이 맞는지

* 트랜젝션이 맞는 형식인지 확인

* 다른 블록에서도 이중지불이 있는지 

 

Ethereum이 직면한 확장성의 문제가 무엇인가?

https://blockgeeks.com/guides/blockchain-scalability/

 

이더리움 네트워크(https://blockgeeks.com/guides/ethereum-metropolis/)는 모든 노드가 합에 도달하면 트랜젝션이 맞는것으로 간주됩니다.  이것은 잘 작동하였습니다. 

그러나 이더리움은 인기가 많아졌고 거래수도 계속 증가하였습니다. 

Ethereum Nodes와 Sharding이란 무엇입니까? 

네트워크 합의에 도달하기까지 계산해야하는 수가 기하 급수적으로 증가했습니다.  이더리움은 기업들의 강력한 지지와 ICO 인기또한 폭발적이였습니다. 그 결과 노드수 또한 증가했습니다.

 

 2017년 5월 이더리움은 25,000개의 노드가 있었고 4월 한달간 81% 증가한것입니다. 

Ethereum Nodes와 Sharding이란 무엇입니까?

 

사실 네트워크에 많은 노드가 있으면 트랜젝션 시간을 단축하는데 도움이 될까요? 합의는 선형 방식으로 발생합니다. 

예를들어 노드 A,B,C가 있다고 한다면 

합의가 발생하려면 A가 하고나서 다음 B가 , 이후에 다음 C가 수행합니다. 

하지만 D라는 새노드가 추가된다면 그 시간만큼 느려지게 됩니다.  결론은 이더리움이 대중화 되면서 트랜젝션 시간이 느려진것입니다. 

실제 스피드 테스트에서 PayPal 193/초 Visa 1667/초 ,  이더리움은 20/초 의 트랜젝션을 처리하는것으로 나타났습니다. 

 

이더리움은 단순한 암호화폐가 아니라 최종 목표는 차세대 인터넷과 비슷합니다.  사람들은 DApps을 만들어 블록체인위에 올릴것이기 때문에 확장성 문제를 해결해야합니다. 

 

이더리움 네트웍의 문제를 해결하기 위해 3가지가 제안되고 있습니다. 

1. 블록사이즈 증가 

2. 사용자에게 다른 동전사용(SideChain) 

3. 샤딩 

 

블록사이즈 늘리기 

다른 블록체인처럼 해결책은 블록의 크기를 증가시키면 됩니다. 이것은 블록크기를 늘리므로서 트랜젝션수의 늘림으로 확실히 성능을 향상 시킬수 있지만 다른 문제가 발생할수 있습니다. 

* 이것으로 결과론적으로 많은 노드들의 속도를 해결하지 못합니다. 사실 블록당 트랜젝션 수가 증가하면 노드당 검증수가 증가합니다. 

* 점점 많은 트랜젝션을 수용하기 위해 블록의 크기를 계속 증가시켜야합니다. 이는 일반 컴퓨터에는 전체 블록데이터를 보존하기 어렵기 때문에 시스템의 중앙 집중식으로의 필요성이 생깁니다. 이것은 블록체인 평등주의 정신에 위배됩니다. 

* 마지막으로 블록 크기 증가는 하드포크를 발생시킵니다. 잘못하면 두개의 동전으로 커뮤니티가 분열되는 결과가 나오기 때문입니다. (3세대 블록체인은 하드포크 없이 자동적인 메모리 블록의 증가로 이를 해결)

 

사용자에게 다른 동전사용 

다른 제안은 하나의 메인 블록체인대신 병렬 블록체인을 실행하는것이 방법입니다. 기본적으로 하나의 블록체인에 50개의 DApps을 실행하는 대신 두개의 블록체인을 사용하고 각각 25개의 DApps을 실행하면 됩니다. 이 제안은 두가지 문제가 있습니다. 

* 체인의 해쉬를 분할하는것은 좋은 방법이 아닙니다.  블록체인의 해쉬의 크기는 외부 해킹으로부터 안전함을 보장받을수 있기때문입니다. 

* 51%의 악의적인 점유공격에 작은 해쉬인 블록체인이 취약해질수 있습니다. 

 

샤딩이란?

샤딩은 데이터 베이스에서 가져온 용어입니다. 데이터베이스에서 샤딩이 의미하는지 확인할 필요가 있습니다. 

웹사이트에 빅데이터가 있다고 한다면 아주 큰 빅데이터는 데이터 검색 속도도 느려질뿐더러 확장성도 저하됩니다. 그래서 데이터를 수평 파티션을 수행하여 더 작은 테이블로 변환하여 서로 다른 데이터 베이스에 저장합니다. 

Ethereum Nodes와 Sharding이란 무엇입니까?

위에 보시다시피 더 작은 데이터들로 나누어 집니다. 

 

블록체인과 샤딩

Ethereum 합의(https://blockgeeks.com/guides/ethereum-metropolis/) 문제는 모든 노드가 모든 트랜젝션에 대한 모든 계산과 검증을 해야한다는 것입니다. 이것은 전체 프로세스를 느리게 만듭니다. 샤딩이 어떻게 도움이 될까요? 

전세계 사람들이 사용할수 있는 블록체인 생태계를 예를 든다면 다음과 같은 Tree형태로 표현할수 있습니다. 

Ethereum Nodes와 Sharding이란 무엇입니까?

 

블록체인에 샤딩이 활성화 된다면? 

* 모든 State(상태)는 Shards(파편화)로 나뉘어집니다. 

* 각 unique account(고유 계정)은 하나의 샤드에 존재합니다. 

* 각 계정은 동일한 샤드의 다른 계정과 거래 할수 있습니다. 

 

Devcon에서 비탈릭은 다음과 같이 shards(파편)를 설명했습니다. 

이더리움이 수천개의 섬으로 분할 되었다고 생각해보면 각 섬마다 고유한 일을 할수 있습니다. 각 섬에는 고유한 기능이 있으며

그섬에 속한 모든 사람이 서로 상호 작용 할수 있으며 모든 기능을 자유롭게 누릴수 있습니다. 그들은 다른 섬과 교류를 하고 싶다면 어떤 종류의 프로토콜을 사용해야 합니다. 

 

그래서 이것을 어떻게 블록체인에 적용할것이 문제입니다. 

비트코인과 이더리움의 블록은 다음과 같습니다. 

Ethereum Nodes와 Sharding이란 무엇입니까?

블록 헤더와 모든 트랜젝션이 포함된 구조입니다.  트렌젝션의 루트정보는 헤더에 있습니다. 

생각을 해보면 비트코인은 블록혹은 블록체인이 필요했을까요? 사토시는 새로운 트랜젝션 안에 이전 트랜젝션 정보의 해쉬를 포함함으로서 쉽게 체인을 만들었습니다. 이것을 "트랜젝션 체인"이라고 합니다. 

 

하나의 블록안에 이와 같은 트랜젝션을 나열한 이유는 하나의 Interaction 레벨을 만들고 전체 프로세스의 확장성을 만드는 것입니다.  이 내용이 샤딩을 적용하면 구조가 다음과 같이 변화됩니다. 

 

1단계 

첫 번째 레벨은 Transaction group(트랜젝션 그룹)입니다. 각 shard(샤드)마다 고유한 트랜젝션 그룹이 있습니다. 

Ethereum Nodes와 Sharding이란 무엇입니까?

트랜젝션 그룹은 Transaction group header와 Transaction group body로 나뉩니다. 

 

Transaction group Header 

헤데는 왼쪽과 오른쪽 부분으로 구분됩니다. 

 

왼쪽 부분 : 

Shard ID : 트랜젝션 그룹이 속한 샤드 ID

Pre State : Transaction 적용되기전 샤드 43의 Root Status 

Post State : Transaction 적용된후의 샤드 43의 Root Status

Receipt Root: 샤드 43의 모든 Transaction이 적용된 후 Receipt Root

 

오른쪽 부분 

오른쪽 부분은 Transaction의 유효성을 검사하기위한 정보이며 랜덤하게 선택됩니다. 

 

Transaction group body

샤드안에 모든 Transaction ID가 있습니다. 

 

두번째 레벨의 구조를 살펴보면

Ethereum Nodes와 Sharding이란 무엇입니까?

 

정상적인 블록이 있고 다른 두개의 Root가 존재합니다. 

* State Root (상태 루트)

* Txgroup Root (트랜젝션 그룹 루트) 

State Root는 전체 상태(State)를 갖고 있고 상태(State)는 하위 State의 Tree로 나뉘어 집니다.

Txgroup Root(트랜젝션 그룹 루트)는 해당 블록체인안에 모든 Transaction 그룹이 포함합니다. 

 

레벨2의 속성 

* 레벨2은 심플한 블록체인과 같습니다. 그 블록체인은 트랜젝션들이 아닌 수락된 트랜젝션 그룹의 블록체인과 같은 모양입니다. 

* 트랜젝션 그룹은 다음 경우에만 유효합니다.

a)  Pre-State Root는 global state의 샤드 Root와 일치해야합니다. 

b)  Transaction group 안의 서명은 모두 유효성이 검증되어야 합니다. 

만약 새로운 Transaction group 들어오게 되면 global state root는 해당 Shard ID의 Root가 됩니다. 

 

 

그러면 어떻게 교차 분할 통신이 이루어 집니까?

위에서 비탈릭이 섬으로 설명한것을 기억하십니까? 

 

같은 시간에 발생하는 병렬 Transaction의 성능을 높이는데 있습니다. 

샤드는 기본적으로 섬과 같습니다. 그러면 섬들은 어떻게 서로 통신합니까? 샤드의 목적은 동일 시간에 발생하는 병렬 Transaction의 성능을 높이는데 있습니다.  Ethereum이 random cross-shard communication을 허용하면 샤딩의 모든 목적은 무의미 합니다. 

 

Ethereum Nodes와 Sharding이란 무엇입니까?

 

여기서 볼수 있듯이 , Transaction은 Root에서 여러개의 Tree 를 통해 Transaction의 각 개별 수신을 쉽게 접근 할수 있습니다. 샤드의 모든 트랜젝션은 다음 두가지 작업을 수행합니다. 

* 자신이 속한 샤드에 속한 state 변경

* Receipt 생성

 

여기에 흥미로운 정보가 있습니다. Receipt는 분산 공유 메모리(distributed shared memory)에 저장되며 수정할수는 없지만 다른 샤드들에서 볼수 있습니다. 따라서 cross-shard communication(교차 샤드 통신)이 이 receipt들을 통해서 일어날수 있습니다. 

 

Ethereum Nodes와 Sharding이란 무엇입니까?

 

샤딩을 구현할 때의 어려움은? 

* 어느 노드가 어떤 샤드의 정보를 갖고 있는지 알수 있는 메커니즘이 필요합니다. 이는 병렬 처리 및 보안을 보장하기 위해 안전하고 효율적인 방법으로 수행되어야 합니다. 

* Vlad Zamfir는 샤딩을 쉽게 하기 위해 Proof of stake(POS)가 먼저 구현되어야 합니다. 

* 노드는 신뢰없는 시스템(누구나 참여가능한)에서 작동합니다. 즉 노드 A 는 노드 B를 신뢰하지 않으며 신뢰와 관계없이 합의를 해야합니다. 따라서 특정 transaction이 샤드로 분할되고 노드 A , 노드 B에 배포되면 노드 A는 작업이 완료 된것을 증명할수 있는 메커니즘 또한 필요합니다. 

 

결론 

Ethereum이 Metropolis(https://blockgeeks.com/guides/ethereum-metropolis/) Serenity를 진행하면서, 샤딩은 그 중요성이 더 커지고 있습니다. Ethereum이 새로운 인터넷이 될 계획이라면 scalability(확장성) 문제를 해결해야합니다. 성장을 위해 Sharding이 꼭 필요합니다. 

Ethereum의 흥분되는 시간이 다가오고 있습니다.  

---------------------------------------------------

출처 :https://blockgeeks.com/guides/what-are-ethereum-nodes-and-sharding/

번역자 개인생각 :  기존의 블록체인이 선형화된 순차쓰기를 했다면 

                            이더리움의 샤딩은 각샤드가 트랜젝션을 처리하고 

                            다시 샤드는 구조화된 트리구조로 다중 처리가 가능하다는데 있습니다.   선형 블록의 순차쓰기의 틀을 깬 구조화된 데이터 블록이 가능합니다. 

                           데이터의 병렬처리가 가능한 구조입니다. 

  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
추천 2 비추천 0

댓글목록

등록된 댓글이 없습니다.

이더리움 뉴스 목록

Total 82건 1 페이지
이더리움 뉴스 목록
번호 제목 글쓴이 날짜 조회 추천 비추천
공지 이더리움 뉴스 게시판 안내 댓글1 인기글 CHAINTALK 쪽지보내기 프로필 아이디로 검색 전체게시물 05-18 5378 3 0
81 비탈릭 “암호화폐 펀딩 무임승차 ‘자유 급진주의’로 풀자” 관련링크 WEBUS 쪽지보내기 홈페이지 프로필 아이디로 검색 전체게시물 09-17 37 0 0
80 '韓 이더리움 커뮤니티의 리더' 정우현 "디앱으로 이더리움의 미래 선점하자" 인기글관련링크 WEBUS 쪽지보내기 홈페이지 프로필 아이디로 검색 전체게시물 09-10 104 0 0
79 이더리움, Wirex 앱에 추가되어 Wirex 카드를 통해 온라인 거래 가능 관련링크 WEBUS 쪽지보내기 홈페이지 프로필 아이디로 검색 전체게시물 09-09 86 0 0
78 안가보면 땅을 치고 후회할 암호경제학 끝판왕 발표회 인기글 atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 08-24 373 3 0
77 서울이더리움 밋업 - Loom Network, PoA 사이드체인, 모바일 게임 개발기 인기글관련링크 atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 05-29 735 3 0
76 이더리움 기반 MMORPG 인기글 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 05-21 668 1 0
75 이더리움 기반 3D 우주전쟁 게임 인기글 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 05-21 609 0 0
74 워즈니악 이더리움이 애플처럼 될가능성을 언급 인기글 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 05-19 425 1 0
73 대만 은행 이더리움기반 Payments System 구축 인기글 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 05-16 390 0 0
72 아마존 웹 서비스(AWS) Consensys와 파트너쉽 체결 인기글 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 05-16 321 0 0
71 이더리움 시황 올려봐요~ 인기글첨부파일 코인박사 쪽지보내기 프로필 아이디로 검색 전체게시물 05-14 294 2 0
70 EEA 신규 맴버 발표 - 총 45개 맴버 인기글 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 05-05 462 1 0
69 컨세서스와 STC MOU 체결 댓글3 인기글 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 05-03 727 3 0
열람중 이더리움 네트웍과 샤딩의 이해 인기글 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 05-02 1099 2 0
67 비탈릭 플라즈마의 새로운 아이디어 발표 인기글관련링크 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 03-10 856 1 0
66 이더리움과 블록체인 관련 소식 그룹 인기글 atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 12-31 1631 2 0
65 16회 서울 이더리움 밋업 기념토큰 : <가즈아(Gazua)>, 1차 에어드롭 결과 발… 댓글2 인기글 철학자 쪽지보내기 프로필 아이디로 검색 전체게시물 12-20 1486 1 0
64 서울 이더리움 밋업 및 가즈아 토큰 발행 인기글 atomrigs 쪽지보내기 프로필 아이디로 검색 전체게시물 12-15 1775 0 0
63 모스크바 이더리움 전자투표 시스템 프로젝트 런칭 댓글1 인기글 구라김 쪽지보내기 프로필 아이디로 검색 전체게시물 12-09 1307 1 0
게시물 검색