Bitcoin

비트코인은 어떻게 작동합니까?

비트코인은 2009년에 만들어진 전자 결제 시스템입니다.
전 세계 누구에게나 송금할 수 있으며 계정 생성을 위해 누구의 허가도 받을 필요가 없습니다.

그것은 누가 계좌를 받고 어떤 거래가 처리되는지를 통제하는 대형 은행이 있는 현대 금융 시스템에 대한 솔루션으로 만들어졌습니다.
이는 자금 통제가 중앙 집중화되어 있으며 은행을 전적으로 신뢰해야 함을 의미합니다.

은행은 우리의 돈을 보유하고 전자적으로 이체할 수 있다고 믿어야 하지만, 준비금이 거의 없는 신용 거품의 물결 속에서 그것을 빌려줍니다. 사토시 나카모토

은행의 중앙 집중화와 그에 따른 2007년 금융 위기는 비트코인 개발에 영감을 주었습니다.
그것은 지불 시스템이며 중앙 제어 지점이 없이 실행됩니다.
사토시 나카모토가 익명으로 디자인 했으며 2009년 1월에 출시되었습니다 .
누구나 프로그램을 실행하거나 시스템을 사용할 수 있습니다.


비트코인 이란?

비트코인은 컴퓨터 프로그램 일 뿐입니다 . 프로그램을 다운로드하여 컴퓨터에서 실행할 수 있습니다.


비트코인 코어 다운로드 페이지

프로그램을 실행하면 이 프로그램을 실행하는 다른 컴퓨터에 연결되어 사용자와 파일 공유를 시작 합니다.
이 파일을 블록체인 이라고 하며 기본적으로 트랜잭션 의 큰 목록입니다 .

새 트랜잭션이 네트워크에 들어오면 모든 사람이 트랜잭션 사본을 가질 때까지 컴퓨터에서 컴퓨터로 중계 됩니다.
약 10분 간격으로 네트워크의 임의의 컴퓨터(노드)가 수신한 최신 트랜잭션을 블록체인에 추가하고 업데이트를 네트워크의 다른 모든 사람과 공유합니다.

결과적으로 비트코인 프로그램은 파일을 공유하고 새로운 트랜잭션으로 업데이트하기 위해 서로 통신 하는 대규모 컴퓨터 네트워크 를 생성합니다 . 그것을 우리는 블록체인이라 부릅니다.


비트코인은 어떤 문제를 해결하나요?

비트코인 이전에는 컴퓨터 네트워크를 통해 트랜잭션을 중계하는 것이 가능했습니다. 그러나 문제는 충돌하는 트랜잭션을 컴퓨터 네트워크에 삽입할 수 있다는 것 입니다. 예를 들어, 동일한 디지털 코인을 사용하는 두 개의 개별 트랜잭션을 생성하고 이 두 트랜잭션을 동시에 네트워크로 보낼 수 있습니다. 이를 "이중 지출 "이라고 합니다.

따라서 중앙 제어 지점이 없는 전자 지불 시스템을 만드는 경우 이러한 거래 중 "먼저" 발생한 거래를 파악하는 데 문제가 있으며, 이는 모두 작동하는 컴퓨터 네트워크가 있을 때 수행하기 어려운 일입니다.
독립적으로. 일부 컴퓨터는 먼저 녹색 트랜잭션을 수신하고 일부 컴퓨터는 빨간색 트랜잭션을 먼저 수신합니다.

누가 "먼저" 와서 파일에 기록되어야 하는지를 누가 결정 할까요?

비트코인은 노드가 수신 한 모든 트랜잭션을 파일에 쓰기 전에 메모리 에 유지하도록 하여 이 문제를 해결합니다.
그런 다음 10분 간격으로 네트워크의 임의 노드가 메모리의 트랜잭션을 파일에 추가합니다.

이 업데이트된 파일은 네트워크와 공유되고 노드는 업데이트된 파일의 트랜잭션을 "정확한" 것으로 받아들이고 메모리에서 충돌하는 트랜잭션을 제거합니다. 결과적으로 이중 지출 트랜잭션이 파일에 기록되지 않으며 모든 노드가 서로 동의하여 파일을 업데이트할 수 있습니다.

파일에 트랜잭션을 추가하는 프로세스를 마이닝(채굴) 이라고 하며 기본적으로 네트워크 의 단일 노드에서 제어할 수 없는 네트워크 전체의 경쟁 입니다.

채굴은 어떻게 이루어지나요?

우선 각 노드는 컴퓨터의 임시 메모리인 메모리 풀 에 수신 한 최신 트랜잭션 을 저장합니다. 모든 노드는 메모리 풀에서 파일( 블록체인 )로 트랜잭션을 시도하고 마이닝 할 수 있습니다 .
이를 위해 노드는 메모리 풀에서 블록 이라는 컨테이너로 트랜잭션을 수집한 다음 처리 능력 을 사용하여 이 트랜잭션 블록을 블록체인에 추가하려고 시도합니다.

그렇다면 이 처리 능력은 어디에서 오는 것일까요? 이 블록을 블록체인에 추가하려면 트랜잭션 블록을 해시 함수 라고 하는 것에 입력해야 합니다 . 해시 함수는 기본적으로 모든 양의 데이터를 가져와서 스크램블하고 완전히 임의의(그러나 고유한) 숫자를 내보내는 미니 컴퓨터 프로그램입니다.

블록이 블록체인에 성공적으로 추가되려면 이 숫자( 블록 해시 )가 네트워크의 모든 사람이 동의하는 임계값인 목표 보다 낮아야 합니다.

결과 블록 해시 가 목표보다 낮지 않은 경우 블록 내부의 데이터를 약간 조정하고 해시 함수를 다시 통과할 수 있습니다. 이것은 희망적으로 목표보다 낮을 완전히 다른 숫자를 생성할 것입니다. 그렇지 않은 경우 블록을 조정하고 다시 시도하십시오.

요약하면, 마이닝 프로세스는 처리 능력을 사용하여 해시 계산을 가능한 한 빨리 수행하여 네트워크에서 대상 아래의 블록 해시를 얻으려는 첫 번째 컴퓨터가 되려고 합니다. 성공하면 블록체인에 트랜잭션 블록을 추가하고 네트워크의 나머지 부분과 공유할 수 있습니다.

참고: 누구나 블록을 채굴하려고 시도하는 것은 여전히 가능하지만 가정용 컴퓨터에서는 더 이상 경쟁력이 없습니다. 이제 해시 계산을 가능한 한 빠르고 효율적으로 수행하도록 설계된 특수 하드웨어가 있습니다. 즉, 채굴은 이제 전문 하드웨어와 저렴한 전기에 액세스할 수 있는 사람들이 주로 수행합니다.

비트코인은 어디에서 왔습니까?

처리 능력을 사용하여 새로운 트랜잭션 블록을 블록체인에 추가하려는 인센티브로, 각각의 새로운 블록은 이전에 존재하지 않았던 고정된 양의 비트코인을 사용할 수 있게 합니다. 따라서 블록을 성공적으로 채굴할 수 있다면 이러한 새로운 비트코인을 자신의 노력에 대한 보상으로 "보낼" 수 있습니다.

이 새로운 비트코인의 보상을 블록 보상 이라고 하며 , 이 과정을 "채굴"이라고 하는 이유입니다.


파일 이름이 "블록체인"인 이유는 무엇입니까?

우리가 보았듯이 트랜잭션은 파일에 개별적으로 추가되지 않고 함께 수집되고 블록으로 추가됩니다. 이 새로운 블록 각각은 기존 블록 위에 구축 되므로 파일은 블록 체인 으로 구성됩니다 . 따라서 블록체인 .

또한 네트워크의 모든 노드 는 항상 블록체인의 "공식" 버전으로 수신 하는 가장 긴 블록 체인 을 채택합니다. 즉, 가장 긴 체인에 속하지 않는 블록은 다른 노드에서 유효한 것으로 간주되지 않기 때문에 광부는 항상 알려진 가장 긴 블록 체인의 "팁" 위에 빌드하려고 합니다.

따라서 누군가 트랜잭션 기록을 다시 작성하려면 다른 노드가 채택할 수 있는 가장 긴 새 체인을 만들기 위해 더 긴 블록 체인을 다시 작성해야 합니다. 그러나 이를 달성하려면 단일 광부가 나머지 네트워크를 합친 것보다 더 많은 컴퓨터 처리 능력이 필요합니다.

결과적으로 네트워크의 결합된 노력으로 인해 개인이 네트워크를 "초과"하고 블록체인을 다시 작성하기가 어렵습니다.


거래는 어떻게 이루어지나요?

블록체인을 우리가 출력 이라고 부르는 안전 금고 를 위한 저장 시설로 생각할 수 있습니다 . 이러한 출력은 다양한 양의 비트코인을 담는 컨테이너일 뿐입니다.

비트코인 거래 를 할 때 일부 출력을 선택하고 잠금 을 해제 한 다음 새 출력을 만들고 새 잠금 을 설정합니다.

따라서 누군가에게 비트코인을 "보내는" 것은 실제로 새 금고에 일정량의 비트코인을 넣고 잠금을 해제하여 비트코인을 "보내는" 사람만 잠금을 해제할 수 있도록 하는 것입니다.

예를 들어 비트코인을 보내고 싶다면 잠금 해제할 수 있는 블록체인의 일부 출력을 선택하고 사용자만 잠금 해제 할 수 있는 새 출력을 생성합니다. 또한 내가 잠금 해제한 모든 비트코인을 보내고 싶지 않다면 "변경 사항"으로 추가 출력을 만들고 나 자신에게 잠글 것입니다.

앞으로 비트코인을 다른 사람에게 보내려면 기존 출력(잠금 해제할 수 있음)을 선택하고 새 출력을 생성하는 프로세스를 반복해야 합니다. 그 결과 비트코인 거래는 비트코인의 움직임이 일련의 거래로 연결되는 그래프와 같은 구조를 형성합니다.

마지막으로, 트랜잭션이 블록체인에 마이닝되면 트랜잭션에서 소진된(사용된) 출력은 다른 트랜잭션에서 사용할 수 없으며 새로 생성된 출력은 향후 트랜잭션에서 이동할 수 있습니다.


비트코인을 어떻게 소유할 수 있습니까?

비트코인을 "수신"하려면 고유한 키 세트가 있어야 합니다 . 이 키 세트는 비트코인에서 공개 키 및 개인 키 라고 하는 것을 제외하고는 계정 번호 및 비밀번호 와 같습니다 . 예를 들어, 내가 비트코인을 보내고 싶다면 먼저 공개 키 를 제공해야 합니다 . 트랜잭션을 생성할 때 출력(안전 금고)의 잠금 장치 안에 공개 키를 배치합니다 . 그런 다음 다른 사람에게 비트코인을 보내고 싶을 때 개인 키 를 사용하여 이 출력의 잠금을 해제합니다.

그렇다면 공개 키와 개인 키를 어디에서 얻을 수 있습니까? 음, 암호화 의 도움으로 실제로 직접 생성 할 수 있습니다 .

간단히 말해서 개인 키는 큰 난수 이고 공개 키는 이 개인 키로 계산된 숫자입니다. 그러나 영리한 부분은 다음과 같습니다. 공개 키를 다른 사람에게 줄 수는 있지만 개인 키를 알아낼 수는 없습니다.

이제 공개 키에 할당된 비트코인의 잠금을 해제하려면 개인 키를 사용하여 디지털 서명 이라고 하는 것을 만듭니다 . 이 디지털 서명은 개인 키를 공개할 필요 없이 공개 키의 소유자(따라서 비트코인 ​​잠금을 해제할 수 있음)임을 증명합니다 . 이 디지털 서명은 생성된 거래에만 유효하므로 동일한 공개 키로 잠긴 다른 비트코인을 잠금 해제하는 데 사용할 수 없습니다.

이 시스템은 "공개 키 암호화"로 알려져 있으며 1978 년 부터 사용 가능 했습니다. 비트코인은 이 시스템을 사용하여 계정과 비밀번호를 발행하는 중앙 기관 없이 누구나 안전하게 비트코인을 보내고 받기 위한 키를 만들 수 있습니다.


요약

비트코인을 시작 하려면 개인 키 와 공개 키 를 생성해야 합니다 . 개인 키는 매우 큰 난수일 뿐이며 공개 키는 이 숫자에서 계산됩니다. 이러한 키는 컴퓨터에서 또는 계산기와 같은 간단한 도구에서도 쉽게 생성할 수 있습니다. 대부분의 사람들은 비트코인 지갑 을 사용하여 키를 생성하고 관리합니다.

비트코인을 받으려면 비트코인 을 보내려는 사람에게 공개 키 를 제공해야 합니다. 이 사람은 자신이 소유한 비트코인을 잠금 해제하는 트랜잭션 을 생성하고 비트코인의 새로운 "안전 금고"를 생성하고 공개 키를 잠금 장치 안에 넣습니다.

그런 다음 이 트랜잭션은 비트코인 네트워크의 모든 노드 로 전송되며, 네트워크 의 모든 노드 가 트랜잭션 사본을 가질 때까지 컴퓨터에서 컴퓨터로 중계 됩니다. 여기에서 각 노드는 블록체인에서 수신한 최신 트랜잭션 을 시도하고 마이닝 할 수 있습니다.

이 마이닝 프로세스에는 노드가 메모리 풀 에서 블록 으로 트랜잭션을 수집하고 해당 블록 데이터를 해시 함수 를 통해 반복적으로 넣어 (매번 약간의 조정 포함) 블록 해시 를 목표 값 아래로 가져오려고 시도합니다.

대상 아래에서 블록 해시를 찾는 첫 번째 광부는 블록을 자신의 블록체인 에 추가하고 이 블록을 네트워크의 다른 노드에 브로드캐스트합니다. 각 노드는 또한 이 블록을 블록체인에 추가하고(메모리 풀에서 충돌하는 트랜잭션을 제거함) 마이닝 프로세스를 다시 시작하여 체인의 이 새 블록 위에 빌드를 시도합니다.

마지막으로, 이 블록을 채굴한 광부는 블록 내부에 자신의 특별한 트랜잭션 을 배치 하여 이미 존재하지 않는 비트코인을 일정량 모을 수 있습니다. 이 블록 보상 은 노드가 블록체인을 계속 구축하는 동시에 새로운 코인을 비트코인 네트워크에 배포하도록 하는 인센티브 역할을 합니다.


결론

비트코인은 전 세계의 다른 컴퓨터와 보안 파일을 공유하는 컴퓨터 프로그램입니다. 이 보안 파일은 트랜잭션으로 구성되며 이러한 트랜잭션은 암호화를 사용하여 사람들이 디지털 금고를 보내고 받을 수 있도록 합니다. 결과적으로 이것은 누구나 사용할 수 있고 중앙 통제 지점 없이 운영되는 전자 지불 시스템을 만듭니다.

비트코인 네트워크는 2009년 1월 출시 이후 중단 없이 운영되고 있습니다. 2019년 비트코인 ​​네트워크는 1 억 1,200만 건 이상의 트랜잭션 을 처리하여 총 $15,577,763,114,629.34 (15조 5800억) 2 를 이동 했습니다.

비트코인 프로그램 자체도 활발히 개발 중이며 릴리스 3 이후 600 명 이상의 개인이 코드에 기여했습니다 . 이는 소프트웨어가 "오픈 소스"라는 사실 때문입니다. 즉, 누구나 코드를 보고 개선에 기여할 수 있습니다.

https://bitcoin.org/bitcoin.pdf (백서)
https://github.com/bitcoin/bitcoin/ (소스 코드)


비트코인 설명 이미지 출처 learnmeabitcoin.com Thx Greg!