Home / Knowledge / Nix를 사용하면 비트코인 프로젝트가 기여와 배포를 가속화할 수 있습니다.

Nix를 사용하면 비트코인 프로젝트가 기여와 배포를 가속화할 수 있습니다.

Nix를 사용하면 비트코인 프로젝트가 기여와 배포를 가속화할 수 있습니다. 1

이 글은 Base58 비트코인 프로토콜 아카데미를 운영하고 다가오는 Nix 중심의 Bitcoin++ 컨퍼런스를 조직하는 개발자 교육자 niftynei의 의견 기고문입니다.

새로운 앱을 컴퓨터에 설치하고 싶을 때, 어디에서 받나요?

어떤 소스를 사용할지를 결정하는 것은 놀랍게도 해결하기 어려운 문제이며, 모든 컴퓨팅 플랫폼이 겪는 문제입니다.

인터넷이 널리 퍼지기 전에는 새로운 소프트웨어 “패키지”가 CD나 USB 스틱과 같은 물리적 매체로 배포되었습니다. 예를 들어, 컴퓨터의 운영 체제(OS) 최신 버전이나 비트코인 코어의 최신 버전을 얻으려면 매장에서 직접 구매하거나 우편으로 받아야 했습니다. 그런 다음 디스크나 USB 스틱을 컴퓨터에 넣고 새로운 소프트웨어를 로컬 디스크에 복사했습니다.

개발자로서 코드를 작성할 때, 친구와 가족에게 프로그램 사본을 물리적으로 나눠줘야 했습니다. 또는 대기업에서 일하면서 그 기업이 소프트웨어를 고객에게 배포하는 방법을 찾아야 했습니다.

항상 연결된 컴퓨터의 출현으로 소프트웨어 배포의 풍경이 영원히 바뀌었습니다. 이제는 프로그램의 비트를 물리적으로 가져오지 않고도 인터넷에서 쉽게 다운로드할 수 있습니다.

이로 인해 새로운 개발자들이 누구나 다운로드할 수 있는 앱을 작성하는 것이 훨씬 쉬워졌습니다. 그러나 현재의 문제는 사용자들이 새로운 소프트웨어를 인터넷에서 어디에서 다운로드해야 하는가 하는 질문에 대한 답변입니다.

해커의 앱 스토어

모바일 전화 생태계가 새로운 애플리케이션 배포 문제를 해결하는 방법은 “앱 스토어”(안드로이드의 경우 “구글 플레이 스토어”)라는 프로그램을 통해서입니다.

개발자들은 자신의 앱의 최신 버전을 애플 또는 구글의 서버에 업로드합니다. 그런 다음 이들 회사는 앱이 설치된 모든 전화에 조용한 알림을 보내고, 사용자의 개입 없이 백그라운드에서 앱이 업데이트됩니다.

사용자라면 새로운 앱을 전화에 추가하고 싶을 때, 대부분의 경우 앱 스토어에서 찾을 수 있고, 거기에서 다운로드할 수 있습니다.

하지만 모든 소프트웨어가 모바일 전화 앱으로 제공되는 것은 아닙니다. 일부 소프트웨어 프로젝트는 데스크탑 앱이나 개발자가 새로운 소프트웨어를 작성하는 데 사용하는 도구입니다. 이러한 애플리케이션도 배포 채널이 필요합니다. 데스크탑 운영 체제에서는 “앱 스토어” 소프트웨어를 “패키지 관리자”라는 용어로 부르는 경향이 있습니다. 이들은 컴퓨터에 다운로드하는 소프트웨어 패키지를 관리합니다.

현대의 패키지 관리자는 중앙 서버(때때로 저장소라고도 함)와 패키지 사용자의 컴퓨터에서 실행되는 클라이언트 애플리케이션으로 구성됩니다.

개발자라면 “homebrew”나 “apt-get install”을 어디선가 들어본 적이 있을 것입니다. “Homebrew”와 “apt”는 패키지 관리자입니다.

패키지 관리자의 작동 방식에 따르면, 클라이언트 애플리케이션은 중앙 저장소와 주기적으로 체크하여 현재 설치된 패키지에 대한 새로운 업데이트가 있는지 확인합니다. 또는 올바른 운영 체제와 권한이 설정되어 있다면, 컴퓨터가 이러한 체크를 자동으로 실행하고 최신 버전의 앱을 다운로드하고 설치할 수 있습니다.

(부가적으로, 로컬 패키지 관리자 클라이언트에 소프트웨어 패키지의 다른 소스를 추가할 수 있습니다. 개발자가 앱을 중앙 저장소에 업로드하는 대신 자체 호스팅하는 경우, 업데이트를 찾기 위해 자신의 패키지 관리자 클라이언트 앱에서 해당 자체 호스팅 웹사이트를 추가해야 합니다.)

모든 것을 재현할 수 있다면?

Nix는 배포를 돕는 모든 패키지에 재현 가능한 빌드를 제공하는 것을 목표로 하는 패키지 관리자입니다.

Nix는 빌드에 대한 모든 입력을 자세히 추적하여 소프트웨어 배포의 문제를 해결합니다. 각 입력을 고유하게 식별하고 원래 빌더가 사용한 것과 동일한 입력을 사용합니다. 이를 통해 매번 동일한 것을 어떤 기계에서든지 빌드할 수 있습니다.

Nix는 빌드의 모든 입력과 출력을 해시합니다. 이는 입력이 변경되었을 때 쉽게 식별할 수 있게 합니다. 빌드의 입력이 변경되면 출력도 반드시 변경됩니다.

재현 가능한 빌드의 큰 문제 중 하나는 서로 다른 사용자가 프로그램을 빌드하는 데 필요한 입력의 버전이 다를 수 있다는 것입니다. 머신에서 빌드하는 모든 새로운 프로그램은 재현 가능하기 위해 다른 버전의 입력이 필요할 수 있습니다.

Nix는 해시 목록으로 빌드를 추적하고 예상하는 해시 목록과 일치하는 입력만 사용하여 이 문제를 해결합니다. 단점은 Nix가 훨씬 더 많은 디스크 공간을 사용하고, 이미 컴퓨터에 없는 경우 이진 빌드 프로세스에 필요한 올바른 입력을 다운로드해야 하므로 다운로드하는 데 시간이 더 걸릴 수 있다는 것입니다.

나는 Nix가 무어의 법칙 덕분에 가능해졌다고 농담하곤 합니다. 즉, 이제 우리는 약간 다른 버전의 동일한 프로그램을 여러 개 갖고 있어도 걱정할 필요 없는 충분한 여유 디스크 공간을 가지고 있습니다.

따라서 Nix는 소프트웨어의 재현 가능한 빌드를 훨씬 더 쉽게 배포할 수 있게 해주며, 이는 사용자가 자신의 머신에서 소프트웨어를 신뢰성 있게 재빌드하고 아무 문제 없이 작동할 수 있게 합니다.

부가적으로, Nix 빌드에서 “재현 가능”이 의미하는 것은 “패키지가 한 머신에서 작동하면 다른 머신에서도 작동한다”는 것입니다. 이는 비트코인 코어 개발자들이 공식 비트코인 바이너리에 대해 보장하려고 하는 재현 가능성과는 다릅니다. 공식 바이너리는 비트 단위로 동일하다는 것을 확인하는 별도의 프로세스가 있습니다.

Nix와 비트코인

최종 사용자가 쉽게 실행할 수 있도록 하고 모든 시스템에서 재현 가능한 방식으로 오픈 소스 소프트웨어를 배포하는 것은 매우 유용하고 중요한 기능입니다. 이는 누구나 프로젝트를 사용하기 쉽게 만들고 새로운 개발자가 프로젝트에 기여하기 쉽게 만듭니다.

몇 년 전, 용감한 개발자들이 Nix 패키지 및 모듈로 포장된 가장 일반적인 비트코인 소프트웨어 프로젝트의 저장소를 출시했습니다.

패키지는 Nix 패키지 관리자를 사용하는 누구나 거의 모든 아키텍처에서 비트코인 노드를 설치하고 실행하는 것을 훨씬 쉽게 만들어 줍니다. 빌드 명령을 실행하기 전에 올바른 종속성을 설치하는 것에 대해 걱정할 필요가 없으며, 프로젝트는 자신의 머신에서 소스에서 빌드됩니다. 이는 비트코인 노드를 처음부터 다운로드하고 빌드하여 실행할 수 있는 이상적인 방법입니다.

Nix-Bitcoin 저장소는 NixOS에서 작동하도록 설계된 소프트웨어 애플리케이션을 위한 구성인 Nix “모듈”을 제공합니다. Nix-Bitcoin 모듈은 NixOS를 실행하는 누구나 비트코인 코어 및 기타 비트코인 오픈 소스 프로젝트의 빌드를 재현하고 최소한의 번거로움으로 자신의 머신에서 신속하게 실행할 수 있게 해줍니다.

이 기사에 대한 인터뷰에서 Nix-Bitcoin 프로젝트의 주요 유지 관리자인 Jonas Nick은 프로젝트 사용에 대해 다음과 같이 말했습니다:

“Nix-Bitcoin이 Nix/NixOS에서 얻는 주요 이점은 선언적 구성 관리입니다. Nix 프로그래밍 언어를 사용하여 시스템을 구성하면 추상화가 가능하므로 개별 구성 요소를 재사용하고 테스트하기 위해 논리를 모듈화할 수 있습니다. 이는 시스템을 구축할 때 불가피하게 발생하는 복잡성을 관리할 수 있게 해주며, 올바르고 안전한 시스템을 구축하는 데 도움이 됩니다. 예를 들어, Nix-Bitcoin이 제공하는 많은 보안 기능은 모듈 시스템이 없었다면 유지 관리하기 매우 번거로웠을 것입니다. NixOS의 재현 가능성은 업데이트에도 많은 도움이 됩니다. 왜냐하면 우리는 사용자 시스템에서 정확히 무엇이 실행되고 있는지 알기 때문입니다. 마지막으로, NixOS에서는 런타임이 아니라 평가 시간에 오류를 받을 수 있습니다.”

비트코인 코어는 Nix에서 배포를 위해 포장된 유일한 프로젝트가 아닙니다.

Core Lightning, BTCPay Server 및 여러 다른 프로젝트도 있습니다. 대부분의 경우 이러한 프로젝트는 소프트웨어를 작성하는 개발자가 아닌 Nix 패키지 관리 시스템의 팬들에 의해 Nix에 추가되고 번들로 묶입니다. 사용 가능한 패키지의 더 완전한 목록은 Nix-Bitcoin GitHub 저장소의 “모듈” 목록을 확인하세요.

왜 Nix를 어디서나 사용하지 않을까요?

Nix가 비트코인 프로젝트를 구축하고 배포하는 방식에 큰 변화를 가져온다면, 왜 모두가 이를 사용하지 않을까요? 사실 Nix는 진입하기 다소 어려운 큰 프로젝트입니다. Nix를 사용하는 학습 곡선은 상당히 가파르며, 패키지 관리자로서 Nix를 실행하는 패러다임은 대부분이 익숙한 것과 다를 수 있습니다.

NixOS는 2003년 Eelco Dolstra에 의해 연구 프로젝트로 시작되었으며, 그 이후로 서서히 추종자와 사용자 기반을 구축해 왔습니다.

비트코인++ 베를린: 비트코인에서 Nix의 사용 확대

다가오는 비트코인++ 컨퍼런스를 베를린에서 조직함으로써 우리는 이를 변화시키고자 합니다. 비트코인++는 비트코인 개발 공간의 다양한 주제에 초점을 맞춘 개발자 중심의 컨퍼런스 시리즈입니다. 2022년 텍사스 오스틴에서 처음 시작된 이 컨퍼런스는 2023년 4월 말에 열린 최근 컨퍼런스에서 아크, 라이트닝 네트워크 및 유효성 롤업과 같은 비트코인의 레이어 2 기술에 초점을 맞췄습니다.

다가오는 베를린 컨퍼런스는 2023년 10월 6일과 7일에 계획되어 있으며, 비트코인 개발 생태계를 위한 “Nix-pilling” 이벤트가 될 것입니다. Fort Nix의 Nix-Bitcoin 프로젝트의 핵심 유지 관리자가 참석할 예정입니다(예: Nick, Pavol Rusnak 및 Eric Sirion 등). 이 이틀 동안의 이벤트는 생태계 전반의 개발자들에게 Nix를 사용하여 프로젝트를 패키징하고 개발 종속성을 더 잘 묶는 방법을 가르치기 위해 설계된 실습 워크숍과 강의로 가득 차 있을 것입니다. 이를 통해 새로운 기여자들이 더 빠르게 코딩하고 기여할 수 있도록 하며, NixOS에서 모듈을 사용하여 소프트웨어를 배포하는 것이 얼마나 빠르고 쉬운지를 보여줄 것입니다.

관련 기사

마이애미 IT 직원, 전 상사로부터 190만 달러 비트코인 절도 혐의로 체포 1

마이애미 비트코인 절도, IT 직원 체포

마이애미의 한 남성이 경찰에 따르면 전 직장에서 거의 200만 달러 상당의 비트코인을 훔친 혐의로 여러 중범죄 혐의에 직면해 있습니다. 이

카사, 비트코인 보유자를 겨냥한 증가하는 사회 공학 공격에 대응하기 위해 네 가지 보안 기능 출시 1

사회 공학 공격에 대응하는 카사 기능

비트코인 보안 회사 카사는 2025년 암호화폐 도난의 대부분을 차지하는 공격 벡터인 사회 공학을 겨냥한 네 가지 기능을 출시했습니다. 이 기능은

마스터카드, 디지털 자산 전략을 강화하기 위해 뉴욕 비트라이센스 확보 1

마스터카드, 비트라이센스 획득

마스터카드는 뉴욕주 금융 서비스국(NYDFS)으로부터 비트라이센스를 받았으며, 이는 이 결제 거대 기업이 미국에서 가장 엄격한 암호화 규제 프레임워크 중 하나 아래에서

크라켄, 비트코인 보관소 출시 - BTC 보유에 대한 수익 제공 1

비트코인 보관소 | 크라켄의 새로운 금융 솔루션

크라켄은 고객이 자산을 판매하지 않고도 비트코인 보유량에 대해 BTC 기준 보상을 받을 수 있는 새로운 제품인 비트코인 볼트를 크라켄 어

폴드, 비트코인 신용 카드 성장을 위한 1억 5천만 달러 유치 1

비트코인 신용 카드, Fold의 성장 동력

Fold Holdings, Inc., 최초의 상장된 비트코인 금융 서비스 회사가 Encina Lender Finance, LLC와 4년간의 고정 담보 회전 신용 시설에 진입했습니다.

DDC, 한 주에 비트코인을 두 번 구매하며 자산을 14% 증가시켜 희석 없이 재무를 성장시킵니다. 1

비트코인으로 DDC 자산 14% 증가

DDC Enterprise Limited (NYSE American: DDC)는 수요일에 131 비트코인을 구매하여 기업 비트코인 금고를 2,714 BTC로 확장했다고 발표했습니다. 뉴욕에 본사를 둔