이 가이드에서는 이더 리움 노드와 샤딩이 무엇인지 알아 봅니다. 더 많은 것을 배우고 싶다면 저희 블록 체인 과정을보세요.

작년에 암호 화폐에서 어떤 형태로든 활동했다면 비트 코인과 이더 리움을 모두 괴롭힌 하나의 문제가 있다는 것을 알게 될 것입니다 : 확장 성.

비트 코인은 Segwit을 활성화하고 비트 코인 캐시로 하드 포킹하여이 문제를 다소 해결했습니다. 그러나 이더 리움은이 문제를 다른 방식으로 해결하려고합니다. 성장의 다음 단계로 넘어갈 때 활성화하려는 많은 프로토콜 중 하나는 “샤딩”입니다. 이것이 의미하는 바를 이해하기 전에 네트워크와 노드에 대한 철저한 이해가 필요합니다..

What are ethereum Nodes And Sharding?” width=”1200″ height=”628″ /></p></p>
<p><h2>         <div class = “widget”></p>
<p><div class=

이더 리움 노드와 샤딩이란??


노드, 네트워크 및 매개 변수는 무엇입니까??

간단한 일상 활동을 사용하여 개념이 의미하는 바를 이해합시다..

(시작하기 전에 멋진 설명을 위해 3dBuzz에 감사드립니다.)

상자를 생각해보십시오.

이더 리움 노드와 샤딩은 무엇입니까?

이 상자는 입력을 받아 이에 대해 일종의 작업을 수행 한 다음 출력을 제공합니다. 이 상자는 “노드”입니다. 노드는 정확히 “상자”가 아니며 여기서는 가상의 경우를 사용합니다..

네트워크는 이 노드 서로 연결되어있는.

매개 변수는 노드가 바인딩되는 규칙입니다..

본질적으로 그것이 노드와 네트워크가 무엇인지입니다. 이제 노드와 네트워크를 통해 설명되는 간단한 일상 활동을 살펴 보겠습니다..

간단한 종이 분쇄기가 어떻게 작동하는지 봅시다.

이더 리움 노드와 샤딩은 무엇입니까?

그래서 여기서 일어난 일?

세 개의 노드를 사용하고 있습니다. 종이 분쇄기 및…. 음… 이 세 개의 노드가 “분쇄 네트워크”를 구성합니다. 이것으로 좀 더 재미있게 보자. 지금까지는 노드가 하나의 입력 만받는다고 가정했습니다. 그들이 그 이상을 취하면 어떨까요?

토스터의 예를 들어 보겠습니다. 토스터는 두 가지 입력을받습니다.

  • 전기

그래서 다음과 같이 보일 것입니다.

이더 리움 노드와 샤딩은 무엇입니까?

한 가지 기억하세요. 토스터는 입력 중 하나라도 누락되면 작동하지 않습니다..

이제 한 단계 더 나아가 야 할 때입니다.

매개 변수를 사용하는 복잡한 네트워크를 생각해 봅시다. 당신의 텔레비전 세트를 생각하십시오. TV 세트가 서비스 제공 업체에 연결되어 있습니다. PS4를 소유하고 있고 결정을 내리는 데 짜증이 나서 Xbox도 소유하고 있다고 가정합니다..

따라서 전체 “TV 네트워크”를 매핑하면 다음과 같이 표시됩니다.

이더 리움 노드와 샤딩은 무엇입니까?

어, 오 .. 여기 문제가 있어요.

TV를 통해서만 이러한 노드 중 하나에 액세스 할 수 있습니다. 지금은 왕좌의 게임을보고 언차 티드를 동시에 플레이 할 수 없습니다. 그렇죠? 그렇다면 TV가 한 번에 하나의 노드에만 액세스 할 수 있도록하려면 어떻게해야합니까? 여기에서 매개 변수를 소개합니다. 매개 변수는 노드를 고유하게 만드는 요소입니다. “채널 전환기”라는 매개 변수를 TV에 추가한다고 가정 해 보겠습니다. 그리고 이것은 채널 전환기가 작동하는 방식입니다.

  • “0”을 누르면 일반 TV (서비스 제공 업체)가 표시됩니다..
  • “1”을 누르면 PS4에 접속할 수 있습니다..
  • “2”를 누르면 Xbox에 액세스 할 수 있습니다..

이러한 매개 변수를 추가하여 노드 즉, TV를 고유하게 만들었습니다. 이제 TV를 더 독특하게 만들기 위해 어떤 다른 매개 변수를 제공 할 수 있는지 살펴 보겠습니다.

  • 크기 : 우리 텔레비전은 55 인치 화면입니다..
  • 색상 : 우리 TV는 은빛 회색입니다..
  • 브랜드 : 소니 TV가 있습니다.
  • 유형 : 우리는 플라스마 스크린이 있습니다.

이제 매개 변수 덕분에 더 잘 정의 된 TV가 생겼습니다. 이제 우리는 55 인치의 은회색 플라즈마 스크린이 있다는 것을 알고 있습니다. Sony TV.

그래서 지금까지 배운 모든 것에서 노드, 네트워크 및 매개 변수가 의미하는 바를 정의 해 보겠습니다..

  • 노드 : 입력을 받아 기능을 수행하고 출력을내는 개별 구성 요소.
  • 회로망: 서로 상호 연결된 노드 모음.
  • 매개 변수 : 노드를 정의하고 더 고유하게 만드는 규칙

통신의 맥락에서 노드와 네트워크

우리의 전체 통신 시스템은 네트워크와 노드를 기반으로 작동합니다. 인터넷, 전화, SMS, 이러한 모든 것들이 신중하게 배치 된 네트워크와 노드로 인해 작동합니다. 그렇다면 통신 네트워크를 어떻게 정의합니까? 브리태니커 백과 사전에 따르면,

“텔레콤 네트워크는 링크와 스위치의 전자 시스템이며 여러 사용자 간의 데이터 전송 및 교환을 가능하게하는 작동을 제어하는 ​​제어 장치입니다.”

통신 네트워크가 필요한 이유?

개인간에 일대일 연결이 가능하지만 비용이 많이 들고 번거 롭습니다. 또한 대부분의 통신 회선이 유휴 상태이고 활용도가 낮거나 사용되지 않기 때문에 매우 비효율적 인 프로세스입니다..

이 프로세스를보다 효율적으로 만들기 위해 우리는 통신 네트워크를 사용합니다. 그래서,이 맥락에서 노드의 정의는 무엇입니까?

이 컨텍스트에서 노드는 재배포 지점 또는 통신 끝점입니다..

그럼 이것이 어떻게 작동하는지 예를 보겠습니다. 간단한 GSM 네트워크를 고려하십시오. Alice가 Bob에게 SMS를 보내려고한다고 가정합니다. 전체 시스템은 어떻게 작동합니까? (설명을 위해 Roviell YouTube 채널에 외침).

  • 1 단계: Alice가 메시지를 쓰고 보내기를 누릅니다. 메시지는 BST로 알려진베이스 스테이션으로 이동합니다. BST는 네트워크에 연결합니다. 주변에 수많은 BST가 있습니다. 그들을 식당의 웨이터라고 생각하십시오. 손을 들고 (SMS 전송)주의를 끌 수 있습니다..
  • 2 단계: 베이스 스테이션 컨트롤러 (BSC)는 BST가 모두 정상이고 모든 것이 작동 상태인지 확인합니다. 레스토랑 비유를 사용하여 BSC는 “maître d’ hôtel”또는 각 테이블에 웨이터가 참석했는지 확인하는 수석 웨이터입니다. (Hell ’s Kitchen의 Jean Phillippe를 기억하십니까? 그래, 그 사람.)
  • 3 단계: BSC에서 메시지는 이제 MSC라고하는 모바일 스위칭 센터로 이동합니다. 데이터가 스테이션에서 네트워크로 또는 그 반대로 원활하게 이동하도록합니다. 우리 식당 비유에서 MSC는 주문을 받아 요리사에게 전달하고 요리를 보내기 전에 요리를 마무리하는 수석 요리사입니다..
  • 4 단계 : 이제 메시지는 SMSC로 알려진 Short Message Service Center로 전송됩니다. 이들은 비유의 요리사입니다. 여기에는 수신자에 대한 추가 정보를 얻을 때까지 메시지가 저장됩니다. SMSC는 HLR (Home Location Register) 및 VLR (Visitor Location Register)과 같은 소스로부터 도움을받습니다.이 두 가지는 네트워크에 대한 모든 정보를 포함하는 데이터베이스입니다. 기본적으로 보낸 사람과받는 사람을 추적하여 메시지를 보낼 수 있는지 확인합니다. 수신자의 전화가 꺼져 있는지 또는 서비스 지역을 벗어 났는지 등을 확인합니다. 어떤 이유로 메시지를 보낼 수없는 경우 최대 6 시간 동안 SMSC에 저장되어 삭제됩니다..
  • 5 단계: 이제 SMS가 잘되면 SMSC가 메시지를 수신자의 MSC에 전달합니다..
  • 6 단계 : SMS는 BSC로 이동합니다..
  • 7 단계 : BSC는 메시지를 BST로 전달합니다..
  • 8 단계: BST는 마지막으로 수신자에게 메시지를 보냅니다..

따라서 이것은 전체 SMS 시스템이 작동하는 방식에 대한 개요입니다. BSC, BST, MSC, SMSC, HLR 및 VLR은 모두 GSM 네트워크의 노드입니다. 전체가 다음과 같이 보입니다.

이더 리움 노드와 샤딩은 무엇입니까?

피어 투 피어 네트워크 란??

정상적인 네트워크 구조는 “클라이언트 서버”구조.

작동 원리?

이더 리움 노드와 샤딩은 무엇입니까?

중앙 집중식 서버가 있습니다. 그리고 서버에 연결하려는 모든 사람은 필요한 정보를 얻기 위해 쿼리를 보낼 수 있습니다. 이것은 인터넷이 작동하는 방식입니다. Google 무언가를 원할 때 Google 서버에 쿼리를 보내면 필요한 결과가 반환됩니다. 그래서 이것은 클라이언트-서버 시스템입니다. 자,이 모델의 문제점은 무엇입니까?

모든 것이 서버에 의존하기 때문에 시스템이 작동하려면 서버가 항상 작동하는 것이 중요합니다. 병목 현상입니다. 이제 주 서버가 작동을 멈추는 이유가 무엇이든 네트워크의 모든 사람이 영향을받는다고 가정합니다. 또한 보안 문제도 있습니다. 네트워크가 중앙 집중화되어 있기 때문에 서버 자체가 클라이언트와 관련된 많은 중요한 정보를 처리합니다. 이는 누구나 서버를 해킹하여 해당 정보를 얻을 수 있음을 의미합니다. 또한 검열 문제도 있습니다. 서버가 특정 항목 (영화, 노래, 책 등)이 동의 할 수 없다고 판단하고이를 네트워크에 전파하지 않기로 결정하면 어떻게됩니까??

따라서 이러한 모든 문제에 대응하기 위해 다른 종류의 네트워크 아키텍처가 등장했습니다. 이는 모두 동일한 권한을 가진 참여자 ( “피어”라고 함)간에 전체 워크로드를 분할하는 네트워크입니다. 더 이상 중앙 서버가 하나도 없으며 이제 여러 분산되고 분산 된 피어가 있습니다. 이것은 P2P 네트워크입니다..

이더 리움 노드와 샤딩은 무엇입니까?

이미지 제공 : InfoZones

사람들이 P2P 네트워크를 사용하는 이유?

P2P 네트워크의 주요 용도 중 하나는 토렌트라고도하는 파일 공유입니다. 다운로드를 위해 클라이언트-서버 모델을 사용하는 경우 일반적으로 매우 느리고 서버 상태에 전적으로 의존합니다. 또한 우리가 말했듯이 검열을 받기 쉽습니다..

그러나 피어 투 피어 시스템에서는 중앙 권한이 없으므로 네트워크의 피어 중 하나라도 레이스에서 벗어난 경우에도 여전히 더 많은 피어를 다운로드 할 수 있습니다. 또한 중앙 시스템의 이상 주의적 표준의 적용을받지 않으므로 검열을받지 않습니다.

두 가지를 비교한다면 :

네트워크 효과의 예

이미지 제공 : Quora

다음 섹션으로 넘어 가면서 피어-투-피어 시스템의 분산 된 특성이 중요해집니다. 얼마나 중요합니까? 글쎄요,이 P2P 네트워크와 결제 시스템을 결합하는 단순한 아이디어는 암호 화폐를 탄생시킴으로써 금융 산업에 완전히 혁명을 일으켰습니다..

암호 화폐에서 네트워크 및 노드 사용.

Ethereum의 네트워크 구조를 살펴 보겠습니다..

이더 리움은 피어-투-피어 네트워크로 구성되어있어 참여자 (일명 피어, 노드)에게 특별한 권한이 부여되지 않습니다. 아이디어는 평등 주의적 네트워크를 만드는 것입니다. 노드에는 특별한 권한이 부여되지 않지만 기능과 참여 정도는 다를 수 있습니다. 중앙 집중식 서버 / 엔터티도없고 계층도 없습니다. 플랫 토폴로지입니다..

모든 탈 중앙화 암호 화폐는 그들의 철학에 충실하기 위해 단순한 이유 때문에 그렇게 구성됩니다. 아이디어는 모든 사람이 동등하게 취급되고 변덕에 따라 통화의 가치를 결정할 수있는 관리기구가없는 통화 시스템을 갖는 것입니다. 이것은 비트 코인과 이더 리움 모두에 해당됩니다..

이제 중앙 시스템이 없으면 시스템의 모든 사람이 특정 트랜잭션이 발생했음을 어떻게 알 수 있습니까? 네트워크는 가십 프로토콜을 따릅니다. 가십이 어떻게 퍼지는 지 생각해보십시오. Alice가 Bob에게 3 ETH를 보냈다고 가정합니다. 그녀에게 가장 가까운 노드는 이것을 알게 될 것이고, 그리고 나서 그들과 가장 가까운 노드들에게 말할 것이고 그들은 그들의 이웃들에게 말할 것입니다. 그리고 이것은 모두가 알 때까지 계속 퍼질 것입니다. 노드는 기본적으로 코가 짜증나는 친척입니다..

그렇다면 이더 리움의 맥락에서 노드는 무엇입니까? 노드는 단순히 이더 리움 네트워크에 참여하는 컴퓨터입니다. 이 참여는 세 가지 방법으로 가능합니다.

  • Light Client로 알려진 블록 체인의 얕은 사본을 유지함으로써
  • 블록 체인의 전체 사본을 전체 노드라고합니다.
  • 거래를 확인함으로써 일명 채굴

라이트 클라이언트 란??

앞에서 언급했듯이 피어 투 피어 시스템의 개념은 “피어”라고하는 노드간에 네트워크 책임을 분산하는 것입니다. 그들 중 어느 누구도 선호하지 않습니다. 그러나 네트워크에 참여하고 싶지만 시스템에서 전체 블록 체인을 다운로드하고 유지할 시스템 리소스가없는 사람들은 어떻습니까? 그들은 “라이트 클라이언트”가되기로 선택할 수 있습니다. 라이트 클라이언트가 됨으로써 특정 이더 리움 상태에 대한 높은 수준의 보안 보장과 트랜잭션 실행을 확인할 수있는 권한을 얻습니다..

풀 노드 란??

이더 리움의 모든 합의 규칙을 완전히 시행하는 이더 리움 네트워크에 연결된 모든 컴퓨터를 풀 노드라고합니다. 전체 노드는 사용자의 데스크톱에 전체 블록 체인을 다운로드합니다. 풀 노드는 이더 리움 시스템의 중추를 형성하고 전체 네트워크를 정직하게 유지합니다. 전체 노드가 적용하는 몇 가지 합의 규칙은 다음과 같습니다.

  • 채굴 된 각 블록 (5 ETH)에 대해 올바른 블록 보상이 제공되는지 확인
  • 거래에 올바른 서명이 있습니다.
  • 트랜잭션 및 블록이 올바른 데이터 형식입니다.
  • 모든 블록에서 이중 지출이 발생하지 않습니다.

전체 노드는 기본적으로 노드와 트랜잭션을 확인하고 정보를 다른 노드에 전달합니다 (가십 프로토콜 사용)..

광부 대 노드

간단하게하기 위해 모든 마이너는 풀 노드이지만 모든 풀 노드가 마이너는 아닙니다. 채굴자는 블록 체인에 액세스하려면 전체 노드를 실행해야합니다. 전체 노드를 실행하는 사람은 블록을 채굴 할 필요가 없습니다..

이더 리움이 직면 한 확장 성 문제는 무엇입니까??

이더 리움 네트워크에서 합의는 어떻게 이루어 집니까? 네트워크의 모든 노드는 모든 계산을 수행하며 모두 합의에 도달하면 거래가 좋은 것으로 간주됩니다. 이제 이것은 제대로 작동했을 수도 있지만 처음에는 이더 리움이 매우 인기를 얻었으며 거래 수가 꾸준히 증가하고 있습니다. Etherscan의이 그래프를 확인하십시오.

이더 리움 노드와 샤딩이란 무엇입니까?

이미지 제공 : Etherscan

이제 이것은 좋은 일이지만 네트워크가 합의에 도달하기 전에 거쳐야하는 계산의 수가 그 결과 기하 급수적으로 증가했습니다. 이와 함께 또 다른 문제가 발생했습니다. 이더 리움은 특정 기업 헤비급의 지원과 ICO의 인기로 인해 널리 채택되었습니다. 그 결과 이더 리움 네트워크의 노드 수가 기하 급수적으로 증가했습니다. 실제로 노드가 가장 많은 암호 화폐이므로 가장 분산되어 있습니다..

실제로 2017 년 5 월 현재 이더 리움은 비트 코인의 7000 개에 비해 25,000 개의 노드를 가지고 있습니다 !! 3 배 이상입니다. 실제로 4 월부터 5 월까지 노드 수는 81 % 증가했습니다. 이는 거의 두 배입니다.!

이더 리움 노드와 샤딩이란 무엇입니까?

이미지 제공 : 신뢰 노드.

이제 네트워크에 더 많은 노드가 있으면 트랜잭션 시간을 단축하는 데 도움이 될 것이라고 생각할 수 있습니다. 음… 다시 생각 해봐.

합의는 선형 방식으로 발생합니다. 즉, 3 개의 노드 A, B 및 C가 있다고 가정합니다..

합의가 이루어 지려면 먼저 A가 계산을 수행하고 확인한 다음 B가 동일한 작업을 수행 한 다음 C.

그러나 시스템에“D”라는 새 노드가있는 경우 합의 시스템에 노드를 하나 더 추가하여 전체 기간을 늘립니다. 이더 리움이 대중화됨에 따라 거래 시간이 느려졌습니다..

실제로 속도 테스트에서 이더 리움은 PayPal의 193 년과 Visa의 1667 년에 비해 초당 20 건의 미약 한 트랜잭션을 관리하는 것으로 나타났습니다.!!

한 가지 기억하세요. 이더 리움은 자신을 단순한 화폐로 생각하지 않습니다. 궁극적 인 비전은 새로운 인터넷과 같은 것이되는 것입니다. 그들은 사람들이 Facebook 및 Youtube 규모의 DApp을 만들어 블록 체인 위에서 실행되기를 원합니다. 이와 같은 일이 발생하려면 확장 성 문제에 대해 조치를 취해야합니다..

이를 해결하기 위해 세 가지 제안이 제기되었습니다.

  • 블록 크기 늘리기
  • 사용자가 다른 알트 코인을 사용하도록합니다.
  • 샤딩

블록 크기 늘리기

따라서 한 가지 해결책은 블록 크기를 늘리는 것입니다. 이렇게하면 한 블록으로 들어가는 트랜잭션 수를 늘림으로써 성능이 확실히 향상되지만 결과적으로 발생할 수있는 몇 가지 문제가 있습니다.

  • 첫째, 이것은 여전히 ​​느린 속도로 합의에 도달하는 노드 문제를 해결하지 못할 것입니다. 실제로 블록 당 트랜잭션 수가 증가하면 노드 당 계산 및 검증 횟수도 증가합니다..
  • 점점 더 많은 트랜잭션을 수용하려면 블록 크기를 주기적으로 늘려야합니다. 일반 컴퓨터와 사용자는 이러한 부피가 큰 블록 체인을 다운로드하고 보존 할 수 없기 때문에 시스템을 중앙 집중화 할 수 있습니다. 이것은 블록 체인의 평등주의 정신에 위배됩니다.
  • 마지막으로 블록 크기 증가는 커뮤니티를 분할 할 수있는 하드 포크를 통해서만 발생합니다. 마지막으로 이더 리움에서 주요 하드 포크가 발생했을 때 전체 커뮤니티가 분할되고 두 개의 개별 통화가 발생했습니다. 사람들은 정말로 이런 일이 다시 일어나기를 원하지 않습니다..

사용자가 다른 알트 코인을 사용하도록합니다..

또 다른 제안은 하나의 메인 블록 체인 대신 병렬 블록 체인을 실행하는 것이 었습니다. 기본적으로 하나의 메인 블록 체인에서 50 개의 DApp을 실행하는 대신 2 개의 블록 체인을 가지고 각각 25 개의 DApp을 실행합니다. 이 제안에는 두 가지 문제가 있습니다.

  • 체인의 해시 레이트를 분할하는 것은 현명하지 않습니다. 결국 체인의 해시 레이트는 외부 해커로부터 얼마나 안전하고 시스템이 빠른지 결정합니다..
  • 악의적 인 채굴자가 더 작은 체인에서 51 % 다수를 차지하는 것이 더 쉬울 것입니다..

샤딩

마지막으로 샤딩이 이더 리움으로가는 길로 결정되었습니다. 샤딩에 대해 자세히 알아보기 전에 이것이 의미하는 바에 대해 간단히 이해해 보겠습니다. 3 개의 노드 A, B 및 C가 있고 데이터 T를 확인해야한다고 가정합니다. A, B 및 C가 전체 데이터 T를 개별적으로 확인하는 대신 데이터는 T1, T2 및 T3의 3 개 샤드로 나뉩니다. 그 후 A, B 및 C는 각각 하나의 샤드를 나란히 확인합니다. 보시다시피 절약하는 시간은 기하 급수적입니다..

어쨌든 심층 분석을 해보자!

샤딩이란??

샤딩은 데이터베이스 시스템에서 가져온 용어입니다. 데이터베이스와 관련하여 샤딩이 의미하는 바를 살펴 보겠습니다. 웹 사이트를위한 거대한 데이터베이스가 있다고 가정합니다. 대용량 데이터베이스를 사용하면 데이터 검색 속도가 느려질뿐만 아니라 확장 성도 저하됩니다. 그래서이 경우에 무엇을합니까?

데이터에 대해 수평 파티션을 수행하고이를 더 작은 테이블로 변환하고 다른 데이터베이스 서버에 저장하면 어떨까요??

이더 리움 노드와 샤딩이란 무엇입니까?

이미지 제공 : Dzone

그렇게?

자, 당신은 왜 수직 분할이 아닌 수평 분할인가? 이는 테이블이 디자인되는 방식 때문입니다.

이더 리움 노드와 샤딩이란?

봤어? 동일한 테이블 / 데이터베이스이지만 데이터가 적습니다. 이러한 작은 데이터베이스를 더 큰 데이터베이스의 샤드라고합니다. 각 샤드는 동일한 테이블 구조와 동일해야합니다..

블록 체인 맥락에서의 샤딩

지금까지 살펴본 것처럼 이더 리움 합의의 문제는 모든 노드가 모든 거래에 대해 모든 계산과 검증을 수행해야한다는 것입니다. 이로 인해 전체 프로세스가 매우 느리고 번거로워집니다. 그래서 샤딩이 어떻게 도움이 될까요??

모든 사람이 볼 수있는“Global State”라고 부르는 이더 리움 블록 체인의 상태를 고려하십시오. 이 전역 상태의 머클 루트를 고려해 보겠습니다. (Merkle 나무와 뿌리에 대해서는 HASHING에 대한 기사를 읽으십시오). 이 상태 루트는 샤드 루트로 나뉘어지고 각 공유 루트는 자체 상태를 갖게됩니다. 이러한 상태는 머클 트리 형태로 표시됩니다..

이것은 어떻게 생겼는지에 대한 매우 간단한 구조입니다..

이제 내부 메커니즘에 대해 알아 보겠습니다..

그래서 샤딩이 활성화 된 후 어떻게 되나요??

  • 상태는 샤드로 분할됩니다.
  • 각 고유 계정은 하나의 샤드에 있습니다.
  • 계정은 동일한 샤드의 다른 계정과 만 거래 할 수 있습니다.

Devcon에서 Vitalik Buterin은 다음과 같이 샤드를 설명했습니다.

이더 리움이 수천 개의 섬으로 분할되었다고 상상해보십시오. 각 섬은 자신의 일을 할 수 있습니다. 각 섬에는 고유 한 기능이 있으며 해당 섬에 속한 모든 사람, 즉 계정은 서로 상호 작용할 수 있으며 모든 기능에 자유롭게 빠져들 수 있습니다. 다른 섬과 접촉하려면 일종의 프로토콜을 사용해야합니다..

그래서 질문은 이것이 블록 체인을 어떻게 바꿀 것인가하는 것입니다.?

비트 코인 또는 이더 리움 (사전 샤딩)의 일반 블록은 어떻게 생겼습니까??

이더 리움 노드와 샤딩은 무엇입니까?

따라서 블록 헤더와 블록의 모든 트랜잭션을 포함하는 본문이 있습니다. 모든 트랜잭션의 Merkle 루트는 블록 헤더에 있습니다..

이제 이것에 대해 생각해보십시오. 비트 코인이 정말로 블록을 필요로 했나요? 정말 블록 체인이 필요 했나요? Satoshi는 새로운 트랜잭션에 이전 트랜잭션의 해시를 포함하여 간단히 트랜잭션 체인을 만들 수 있으며 말하자면 “트랜잭션 체인”을 만들 수 있습니다..

이러한 트랜잭션을 블록에 배치하는 이유는 한 수준의 상호 작용을 생성하고 전체 프로세스를 더 확장 가능하게 만들기 위해서입니다. 이더 리움이 제안하는 것은 그들이 이것을 두 단계의 상호 작용으로 변경한다는 것입니다..

첫 번째 수준

첫 번째 수준은 트랜잭션 그룹입니다. 각 샤드에는 자체 트랜잭션 그룹이 있습니다..

이더 리움 노드와 샤딩은 무엇입니까?

이미지 제공 : Hackernoon

트랜잭션 그룹은 트랜잭션 그룹 헤더와 트랜잭션 그룹 본문으로 나뉩니다..

거래 그룹 헤더

헤더는 별개의 왼쪽과 오른쪽 부분으로 나뉩니다..

왼쪽 부분 :

  • 샤드 ID: 트랜잭션 그룹이 속한 샤드의 ID.
  • 사전 상태 루트: 거래가 적용되기 전 샤드 43의 루트 상태.
  • 포스트 상태 루트 : 트랜잭션이 적용된 후 샤드 43의 루트 상태입니다..
  • 영수증 루트 : 샤드 43의 모든 트랜잭션이 적용된 후 영수증 루트.

오른쪽 부분 :

오른쪽 부분은 샤드 자체에서 트랜잭션을 확인해야하는 임의의 유효성 검사기로 가득 차 있습니다. 그들은 모두 무작위로 선택됩니다..

거래 그룹 본문

샤드 자체에 모든 트랜잭션 ID가 있습니다..

수준 1의 속성

  • 모든 트랜잭션은 자신이 속한 샤드의 ID를 지정합니다..
  • 특정 샤드에 속한 트랜잭션은 특정 샤드에 고유 한 두 계정간에 발생했음을 보여줍니다..
  • 트랜잭션 그룹에는 해당 샤드 ID에만 속하고 고유 한 트랜잭션이 있습니다..
  • 사전 및 사후 상태 루트를 지정합니다..

자, 최상위 레벨, 즉 두 번째 레벨을 보겠습니다..

두 번째 수준

crossshardcommunication

이미지 제공 : Hackernoon.

겁내지 마세요! 보기보다 이해하기 쉽습니다..

일반적인 블록 체인이 있지만 이제는 두 가지 기본 루트를 포함합니다.

  • 상태 루트
  • 트랜잭션 그룹 루트

상태 루트는 전체 상태를 나타내며 앞서 살펴본 것처럼 상태는 자체 하위 상태를 포함하는 샤드로 나뉩니다..

트랜잭션 그룹 루트에는 해당 특정 블록 내의 모든 트랜잭션 그룹이 포함됩니다..

수준 2의 속성

  • 레벨 2는 트랜잭션이 아닌 트랜잭션 그룹을 받아들이는 단순한 블록 체인과 같습니다..
  • 트랜잭션 그룹은 다음 경우에만 유효합니다 .a) 사전 상태 루트가 전역 상태의 샤드 루트와 일치합니다..

    b) 트랜잭션 그룹의 서명이 모두 검증되었습니다..

  • 트랜잭션 그룹이 들어 오면 전역 상태 루트가 해당 특정 샤드 ID의 사후 상태 루트가됩니다..

그렇다면 교차 샤드 통신은 어떻게 발생합니까??

이제 우리의 섬 비유를 기억하세요?

파편은 기본적으로 섬과 같습니다. 그렇다면이 섬들은 서로 어떻게 소통할까요? 샤드의 목적은 성능을 높이기 위해 동시에 많은 병렬 트랜잭션을 발생시키는 것입니다. ethereum이 임의의 교차 샤드 통신을 허용하면 샤딩의 전체 목적을 무효화합니다..

따라서 교차 샤드 통신을 위해 따라야 할 프로토콜?

ethereum은 교차 샤드 통신에 대한 수신 패러다임을 따르기로 선택했습니다. 이것 좀 봐:

이더 리움 노드와 샤딩은 무엇입니까?

이미지 제공 : hackernoon

여기에서 볼 수 있듯이 트랜잭션 그룹 Merkle 루트의 여러 Merkle 트리를 통해 트랜잭션의 각 개별 영수증에 쉽게 액세스 할 수 있습니다. 샤드의 모든 트랜잭션은 두 가지 작업을 수행합니다.

  • 속한 샤드의 상태 변경
  • 영수증 생성

여기 또 다른 흥미로운 정보가 있습니다. 영수증은 분산 공유 메모리에 저장되며 다른 샤드에서 볼 수 있지만 수정할 수는 없습니다. 따라서 교차 샤드 통신은 다음과 같은 영수증을 통해 발생할 수 있습니다.

crossshardcommunication

이미지 제공 : Hackernoon

샤딩 구현의 어려움은 무엇입니까??

  • 어떤 노드가 어떤 샤드를 구현하는지 알 수있는 메커니즘이 필요합니다. 이는 병렬화 및 보안을 보장하기 위해 안전하고 효율적인 방법으로 수행되어야합니다..
  • Vlad Zamfir에 따라 샤딩을 더 쉽게 만들기 위해 먼저 지분 증명을 구현해야합니다..
  • 노드는 신뢰할 수없는 시스템에서 작동합니다. 즉, 노드 A는 노드 B를 신뢰하지 않으며 해당 신뢰에 관계없이 둘 다 합의에 도달해야합니다. 따라서 하나의 특정 트랜잭션이 샤드로 분할되어 노드 A와 노드 B에 배포되면 노드 A는 샤드 부분에서 작업을 완료했다는 일종의 증명 메커니즘을 제시해야합니다..

이더 리움 노드와 샤딩이란? 결론

Ethereum이 확장되고 Metropolis와 Serenity로 안내됨에 따라 샤딩은 성장에 점점 더 중요해졌습니다. 이더 리움이 새로운 인터넷이 될 계획이라면 확장 성 문제를 해결해야합니다. 그들은 성장을 보장하기 위해 절대적으로 구현하고 네일 샤딩을해야합니다. 이더 리움은 흥미 진진한 시간을 앞두고 있습니다.!

AMAZONPOLLY-ONLYAUDIO-START-이 가이드에서는 이더 리움 노드 및 샤딩이 무엇인지 배웁니다. 더 많은 것을 배우고 싶다면 블록 체인 과정을 살펴보세요. 작년에 암호 화폐에서 어떤 형태로든 활동했다면 비트 코인과 이더 리움을 모두 괴롭힌 하나의 문제가 있다는 것을 알 것입니다 : 확장 성. 비트 코인은 Segwit을 활성화하고 비트 코인 캐시로 하드 포킹하여이 문제를 다소 해결했습니다. 그러나 이더 리움은이 문제를 다른 방식으로 해결하려고합니다. 성장의 다음 단계로 넘어갈 때 활성화하려는 많은 프로토콜 중 하나는 “샤딩”입니다. 그것이 의미하는 바를 이해하기 전에 네트워크와 노드에 대한 철저한 이해가 필요합니다..

블록 체인 개발자가되기위한 교육

오늘 무료 평가판 시작!

이더 리움 노드와 샤딩은 무엇입니까? 노드, 네트워크 및 매개 변수는 무엇입니까? 간단한 일상 활동을 사용하여 개념이 의미하는 바를 이해합시다. (시작하기 전에 3dBuzz에서 멋진 설명을들을 수 있습니다.) 상자를 생각해보십시오 :이 상자는 입력을 받아 그에 대해 일종의 작업을 수행 한 다음 출력을 제공합니다. 이 상자는 “노드”입니다. 노드는 정확히 “상자”가 아니라 여기서 가상의 경우를 사용한다는 점을 명심하십시오. 네트워크는 서로 상호 연결된 이러한 노드의 모음입니다. 매개 변수는 노드가 바인딩되는 규칙입니다. 본질적으로 그것이 노드와 네트워크가 무엇인지입니다. 이제 노드와 네트워크를 통해 설명 된 몇 가지 간단한 일상 활동을 살펴 보겠습니다. 간단한 종이 분쇄기가 어떻게 작동하는지 봅시다. 그래서 여기서 무슨 일이 일어 났습니까? 세 개의 노드를 사용하고 있습니다. 종이 분쇄기 및…. 음… 이 세 개의 노드가 “분쇄 네트워크”를 구성합니다. 이것으로 좀 더 재미있게 보자. 지금까지는 노드가 하나의 입력 만받는다고 가정했습니다. 그들이 그 이상을 취하면 어떨까요? 토스터의 예를 들어 보겠습니다. 토스터는 두 가지 입력을받습니다. 전기 빵 따라서 다음과 같은 모습입니다. 한 가지 기억하세요. 입력 중 하나라도 누락되면 토스터가 작동하지 않습니다. 이제 한 단계 더 나아가 야 할 때입니다. 매개 변수를 사용하는 복잡한 네트워크를 생각해 봅시다. 당신의 텔레비전 세트를 생각하십시오. TV 세트가 서비스 제공 업체에 연결되어 있습니다. PS4를 소유하고 있고 결정을 내리는 데 짜증이 나서 Xbox도 소유하고 있다고 가정합니다. 그래서 우리가 전체“TV 네트워크”를 계획한다면, 이것은 다음과 같을 것입니다 : 어, 오 .. 여기에 문제가 있습니다. TV를 통해서만 이러한 노드 중 하나에 액세스 할 수 있습니다. 지금은 왕좌의 게임을보고 언차 티드를 동시에 플레이 할 수 없습니다. 그렇죠? 그렇다면 TV가 한 번에 하나의 노드에만 액세스 할 수 있도록하려면 어떻게해야합니까? 여기에서 매개 변수를 소개합니다. 매개 변수는 노드를 고유하게 만드는 요소입니다. “채널 전환기”라는 매개 변수를 TV에 추가한다고 가정 해 보겠습니다. 채널 전환기의 작동 방식은 다음과 같습니다. “0”을 누르면 일반 TV 일명 서비스 제공 업체가 표시됩니다. “1”을 누르면 PS4에 접속할 수 있습니다. “2”를 누르면 Xbox에 액세스 할 수 있습니다. 이러한 매개 변수를 추가하여 노드 즉, TV를 고유하게 만들었습니다. 이제 TV를 더 독특하게 만들기 위해 제공 할 수있는 다른 매개 변수를 살펴 보겠습니다. 크기 : TV가 55 인치 화면이라고 가정 해 보겠습니다. 색상 : TV는 은회색입니다. 브랜드 : 소니 TV가 있습니다. 유형 : 플라즈마 스크린이 있습니다. 이제 매개 변수 덕분에 더 잘 정의 된 TV가 생겼습니다. 이제 우리는 55 인치의 은회색 플라즈마 스크린 소니 TV를 가지고 있다는 것을 압니다. 그래서 지금까지 배운 모든 것에서 노드, 네트워크 및 매개 변수가 의미하는 바를 정의 해 보겠습니다. 노드 : 입력을 받아 이에 대한 기능을 수행하고 출력을 제공하는 개별 구성 요소. 네트워크 : 서로 연결된 노드 모음입니다. 매개 변수 : 노드를 정의하고 통신 맥락에서 노드와 네트워크를보다 고유하게 만드는 규칙 당사의 전체 통신 시스템은 네트워크와 노드를 기반으로 작동합니다. 인터넷, 전화, SMS, 이러한 모든 것들이 신중하게 배치 된 네트워크와 노드로 인해 작동합니다. 그렇다면 통신 네트워크를 어떻게 정의합니까? 브리태니커 백과 사전에 따르면,“통신 네트워크는 링크와 스위치의 전자 시스템이며 여러 사용자 간의 데이터 전송 및 교환이 가능하도록 작동을 제어하는 ​​컨트롤입니다.” 통신 네트워크가 필요한 이유는 무엇입니까? 개인간에 일대일 연결이 가능하지만 비용이 많이 들고 번거 롭습니다. 또한 대부분의 통신 회선이 유휴 상태이고 활용도가 낮거나 활용되지 않기 때문에 매우 비효율적 인 프로세스입니다. 이 프로세스를보다 효율적으로 만들기 위해 우리는 통신 네트워크를 사용합니다. 그렇다면이 컨텍스트에서 노드의 정의는 무엇입니까? 이 컨텍스트에서 노드는 재분배 지점 또는 통신 끝점입니다. 그럼 이것이 어떻게 작동하는지 예를 보겠습니다. 간단한 GSM 네트워크를 고려하십시오. Alice가 Bob에게 SMS를 보내려고한다고 가정합니다. 전체 시스템은 어떻게 작동합니까? (설명을 위해 Roviell YouTube 채널에 외침). 1 단계 : Alice가 메시지를 작성하고 보내기를 누릅니다. 메시지는 BST로 알려진베이스 스테이션으로 이동합니다. BST는 네트워크에 연결합니다. 주변에 수많은 BST가 있습니다. 그들을 식당의 웨이터라고 생각하십시오. 손을 들기 만하면 (SMS 전송)주의를 끌 수 있습니다. 2 단계 : BSC라고하는 기지국 컨트롤러는 BST가 모두 정상이고 모든 것이 작동 상태인지 확인합니다. 레스토랑 비유를 사용하여 BSC는 “maître d’ hôtel”또는 각 테이블에 웨이터가 참석했는지 확인하는 수석 웨이터입니다. (Hell ’s Kitchen의 Jean Phillippe를 기억하십니까? 예, 저 사람입니다.) 3 단계 : BSC에서 메시지가 이제 MSC라고하는 모바일 스위칭 센터로 전달됩니다. 데이터가 스테이션에서 네트워크로 또는 그 반대로 원활하게 이동하도록합니다. 우리 식당 비유에서 MSC는 주문을 받아서 요리사에게 전달하고 요리를 보내기 전에 요리를 마무리하는 수석 요리사입니다. 4 단계 : 이제 메시지가 SMSC라고하는 Short Message Service Center로 전송됩니다. 이들은 비유의 요리사입니다. 여기에는 수신자에 대한 추가 정보를 얻을 때까지 메시지가 저장됩니다. SMSC는 HLR (Home Location Register) 및 VLR (Visitor Location Register)과 같은 소스에서 도움을받습니다.이 두 가지는 네트워크에 대한 모든 정보를 포함하는 데이터베이스입니다. 기본적으로 보낸 사람과받는 사람을 추적하여 메시지를 보낼 수 있는지 확인합니다. 수신자의 전화가 꺼져 있는지 또는 서비스 지역을 벗어 났는지 등을 확인합니다. 어떤 이유로 메시지를 보낼 수없는 경우 메시지가 삭제되기 전에 최대 6 시간 동안 SMSC에 저장됩니다. 5 단계 : 이제 SMS를 사용할 수있는 경우 SMSC는 메시지를 수신자의 MSC에 전달합니다. 6 단계 : SMS가 BSC로 이동합니다. 7 단계 : BSC는 메시지를 BST로 전달합니다. 8 단계 : BST는 마지막으로 수신자에게 메시지를 보냅니다. 따라서 이것은 전체 SMS 시스템이 작동하는 방식에 대한 개요입니다. BSC, BST, MSC, SMSC, HLR 및 VLR은 모두 GSM 네트워크의 노드입니다. 전체적인 모습은 다음과 같습니다. 피어 투 피어 네트워크 란 무엇입니까? 일반적인 네트워크 구조는 “클라이언트-서버”구조입니다. 어떻게 작동합니까? 중앙 집중식 서버가 있습니다. 그리고 서버에 연결하려는 모든 사람은 필요한 정보를 얻기 위해 쿼리를 보낼 수 있습니다. 이것은 인터넷이 작동하는 방식입니다. Google 무언가를 원할 때 Google 서버에 쿼리를 보내면 필요한 결과가 반환됩니다. 그래서 이것은 클라이언트-서버 시스템입니다. 자,이 모델의 문제점은 무엇입니까? 모든 것이 서버에 의존하기 때문에 시스템이 작동하려면 서버가 항상 작동하는 것이 중요합니다. 병목 현상입니다. 이제 주 서버가 작동을 멈추는 이유가 무엇이든 네트워크의 모든 사람이 영향을받는다고 가정합니다. 또한 보안 문제도 있습니다. 네트워크가 중앙 집중화되어 있기 때문에 서버 자체가 클라이언트와 관련된 많은 중요한 정보를 처리합니다. 이는 누구나 서버를 해킹하여 해당 정보를 얻을 수 있음을 의미합니다. 또한 검열 문제도 있습니다. 서버가 특정 항목 (영화, 노래, 책 등)이 동의 할 수 없다고 판단하고 네트워크에 전파하지 않기로 결정하면 어떻게됩니까? 따라서 이러한 모든 문제에 대응하기 위해 다른 종류의 네트워크 아키텍처가 등장했습니다. 이는 모두 동일한 권한을 가진 참여자 ( “피어”라고 함)간에 전체 워크로드를 분할하는 네트워크입니다. 더 이상 중앙 서버가 하나도 없으며 이제 여러 분산되고 분산 된 피어가 있습니다. 이것은 피어-투-피어 네트워크입니다. 이미지 제공 : InfoZones 사람들이 P2P 네트워크를 사용하는 이유는 무엇입니까? P2P 네트워크의 주요 용도 중 하나는 토렌트라고도하는 파일 공유입니다. 다운로드를 위해 클라이언트-서버 모델을 사용하는 경우 일반적으로 매우 느리고 서버 상태에 전적으로 의존합니다. 또한 우리가 말했듯이 검열을 받기 쉽습니다. 그러나 피어 투 피어 시스템에서는 중앙 권한이 없으므로 네트워크의 피어 중 하나라도 경주에서 벗어난 경우에도 여전히 더 많은 피어를 다운로드 할 수 있습니다. 또한 중앙 시스템의 이상 주의적 표준의 적용을받지 않으므로 검열을 받기 쉽지 않습니다. 두 가지를 비교한다면 : 이미지 제공 : Quora 다음 섹션으로 넘어 가면서 피어 투 피어 시스템의 분산 된 특성이 중요해집니다. 얼마나 중요합니까? 글쎄요,이 P2P 네트워크와 지불 시스템을 결합하는 단순한 아이디어는 암호 화폐를 탄생시킴으로써 금융 산업에 완전히 혁명을 일으켰습니다. 암호 화폐에서 네트워크 및 노드 사용. Ethereum의 네트워크 구조를 살펴 보겠습니다. 이더 리움은 피어 투 피어 네트워크로 구성되어있어 참여자 (일명 피어, 노드)에게 특별한 권한이 부여되지 않습니다. 아이디어는 평등 주의적 네트워크를 만드는 것입니다. 노드에는 특별한 권한이 부여되지 않지만 기능과 참여 정도는 다를 수 있습니다. 중앙 집중식 서버 / 엔터티도없고 계층도 없습니다. 플랫 토폴로지입니다. 모든 탈 중앙화 암호 화폐는 그들의 철학에 충실하기 위해 단순한 이유 때문에 구조화됩니다. 아이디어는 모든 사람이 동등하게 취급되고 변덕에 따라 통화의 가치를 결정할 수있는 관리기구가없는 통화 시스템을 갖는 것입니다. 이것은 비트 코인과 이더 리움 모두에 해당됩니다. 이제 중앙 시스템이 없으면 시스템의 모든 사람이 특정 트랜잭션이 발생했음을 어떻게 알 수 있습니까? 네트워크는 가십 프로토콜을 따릅니다. 가십이 어떻게 퍼지는 지 생각해보십시오. Alice가 Bob에게 3 ETH를 보냈다고 가정합니다. 그녀에게 가장 가까운 노드는 이것을 알게 될 것이고, 그런 다음 가장 가까운 노드에게 말할 것이고, 그런 다음 이웃에게 말할 것입니다. 그리고 이것은 모두가 알 때까지 계속 퍼질 것입니다. 노드는 기본적으로 코가 짜증나는 친척입니다. 그렇다면 이더 리움의 맥락에서 노드는 무엇입니까? 노드는 단순히 이더 리움 네트워크에 참여하는 컴퓨터입니다. 이 참여는 세 가지 방법으로 할 수 있습니다. 블록 체인의 얕은 사본 (일명 Light Client)을 유지함으로써 블록 체인의 전체 사본을 일명 Full Node로 유지함으로써 거래를 확인함으로써 일명 Mining Light Client 란 무엇입니까? 앞에서 언급했듯이 피어 투 피어 시스템의 개념은 “피어”라고하는 노드간에 네트워크 책임을 분배하는 것입니다. 그들 중 어느 누구도 선호하지 않습니다. 그러나 네트워크에 참여하고 싶지만 시스템에서 전체 블록 체인을 다운로드하고 유지할 시스템 리소스가없는 사람들은 어떻습니까? 그들은 “라이트 클라이언트”가되기로 선택할 수 있습니다. 라이트 클라이언트가 됨으로써 특정 이더 리움 상태에 대한 높은 보안 보증과 트랜잭션 실행을 확인할 수있는 권한을 얻습니다. 풀 노드 란 무엇입니까? 이더 리움의 모든 합의 규칙을 완전히 시행하는 이더 리움 네트워크에 연결된 모든 컴퓨터를 풀 노드라고합니다. 전체 노드는 사용자의 데스크톱에 전체 블록 체인을 다운로드합니다. 풀 노드는 이더 리움 시스템의 중추를 형성하고 전체 네트워크를 정직하게 유지합니다. 전체 노드가 시행하는 합의 규칙 중 일부는 다음과 같습니다. 채굴 된 각 블록 (5 ETH)에 대해 올바른 블록 보상이 제공되는지 확인 트랜잭션에 올바른 서명이 있는지 확인 트랜잭션 및 블록이 올바른 데이터 형식으로되어 있습니다. 블록의 전체 노드는 기본적으로 노드와 트랜잭션을 검증하고 정보를 다른 노드에 전달합니다 (가십 프로토콜 사용). 광부 대 노드 간단하게 유지하기 위해 모든 광부는 전체 노드이지만 모든 전체 노드가 광부 인 것은 아닙니다. 채굴자는 블록 체인에 액세스하려면 전체 노드를 실행해야합니다. 풀 노드를 실행하는 사람은 블록을 채굴 할 필요가 없습니다. 이더 리움이 직면 한 확장 성 문제는 무엇입니까? 이더 리움 네트워크에서 합의는 어떻게 이루어 집니까? 네트워크의 모든 노드는 모든 계산을 수행하며 모두 합의에 도달하면 거래가 좋은 것으로 간주됩니다. 이제 이것은 제대로 작동했을 수도 있지만 처음에는 이더 리움이 매우 인기를 얻었고 거래 수가 꾸준히 증가하고 있습니다. Etherscan의이 그래프를 확인하십시오. 이미지 제공 : Etherscan 이제 이것이 좋은 일이지만 네트워크가 합의에 도달하기 전에 거쳐야하는 계산 수가 그 결과 기하 급수적으로 증가했습니다. 이와 함께 또 다른 문제가 발생했습니다. 이더 리움은 특정 기업 헤비급의 지원과 ICO의 인기로 인해 널리 채택되었습니다. 그 결과 이더 리움 네트워크의 노드 수가 기하 급수적으로 증가했습니다. 사실, 가장 많은 노드를 가진 암호 화폐이므로 가장 분산되어 있습니다. 실제로 2017 년 5 월 현재 이더 리움은 비트 코인의 7000 개에 비해 25,000 개의 노드를 가지고 있습니다 !! 3 배 이상입니다. 실제로 4 월부터 5 월까지 노드 수는 81 % 증가했습니다. 이는 거의 두 배입니다! 이미지 제공 : Trust Nodes. 이제 네트워크에 더 많은 노드가 있으면 트랜잭션 시간을 단축하는 데 도움이 될 것이라고 생각할 수 있습니다. 음… 다시 생각해보세요. 합의는 선형 방식으로 발생합니다. 즉, 3 개의 노드 A, B 및 C가 있다고 가정합니다. 합의가 발생하려면 먼저 A가 계산을 수행하고 확인한 다음 B가 동일한 작업을 수행 한 다음 C를 수행합니다. 그러나 시스템에 “라는 새 노드가있는 경우 D”, 합의 시스템에 노드를 하나 더 추가하여 전체 기간을 늘립니다. 이더 리움이 대중화됨에 따라 거래 시간이 느려졌습니다. 실제로 속도 테스트에서 이더 리움은 PayPal의 193 년과 Visa의 1667 년에 비해 초당 20 건의 미약 한 거래를 처리하는 것으로 나타났습니다 !! 이제 한 가지 기억하세요. 이더 리움은 자신을 단순한 화폐로 생각하지 않습니다. 궁극적 인 비전은 새로운 인터넷과 같은 것이되는 것입니다. 그들은 사람들이 Facebook 및 Youtube 규모의 DApp을 생성하여 블록 체인 위에서 실행되기를 원합니다. 이와 같은 일이 발생하려면 확장 성 문제에 대해 조치를 취해야합니다. 이를 해결하기 위해 세 가지 제안이 제기되었습니다. 블록 크기 늘리기 사용자가 다른 알트 코인을 사용하도록 만들기 샤딩 블록 크기 늘리기 따라서 한 가지 해결책은 블록 크기를 늘리는 것입니다. 이는 한 블록으로 들어가는 트랜잭션 수를 증가시켜 성능을 확실히 향상시킬 수 있지만 결과적으로 발생할 수있는 몇 가지 문제가 있습니다. 첫째, 이것은 여전히 ​​느린 속도로 합의에 도달하는 노드 문제를 해결하지 못할 것입니다. 실제로 블록 당 트랜잭션 수가 증가하면 노드 당 계산 및 검증 수도 증가합니다. 점점 더 많은 트랜잭션을 수용하려면 블록 크기를 주기적으로 늘려야합니다. 일반 컴퓨터와 사용자는 이러한 부피가 큰 블록 체인을 다운로드하고 보존 할 수 없기 때문에 시스템을 중앙 집중화 할 수 있습니다. 이것은 블록 체인의 평등주의 정신에 위배됩니다. 마지막으로 블록 크기 증가는 커뮤니티를 분할 할 수있는 하드 포크를 통해서만 발생합니다. 마지막으로 이더 리움에서 주요 하드 포크가 발생했을 때 전체 커뮤니티가 분할되고 두 개의 개별 통화가 발생했습니다. 사람들은 이런 일이 다시 일어나기를 정말로 원하지 않습니다. 사용자가 다른 알트 코인을 사용하도록합니다. 또 다른 제안은 하나의 메인 블록 체인 대신 병렬 블록 체인을 실행하는 것이 었습니다. 기본적으로 하나의 메인 블록 체인에서 50 개의 DApp을 실행하는 대신 2 개의 블록 체인을 가지고 각각 25 개의 DApp을 실행합니다. 이 제안에는 두 가지 문제가있었습니다. 체인의 해시 레이트를 분할하는 것은 현명하지 않습니다. 결국 체인의 해시 속도는 외부 해커로부터 얼마나 안전하고 시스템이 빠른지 결정합니다. 악의적 인 채굴자가 더 작은 체인에서 51 % 다수를 차지하는 것이 더 쉬울 것입니다. 샤딩 마지막으로 샤딩이 이더 리움으로가는 길로 결정되었습니다. 샤딩에 대해 자세히 알아보기 전에 그것이 의미하는 바에 대해 간단히 이해해 보겠습니다. 3 개의 노드 A, B 및 C가 있고 데이터 T를 확인해야한다고 가정합니다. A, B 및 C가 전체 데이터 T를 개별적으로 확인하는 대신 데이터는 T1, T2 및 T3의 3 개 샤드로 분할됩니다. 그 후 A, B 및 C는 각각 하나의 샤드를 나란히 확인합니다. 보시다시피 절약하는 시간은 기하 급수적입니다. 어쨌든, 깊이 잠수합시다! 샤딩이란? 샤딩은 데이터베이스 시스템에서 가져온 용어입니다. 데이터베이스와 관련하여 샤딩이 의미하는 바를 살펴 보겠습니다. 웹 사이트를위한 거대한 데이터베이스가 있다고 가정합니다. 대용량 데이터베이스를 사용하면 데이터 검색 속도가 느려질뿐만 아니라 확장 성이 저하됩니다. 그래서,이 경우 무엇을합니까? 데이터에 대해 수평 분할을 수행하고이를 더 작은 테이블로 변환하고 다른 데이터베이스 서버에 저장하면 어떻게 될까요? 이미지 제공 : Dzone 그렇게? 자, 당신은 왜 수직 파티션이 아닌 수평 파티션인가? 그것은 테이블이 디자인 된 방식 때문입니다. 알 겠어요? 동일한 테이블 / 데이터베이스이지만 데이터가 적습니다. 이러한 작은 데이터베이스를 더 큰 데이터베이스의 샤드라고합니다. 각 샤드는 동일한 테이블 구조와 동일해야합니다. 블록 체인 맥락에서의 샤딩 지금까지 살펴본 것처럼 이더 리움 합의의 문제는 모든 노드가 각각의 모든 트랜잭션에 대해 모든 계산과 검증을 수행해야한다는 것입니다. 이로 인해 전체 프로세스가 매우 느리고 번거로워집니다. 그렇다면 샤딩이 어떻게 도움이 될까요? 모든 사람이 볼 수있는“Global State”라고 부르는 이더 리움 블록 체인의 상태를 고려하십시오. 이 전역 상태의 머클 루트를 고려해 보겠습니다. (Merkle 나무와 뿌리에 대해서는 HASHING에 대한 기사를 읽으십시오). 이 상태 루트는 샤드 루트로 나뉘어지고 각 공유 루트는 자체 상태를 갖게됩니다. 이러한 상태는 머클 트리 형태로 표시됩니다. 이것은 그것이 어떻게 생겼는지에 대한 매우 간단한 구조입니다. 이제 내부 메커니즘을 살펴 보겠습니다. 그렇다면 샤딩이 활성화 된 후에는 어떻게됩니까? 상태는 샤드로 분할됩니다. 각 고유 계정은 하나의 샤드에 있습니다. 계정은 동일한 샤드의 다른 계정과 만 거래 할 수 있습니다. Devcon에서 Vitalik Buterin은 샤드를 다음과 같이 설명했습니다. 이더 리움이 수천 개의 섬으로 분할되었다고 상상해보십시오. 각 섬은 자신의 일을 할 수 있습니다. 각 섬에는 고유 한 기능이 있으며 해당 섬에 속한 모든 사람 (예 : 계정)은 서로 상호 작용할 수 있으며 모든 기능에 자유롭게 빠져들 수 있습니다. 다른 섬과 접촉하려면 일종의 프로토콜을 사용해야합니다. 그래서 문제는 이것이 블록 체인을 어떻게 변화시킬까요? 비트 코인 또는 이더 리움 (사전 분할)의 일반 블록은 어떻게 생겼습니까? 따라서 블록 헤더와 블록의 모든 트랜잭션을 포함하는 본문이 있습니다. 모든 트랜잭션의 머클 루트는 블록 헤더에 있습니다. 이제 이것에 대해 생각해보십시오. 비트 코인이 정말로 블록을 필요로 했나요? 정말 블록 체인이 필요 했나요? Satoshi는 이전 트랜잭션의 해시를 새로운 트랜잭션에 포함하여 간단히 “트랜잭션 체인”을 만들어 트랜잭션 체인을 만들 수 있습니다. 이러한 트랜잭션을 블록에 배치하는 이유는 한 수준의 상호 작용을 생성하고 전체 프로세스를 더 확장 가능하게 만들기 위해서입니다. 이더 리움이 제안하는 것은 그들이 이것을 두 단계의 상호 작용으로 바꾸는 것입니다. 첫 번째 수준 첫 번째 수준은 트랜잭션 그룹입니다. 각 샤드에는 자체 트랜잭션 그룹이 있습니다. 이미지 제공 : Hackernoon 트랜잭션 그룹은 트랜잭션 그룹 헤더와 트랜잭션 그룹 본문으로 나뉩니다. 트랜잭션 그룹 헤더 헤더는 별도의 왼쪽과 오른쪽 부분으로 나뉩니다. 왼쪽 부분 : 샤드 ID : 트랜잭션 그룹이 속한 샤드의 ID입니다. 사전 상태 루트 : 트랜잭션이 적용되기 전 샤드 43의 루트 상태입니다. 포스트 상태 루트 : 트랜잭션이 적용된 후 샤드 43의 루트 상태입니다. 영수증 루트 : shard 43의 모든 트랜잭션이 적용된 후 영수증 루트입니다. 오른쪽 부분 : 오른쪽 부분은 샤드 자체에서 트랜잭션을 확인해야하는 임의의 유효성 검사기로 가득 차 있습니다. 그들은 모두 무작위로 선택됩니다. 트랜잭션 그룹 본문 샤드 자체에 모든 트랜잭션 ID가 있습니다. 레벨 1의 속성 모든 트랜잭션은 자신이 속한 샤드의 ID를 지정합니다. 특정 샤드에 속한 트랜잭션은 특정 샤드에 고유 한 두 계정간에 발생했음을 보여줍니다. 트랜잭션 그룹에는 해당 샤드 ID에만 속하고 고유 한 트랜잭션이 있습니다. 사전 및 사후 상태 루트를 지정합니다. 이제 최상위 수준 인 두 번째 수준을 살펴 보겠습니다. 두 번째 수준 이미지 제공 : Hackernoon. 겁내지 마세요! 보기보다 이해하기 쉽습니다. 일반 블록 체인이 있지만 이제는 두 가지 기본 루트를 포함합니다. 상태 루트 트랜잭션 그룹 루트 상태 루트는 전체 상태를 나타내며 이전에 보았 듯이 상태는 자체 하위 상태를 포함하는 샤드로 나뉩니다. 트랜잭션 그룹 루트에는 해당 특정 블록 내의 모든 트랜잭션 그룹이 포함됩니다. 레벨 2의 속성 레벨 2는 트랜잭션이 아닌 트랜잭션 그룹을 받아들이는 단순한 블록 체인과 같습니다. 트랜잭션 그룹은 다음 경우에만 유효합니다. a) 사전 상태 루트가 전역 상태의 샤드 루트와 일치합니다. b) 트랜잭션 그룹의 서명이 모두 검증됩니다. 트랜잭션 그룹이 들어 오면 전역 상태 루트가 해당 특정 샤드 ID의 사후 상태 루트가됩니다. 그렇다면 교차 샤드 통신은 어떻게 발생합니까? 이제 우리의 섬 비유를 기억하십니까? 파편은 기본적으로 섬과 같습니다. 그렇다면이 섬들은 서로 어떻게 소통할까요? 샤드의 목적은 성능을 높이기 위해 동시에 많은 병렬 트랜잭션을 발생시키는 것입니다. ethereum이 임의의 교차 샤드 통신을 허용하면 샤딩의 전체 목적을 무효화합니다. 그렇다면 교차 샤드 통신을 위해 따라야 할 프로토콜은 무엇입니까? ethereum은 교차 샤드 통신에 대한 수신 패러다임을 따르기로 선택했습니다. 여기를 확인하십시오. 이미지 제공 : hackernoon 여기에서 볼 수 있듯이 트랜잭션 그룹 Merkle 루트의 여러 Merkle 트리를 통해 트랜잭션의 각 개별 영수증에 쉽게 액세스 할 수 있습니다. 샤드의 모든 트랜잭션은 두 가지 작업을 수행합니다. 해당 샤드가 속한 샤드의 상태 변경 영수증 생성 여기에 또 다른 흥미로운 정보가 있습니다. 영수증은 분산 공유 메모리에 저장되며 다른 샤드에서 볼 수 있지만 수정할 수는 없습니다. 따라서 교차 샤드 통신은 다음과 같은 영수증을 통해 발생할 수 있습니다. 이미지 제공 : Hackernoon 샤딩 구현의 어려움은 무엇입니까? 어떤 노드가 어떤 샤드를 구현하는지 알 수있는 메커니즘이 필요합니다. 이것은 병렬화 및 보안을 보장하기 위해 안전하고 효율적인 방법으로 수행되어야합니다. Vlad Zamfir에 따르면 샤딩을 더 쉽게 만들기 위해 먼저 지분 증명을 구현해야합니다. 노드는 무 신뢰 시스템에서 작동합니다. 즉, 노드 A는 노드 B를 신뢰하지 않으며 해당 신뢰에 관계없이 둘 다 합의에 도달해야합니다. 따라서 하나의 특정 트랜잭션이 샤드로 분할되어 노드 A와 노드 B에 배포되면 노드 A는 샤드의 일부에서 작업을 완료했다는 일종의 증명 메커니즘을 제시해야합니다. 이더 리움 노드와 샤딩이란 무엇인가 : 결론 이더 리움이 확장되고 Metropolis와 Serenity로 안내됨에 따라 샤딩은 성장에 점점 더 중요해졌습니다. 이더 리움이 새로운 인터넷이 될 계획이라면 확장 성 문제를 해결해야합니다. 그들은 성장을 보장하기 위해 절대적으로 구현하고 네일 샤딩을해야합니다. 이더 리움 앞에는 신나는 시간이 있습니다!

-AMAZONPOLLY-ONLYAUDIO-END-

“>

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me