SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

SHA256 및 마이닝이 비트코인 ​​네트워크를 보호하는 방법

비트코인은 에너지로 어떻게 방어되나요? 그리고 난스는 무엇입니까? 이 질문들과 그 이상은 안에 답변되어 있습니다!

채굴 방식은 매력적입니다. 나는 사람들에게 설명할 때 마음이 무너지는 순간 그들의 얼굴을 보는 것을 즐긴다. 여기에서 설명하겠습니다. 하지만 참고만 하세요. 마음이 흔들릴 때 나는 당신의 모든 얼굴을 상상하고 있습니다!

해시 함수부터 시작해야 합니다. 해시 함수가 없으면 비트코인은 불가능합니다. 파티에서 멋지게 들릴 수 있을 뿐만 아니라 Bitcoin이 작동하는 방식, 특히 채굴뿐만 아니라 트랜잭션도 내부적으로 이해하는 데 기본이기 때문에 이것이 무엇인지 먼저 설명하겠습니다.

인터넷을 사용하기 위해 TCP/IP가 작동하는 방식을 이해할 필요가 없는 것처럼 Bitcoin의 이점을 얻기 위해 Bitcoin이 작동하는 방식을 이해할 필요가 없습니다. 하지만 계속 진행하세요. 매우 흥미롭고 이해하기 쉽게 만들겠습니다. 약속합니다.

해시 함수

아래에서 설명할 회로도부터 시작하겠습니다...

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.
(그래픽/@jirols_btc)

왼쪽이 입력, 가운데가 기능, 오른쪽이 출력입니다. 입력은 디지털이면 모든 데이터가 될 수 있습니다. 컴퓨터가 처리할 수만 있다면 어떤 크기라도 될 수 있습니다. 데이터는 SHA256 함수로 전달됩니다. 이 함수는 데이터를 가져와 무작위로 보이는 숫자를 계산하지만 특별한 속성이 있습니다(나중에 설명).

최초의 보안 해시 알고리즘(SHA)은 원래 NSA에서 개발한 현재 다양한 버전이 있습니다(Bitcoin은 SHA256 사용). 매우 복잡하지만 특정 방식으로 데이터를 뒤섞는 방법에 대한 일련의 지침입니다. 지시 사항은 비밀이 아니며 손으로 할 수도 있지만 매우 지루합니다.

SHA256의 경우 출력은 256비트 숫자입니다(우연이 아님).

256비트 숫자는 256자리 길이의 이진수를 의미합니다. 이진수는 값이 0 또는 1의 두 가지 기호로 표시됨을 의미합니다. 이진수는 다른 형식(예: 우리에게 익숙한 십진수)으로 변환할 수 있습니다.

함수가 256자리 이진수를 반환하지만 값은 일반적으로 64자리 길이의 XNUMX진수 형식으로 표현됩니다.

10진수는 0진수(9~16)에 익숙한 0개의 가능한 기호 대신 9개의 기호(우리에게 익숙한 11개, 15~15에 더하여 a, b, c, d, e, 및 f, 값 XNUMX 내지 XNUMX). 예를 들어 XNUMX진수 XNUMX의 값을 XNUMX진수로 나타내기 위해 "f"라고 쓰면 동일한 값입니다. 더 자세한 설명이 필요한 경우 빠른 Google 검색을 통해 온라인에서 사용할 수 있는 정보가 많이 있습니다.

SHA256의 작동을 시연하기 위해 숫자 1을 사용하여 실행할 수 있습니다. 온라인 해시 계산기, 다음 출력을 얻었습니다(XNUMX진수).

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

위쪽 상자는 입력이고 아래쪽 상자는 결과 출력입니다.

입력이 동일하고 SHA256 기능이 사용된다면 세계의 모든 컴퓨터는 동일한 출력을 생성합니다.

XNUMX진수 출력은 XNUMX진수로 변환하면 다음과 같습니다(작성하는 데 더 많은 자릿수가 필요함).

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

그리고 바이너리로 변환하면 다음과 같습니다.

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

그냥 관심에서, 여기에 같은 값이 있습니다 베이스 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

SHA256이 반환할 수 있는 가장 작은 값은 256이지만 LENGTH는 여전히 XNUMX비트입니다. XNUMX은 다음과 같이 표시됩니다.

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

가능한 가장 큰 값은 다음과 같습니다.

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

십진수로 다음과 같습니다.

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

XNUMX진수로는 다음과 같습니다.

훠훠훠훠훠훠

정확히 64개의 F가 있습니다.

64진수의 XNUMX은 단순히 하나의 XNUMX으로 쓸 수 있지만 해시 출력의 경우 고정 크기 출력의 요구 사항을 유지하기 위해 XNUMX개입니다.

0000000000000000000000000000000000000000000000000000000000000000

다음은 감사해야 할 해시 함수에 대한 몇 가지 사실에 대한 요약입니다.

  • 출력에서 입력을 결정할 수 없습니다.
  • 입력은 임의의 길이일 수 있습니다.
  • 출력은 항상 동일한 길이입니다.
  • 동일한 입력을 제공하면 출력이 항상 동일하게 재현됩니다.
  • 입력에 대한 모든 변경은 아무리 작더라도 예측할 수 없고 매우 다른 출력을 유발합니다.
  • 출력은 무작위로 보이지만 실제로는 결정적입니다(계산되고 재현 가능함을 의미).
  • 출력을 예측할 수 없습니다. 계산만 가능하고 컴퓨터로 측정할 수 있는 작업량이 필요합니다(연필과 종이로 몇 시간! 하지 마세요.)

이제 해시가 무엇인지에 대한 기본 개념을 이해했으므로 Bitcoin 마이닝이 작동하는 방식에 대한 설명을 이해할 수 있습니다.

그러나 계속 진행하기 전에 온라인 해시 계산기로 이동하여 조금 가지고 놀고 내가 해시 함수에 대해 말한 내용을 직접 테스트하는 것이 좋습니다. 난이게 좋아.

채굴

비트코인의 "작업 증명"이 나오는 작업의 개념을 설명하는 것으로 시작하겠습니다.

온라인 해시 계산기로 이동하여 "나는 50비트코인을 만들고 이 금액을 지불합니다."라고 입력합니다.

마침표를 포함하여 대소문자를 구분하여 정확하게 입력합니다. 다음과 같은 결과가 나와야 합니다.

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

이제 이 지불 메시지가 유효하려면 해시가 XNUMX으로 시작해야 한다는 규칙을 만들어 보겠습니다. 그렇게 하려면 입력을 어떻게든 변경해야 합니다. 그러나 배운 것처럼 주어진 입력에 대한 출력이 무엇인지 예측할 수 없습니다. XNUMX으로 시작하는 해시를 보장하기 위해 어떤 수정을 할 수 있습니까?

시행착오를 통해 데이터를 추가해야 합니다. 그러나 우리는 또한 입력 메시지의 의미를 변경하고 싶지 않습니다. 따라서 넌센스 값을 보유할 "nonce"라는 필드(할당된 섹션)를 생성해 보겠습니다.

Nonce라는 단어는 "한 번만 사용되는 숫자"에서 파생된 것으로 추정되지만 보이지 않습니다.

추가 필드 제목으로 "Nonce:"를 추가하면 해시 출력이 어떻게 변경되는지 아래에서 확인하세요.

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

출력은 여전히 ​​"0"으로 시작하지 않으므로 약간의 넌센스를 추가해 보겠습니다(무의미한 "x"를 추가했습니다).

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

여전히 XNUMX으로 시작하지 않습니다. 해시가 XNUMX으로 시작될 때까지 더 많은 문자를 시도했습니다.

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

우리는 거기에 갈. 이제 이 가상 버전의 Bitcoin에 대해 설정한 임의의 규칙에 따르면 입력 창의 텍스트는 50비트코인을 지불하는 단일 트랜잭션이 있는 유효한 블록입니다.

Bitcoin 블록은 본질적으로 원장의 페이지입니다. 각 블록에는 번호가 매겨지고 사용자 간의 거래 목록과 함께 새 비트코인이 생성됩니다. 이 기록은 비트코인이 사는 곳입니다.

이제 새로운 규칙입니다. 다음 블록의 경우 이전 블록의 해시가 포함되어야 합니다. 실제 비트코인 ​​블록에 접근하기 위해 약간의 복잡성을 추가하고 몇 가지 필드를 더 추가하겠습니다.

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

해시는 "0"이 아닌 "f"로 시작하므로 nonce 필드에서 몇 가지 값을 시도해야 합니다.

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

이번에는 운이 좋았고 단 22번의 시도 끝에 적절한 논스를 찾았습니다. 첫 번째 블록의 경우 16번의 시도가 필요했습니다. 여기에 약간의 임의성이 있지만 일반적으로 우리가 얻으려고 하는 모든 것이 하나의 1이면 유효한 해시를 찾는 것이 그리 어렵지 않습니다. 첫 번째 해시 숫자에는 16개의 가능한 값이 있으므로 입력 필드를 수정하면 첫 번째 해시 숫자가 "0"이 될 확률이 XNUMX/XNUMX입니다.

Bitcoin의 필드는 이와 비슷하지만 추가하지 않은 자세한 내용이 있습니다. 이것은 단지 요점을 설명하기 위한 것일 뿐 비트코인 ​​블록이 어떻게 생겼는지 정확히 자세히 설명할 필요는 없습니다.

다음에 "난이도 조정"을 설명하기 위해 필요하므로 다음 블록에 시간 필드를 추가하겠습니다.

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

위는 블록 번호 1입니다. 여기에는 이전 블록의 해시가 포함되며 이제 시간도 포함하기 시작했습니다. 내가 찾은 nonce는 해시를 XNUMX으로 시작하도록 했습니다(해시 대상이 충족될 때까지 "XNUMX"을 계속 입력했습니다).

이제 비트코인 ​​블록체인 및 채굴에 대한 몇 가지 흥미로운 개념을 설명할 수 있을 만큼 충분합니다.

블록 획득

채굴 과정은 경쟁적입니다. 유효한 블록을 먼저 생성한 사람은 자신에게 설정된 블록 보상을 받습니다. 같은 블록 번호를 조금 나중에 생성하는 광부는 아무 것도 얻지 못합니다. 해당 블록은 거부됩니다. 그 이유를 설명하면 지금 너무 많은 전환이 일어나므로 부록에서 설명하겠습니다.

블록 XNUMX이 발견되어 모든 사람(모든 비트코인 ​​노드)에게 방송된 후 모든 광부는 블록 XNUMX의 버전에 대한 작업을 중단합니다. 그들은 성공한 블록 XNUMX 위에 구축하기 시작하고(블록 해시를 새 블록으로 끌어옴으로써) 블록 XNUMX에 적합한 임시 항목을 찾는 작업을 시작합니다. 승자가 결과를 발표하면 모두가 블록 XNUMX 등의 작업을 시작합니다.

각 블록마다 새로운 비트코인이 생성되고 지금까지 총 공급량을 구성합니다. 채굴자가 많다면 통계적으로 블록이 더 빨리 생성되고 따라서 비트코인이 더 빨리 생성될 것으로 예상해야 합니다. 문제죠?

시간이 지남에 따라 발행량을 예측할 수 있는 제한된 비트코인 ​​공급을 추구하던 Satoshi Nakamoto는 이 문제를 생각하고 평균 10분 간격으로 블록 생산을 유지하기 위해 네거티브 피드백 루프를 도입했습니다. 어떻게? 당신이 방법을 생각할 수 있는지보십시오. 잠시 멈추고 숙고하십시오. 동일한 천재적인 솔루션을 생각해 낼 수 있는지 확인하고 포기할 때 계속 읽으십시오.

노드: "유효한" 블록을 언급합니다. 그래서 무엇? 누가 확인하고 있습니까? 비트코인 노드는 비트코인 노드는 지금까지 블록체인 사본을 유지하고 일련의 규칙을 따라 새 블록이 규칙 내에 있는지 확인하고 그렇지 않은 블록은 거부합니다. 규칙은 어디에 있습니까? 코드에서. 비트코인 코드를 다운로드하는 컴퓨터가 노드입니다.

난이도 조정

새로운 비트코인 ​​블록을 생성하는 평균 시간은 모든 노드가 2016 블록마다 계산합니다(이것이 시간 필드가 필요한 이유입니다). 이것은 노드가 따르는 프로토콜 및 규칙의 일부입니다. 각 블록 해시가 유효하기 위해 시작해야 하는 XNUMX의 수를 조정하는 공식이 적용됩니다.

엄밀히 말하면 조정되는 것은 XNUMX의 개수가 아니라 해시의 목표값이 그 이하이어야 하는데 선행하는 XNUMX을 생각하면 설명이 더 쉽습니다.

블록이 너무 빨리 생성되는 경우 해시 대상은 모든 노드가 동일하게 따르는 사전 정의된 규칙에 따라 조정됩니다(코드에 있음).

예를 들어 간단하게 말하자면 다른 사람들이 나와 경쟁하고 있고 블록이 너무 빨리 발생하고 가상 계산에 따르면 이제 네 번째 블록에 하나가 아닌 두 개의 XNUMX이 필요하다고 가정해 보겠습니다.

두 개의 XNUMX을 얻으려면 조금 더 오래 걸릴 것이지만 우리는 나와 경쟁하는 다른 많은 사람들이 있다고 상상하고 있으므로 누구나 블록을 찾는 데 걸리는 총 시간이 목표에 유지됩니다.

다음 블록은 다음과 같습니다.

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

시간을 주의하십시오. 이전 블록 이후 10분 이상이 지났습니다(시연할 시간을 만들었습니다). 10분 목표는 확률적입니다. 다음 블록이 언제 발견되는지 정확히 알 수 없습니다.

나는 두 개의 1이 나타날 때까지 16분 동안 키보드를 어슬렁거렸다. 이것은 하나의 XNUMX을 찾는 것보다 기하급수적으로 더 어려웠습니다. 연속으로 두 개의 XNUMX을 찾을 확률은 XNUMX분의 XNUMX입니다.2, 또는 1분의 256의 확률입니다.

더 많은 사람들이 새로운 비트코인 ​​채굴과 경쟁에 참여하게 된다면 결국 XNUMX개의 XNUMX이 필요할 것입니다.

방금 이전 블록의 해시가 포함된 마지막 실제 비트코인 ​​블록을 조회했습니다. 해시는 다음과 같습니다.

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

19개의 1입니다! 16분의 XNUMX이 있다19 시도할 때마다 그러한 블록을 찾을 확률. Bitcoin 광부는 전 세계에서 집합적으로 초당 많은 시도를 합니다.

초당 시도 횟수를 "해시율"이라고 합니다. 현재 추정되는 세계 해시 비율은 초당 200억 테라 해시(19테라 해시는 10조 해시)입니다. 초당 그렇게 많은 시도로 인해 XNUMX개의 XNUMX으로 시작하는 해시가 있는 블록이 약 XNUMX분마다 발견됩니다.

앞으로 더 많은 채굴자가 참여할수록 해시 비율이 올라가고 블록이 더 빨리 발견되며 비트코인의 난이도는 20개의 10을 요구하도록 조정되어 블록 생산을 약 XNUMX분으로 다시 낮출 것입니다.

반등

비트코인이 처음 시작되었을 때 블록당 50개의 비트코인이 생성되었습니다. 비트코인 블록체인의 규칙은 210,000 블록마다 보상이 반으로 줄어들도록 지정합니다. 이 순간을 "반감기"라고 하며 대략 10년마다 발생합니다. 2140분 간격으로 블록을 유지하는 난이도 조정과 결합된 반감기는 블록 보상이 0.00000001년 경에 1 또는 21사토시(비트코인의 가장 작은 단위)가 되며 더 이상 반감할 수 없음을 의미합니다. 채굴은 멈추지 않지만 블록 보상은 XNUMX이 됩니다. 그 순간부터 앞으로 새로운 비트코인이 생성되지 않으며 비트코인의 수는 수학적으로 계산할 수 있고 XNUMX만 코인에 가깝습니다. 이것이 총 공급량을 알 수 있는 방법입니다. 프로그래밍 방식으로 설정됩니다.

블록 보상이 XNUMX이더라도 채굴자들은 여전히 ​​거래 수수료를 벌기 위해 계속 일하도록 인센티브를 받을 것입니다.

블록 보상이 정확히 어떻게 반으로 줄어들까요? 노드가 보유한 코드에 있습니다. 그들은 광부가 210,000비트코인 이상을 지불하는 25 이후의 모든 새 블록을 거부한다는 것을 알고 있습니다. 그런 다음 광부가 420,000비트코인 이상을 지불하는 12.5개 이후의 모든 블록을 거부합니다.

거래 수수료

지금까지 저는 단일 트랜잭션(광부가 보상을 받는 트랜잭션)으로 가상 블록만 보여주었습니다. 이것을 "코인베이스 거래"라고 합니다.

Conbase라는 회사의 이름을 따서 명명된 것이 아니라 Coinbase를 의미합니다. 회사는 그 반대가 아니라 코인베이스 거래의 이름을 따서 이름을 지었습니다. 혼동하지 마십시오.

코인베이스 거래 외에도 서로 돈을 주고 받는 거래가 있습니다. 다음은 상상된 예입니다.

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

이번에는 실제 해시를 찾는 데 신경 쓰지 않았습니다(실제로 블록 200,001에서 보고된 실제 해시입니다). 그냥 재미로 만든 nonce지만 거기에 메시지가 포함될 수 있습니다.

Satoshis는 그날의 신문 헤드라인 뒤에 첫 번째 비트코인 ​​블록(The Genesis Block)에 "은행에 대한 두 번째 구제금융 위기에 처한 장관"이라는 단어를 포함시킨 것으로 유명합니다.

SHA256 및 마이닝이 Bitcoin 네트워크 PlatoBlockchain 데이터 인텔리전스를 보호하는 방법. 수직 검색. 일체 포함.

여기서 요점은 132개의 트랜잭션이 포함되어 있다는 것입니다(모두 표시되지는 않음). 트랜잭션 #132를 보십시오. 한 주소에서 2.3비트코인이 다른 주소로 2.1비트코인을 지불하고 두 번째 주소로 0.1비트코인을 지불합니다(주소 길이를 줄이기 위해 점을 사용했습니다).

따라서 2.3비트코인 소스는 총 2.2비트코인(2.2 + 0.1 = 2.2)을 지불합니다. 0.1 비트코인이 누락되었습니까? 아니요, 그 차이는 내가 설명할 것처럼 광부가 주장합니다.

광부는 블록 보상으로 25비트코인을 지불할 수 있습니다(210,000블록이 지나서 보상이 50에서 25로 반감됨). 그런데 보시면 코인베이스 거래량이 27.33880022입니다. 추가 2.33880022 비트코인은 블록의 다른 132개 트랜잭션에서 발생합니다. 입력은 모두 출력 합계보다 약간 더 큽니다. 따라서 광부는 이 "버려진" 비트코인을 자신에 대한 지불로 주장하게 됩니다. 이는 채굴자에게 지급되는 거래 수수료로 간주됩니다.

블록 공간은 제한되어 있습니다. 비트코인이 처음 등장했을 때 사용자는 수수료 없이 거래를 보낼 수 있었고 채굴자는 블록에 거래를 포함할 것입니다. 그러나 이제 더 많은 사용자가 있고 다음 블록에 진입하는 것이 경쟁적이기 때문에 사용자는 거래에 수수료를 포함하여 채굴자가 다른 사람보다 자신의 거래를 선택하도록 유도합니다.

따라서 블록 보상이 꾸준히 감소하여 XNUMX년마다 절반으로 줄어들고 결국에는 XNUMX이 되더라도 채굴자들은 여전히 ​​이러한 방식으로 보상을 받습니다.

일부는 언젠가는 채굴자에 대한 보상이 충분하지 않아 비트코인이 실패할 것이라고 제안했습니다. 이 우려는 완전히 폭로되었으며 여기서 반복하지 않겠습니다.

블록을 다시 쓸 수 있습니까?

이것은 극히 드물며 그 이유를 이해할 가치가 있습니다. 그러면 비트코인 ​​거래가 불변(불변)인 이유를 알게 될 것입니다.

이전 블록의 해시가 현재 블록에 포함된다고 앞서 설명했습니다. 즉, 이전 블록에서 트랜잭션을 편집하면 편집된 블록의 해시가 변경됩니다. 그러나 그 해시는 다음 블록에 기록되므로 다음 블록도 업데이트해야 합니다. 그러나 다음 블록에 기록된 해시를 변경하면 해당 해시도 변경되어야 하는 식입니다.

해시가 변경될 때마다 이 멋진 10을 모두 잃고 무작위로 보이는 해시만 남게 되며 10을 다시 얻으려면 모든 작업을 다시 수행해야 합니다. 편집을 시도한 블록에 대해 그렇게 하면 다음 블록에 대해 작업을 다시 실행하고 가장 최근 블록까지 계속 작업을 다시 수행해야 합니다. 비트코인의 규칙은 가장 긴 블록 체인이 실제 비트코인 ​​레코드이기 때문에 단순히 이전 블록에서 멈출 수 없습니다. 10 블록 전으로 돌아가서 블록을 편집하면 더 이상 가장 긴 체인이 없습니다. XNUMX개의 블록을 더 추가한 다음 조금 더 추가해야 합니다. 왜냐하면 이 XNUMX개의 블록을 생성할 때 실제 체인이 조금 더 길어질 수 있기 때문입니다. 당신은 실제 사슬을 추월하기 위해 경주해야합니다. 성공하면 새 버전이 실제 버전이 됩니다.

편집된 블록에서 최신 블록까지 전 세계의 집단적 해싱 노력을 반복하는 것은 비트코인 ​​편집의 장벽입니다. 모든 가능성이 없는 XNUMX으로 해시를 생성하는 데 에너지가 소비되었으며 비트코인을 편집하려면 에너지 소비를 반복해야 합니다. 이것이 비트코인 ​​채굴에 사용되는 에너지가 "낭비"되지 않는 이유입니다. 중앙 기관을 신뢰할 필요 없이 원장을 변경할 수 없도록 편집에서 비트코인을 방어하기 위해 존재합니다.

두 명의 광부가 동시에 블록을 찾으면 어떻게 됩니까?

이것은 실제로 때때로 발생하며 항상 다음과 같이 정렬됩니다.

모든 노드는 거의 동시에 새로운 블록 중 하나를 먼저 수신하고 해당 블록을 수락하고 잠시 후에 도착하는 블록을 거부합니다. 이로 인해 네트워크가 분할되지만 일시적입니다.

설명을 위해 블록 중 하나를 파란색으로, 다른 하나를 빨간색으로 부르겠습니다(색상이 없으므로 참고하세요).

그런 다음 광부는 다음 블록에서 작업하지만 체인을 확장하는 블록에 대한 분할이 있습니다.

승리한 광부가 파란색 사슬을 사용하여 블록을 찾았다고 가정해 봅시다. 그들은 새로운 블록을 모든 노드에 보낼 것이고 가장 긴 체인이 분명해질 것입니다. 빨간색 체인을 수락한 노드는 이를 삭제하고 파란색 체인을 채택합니다.

레드 체인에서 작업하던 모든 광부는 중단되고 이제 더 긴 체인인 블루 체인에서 작업하게 됩니다. 빨간 사슬이 죽었습니다.

충수

XNUMX위 광부의 블록이 유효하지 않은 이유

블록 700,000이 MINER-A에 의해 채굴되었다고 가정합니다. 700,000초 후, MINER-B는 블록 30의 다른 버전도 생성했습니다. MINER-B가 이 대안을 브로드캐스트하면 모든 노드는 이미 MINER-A에 의해 블록을 보고 수락했기 때문에 이를 거부할 것입니다. 게다가 그 700,001초 동안 MINER-C가 블록 700,000을 찾았다고 가정해 봅시다. MINER-B의 경쟁 700,001번째 블록이 현재 체인(최대 XNUMX개)을 확장하지 않는다는 점을 감안할 때 이 역시 거부됩니다.

더 흥미로운 점은 MINER-B가 경쟁 버전 700,001 대신 블록 700,000에서 작업했다면 최종적으로 대체 블록 700,001을 찾아야 하는 만큼 유효한 블록 700,000을 채굴할 기회를 가졌을 것입니다. 따라서 광부는 새 블록을 보자마자 다음 블록에 대한 노력을 설정해야 합니다.

그러나 Miner-B가 MINER-A보다 700,000초 후에 XNUMX 블록을 찾은 경우 지리적 위치와 인터넷 속도에 따라 일부 노드는 MINER-A의 블록을 먼저 보고 다른 노드는 MINER-B의 블록을 먼저 볼 수 있습니다. 이 경우 임시 포크가 있으며 일부 광부는 한 버전을 확장하기 위해 작업하고 다른 광부는 다른 버전을 확장하기 위해 작업합니다. 이전에 "파란색 사슬" 및 "빨간색 사슬" 설명자를 사용하여 설명했듯이 결국 버전 중 하나가 다른 버전보다 먼저 확장되어 만장일치로 유효한 버전이 됩니다.

이것은 Arman The Parman의 게스트 게시물입니다. 표현된 의견은 전적으로 자신의 것이며 BTC Inc 또는 Bitcoin Magazine.

타임 스탬프 :

더보기 Bitcoin Magazine