Cơ bản
Giao ngay
Giao dịch tiền điện tử một cách tự do
Giao dịch ký quỹ
Tăng lợi nhuận của bạn với đòn bẩy
Chuyển đổi và Đầu tư định kỳ
0 Fees
Giao dịch bất kể khối lượng không mất phí không trượt giá
ETF
Sản phẩm ETF có thuộc tính đòn bẩy giao dịch giao ngay không cần vay không cháy tải khoản
Giao dịch trước giờ mở cửa
Giao dịch token mới trước niêm yết
Futures
Truy cập hàng trăm hợp đồng vĩnh cửu
TradFi
Vàng
Một nền tảng cho tài sản truyền thống
Quyền chọn
Hot
Giao dịch với các quyền chọn kiểu Châu Âu
Tài khoản hợp nhất
Tối đa hóa hiệu quả sử dụng vốn của bạn
Giao dịch demo
Giới thiệu về Giao dịch hợp đồng tương lai
Nắm vững kỹ năng giao dịch hợp đồng từ đầu
Sự kiện tương lai
Tham gia sự kiện để nhận phần thưởng
Giao dịch demo
Sử dụng tiền ảo để trải nghiệm giao dịch không rủi ro
Launch
CandyDrop
Sưu tập kẹo để kiếm airdrop
Launchpool
Thế chấp nhanh, kiếm token mới tiềm năng
HODLer Airdrop
Nắm giữ GT và nhận được airdrop lớn miễn phí
Launchpad
Đăng ký sớm dự án token lớn tiếp theo
Điểm Alpha
Giao dịch trên chuỗi và nhận airdrop
Điểm Futures
Kiếm điểm futures và nhận phần thưởng airdrop
Đầu tư
Simple Earn
Kiếm lãi từ các token nhàn rỗi
Đầu tư tự động
Đầu tư tự động một cách thường xuyên.
Sản phẩm tiền kép
Kiếm lợi nhuận từ biến động thị trường
Soft Staking
Kiếm phần thưởng với staking linh hoạt
Vay Crypto
0 Fees
Thế chấp một loại tiền điện tử để vay một loại khác
Trung tâm cho vay
Trung tâm cho vay một cửa
Vấn đề cốt lõi: Phía dưới của Nhị phân, xác minh sự tin cậy
Khi hầu hết mọi người tải xuống Bitcoin Core, họ chỉ cần vài cú nhấp chuột để tương tác với hệ thống xây dựng. Họ lấy tệp nhị phân thực thi của phần mềm, xác minh chữ ký (hy vọng vậy!), rồi bắt đầu chạy một nút Bitcoin. Những gì họ thấy ngay lập tức là phần mềm đang chạy. Những gì họ không thấy là hệ thống xây dựng và các quy trình mở rộng đã tạo ra phần mềm đó. Một hệ thống xây dựng thể hiện các nguyên tắc của Bitcoin về phi tập trung, minh bạch và khả năng xác minh.
Phía sau việc tải xuống đó là nhiều năm công việc kỹ thuật nhằm trả lời một câu hỏi đơn giản: “( Tại sao ai đó lại tin tưởng phần mềm này?” Câu trả lời là: bạn không cần phải. Bạn có thể xác minh.
Trong thời đại các cuộc tấn công chuỗi cung ứng phần mềm gây xôn xao toàn cầu, từ các gói npm bị xâm nhập, thư viện có lỗ hổng, máy chủ CI độc hại, quy trình xây dựng của Bitcoin Core đứng như một dự án yên lặng của kỷ luật. Phương pháp của nó có thể chậm và phức tạp hơn so với sự tiện lợi không rườm rà của “đẩy để triển khai,” nhưng đó là mục đích. An ninh không tiện lợi.
Để hiểu hệ thống xây dựng của Bitcoin Core, chúng ta cần hiểu:
Triết lý hệ thống xây dựng của Bitcoin Core
Xây dựng có thể tái tạo
Giảm thiểu phụ thuộc
Không cập nhật tự động
Tích hợp liên tục
Thích nghi liên tục
Triết lý hệ thống xây dựng của Bitcoin Core
Khi nói về phi tập trung của Bitcoin, hầu hết mọi người tập trung vào thợ đào, nút mạng và nhà phát triển. Nhưng phi tập trung không dừng lại ở các thành viên của giao thức. Nó mở rộng đến cách phần mềm được xây dựng và phân phối.
Một nguyên tắc trong hệ sinh thái Bitcoin là “đừng tin, hãy xác minh.” Chạy nút của riêng bạn là hành động xác minh, kiểm tra từng khối và giao dịch theo quy tắc đồng thuận. Nhưng hệ thống xây dựng cũng mang lại cho bạn một cơ hội khác để xác minh, ở cấp độ phần mềm. Bitcoin là tiền tệ không có trung gian tin cậy và Bitcoin Core hoạt động như phần mềm không có nhà xây dựng tin cậy. Hệ thống xây dựng cố gắng đảm bảo rằng bất kỳ ai, ở bất cứ đâu, đều có thể tự mình tái tạo chính xác các tệp nhị phân xuất hiện trên trang web bitcoincore.org.
Triết lý này bắt nguồn từ bài luận của Ken Thompson năm 1984 Reflections on Trusting Trust, cảnh báo rằng ngay cả mã nguồn sạch cũng không thể tin cậy nếu trình biên dịch đã bị xâm phạm. Các nhà phát triển của Bitcoin đã ghi nhớ bài học đó. Theo lời của cộng tác viên Bitcoin Core Michael Ford (fanquake):
“Xây dựng có thể tái tạo là rất quan trọng, vì không người dùng nào của phần mềm của chúng ta nên phải tin tưởng rằng nội dung bên trong đúng như chúng ta nói. Điều này phải luôn có thể xác minh độc lập.”
Một tuyên bố vừa là mục tiêu kỹ thuật, vừa là phần của đạo đức Bitcoin.
Trong thế giới an ninh, người ta nói về “bề mặt tấn công.” Hệ thống xây dựng của Bitcoin Core xem quá trình xây dựng như một bề mặt tấn công cần được tối thiểu hóa và bảo vệ.
Xây dựng có thể tái tạo: Xác minh mọi cấp độ
Quá trình phát hành Bitcoin Core bắt đầu từ mã nguồn mở trên GitHub. Mọi thay đổi đều công khai. Mọi yêu cầu kéo đều được xem xét. Nhưng hành trình từ mã nguồn dễ đọc của con người đến phần mềm nhị phân có thể chạy được liên quan đến trình biên dịch, thư viện của bên thứ ba và hệ điều hành, tất cả đều có thể là các điểm tấn công, cổng hậu hoặc lỗi.
“Các bên thứ ba đáng tin cậy là lỗ hổng bảo mật” – Nick Szabo (2001)
Để giải quyết những mối lo này, kiến trúc sư của Bitcoin Core đã xây dựng một quy trình xây dựng sử dụng Guix, một trình quản lý gói được thiết kế để tạo ra môi trường phần mềm có thể tái tạo, xác định được.
Khi một bản phát hành Bitcoin Core mới được gắn thẻ, nhiều cộng tác viên độc lập sẽ xây dựng các tệp nhị phân từ đầu bằng Guix. Mỗi người xây dựng làm việc trong môi trường cách ly đảm bảo các công cụ, trình biên dịch và thư viện hệ thống giống hệt nhau. Nếu tất cả các người xây dựng tạo ra kết quả giống hệt nhau, họ biết quá trình xây dựng là xác định.
Sau đó, các cộng tác viên ký số các tệp nhị phân kết quả bằng khóa mật mã và công khai các chữ ký đó trên một kho GitHub riêng tên là ‘guix.sigs’, liệt kê các xác nhận này cho từng bản phát hành của Bitcoin Core. Một số người xây dựng là nhà phát triển của Bitcoin Core, nhưng không bắt buộc vì quá trình xác nhận này mở cho bất kỳ ai trong cộng đồng. Thực tế, nhiều người không phải nhà phát triển mã vẫn thường xuyên đóng góp chữ ký.
Quy trình này gọi là xây dựng có thể tái tạo, và nó là phương thuốc chống lại “niềm tin vào niềm tin” của Thompson. Nó có nghĩa là bất kỳ ai cũng có thể lấy mã nguồn mở, môi trường Guix giống hệt và xác nhận độc lập rằng tệp nhị phân chính thức phù hợp với bản họ tự xây dựng. Trong khi xây dựng có thể tái tạo giúp xác minh phần mềm đúng như mã nguồn của nó, độ chính xác của phần mềm còn dựa vào các quy trình kiểm thử kỹ lưỡng và xem xét mã.
Hầu hết mọi người sẽ không thực hiện toàn bộ quá trình biên dịch hoặc kiểm tra các tệp manifest của Guix hoặc so sánh các hàm băm xây dựng. Họ không cần thiết. Sự tồn tại của hạ tầng đó, và những người duy trì nó, mang lại cho mọi người dùng một nền tảng của sự tự tin đã được xây dựng.
Các tệp nhị phân chính thức trên bitcoincore.org không chỉ “do các nhà duy trì Bitcoin Core sản xuất.” Chúng là kết quả của hàng chục người xây dựng độc lập. Những gì bạn tải xuống cuối cùng chính là những gì mọi người khác đã xây dựng và xác minh là chính hãng.
Đó là xác minh mọi cấp độ.
Giảm thiểu phụ thuộc: Ít tin cậy hơn
Xác thực có thể tái tạo là một mặt của phương trình. Mặt còn lại là giảm thiểu những gì cần phải tái tạo. Mã của Bitcoin Core không phải là mã duy nhất chạy khi vận hành Bitcoin Core. Bitcoin Core còn dựa vào mã và thư viện của bên thứ ba để tăng tốc phát triển và năng suất.
Trong thập kỷ qua, các nhà phát triển của Bitcoin Core đã liên tục loại bỏ các phụ thuộc không cần thiết và đôi khi gây rắc rối, như OpenSSL và MiniUPnP. Dù là thư viện hay bộ công cụ bên ngoài, những phụ thuộc này làm phức tạp thêm hoặc ẩn chứa giả định. Các dự án như Boost và Libevent, từng là phần cốt lõi của mã nguồn, dần dần bị loại bỏ hoặc thay thế bằng các lựa chọn đơn giản, tự chứa.
Tại sao? Bởi mỗi phụ thuộc bạn kế thừa đều là một rủi ro chuỗi cung ứng tiềm tàng. Đó là nhiều mã hơn mà bạn không viết, không kiểm tra, và không thể kiểm soát hoàn toàn. Giảm thiểu phụ thuộc giúp hệ thống xây dựng nhẹ hơn, an toàn hơn và dễ xác minh hơn.
Brink gần đây đã nhấn mạnh nỗ lực này trong bài đăng blog “Giảm thiểu phụ thuộc”[1], lưu ý rằng đó không chỉ là vấn đề đơn giản, mà còn là cách duy trì an ninh và tính tự chủ của dự án. Mỗi phụ thuộc bị loại bỏ là một bên thứ ba mà dự án phải tin tưởng ít hơn và là một khả năng ít hơn cho cổng hậu.
Mục tiêu cuối cùng là tạo ra các tệp nhị phân tĩnh hoàn toàn: các tệp thực thi chứa tất cả mọi thứ cần thiết để chạy, không phụ thuộc vào thư viện động hoặc phụ thuộc thời gian chạy. Sự tự chứa này có nghĩa là không dựa vào các thư viện bên ngoài có thể khác nhau giữa các hệ điều hành.
Trong thế giới phần mềm ngày càng nặng hơn và phụ thuộc nhiều hơn vào hệ sinh thái gói tập trung, Bitcoin Core đang đi theo hướng ngược lại: hướng tới tối giản và độc lập.
Không cập nhật tự động
Trong phần lớn phần mềm hiện đại, người dùng được che chắn khỏi các quyết định về việc cập nhật phiên bản phần mềm hoặc quyết định cập nhật phần mềm hay không. Bạn cài đặt một ứng dụng, và nó âm thầm tự động cập nhật lên các phiên bản mới nhất trong nền. Dù tiện lợi, điều này trái ngược với triết lý của Bitcoin Core.
Bitcoin Core chưa bao giờ bao gồm cập nhật tự động, và các nhà phát triển đã nói rằng nó sẽ không bao giờ có. Cập nhật tự động tập trung quyền lực. Chúng tạo ra một nhóm duy nhất có thể đẩy mã (có thể độc hại) đến mọi nút trong mạng. Đây chính xác là kiểu kiểm soát tập trung mà Bitcoin được xây dựng để tránh. Bằng cách yêu cầu người dùng tải xuống, xác minh và cài đặt thủ công các phiên bản mới, Bitcoin Core củng cố trách nhiệm cá nhân và sự đồng ý có thể xác minh.
Hệ thống xây dựng và việc không có cập nhật tự động là hai mặt của cùng một nguyên tắc. Chỉ có người vận hành nút mới quyết định chạy gì và có thể xác minh phần mềm đó là chính hãng.
Tích hợp liên tục: Đi chậm và sửa chữa
Trong Thung lũng Silicon, tích hợp liên tục và triển khai liên tục (CI/CD) là đặc trưng của phát triển phần mềm linh hoạt. Phát hành nhanh. Lặp lại nhanh hơn. Để tự động hóa làm phần còn lại.
Bitcoin Core theo cách tiếp cận khác. Hệ thống CI của nó không nhằm mục đích đẩy nhanh việc triển khai mà để bảo vệ tính toàn vẹn. Các quá trình xây dựng tự động kiểm tra tính nhất quán trên các nền tảng. Hệ thống xây dựng của Bitcoin Core được thiết kế để không phụ thuộc nhiều vào phần cứng và hệ điều hành nhất có thể. Dự án có thể xây dựng các tệp nhị phân cho Linux, macOS và Windows cũng như cho nhiều kiến trúc như x86_64, aarch64 (ARM) và thậm chí riscv64. Hệ thống tích hợp liên tục đảm bảo tính tương thích này cũng như tính toàn vẹn của phần mềm bằng cách thực hiện hàng trăm bài kiểm tra cho mỗi thay đổi đề xuất.
Kết quả là một văn hóa trong đó “tích hợp liên tục” nghĩa là liên tục kiểm thử, xác minh và bảo vệ an ninh, chứ không phải liên tục đổi mới.
Đi chậm và sửa chữa.
Thích nghi liên tục: Chúng ta đã xong chưa?
Hệ thống xây dựng không phải là cố định. Các nhà phát triển tiếp tục hoàn thiện nó bằng cách giảm phụ thuộc, cải thiện xây dựng đa kiến trúc và khám phá tương lai xây dựng tĩnh hoàn toàn với không có phụ thuộc thời gian chạy.
Trong khi hệ thống xây dựng của Bitcoin Core hướng tới tính xác định, chính nó không thể là cố định. Thế giới nó hoạt động luôn thay đổi. Các hệ điều hành, trình biên dịch, thư viện và kiến trúc phần cứng đều thay đổi. Mỗi bản phát hành mới của macOS hoặc glibc, mỗi việc bỏ deprecated một cờ trình biên dịch hoặc kiến trúc CPU mới nổi đều mang lại những không tương thích nhỏ cần phải xử lý. Một hệ thống xây dựng đứng yên sẽ theo thời gian không còn khả năng xây dựng nữa.
Nghịch lý của các xây dựng có thể tái tạo là chúng đòi hỏi sự tiến hóa liên tục để duy trì khả năng tái tạo. Các nhà phát triển phải liên tục giữ chặt, vá lỗi và đôi khi thay thế các công cụ để duy trì tính xác định trước một bối cảnh thay đổi liên tục. Duy trì sự cân bằng này giữa ổn định và thích nghi là một phần trong khả năng chống chịu liên tục của Bitcoin.
Nhận bản sao của The Core Issue hôm nay!
Đừng bỏ lỡ cơ hội sở hữu The Core Issue — gồm các bài viết của nhiều nhà phát triển Core giải thích về các dự án họ tự làm!
Bài viết này là Thư của Người biên tập xuất hiện trong ấn bản In mới nhất của Bitcoin Magazine, The Core Issue. Chúng tôi chia sẻ nó như một cái nhìn sơ bộ về các ý tưởng được khám phá trong toàn bộ số.
[1]