블록 체인 너트와 볼트 : 파트 1

블록 체인에 대한 설명이 수천 개는 아닐지라도 수백 개가있을 것입니다. 일부는 정말 훌륭하고 일부는, 글쎄요. 나는 블록 체인에 대한 내 정의에 대해 긍정적 인 반응을 얻는 경향이 있기 때문에 더 많은 청중에게 제공하지 않는 이유를 생각합니다. 블록 체인을 처음 접 하시거나 다른 관점을 원하신다면이 기사가 도움이 될 것입니다.

지금 사용중인 인터넷부터 시작하겠습니다. Medium Inc.에서 운영하는 서버에 연결하는 웹 브라우저가 있습니다. 브라우저는 해당 서버에 데이터를 요청하고 서버는 브라우저가 렌더링하고 이미지와 텍스트로 표시하는 바이트를 반환합니다. 충분히 간단합니다.

뒤에서 여러분에게 아름답게 투명한 무언가가 있습니다. 바로 HTTP입니다. 브라우저가 서버에 데이터를 요청할 때 서버와 브라우저가 모두 이해할 수있는 언어를 사용해야합니다. 이것이 바로 HTTP입니다. 브라우저와 서버 간의 표준화 된 통신 프로토콜 입니다. 네트워크 프로토콜과 같은 낮은 수준의 세부 사항에 대해 걱정할 필요없이 일반적으로 웹 응용 프로그램을 구축 할 수 있습니다.

저는 애플리케이션을 구축하기 위해 저수준 네트워크 프로토콜을 처리해야한다면 어떤 네트워크와 대화해야할지 파악하는 데 많은 시간과 에너지를 소비 할 것이기 때문에 우리 앞에 온 거인들의 공헌에 진심으로 감사드립니다. , 해당 네트워크에서 통신 할 시스템 및 사용할 프로토콜. 아하! 이제 블록 체인의 젊은 역사에서 우리가 어디에 있는지 정확하게 설명하겠습니다.

HTTP 유사점

HTTP와 일반적인 브라우저 시대 이전에는 ‘인터넷’이 실제로 상호 연결되지 않았습니다. 커뮤니티가 마침내 TCP / IP 및 HTTP (https://en.wikipedia.org/wiki/History_of_the_Internet)와 같은 표준 프로토콜 세트에 정착 할 때까지 여러 네트워크와 프로토콜이 작동했습니다.

당신이 충분히 곁눈질한다면,이 블록 체인 진화는 정말로 또 다른 종류의 인터넷이라고 말할 수 있습니다. 단, HTML과 이미지 데이터는 아직 교환하지 않습니다. 거래 데이터를 교환하고 있습니다. 보다 구체적으로 “블록”이라는 그룹으로 구성된 트랜잭션 데이터입니다. 다양한 형식과 프로토콜을 사용하여 이러한 블록을 보내는 많은 네트워크가 있습니다. 그리고 이것은 인터넷의 초기 시대와 유사합니다. 1960 년대 초반 처럼요 블록 체인에 대해들을 때마다이 점을 명심하십시오. 여전히 엉망이기 때문에 복잡합니다. 하지만 초기 인터넷도 마찬가지였습니다.

블록 체인은 인터넷과 비슷합니다. HTML과 이미지 데이터를 교환하는 대신 거래 데이터를 교환하는 것 외에는

우리는 개념을 지나치게 단순화하고 있으므로 이미 이해하고있는 용어로 계속해서 설명해 보는 것은 어떨까요? 인터넷 서버에서 제공되는 콘텐츠를보기 위해 인터넷 브라우저를 사용한다고 생각해보십시오. 블록 체인에 해당하는 것은 블록 체인 지갑 을 사용하여 블록 체인 채굴 자 가 생성 한 콘텐츠를 보는 것입니다. 브라우저와 마찬가지로 지갑은 블록 체인의 사용자 대면 요소입니다. 광부는 서버처럼 블록 형태로 데이터를 생성합니다. 그러나 인터넷에서 브라우저는 데이터를 요청할 서버를 찾는 방법을 가지고 있습니다. 지갑은 블록 체인 네트워크에서 채굴자를 어떻게 찾나요?

블록 체인 지갑은 블록 체인 채굴 자와 상호 작용하는 데 필요한 라우팅 및 네트워킹을 수행하기 위해 클라이언트 에 의존합니다. 라우터가 브라우저와 서버 사이에있는 것과 같은 방식으로 블록 체인 클라이언트는 지갑과 하나 이상의 채굴 자 사이에 위치하여 검색 및 네트워킹 프로토콜을 처리합니다.

블록 체인 지갑은 거래 데이터를 교환하기 위해 채굴 자와 통신하는 클라이언트와 상호 작용합니다.

이미 언급했듯이 지갑은 블록 체인의 사용자 대면 구성 요소입니다. 주요 목적은 사용자 만 액세스 할 수있는 개인 키를 사용하여 사용자가 네트워크에 트랜잭션을 승인하고 제출할 수 있도록하는 것입니다. 지갑에 대해서는 나중에 자세히 다룰 것입니다. 지금은이 핵심 문제를 해결해 보겠습니다…

공개 및 개인 키

우리는 열쇠를 생각할 때 문을 열기 위해 가지고 다니는 작은 금속 물건을 생각합니다. 각 키에는 잠금 슬롯에 맞는 작은 홈이 있습니다. 키가 작동하려면 슬롯과 홈이 정렬되어야합니다. 공개 키와 개인 키는 하나의 홈이 다른 슬롯에 맞아야한다는 점에서 유사합니다. 그러나 기계적 맞춤 대신 수학적 맞춤이 있습니다.

이 키에 대해 알아야 할 사실은 공개 키와 개인 키가 쌍으로 작동한다는 것입니다. 공개 키를 사용하여 인코딩하는 경우 개인 키로 만 읽을 수 있습니다. 공개 키로 인코딩하는 경우 개인 키를 사용해야 만 읽을 수 있습니다.

의심 할 여지없이 블록 체인에서 “서명 거래”에 대한 언급을 듣게 될 것입니다. 이것은 기본적으로 “서명”이라는 새로운 비트 세트를 생성하기 위해 개인 키의 비트와 함께 수학 함수를 통해 일부 트랜잭션 비트를 실행하는 것을 의미합니다. 그런 다음 해당 서명을 공개 키와 함께 수학적으로 분석하여 실제로 해당 서명을 생성하는 데 공개 키의 개인 상대가 사용되었는지 확인할 수 있습니다. 이러한 방식으로 네트워크에 제출 된 모든 트랜잭션 서명은 개인 키 소유자 및 트랜잭션 작성자가 서명 한 것으로 인증됩니다. 이것이 블록 체인을 안전하게 만드는 핵심입니다.이 서명 테스트를 통과하지 못한 거래는 네트워크에서 거부됩니다. 그리고 누군가가 다른 사람의 개인 키를 재구성 할 가능성은 너무나 믿을 수 없어 불가능하다고 말할 수도 있습니다 ¹.

광부

그러면 누가이 서명을 확인합니까? 이것은 광부의 일입니다. 그들은 트랜잭션 발신자의 공개 키 / 주소를 사용하여 해당 트랜잭션을 블록에 포함하기 전에 포함 된 서명을 확인합니다. 채굴자는 이러한 모든 트랜잭션을 확인하고 블록에 넣는 작업이므로 블록 체인 네트워크에서 가장 중요한 부분입니다. 매우 비판적이기 때문에 속임수에 취약합니다. 이 광부가 계정에서 이중 지출을 허용하지 않거나 일부 거래를 무시하고 있는지 어떻게 알 수 있습니까?

모든 채굴자는 속임수를 쓰면 잃을 것이 있음을 네트워크에 증명해야합니다. 이는 점점 더 많은 방법으로 수행되지만 가장 일반적으로 작업 증명 (PoW) 알고리즘이 사용됩니다. PoW를 사용하면 광부는 매우 복잡한 수학 문제를 해결해야합니다. 이것은 데스크탑이나 노트북에서 풀 수있는 종류의 수학이 아닙니다. 이것은 엄청난 양의 CPU 전력을 필요로하는데, 이는 전력으로 변환되고 이는 지출되는 돈으로 변환됩니다. 이 수학 문제를 풀 때, 그들은이 새로운 블록을 생성하기 위해 자원을 소비했다는 증거로 트랜잭션 블록과 함께 솔루션을 제시합니다. 그들이 속임수를 쓰면, 그들은이 수학 문제를 헛되이하는 데 많은 돈을 썼습니다! 그렇다면 부정 행위는 어떻게 감지됩니까?

해싱

광부가 트랜잭션 블록을 만들 때 각 블록에 대해 “헤더”를 생성해야합니다. 이 헤더는 여러 가지로 구성되어 있지만 하나의 중요한 요소는 “해시”입니다. John Oliver가 자신의 블록 체인 에피소드에서 강조했듯이 해싱은 치킨을 가져다가 치킨 너겟으로 바꾸는 것과 같습니다. 광부는 수학 함수의 도움으로 비트를 매쉬하여 더 작은 비트 세트를 생성합니다. 이것은 단방향 기능입니다. 치킨 너겟에서 치킨을 재생성 할 수없는 것처럼 프로세스를 되돌릴 수 없습니다. 그렇다면 블록의 해시에 무엇이 들어가나요?

새 블록에 포함될 모든 트랜잭션은이 수학 함수를 통해 실행되어 각 트랜잭션에 대한 해시를 생성합니다. 이전 블록의 해시와 함께 해당 해시의 비트는 수학 함수를 통해 실행되어 새 블록 헤더에서 사용되는 새 해시를 생성합니다. 수학 함수로 들어가는 이러한 비트를 변경하면 출력 비트가 크게 변경됩니다. 따라서 동일한 수학 함수를 통해 동일한 트랜잭션 및 이전 블록 데이터를 실행하여 변경된 사항이 있는지 확인하고 해시 값을 비교할 수 있습니다. 해시가 다르면 즉시 무언가 변경되었음을 알 수 있습니다. 그리고 모든 블록의 헤더는 해당 블록 내의 데이터와 이전 블록의 헤더로 구성되기 때문에 블록은 이러한 해시 된 값에 의해 함께 “체인”되므로 이름이 블록 체인입니다.

레이싱

이 모든 작업을 수행하는 광부가 한 명만있는 것은 아닙니다. 수천 개가 있습니다. 그들 각각은 수학 퍼즐을 풀고 새로운 블록 중 하나를 만들 권리를 주장하기 위해 경쟁하고 있습니다. 왜 이러는 거죠? 물론 돈!

모든 거래에는 채굴자가 거래를 실제로 확인하고 블록에 포함하도록 장려하는 작은 수수료가 포함됩니다. 또한 네트워크는 일반적으로 생성하는 각 블록에 대해 일정량의 통화로 채굴 자에게 보상합니다. 예를 들어, BitCoin에서 각 블록은 12.5 BTC의 가치가 있습니다 (현재 가치는 약 $ 98K USD). 이더 리움에서 각각은 5 ETH의 가치가 있습니다 (약 $ 2400 USD 가치). 시장 가격에 따라 이것은 매우 유리할 수 있습니다. 계산 비용도 많이 듭니다.

2 부의 클라이언트로 이동하기 전에 여기에서이 문제 중 일부를 살펴 보겠습니다.

¹ 일부에서는 블록 체인에서 사용되는 현재 알고리즘이 깨질 수 있다고 주장합니다. 그리고 시간 여행도 이론적으로 가능하지만 아무도 그렇게하지 않았습니다. 수백만 명의 해커가 매일 블록 체인을 파괴하려고합니다. 결코 일어나지 않을 것이라고 말하는 것은 아니지만 키 생성의 복잡성으로 인해 가능성이 있습니다.

받은 편지함에서 직접 최고의 소프트웨어 할인 받기