Tác giả: bitcoindevphilosophy

Chương này phân tích khái niệm "phi tin tưởng", giải thích ý nghĩa của nó từ góc độ khoa học máy tính, và làm rõ lý do tại sao Bitcoin phải phi tin tưởng để duy trì giá trị nội tại của nó. Sau đó, chúng ta thảo luận về ý nghĩa của việc "sử dụng Bitcoin một cách phi tin tưởng", những đảm bảo mà một "nút đầy đủ" có thể và không thể cung cấp. Trong phần cuối, chúng ta xem xét sự tương tác thực tế của Bitcoin với phần mềm và người dùng thực, và những sự đánh đổi cần thiết giữa sự tiện lợi và tính phi tin tưởng để đạt được kết quả có ý nghĩa.
Người ta thường nói, "Bitcoin tuyệt vời vì nó không cần sự tin tưởng." Nhưng "không cần tin tưởng" nghĩa là gì? Pieter Wuille đã giải thích thuật ngữ được sử dụng rộng rãi này trên diễn đàn Hỏi & Đáp của Stack Exchange :
Từ "trust" trong "trustless" là một thuật ngữ kỹ thuật trừu tượng. Khi một hệ thống phân tán có thể hoạt động bình thường mà không cần liên kết với bất kỳ nhóm đáng tin cậy nào, chúng ta nói đó là hệ thống "trustless".
— Pieter Wuille, Bitcoin Stack Exchange (2016)
Nói tóm lại, thuật ngữ này đề cập đến một đặc tính của giao thức Bitcoin : nó có thể hoạt động về mặt logic mà không cần "bất kỳ thực thể đáng tin cậy nào". Điều này khác với sự tin tưởng mà bạn chắc chắn đặt vào phần mềm hoặc phần cứng mà bạn đang sử dụng. Loại tin tưởng thứ hai này sẽ được thảo luận chi tiết hơn trong chương này.
Trong các hệ thống tập trung, chúng ta dựa vào uy tín của một bên tham gia trung tâm để xác định xem họ có ưu tiên bảo mật, khôi phục trạng thái hệ thống trong trường hợp xảy ra sự cố và trừng phạt bất kỳ hành vi vi phạm lòng tin nào thông qua hệ thống tư pháp hay không. Những yêu cầu về lòng tin này lại gây ra vấn đề trong các hệ thống phi tập trung nặc danh —vì hầu như không có khả năng truy vết, nên việc tin tưởng bất kỳ ai là điều gần như bất khả thi. Satoshi Nakamoto đã mô tả vấn đề này trong phần giới thiệu của Sách trắng Bitcoin :
Thương mại điện tử ngày càng phụ thuộc vào các tổ chức tài chính với vai trò là bên thứ ba đáng tin cậy để xử lý các khoản thanh toán điện tử. Mặc dù các hệ thống này xử lý hầu hết các giao dịch khá tốt, nhưng chúng vẫn có những điểm yếu cố hữu do mô hình dựa trên sự tin tưởng này. Thứ nhất, các giao dịch hoàn toàn không thể đảo ngược là không thể, vì các tổ chức tài chính không thể tránh khỏi tranh chấp và hòa giải. Thứ hai, chi phí trung gian làm tăng phí giao dịch, hạn chế quy mô giao dịch tối thiểu khả thi và loại bỏ khả năng thực hiện các giao dịch nhỏ, tùy ý. Việc không thể tạo ra các khoản thanh toán không thể đảo ngược cho các dịch vụ không thể đảo ngược thậm chí còn là một chi phí lớn hơn. Do khả năng đảo ngược, nhu cầu về sự tin tưởng được mở rộng. Người bán phải cảnh giác với khách hàng của mình và yêu cầu họ cung cấp thông tin mà lẽ ra họ không cần biết. Một tỷ lệ gian lận nhất định được cho rằng là không thể tránh khỏi. Những chi phí và sự không chắc chắn về thanh toán này có thể được tránh bằng cách cá nhân sử dụng tiền mặt, nhưng hiện tại không có cơ chế nào để bắt đầu thanh toán thông qua các kênh liên lạc mà không cần bên thứ ba đáng tin cậy.
— Satoshi Nakamoto, * Bitcoin: Một hệ thống thanh toán điện tử ngang hàng* (2008)
Dường như chúng ta không thể có một hệ thống phi tập trung dựa trên lòng tin, đó là lý do tại sao tính không cần tin tưởng lại quan trọng đến vậy trong Bitcoin.
Để sử dụng Bitcoin một cách không cần tin tưởng, bạn phải vận hành một nút Bitcoin đã được xác thực đầy đủ (tức là một " nút đầy đủ"). Chỉ khi đó bạn mới có thể xác minh rằng các khối Bitcoin(dữ liệu giao dịch đã được xác nhận) nhận được từ người khác tuân thủ các quy tắc đồng thuận của Bitcoin; ví dụ, khối đó tuân thủ các quy tắc phát hành tiền tệ của Bitcoin và không chi tiêu gấp đôi số tiền. Nếu bạn không vận hành một nút đầy đủ, bạn đang giao phó công việc xác minh các khối Bitcoin cho người khác và tin tưởng họ sẽ nói sự thật, điều đó có nghĩa là bạn không sử dụng Bitcoin một cách không cần tin tưởng.
David Harding từng viết một bài báo trên bitcoin.org giải thích cách vận hành một nút đầy đủ — hay nói đúng hơn là cách sử dụng Bitcoin một cách không cần tin tưởng — bài viết đó chắc chắn sẽ giúp ích cho bạn.
Bitcoin chỉ có thể trở thành tiền tệ nếu mọi người sẵn sàng sử dụng nó để trao đổi lấy những thứ có giá trị khác. Điều này có nghĩa là chính những người chấp nhận Bitcoin mới là người tạo ra giá trị cho nó và quyết định cách thức hoạt động Bitcoin.
Khi bạn chấp nhận Bitcoin, bạn có quyền thực thi các quy tắc Bitcoin, chẳng hạn như ngăn chặn việc tịch thu Bitcoin của bất kỳ ai mà không làm lộ private key của họ.
Thật không may, nhiều người dùng ủy thác quyền thực thi của họ cho bên thứ ba . Điều này làm suy yếu phi tập trung của Bitcoin , cho phép một số ít thợ đào, cấu kết với một vài ngân hàng và các dịch vụ miễn phí, thay đổi các quy tắc của Bitcoin đối với những người dùng đã ủy thác quyền lực của họ và không xác minh các khối.
Không giống như các phần mềm ví khác, phần mềm Bitcoin Core thực thi các quy tắc đồng thuận Bitcoin — vì vậy, nếu thợ đào và ngân hàng thay đổi các quy tắc đối với người dùng chưa được xác minh, những người dùng đó sẽ không thể thực hiện thanh toán cho những người dùng Bitcoin Core đã được xác minh đầy đủ (như bạn).
—David Harding, Xác thực đầy đủ trên bitcoin.org (2015)
Ông ấy nói rằng việc vận hành một nút đầy đủ có thể giúp bạn xác minh mọi khía cạnh của blockchain Bitcoin mà không cần tin tưởng bất kỳ ai khác, vì vậy bạn có thể chắc chắn rằng Bitcoin bạn nhận được là thật. Điều này rất tuyệt, nhưng có một điều quan trọng mà một nút đầy đủ không thể giúp bạn: nó không thể ngăn chặn việc chi tiêu gấp đôi thông qua việc viết lại Chuỗi.
Cần lưu ý rằng, mặc dù tất cả các quy trình—bao gồm cả Bitcoin Core—đều bị ảnh hưởng bởi việc tổ chức lại Chuỗi, giao thức Bitcoin cung cấp một cơ chế phòng vệ: giao dịch của bạn nhận được càng nhiều xác nhận khối, thì càng an toàn hơn. Đây là cơ chế phòng vệ phi tập trung được biết đến rộng rãi nhất.
—David Harding, Xác thực đầy đủ trên bitcoin.org (2015)
(Ghi chú của người dịch: "Khối" là một phương pháp để định kì xác nhận một loạt giao dịch và đồng bộ hóa chúng trên mạng ngang hàng; các khối được liên kết với nhau tạo thành một chuỗi; vì mỗi khối yêu cầu Bằng chứng công việc(trả giá một chi phí kinh tế) để trở thành một khối hợp lệ trên chuỗi, nên các khối ở đầu chuỗi ít có khả năng bị đảo ngược hơn, và các giao dịch được xác nhận bởi chúng an toàn hơn. "Tái tổ chức blockchain" đề cập đến việc một khối mới cố gắng chiếm cùng vị trí (chiều cao) nơi một khối đã được quan sát thấy tồn tại. Điều này có thể là cố ý hoặc không cố ý, nhưng khả năng xảy ra là không thể loại trừ.)
Dù phần mềm của bạn có tiên tiến đến đâu, bạn vẫn luôn phải tin tưởng rằng các khối đã xác nhận giao dịch của bạn sẽ không bị ghi đè. Tuy nhiên, như Harding đã chỉ ra, bạn có thể chờ một số lượng xác nhận nhất định (các khối mới tiếp theo sau các khối đã xác nhận giao dịch của bạn) cho đến khi bạn cho rằng rằng xác suất xảy ra sự tái cấu trúc blockchain ảnh hưởng đến giao dịch của bạn đủ thấp để có thể chấp nhận được.
Khích lệ sử dụng Bitcoin một cách không cần tin tưởng phù hợp với nhu cầu " phi tập trung nút đầy đủ " của hệ thống. Càng nhiều người sử dụng nút đầy đủ của riêng họ, nút đầy đủ càng trở nên phi tập trung hơn, và khả năng chống lại các thay đổi giao thức độc hại Bitcoin càng mạnh mẽ hơn. Tuy nhiên, như đã giải thích trong phần về phi tập trung nút đầy đủ, vì mâu thuẫn không thể tránh khỏi giữa tính không cần tin tưởng và sự tiện lợi, người dùng thường chọn các dịch vụ yêu cầu sự tin tưởng.
Từ góc độ hệ thống, tính không cần tin tưởng của Bitcoin là vô cùng quan trọng. Năm 2018, Matt Corallo đã giải thích về tính không cần tin tưởng tại hội nghị Baltic Honeybadger ở Riga. Điểm cốt lõi trong bài thuyết trình của ông là bạn không thể xây dựng một hệ thống không cần tin tưởng trên một hệ thống yêu cầu sự tin tưởng, nhưng điều ngược lại là có thể - ví dụ, bạn có thể phát triển một ví lưu ký trên một hệ thống không cần tin tưởng.

Hình 2. Một lớp nền tảng không cần tin tưởng cho phép sự đánh đổi ở các cấp độ cao hơn.
Mô hình bảo mật này cho phép các nhà thiết kế hệ thống đưa ra những sự đánh đổi có ý nghĩa đối với họ, mà không cần phải áp đặt những sự đánh đổi đó lên người khác.
2.1 Đừng tin tưởng mù quáng, hãy kiểm chứng.
Bitcoin hoạt động trên cơ sở không cần tin tưởng, nhưng bạn vẫn cần tin tưởng vào phần mềm và phần cứng mình đang sử dụng ở một mức độ nào đó. Điều này là bởi vì phần mềm và phần cứng của bạn có thể không hoàn toàn giống như những gì được ghi trên bao bì. Ví dụ:
- CPU có thể được thiết kế với mục đích xấu, và các thao tác mã hóa phát hiện private key private key của bạn có thể làm rò rỉ nó.
- Bộ tạo số ngẫu nhiên của hệ điều hành có thể không ngẫu nhiên như lời quảng cáo.
- Bitcoin Core có thể chứa một cửa hậu trong mã nguồn của nó, có thể gửi private key của bạn cho các đối tượng xấu.
Do đó, ngoài việc chạy một nút đầy đủ, bạn cũng cần đảm bảo rằng mình đang chạy chính xác những gì mình muốn. Người dùng Reddit "brianddk" đã thảo luận về một số cấp độ tin cậy để lựa chọn khi xác minh phần mềm bạn đang sử dụng. Trong phần "Tin tưởng nhà phát triển", anh ấy đã thảo luận về " các bản dựng có thể tái tạo ":
"Biên dịch có thể tái tạo" là một phương pháp thiết kế phần mềm cho phép nhiều nhà phát triển cộng đồng biên dịch phần mềm một cách độc lập, đảm bảo rằng các tệp cài đặt cuối cùng do mỗi nhà phát triển biên dịch đều giống hệt với các tệp do những người khác biên dịch. Trong một dự án có tính công khai và khả năng tái tạo cao (như
bitcoin), người dùng không cần phải hoàn toàn tin tưởng vào bất kỳ nhà phát triển nào. Nhiều nhà phát triển có thể chạy quá trình biên dịch và tự mình chứng kiến việc nhận được các tệp giống hệt với các tệp được ký điện tử bởi người biên dịch ban đầu.—— brianddk, Bitcoin v22.0 và Guix (2022)
Bài viết này định nghĩa năm cấp độ tin cậy: tin tưởng trang web, tin tưởng nhà phát triển, tin tưởng trình biên dịch, tin tưởng nhân hệ điều hành và tin tưởng phần cứng.
Để tìm hiểu sâu hơn về chủ đề biên dịch có thể tái tạo, Carl Dong đã có một bài thuyết trình về Guix , giải thích lý do tại sao việc tin tưởng vào hệ điều hành, mã nguồn và trình biên dịch có thể gặp vấn đề, và cách khắc phục những vấn đề này bằng cách sử dụng một hệ thống có tên là "Guix", hệ thống hiện đang được dự án Bitcoin Core sử dụng.
Vậy, với thực tế là Chuỗi của chúng ta có thể chứa nhiều tệp nhị phân đáng tin cậy có thể bị sao chép một cách độc hại, chúng ta có thể làm gì? Chúng ta cần nhiều hơn là chỉ khả năng tái tạo; chúng ta cần sự tự chủ. Chúng ta không thể chỉ đơn giản tải xuống các tệp nhị phân này từ các máy chủ do các tổ chức khác kiểm soát và tin tưởng các máy chủ bên ngoài đó. Chúng ta cần biết các công cụ này được phát triển như thế nào, cách chúng ta có thể biên dịch lại chúng, và lý tưởng nhất là bắt đầu với một tập hợp các tệp nhị phân đáng tin cậy nhỏ hơn nhiều. Chúng ta cần giảm thiểu tập hợp các tệp nhị phân đáng tin cậy càng nhiều càng tốt và thiết kế một lộ trình đơn giản để kiểm toán toàn bộ quy trình từ Chuỗi này đến những gì chúng ta thực sự sử dụng để phát triển Bitcoin. Điều này sẽ cho phép chúng ta tối đa hóa việc xác minh và giảm thiểu sự tin tưởng.
—— Carl Dong bình luận về Guix tại Hội nghị Breaking Bitcoin (2019)
Carl sau đó giải thích cách Guix cho phép chúng ta chỉ tin tưởng vào một tệp nhị phân 357 byte có thể kiểm chứng và hoàn toàn dễ hiểu nếu bạn biết cách diễn giải các lệnh. Điều này thật đáng chú ý: bạn chỉ cần xác minh rằng tệp nhị phân 357 byte này thực hiện đúng chức năng của nó, và sau đó bạn có thể sử dụng nó để biên dịch một hệ thống xây dựng hoàn chỉnh từ mã nguồn, cuối cùng tạo ra một tệp nhị phân Bitcoin Core hoàn toàn giống với bất kỳ tệp nào được biên dịch bởi người khác.
Nhiều người đam mê Bitcoin tán thành một nguyên tắc duy nhất tóm gọn hoàn hảo những điều đã nêu ở trên:
Đừng tin tưởng mù quáng, hãy kiểm chứng.
— Bitcoin ở khắp mọi nơi
Câu nói này bắt nguồn từ tuyên bố của cựu Tổng thống Mỹ Ronald Reagan, " Tin tưởng, nhưng phải kiểm chứng, " được đưa ra trong bối cảnh giải trừ vũ khí hạt nhân. Bitcoin đã điều chỉnh câu nói này để nhấn mạnh tầm quan trọng của việc bác bỏ các yếu tố tin tưởng và vận hành một nút đầy đủ .
Mức độ người dùng xác minh phần mềm họ sử dụng và dữ liệu blockchain họ nhận được là tùy thuộc vào họ. Và, cũng như nhiều thứ trong thế giới Bitcoin, có sự đánh đổi giữa sự tiện lợi và tính không cần tin tưởng. Sử dụng ví được quản lý hầu như luôn tiện lợi hơn so với việc chạy Bitcoin Core trên phần cứng của riêng bạn. Tuy nhiên, khi phần mềm Bitcoin trưởng thành và giao diện người dùng được cải thiện, nó chắc chắn sẽ phục vụ tốt hơn cho những người dùng muốn tính không cần tin tưởng. Hơn nữa, khi người dùng có thêm kiến thức, họ nên dần loại bỏ yếu tố tin tưởng.
Một số người dùng có cách tiếp cận nghiêm túc hơn (xem Chương 6 của cuốn sách này để biết chi tiết), xác minh phần lớn phần mềm họ sử dụng. Kết quả là, họ có thể giảm thiểu yếu tố tin cậy: họ chỉ cần tin tưởng vào phần cứng máy tính và hệ điều hành của chính mình. Bằng cách đó, họ cũng giúp đỡ những người không xác minh kỹ lưỡng phần cứng của mình: một khi phát hiện ra vấn đề, họ có thể công khai lên hoàn cảnh. Một ví dụ như vậy đã xảy ra vào năm 2018 khi một lỗi được phát hiện cho phép thợ đào liên tục chi tiêu kết quả của một giao dịch:
Lỗ hổng CVE-2018-17144 đã được vá trong các phiên bản Bitcoin Core 0.16.3 và 0.17.0rc4, được phát hành vào ngày 18 tháng 9. Trong đó hổng này bao gồm giao diện tấn công từ chối dịch vụ và lỗ hổng lạm phát nghiêm trọng. Ban đầu, vào ngày 17 tháng 9, lỗ hổng này được báo cáo là một cuộc tấn công từ chối dịch vụ cho một số nhà phát triển Bitcoin Core và các dự án hỗ trợ các loại tiền điện tử khác (bao gồm ABC và Unlimited); tuy nhiên, chúng tôi nhanh chóng xác định rằng nó cũng là một lỗ hổng lạm phát, với cùng nguyên nhân gốc và cách khắc phục.
—— Công bố đầy đủ về CVE-2018-17144 (2018)
Trong sự cố này, một người dùng nặc danh báo cáo vấn đề, và hóa ra nó nghiêm trọng hơn nhiều so với suy nghĩ ban đầu. Điều này nhấn mạnh thực tế rằng những người kiểm tra mã thường báo cáo lỗ hổng bảo mật hơn là khai thác chúng. Điều này cũng có lợi cho những người không thể tự mình kiểm tra mọi thứ. Tuy nhiên, người dùng không nên tin tưởng người khác bảo vệ an ninh của mình; họ nên tự mình kiểm tra mọi thứ (trong khả năng của họ và khi xảy ra sự cố). Đây là phương pháp để duy trì tính độc lập càng nhiều càng tốt, và đó là phương pháp đã cho phép Bitcoin phát triển mạnh mẽ. Càng nhiều người giám sát phần mềm, thì mã độc hại và lỗ hổng bảo mật càng ít có khả năng xâm nhập vào trong đó.
2.2 Kết luận
Giao thức Bitcoin được gọi là phi tập trung vì người dùng tương tác với nó không cần phải tin tưởng bất kỳ bên thứ ba nào. Tuy nhiên, trên thực tế, hầu hết người dùng không thể xác minh tất cả phần cứng và phần mềm chạy giao thức Bitcoin. Người dùng có kỹ năng có thể xác minh phần mềm hoặc phần cứng, và họ có thể cảnh báo những người dùng khác (ít am hiểu kỹ thuật hơn) khi phát hiện ra mã độc hại hoặc lỗ hổng bảo mật.
Nếu thiếu tính không tin tưởng, chúng ta sẽ thiếu phi tập trung, bởi vì sự tin tưởng chắc chắn liên quan đến một cơ quan trung ương nào đó. Bạn có thể phát triển một hệ thống phụ thuộc vào sự tin tưởng trên một hệ thống không tin tưởng, nhưng điều ngược lại là không thể - không thể phát triển một hệ thống không tin tưởng trên một hệ thống phụ thuộc vào sự tin tưởng.


