입문자를 위한 암호화폐: 비트코인 ​​및 그 이상

게시 됨: 2022-03-11

비트코인은 인터넷에서 많은 화제를 불러일으켰습니다. 그것은 조롱을 당했고 공격을 받았고 결국 받아들여졌고 우리 삶의 일부가 되었습니다. 그러나 Bitcoin은 혼자가 아닙니다. 현재 700개 이상의 AltCoin 구현이 있으며 유사한 원리와 다양한 암호화폐 알고리즘을 사용합니다.

인형 표지 그림을 위한 암호 화폐

그렇다면 Bitcoin과 같은 것을 만들려면 무엇이 필요합니까?

돈/정보를 교환하기 위한 탈중앙화된 익명 시스템을 만들려는 개인적인 동기를 이해하려고 하지 않고(그러나 여전히 그것이 도덕적 및 법적 활동의 범위에 있기를 희망함), 먼저 새로운 지불 시스템에 대한 기본 요구 사항을 분석해 보겠습니다.

  1. 모든 거래는 인터넷을 통해 이루어져야 합니다
  2. 우리는 거래를 처리할 중앙 기관을 원하지 않습니다.
  3. 사용자는 익명이어야 하며 가상 ID로만 식별해야 합니다.
  4. 단일 사용자는 원하는 만큼 가상 ID를 가질 수 있습니다.
  5. 가치 공급(새로운 가상 청구서)은 통제된 방식으로 추가되어야 합니다.

인터넷을 통한 분산 정보 공유

목록에서 처음 두 가지 요구 사항을 충족하고 인터넷을 통한 정보 교환에 대한 중앙 기관을 제거하는 것은 이미 가능합니다. 필요한 것은 P2P(Peer-to-Peer) 네트워크입니다.

P2P 네트워크에서의 정보 공유는 친구 및 가족 간의 정보 공유와 유사합니다. 네트워크의 적어도 한 구성원과 정보를 공유하면 결국 이 정보는 네트워크의 다른 모든 구성원에게 도달합니다. 유일한 차이점은 디지털 네트워크에서 이 정보는 어떤 식으로든 변경되지 않는다는 것입니다.

암호화폐 알고리즘 및 Toptal

가장 인기 있는 P2P 파일 공유(콘텐츠 전달) 시스템 중 하나인 BitTorrent에 대해 들어본 적이 있을 것입니다. P2P 공유를 위한 또 다른 인기 있는 응용 프로그램은 Skype 및 기타 채팅 시스템입니다.

결론은 기존 오픈 소스 P2P 프로토콜 중 하나를 구현하거나 사용하여 새로운 암호화폐를 지원할 수 있다는 것입니다. 이를 Topcoin 이라고 합니다.

해싱 알고리즘

디지털 ID를 이해하려면 암호화 해싱이 작동 하는 방식을 이해해야 합니다. 해싱은 임의의 크기의 디지털 데이터를 고정된 크기의 데이터로 매핑하는 프로세스입니다. 간단히 말해서 해싱은 읽을 수 있는 정보를 가져와 전혀 의미가 없는 것을 만드는 과정입니다.

해싱을 정치인으로부터 답변을 받는 것과 비교할 수 있습니다. 당신이 그들에게 제공하는 정보는 명확하고 이해할 수 있지만 그들이 제공하는 출력은 단어의 무작위 스트림처럼 보입니다.

P2P 프로토콜

좋은 해싱 알고리즘에는 다음과 같은 몇 가지 요구 사항이 있습니다.

  1. 해싱 알고리즘의 출력 길이는 고정되어야 함(좋은 값은 256바이트)
  2. 입력 데이터의 가장 작은 변화에도 출력에 상당한 차이가 발생해야 합니다.
  3. 동일한 입력은 항상 동일한 출력을 생성합니다
  4. 입력을 계산하기 위해 출력 값을 반전시킬 방법이 없어야 합니다.
  5. HASH 값 계산은 집중적으로 계산해서는 안 되며 빨라야 합니다.

간단한 통계를 살펴보면 HASH 길이가 제한되어 있기 때문에 가능한 HASH 값의 수는 제한적이지만 엄청난 수입니다. 그러나 우리의 해싱 알고리즘(이름을 Politician256으로 지정)은 동물원에 있는 원숭이가 타자기로 Hamlet을 올바르게 입력하는 것과 같은 빈도로 다른 입력에 대해 중복 해시 값만 생성할 만큼 충분히 신뢰할 수 있어야 합니다!

햄릿이 단지 이름이나 단어라고 생각한다면 지금 읽기를 중단하거나 무한 원숭이 정리에 대해 읽어보십시오.

전자 서명

문서에 서명할 때 문서 텍스트에 서명을 추가하기만 하면 됩니다. 디지털 서명도 비슷합니다. 서명하는 문서에 개인 데이터를 추가하기만 하면 됩니다.

해싱 알고리즘 이 입력 데이터의 가장 작은 변경이라도 출력에서 ​​상당한 차이를 생성해야 하는 규칙을 준수한다는 것을 이해한다면 원본 문서에 대해 생성된 HASH 값이 문서에 대해 생성된 HASH 값과 다를 것이 분명합니다. 첨부된 서명으로.

원본 문서와 개인 데이터가 추가된 문서에 대해 생성된 HASH 값의 조합은 디지털 서명된 문서 입니다.

그리고 이것이 우리가 HASH 값을 생성하기 전에 문서에 추가한 데이터로 정의되는 가상 ID 에 도달하는 방법입니다.

다음으로, 서명을 복사할 수 없고 아무도 귀하를 대신하여 트랜잭션을 실행할 수 없는지 확인해야 합니다. 서명을 안전하게 보호하는 가장 좋은 방법은 서명을 직접 보관하고 다른 사람이 서명된 문서의 유효성을 검사할 수 있는 다른 방법을 제공하는 것입니다. 다시 말하지만, 쉽게 사용할 수 있는 기술과 알고리즘에 의존할 수 있습니다. 우리가 사용해야 하는 것은 비대칭 암호화 라고도 하는 공개 키 암호화 입니다.

이 작업을 수행하려면 개인 키공개 키 를 만들어야 합니다. 이 두 키는 일종의 수학적 상관 관계에 있으며 서로 의존합니다. 이러한 키를 만드는 데 사용할 알고리즘은 각 개인 키가 다른 공개 키를 갖도록 합니다. 이름에서 알 수 있듯이 개인 키는 자신만을 위해 보관할 정보이고 공개 키는 공유할 정보입니다.

개인 키(신원)와 원본 문서를 서명 알고리즘 의 입력 값으로 사용하여 HASH 값을 생성하는 경우 키를 비밀로 유지한다고 가정하면 다른 누구도 해당 문서에 대해 동일한 HASH 값을 생성할 수 없음을 확신할 수 있습니다. .

비트코인과 암호화폐의 작동 원리

누군가 귀하의 서명을 검증해야 하는 경우 원본 문서, 귀하가 생성한 HASH 값 및 공개 키를 서명 검증 알고리즘 에 대한 입력으로 사용하여 이러한 값이 일치하는지 확인합니다.

서명 확인 알고리즘

비트코인/돈을 보내는 방법

P2P 통신, 디지털 ID 생성 메커니즘(개인 및 공개 키)을 구현했으며 사용자가 개인 키를 사용하여 문서에 서명할 수 있는 방법을 제공했다고 가정하면 동료에게 정보를 보낼 준비가 된 것입니다.

우리는 당신이 얼마나 많은 돈을 가지고 있는지 확인하는 중앙 기관이 없기 때문에 시스템은 매번 당신에게 그것에 대해 묻고 당신이 거짓말을 했는지 아닌지를 확인해야 할 것입니다. 따라서 거래 기록에는 다음 정보가 포함될 수 있습니다.

  1. 나는 100개의 탑코인을 가지고 있다
  2. 약을 위해 약사에게 10개의 코인을 보내고 싶습니다( 여기에 약사 공개 키를 포함해야 함).
  3. 시스템에 거래 수수료로 하나의 코인을 주고 싶습니다( 나중에 다시 설명하겠습니다 )
  4. 남은 89코인을 보관하고 싶습니다

남은 일은 거래 기록을 개인 키로 디지털 서명하고 거래 기록을 네트워크의 동료에게 전송하는 것뿐입니다. 그 시점에서 모든 사람은 누군가(귀하의 가상 신원)가 다른 사람(약사의 가상 신원)에게 돈을 보내고 있다는 정보를 받게 됩니다.

작업이 완료되었습니다. 그러나 전체 네트워크가 귀하가 실제로 100개의 코인을 가지고 있고 따라서 이 거래를 실행할 수 있다는 데 동의할 때까지 귀하의 약값은 지불되지 않을 것입니다. 거래가 확인된 후에야 약사가 자금을 받고 약을 보낼 것입니다.

Cryptocurrency Miners: 새로운 유형의 에이전트

광부들은 매우 열심히 일하는 사람들로 알려져 있으며, 제 생각에는 급여가 매우 적습니다. 암호 화폐의 디지털 세계에서 광부는 매우 유사한 역할을 하지만, 이 경우 흙더미를 파는 대신 계산 집약적인 작업을 수행합니다. 실제 채굴자들과 달리 일부 암호화폐 채굴자들은 지난 5년 동안 작은 부를 얻었지만 많은 사람들이 이 위험한 노력으로 재산을 잃었습니다.

광부는 시스템의 핵심 구성 요소이며 주요 목적은 사용자가 요청한 모든 트랜잭션의 유효성을 확인하는 것입니다.

거래(또는 몇몇 다른 사용자가 요청한 여러 거래의 조합)의 유효성을 확인하기 위해 광부는 두 가지 작업을 수행합니다.

첫째, 그들은 "모든 사람이 모든 것을 알고 있다"는 사실에 의존할 것입니다. 즉, 시스템에서 실행되는 모든 트랜잭션이 복사되어 네트워크의 모든 피어가 사용할 수 있습니다. 그들은 처음부터 실제로 100개의 코인이 있는지 확인하기 위해 거래 내역을 조사할 것입니다. 계정 잔액이 확인되면 특정 HASH 값이 생성됩니다. 이 해시 값은 특정 형식을 가져야 합니다. 특정 수의 0으로 시작해야 합니다 .

이 HASH 값을 계산하기 위한 두 가지 입력이 있습니다.

  1. 거래 기록 데이터
  2. 광부의 작업 증명

입력 데이터의 가장 작은 변화에도 출력 HASH 값에 상당한 차이가 발생해야 한다는 점을 고려할 때 채굴자는 매우 어려운 작업을 수행합니다. 그들은 0으로 시작하는 HASH를 생성할 작업 증명 변수에 대한 특정 값을 찾아야 합니다. 시스템에서 검증된 각 트랜잭션에 최소 40개의 0이 필요한 경우 광부는 올바른 작업 증명 을 찾기 위해 약 2^40개의 서로 다른 HASH 값을 계산해야 합니다.

광부가 작업 증명에 대한 적절한 가치를 찾으면 검증된 거래의 일부로 추가할 수 있는 거래 수수료(당신이 지불할 의사가 있는 단일 코인)를 받을 자격이 있습니다. 모든 검증된 트랜잭션은 네트워크의 피어에게 전송되고 블록체인 으로 알려진 특정 데이터베이스 형식으로 저장됩니다.

그러나 광부의 수가 증가하고 하드웨어가 훨씬 더 효율적이 된다면 어떻게 될까요? 비트코인은 CPU, GPU 및 FPGA에서 채굴되었지만 궁극적으로 채굴자들은 초기 솔루션보다 훨씬 더 강력한 자체 ASIC 칩을 설계하기 시작했습니다. 해시율이 올라갈수록 채굴 난이도도 올라가서 평형을 보장합니다. 더 많은 해싱 파워가 네트워크에 도입되면 난이도가 올라가고 그 반대도 마찬가지입니다. 많은 채굴자들이 그들의 작업이 더 이상 수익성이 없기 때문에 플러그를 뽑기로 결정하면 난이도가 새로운 해시 비율에 맞게 재조정됩니다.

입문자를 위한 블록체인: 글로벌 암호화폐 원장

블록체인은 시스템에서 수행된 모든 거래의 이력을 포함합니다. 모든 검증된 트랜잭션 또는 트랜잭션 배치는 체인의 또 다른 링이 됩니다. 모든 단일 블록체인 개발 회사는 이 공개 장부에 의존합니다.

따라서 비트코인 ​​블록체인은 본질적으로 거래가 시간순으로 나열되는 공개 장부입니다.

비트코인 블록체인의 첫 번째 링은 제네시스 블록이라고 합니다.

블록체인 작동 방식에 대해 자세히 알아보려면 Nermin Hajdarbegovic의 Blockchain Technology Explained: Powering Bitcoin을 읽어보시기 바랍니다.

시스템에서 활성화할 수 있는 광부의 수에는 제한이 없습니다. 이는 두 명 이상의 광부가 동일한 거래를 검증할 수 있음을 의미합니다. 이런 일이 발생하면 시스템은 단순히 0을 계산하여 각 광부가 거래를 검증하는 데 투자한 총 노력을 확인합니다. 더 많은 노력을 투자한 광부(앞에 0이 더 많이 발견됨)가 우세하고 자신의 블록이 수락됩니다.

화폐 공급 통제

비트코인 시스템의 첫 번째 규칙은 최대 21,000,000개의 비트코인이 생성될 수 있다는 것입니다. 이 수치는 아직 달성되지 않았으며, 현재 추세에 따르면 이 수치는 2140년에 도달할 것으로 생각됩니다.

2,100만 단위는 그다지 많지 않은 것처럼 들리기 때문에 이러한 시스템의 유용성에 대해 의문을 제기할 수 있습니다. 그러나 비트코인 ​​시스템은 소수점 이하 8자리 값(0.00000001)까지 지원합니다. 이 비트코인의 가장 작은 단위는 비트코인 ​​프로토콜 뒤에 있는 익명의 개발자인 사토시 나카모토를 기리기 위해 사토시 라고 합니다.

거래 검증에 대한 보상으로 새로운 코인이 생성됩니다. 이 보상 은 거래 기록을 생성할 때 지정한 거래 수수료 가 아니라 시스템에서 정의합니다. 보상 금액은 시간이 지남에 따라 감소하며 총 발행 코인 수(21m)에 도달하면 결국 0으로 설정됩니다. 이런 일이 발생하면 채굴자가 검증을 위해 더 가치 있는 거래의 우선 순위를 정할 수 있기 때문에 거래 수수료가 훨씬 더 중요한 역할을 합니다.

최대 코인 수의 상한선을 설정하는 것 외에도 Bitcoin 시스템은 새로운 코인의 일일 생산량을 제한하는 흥미로운 방법을 사용합니다. 작업 증명 계산에 필요한 최소 선행 0 수를 보정하여 트랜잭션을 확인하고 새 코인의 보상을 받는 데 필요한 시간은 항상 약 10분으로 설정됩니다. 블록체인에 새 블록을 추가하는 시간이 줄어들면 시스템에서 작업 증명이 선행 0을 45개 또는 50개 생성하도록 요구할 수 있습니다.

따라서 비트코인 ​​시스템은 얼마나 빨리 그리고 얼마나 많은 새로운 코인을 생성할 수 있는지를 제한함으로써 화폐 공급을 효과적으로 통제하고 있습니다.

자신의 통화 "인쇄" 시작

보시다시피, 자신만의 비트코인 ​​버전을 만드는 것은 그리 어렵지 않습니다. 혁신적인 방식으로 구현된 기존 기술을 활용하여 암호화폐에 필요한 모든 것을 갖추게 됩니다.

  1. 모든 거래는 P2P 통신을 통해 인터넷을 통해 이루어지므로 중앙 기관이 필요 없습니다.
  2. 사용자는 비동기식 암호화를 사용하여 익명의 트랜잭션을 수행할 수 있으며 개인 키/공개 키 조합으로만 식별됩니다.
  3. 네트워크의 모든 피어에 안전하게 복사된 모든 트랜잭션의 검증된 글로벌 원장을 구현했습니다.
  4. 중앙 기관 없이도 통화의 안정성을 보장하는 안전하고 자동화된 통제된 통화 공급이 있습니다.

마지막으로 언급할 가치가 있는 것은 본질적으로 암호화폐는 분산된 P2P 네트워크에서 익명의 가치/정보를 한 사용자에서 다른 사용자로 전송하는 방법이라는 것 입니다.

송신자와 수신자만 해독할 수 있도록 비동기 암호화를 사용하여 암호화될 수도 있는 임의의 데이터로 트랜잭션 레코드의 코인을 교체하는 것을 고려하십시오. 이제 이것을 사물 인터넷 과 같은 것에 적용하는 것에 대해 생각해 보십시오!

암호 화폐 시스템은 스토브와 토스터 간의 통신을 가능하게 하는 흥미로운 방법일 수 있습니다.
트위터

많은 기술 전문가들이 이미 IoT 플랫폼에서 블록체인 기술의 사용을 모색하고 있지만, 상대적으로 새로운 기술의 잠재적인 애플리케이션은 이것만이 아닙니다.

자신만의 대체 화폐를 만들 이유가 없다면(실용적인 농담 제외), 분산 인증, 게임에서 사용되는 가상 화폐 생성, 소셜 네트워크와 같은 다른 것에 동일하거나 유사한 접근 방식을 사용할 수 있습니다. , 및 기타 애플리케이션을 사용하거나 전자 상거래 비즈니스를 위한 새로운 로열티 프로그램을 생성하여 일반 고객에게 나중에 사용할 수 있는 가상 토큰을 보상할 수 있습니다.