Jan Čapek은 Pavel Moravec과 Braiins를 세운 체코 엔지니어입니다. Bitcoin 채굴에는 강력한 기계를 사는 것만으로 충분하지 않습니다. 소프트웨어가 작업을 전달하고 기계의 동작을 제어해야 합니다. Čapek이 다루는 부분이 바로 이것입니다. 그는 채굴 장비 내부 소프트웨어인 Braiins OS에 기여했고, Moravec 및 Matt Corallo와 Stratum V2를 설계했습니다. 이 프로토콜은 장비와 다른 채굴 서비스가 통신하는 방법을 정합니다. 그의 이야기는 장비 소유자가 실제로 무엇을 통제할 수 있는지가 소프트웨어에 따라 달라짐을 보여 줍니다.
Čapek과 Pavel Moravec은 장비 안에서 실행되는 프로그램인 임베디드 소프트웨어를 개발하려고 Braiins를 세웠습니다. 한편 Slush로 알려진 Marek Palatinus는 2010년에 Bitcoin.cz Mining Pool을 만들었습니다. 풀은 채굴자들의 작업을 모으고 정해진 규칙에 따라 수익을 나누는 방식입니다. 각자 혼자 블록을 찾을 때까지 기다릴 필요를 줄여 줍니다. 이후 두 역사가 만났습니다. Čapek은 풀을 인수한 회사의 공동 창업자이고, 원래 풀을 만든 사람은 Palatinus입니다. [1]
2013년 Braiins는 과반 지분을 인수하고 풀 운영 전체를 맡았습니다. 덕분에 Palatinus는 Trezor에 집중할 수 있었습니다. 나머지 지분은 2020년 9월 1일에 인수했습니다. 웹사이트의 발표문에는 게시일이 2021년 12월 29일로 표시되지만, 본문은 그보다 앞선 거래일을 명시합니다. 역사를 읽을 때 중요한 차이입니다. 기사가 나중에 게시되었다고 운영도 그때 시작한 것은 아닙니다. 운영 인계와 소유권 변경 완료는 별개의 단계였습니다. [1]
Antminer S9를 떠올려 보세요. 칩들은 계산을 반복하지만, 프로그램이 작업을 준비하고 동작을 제어해야 합니다. 이런 장비 내부 소프트웨어를 펌웨어라고 합니다. 회사 연혁에 따르면 Čapek이 이끈 팀은 채굴 계산을 더 효율적으로 활용하는 AsicBoost 지원을 확인하고, 2018년에 공개된 오픈소스 Braiins OS를 개발했습니다. 공개된 코드는 개발자가 프로그램의 동작을 살펴볼 수 있게 합니다. 여기서 기록으로 확인되는 Čapek의 기여는 소프트웨어이며, 칩 자체를 설계했다는 뜻은 아닙니다. [1] [2]
2020년에 발표된 인터뷰에서 Čapek은 autotuning을 설명합니다. 선택한 소비 전력 설정에서 칩마다 적절한 주파수와 전압을 자동으로 찾는 방식입니다. 주파수는 작업 속도와, 전압은 전기적 동작과 관련됩니다. 목표는 이용 가능한 에너지를 더 효과적으로 쓰는 것입니다. 채굴자는 큰 성능 수치뿐 아니라 운영 비용도 따져야 합니다. Čapek은 당시 Braiins OS의 공개 기반 위에 유료 독점 기능을 추가하는 방안을 고려했습니다. 인터뷰는 그때의 사업 구상을 설명하며, 현재 모든 버전의 라이선스나 가격을 확정하지 않습니다. [2]
기계 안의 프로그램 외에도 작업과 결과를 주고받는 공통 언어가 필요합니다. 채굴 프로토콜은 양쪽이 이해할 수 있도록 합의한 메시지 규칙입니다. Jan Čapek, Pavel Moravec, Matt Corallo는 Stratum V2를 함께 설계했습니다. 공식 웹사이트는 독립적인 오픈소스 커뮤니티가 이를 유지한다고 설명합니다. 따라서 Čapek의 기여는 Braiins 제품 밖으로도 이어집니다. 여러 개발자가 서로 협력하는 프로그램을 만들 수 있는 공통 표준이지, 한 회사가 소유한 프로토콜이 아닙니다. [3]
채굴자가 인터넷으로 결과를 보낼 때 다른 사람이 중간에서 읽거나 바꾸기를 원하지 않습니다. Stratum V2는 메시지 무결성까지 확인하는 암호화와 서버 신원 확인을 사용합니다. 명세는 상위 서비스에 원격 접속할 때 안전한 연결 수립 절차를 요구하지만, 장비와 근처 중계 프로그램 사이 같은 로컬 네트워크에는 그 절차의 예외를 허용합니다. 이는 메시지가 이동하는 경로를 보호합니다. 풀의 회계를 감사하거나 나중의 지급을 보장하지는 않습니다. 안전한 전송과 신뢰할 수 있는 운영자는 별개의 문제입니다. [4]
다음 블록에 담을 거래를 포함한 초안을 누가 만드는지도 중요합니다. 이 초안을 블록 템플릿이라고 합니다. Job Declaration은 채굴자 쪽 프로그램인 클라이언트가 자신의 작업을 지원하는 풀과 조율하도록 합니다. Template Distribution은 템플릿을 공급하고 Mining Protocol은 채굴 작업과 결과를 전달합니다. 함께 작동해야 하는 시스템의 구성 요소들입니다. 펌웨어에 Stratum V2라고 적혀 있다는 사실만으로 채굴자가 실제 거래를 고른다고 판단할 수는 없습니다. 지원되고 활성화된 구성 요소가 결정합니다. [5]
명세는 거부도 다룹니다. DeclareMiningJob.Error는 채굴 작업 선언이 거부되었음을 뜻합니다. 클라이언트는 JDS, 즉 Job Declarator Server가 있는 다른 풀로 옮기거나 최후의 수단으로 solo mining에 들어가야 합니다. 혼자 채굴하면 풀에서와 같은 방식으로 수익을 나누지 않습니다. 전환에는 실제 작동하는 대체 설정도 필요하며, 프로토콜 이름이 무중단 운영을 보장하지는 않습니다. 설계의 목적은 채굴자가 떠나더라도 선택한 템플릿을 계속 쓰도록 하는 것입니다. 실제 가능 여부는 시스템 전체에 달려 있습니다. [5]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Braiins, Stratum V2, Mining Firmware. 다음 항목에서도 이 글을 참조합니다 Stratum V2.