Mỗi người đã sử dụng Bitcoin đều đã sử dụng một bộ nhớ tạm (mempool). Vậy, bộ nhớ tạm là gì?
Từ góc độ kỹ thuật, không tồn tại cái gọi là "bộ nhớ duy nhất". Mỗi nút Bitcoin hoàn chỉnh đều vận hành bộ nhớ của riêng mình, đó là bộ đệm các giao dịch Bitcoin hợp lệ đã được phát sóng đến mạng nhưng chưa được xác nhận trong khối. Các nút sẽ trao đổi thông điệp với nhau để xem giao dịch nào mà mình có hoặc không có, và trao đổi những giao dịch mà mình không có.
Mỗi bộ nhớ đệm về cơ bản là một "hòn đảo" độc lập, có một tập hợp các giao dịch chưa xác nhận của riêng mình, và đôi khi thậm chí còn có các biến cấu hình và cài đặt riêng. Kích thước của bộ nhớ đệm có thể được cấu hình, mặc định là 300 MB. Ngoài ra, còn có một tỷ lệ phí tối thiểu, được điều chỉnh động và có thể được cấu hình thành một giá trị. Điều này được sử dụng để quyết định trong trường hợp bộ nhớ đệm đã đầy và nhiều giao dịch tiếp tục đổ vào, giao dịch nào sẽ bị loại bỏ khỏi bộ nhớ đệm. Cũng có một số tùy chọn cấu hình khác, chẳng hạn như tùy chọn datacarrier và datacarriersize, chúng ảnh hưởng đến các giao dịch có chứa đầu ra OP_RETURN.
Các lý do mà các nút khác nhau vận hành bộ nhớ theo cách khác nhau là khác nhau, do đó nhu cầu cũng khác nhau, nhưng cuối cùng, việc đáp ứng những nhu cầu này được thực hiện thông qua việc tất cả các nút đồng bộ vận hành bộ nhớ của mình và tương tác lẫn nhau.
Hãy nghĩ về mỗi mempool như một nhóm thực được kết nối với nhau bằng một kênh cơ bản. Mempool càng lớn thì bể bên dưới càng sâu. Các thợ đào, sàn giao dịch, nhà thám hiểm khối, đây sẽ là những nhóm sâu nhất. Tất cả họ đều có động cơ riêng và muốn hiểu mọi giao dịch chưa được xác nhận đang chờ được đóng gói thành từng phần. để đảm bảo rằng họ có giao dịch có lợi nhất trong khối tiếp theo. để đảm bảo rằng họ biết tất cả các giao dịch đang chờ xử lý. Block explorer, bởi vì toàn bộ dịch vụ của họ đang cố gắng trình bày bộ dữ liệu về blockchain và mempool một cách đầy đủ nhất có thể. Nút trung bình của bạn thực sự chỉ cần đủ sâu để chứa phần tốc độ cao nhất của "mempool".
Bây giờ hãy tưởng tượng mỗi giao dịch như một giọt chất lỏng, mức phí càng cao, độ đặc của chất lỏng càng lớn. Những chất lỏng này chảy qua các kênh giữa các hồ khai thác, khi đến mỗi hồ khai thác, một giọt chất lỏng nhận được sẽ được sao chép và sau đó được gửi qua kênh tới bất kỳ hồ khai thác nào khác chưa nhận được giọt chất lỏng đó. Khi các hồ khai thác đầy lên, khi chất lỏng tràn ra, chất lỏng có độ đặc thấp hơn (mức phí thấp hơn) sẽ tràn ra khỏi mép hồ khai thác trước tiên.
Cuối cùng, một số thợ mỏ may mắn sẽ múc một lượng chất lỏng nhất định từ đáy bể khai thác và đổ vào một bể kính mới nhất, tạo thành một bể kính dài và uốn lượn, đầy chất lỏng và sẽ mãi mãi ở đó (chuỗi khối). Đây chỉ là một cách để suy nghĩ trực quan về hệ thống và bao quát phần lớn các động lực của nó.
Sự sắp xếp kết nối này của các bể khai thác cung cấp các mục đích khác nhau cho các người dùng khác nhau.
Nhà giao dịch
Khi người dùng thực hiện giao dịch, mempool có hai mục đích. Đầu tiên, và cũng là quan trọng nhất, là gửi giao dịch của họ đến các thợ đào. Nếu giao dịch không vào mempool của thợ đào, nó sẽ không thể được đóng gói thành khối. Các mempool liên kết và chia sẻ giao dịch với nhau, đảm bảo rằng một khi giao dịch được đưa vào một mempool, cuối cùng nó sẽ vào mempool của tất cả các thợ đào. Có một mạng lưới mạnh mẽ và phi tập trung có thể đảm bảo giao dịch cuối cùng có thể được gửi từ người dùng đến tất cả các thợ đào, không bị ảnh hưởng bởi sự thay đổi và phân mảnh của kết nối mạng, điều này là rất quý giá.
Cách sử dụng thứ hai là ước tính phí, đặc biệt quan trọng đối với người dùng Layer 2, những người cần đảm bảo rằng các giao dịch phản hồi các trạng thái không hợp lệ luôn được xác nhận kịp thời. Phí có thể được ước tính ở một mức độ nào đó chỉ bằng cách nhìn vào tỷ lệ giao dịch trong các khối này, nhưng điều này không cung cấp bất kỳ thông tin nào về trạng thái của mempool sau khối gần đây nhất. Nó không thể giải thích sự gia tăng đột ngột, một dòng người cơ hội vào mempool, hoặc sự gia tăng trong làn sóng giao dịch tiếp theo vẫn chưa kết thúc. Vì bạn không thể nhìn thấy mempool, ước tính chi phí không đảm bảo rằng nó tính đến trạng thái hiện tại của các giao dịch đang chờ xử lý.
Người nhận
Khi bạn nhận được Bitcoin, nút của bạn sẽ xác minh giao dịch đó cũng như toàn bộ khối chứa giao dịch đó. Giao dịch được thanh toán cho bạn sẽ được phát sóng, cuối cùng vào bộ nhớ của thợ mỏ, thợ mỏ sẽ tìm một khối, khối đó sẽ được phát sóng đến mạng, sau đó nút của bạn sẽ tải xuống và xác minh khối đó.
Tuy nhiên, cách hoạt động thực tế không phải như vậy (trừ khi bạn vô hiệu hóa bộ nhớ của nút và chỉ chạy ở chế độ khối). Nút của bạn sẽ xác minh mỗi giao dịch ngay khi nhận được lần đầu vào bộ nhớ và lưu trữ nó như một giao dịch Bitcoin hợp lệ. Khi thợ mỏ tìm thấy một khối, họ thực sự chỉ chuyển tiếp tiêu đề khối và một đoạn thông tin nén nhỏ (do thiếu một giải thích đơn giản tốt hơn), thông tin này có thể được sử dụng để xác định các giao dịch nào có trong khối. Sau đó, nút của bạn sẽ lấy các giao dịch đã được xác minh trước, xác minh tiêu đề khối và nếu tất cả đều hợp lệ, sẽ chuyển tiếp "khối nén".
Tối ưu hóa này thực tế là lý do tại sao các thợ mỏ không còn phụ thuộc vào mạng trung gian tập trung và cần cấp phép, chẳng hạn như FIBRE do Matt Corrallo duy trì trước đây và mạng Falcon tồn tại ngắn ngủi. Do tốc độ trung gian của mạng ngang hàng chậm, các thợ mỏ trước đây phải kết nối với mạng Falcon để đảm bảo độ trễ trung gian khối với các thợ mỏ khác là thấp.
Thợ mỏ
Các thợ mỏ rõ ràng muốn thấy mọi thứ. Họ là những thực thể được thúc đẩy bởi lợi nhuận, muốn có thể chọn lọc các giao dịch có phí thanh toán cao nhất từ một tập hợp các giao dịch chờ xử lý càng lớn càng tốt. Đây là cách họ tối đa hóa lợi nhuận và kiếm thu nhập để tiếp tục mở rộng kinh doanh và duy trì tính cạnh tranh.
Họ thực sự lấy tiền từ pool nhớ. Động lực của họ để lấy bất kỳ giao dịch hợp lệ nào với phí là rất mạnh, đến mức họ đã xây dựng nhiều hệ thống trong lịch sử, hiện tại và gần như chắc chắn trong tương lai, thậm chí là các sắp xếp không chính thức có sẵn trong xã hội, nhằm cho phép người dùng gửi giao dịch trực tiếp đến thợ mỏ, thay vì thông qua mạng ngang hàng mở.
Trình duyệt khối, công cụ phân tích trên chuỗi, v.v.
Họ giống như các thợ mỏ, hy vọng thấy mỗi giao dịch đang chờ xử lý đã được tạo ra và phát sóng đến toàn thế giới. Sự khác biệt chính giữa hai bên là, các thợ mỏ kiếm lợi trực tiếp từ các giao dịch này thông qua việc thu phí, trong khi các trình duyệt blockchain và công ty phân tích kiếm lợi gián tiếp từ các giao dịch này bằng cách hiển thị, phân tích và cung cấp thông tin phân tích trong các sản phẩm có lợi nhuận.
Tôi không thể liệt kê bất kỳ ví dụ cụ thể nào liên quan đến dữ liệu bộ nhớ đệm, nhưng như mọi người đã biết, các công ty phân tích chuỗi thường xuyên mua dữ liệu siêu dữ liệu về hoạt động giao dịch chuỗi mà họ nhận được một cách riêng tư. Họ cũng điều hành các nút Bitcoin của phù thủy, những nút này sẽ kết nối ngang hàng với nhiều nút trong toàn bộ mạng càng nhiều càng tốt để thu hẹp phạm vi các nút phát sóng ban đầu giao dịch.
Các nhà khám phá khối cũng kiếm tiền thông qua biểu diễn trực quan của dữ liệu blockchain và mempool, và toàn bộ mô hình kinh doanh của họ xoay quanh điều này. Nếu bạn có thể trình bày thông tin này hoặc thông tin bạn nhận được từ nó một cách thực tế hoặc mới lạ, thì việc có quyền truy cập vào nhiều dữ liệu hơn và hiển thị cho người dùng có nghĩa là có thêm thông tin về khả năng kiếm tiền.
Thông tin khao khát lưu thông
Tất cả các loại người dùng khác nhau đều hưởng lợi từ "một" bộ nhớ công cộng, lý do rất đơn giản: thông tin tự do chảy giữa chúng. Chỉ cần có đủ phí thông qua bộ lọc trung gian tối thiểu, nó đáp ứng được sự đồng thuận, và sẽ không gây ra rủi ro từ chối dịch vụ hợp pháp hoặc cạn kiệt tài nguyên cho một nút đơn lẻ, nó có thể cung cấp giá trị cho từng loại người dùng trong việc truyền thông tin trong từng bộ nhớ riêng biệt trên mạng.
Nếu không có một bể nhớ công cộng đầy đủ chức năng, giải pháp khả thi duy nhất cho tất cả những người dùng cá nhân với các mục đích khác nhau chính là các giải pháp tập trung, hoặc là một tình huống hỗn loạn khó quản lý, tức là cố gắng xây dựng một bể nhớ công cộng phân mảnh một cách vội vàng và lộn xộn, trong đó mỗi người dùng cần theo dõi riêng các bể nhớ công cộng này.
Điều này không chỉ có thể gây ra mối lo ngại về việc thao túng dữ liệu tỷ lệ, lừa dối người dùng và giá trị có thể khai thác của thợ mỏ do giao dịch trung gian riêng tư. Nếu không có một bể nhớ công cộng mở lành mạnh, đây là những vấn đề mà Bitcoin phải đối mặt.
Trong các bài viết tiếp theo, tôi sẽ nghiên cứu những vấn đề này, cũng như các loại bộ lọc hồ bơi bộ nhớ khác nhau và lý do tồn tại của chúng.
Nội dung chỉ mang tính chất tham khảo, không phải là lời chào mời hay đề nghị. Không cung cấp tư vấn về đầu tư, thuế hoặc pháp lý. Xem Tuyên bố miễn trừ trách nhiệm để biết thêm thông tin về rủi ro.
Bách khoa toàn thư vàng | Bitcoin memory pool là gì? Hoạt động như thế nào?
Nguồn: Tạp chí Bitcoin; Biên dịch: Ngũ Chữ, Tài chính Vàng
Mỗi người đã sử dụng Bitcoin đều đã sử dụng một bộ nhớ tạm (mempool). Vậy, bộ nhớ tạm là gì?
Từ góc độ kỹ thuật, không tồn tại cái gọi là "bộ nhớ duy nhất". Mỗi nút Bitcoin hoàn chỉnh đều vận hành bộ nhớ của riêng mình, đó là bộ đệm các giao dịch Bitcoin hợp lệ đã được phát sóng đến mạng nhưng chưa được xác nhận trong khối. Các nút sẽ trao đổi thông điệp với nhau để xem giao dịch nào mà mình có hoặc không có, và trao đổi những giao dịch mà mình không có.
Mỗi bộ nhớ đệm về cơ bản là một "hòn đảo" độc lập, có một tập hợp các giao dịch chưa xác nhận của riêng mình, và đôi khi thậm chí còn có các biến cấu hình và cài đặt riêng. Kích thước của bộ nhớ đệm có thể được cấu hình, mặc định là 300 MB. Ngoài ra, còn có một tỷ lệ phí tối thiểu, được điều chỉnh động và có thể được cấu hình thành một giá trị. Điều này được sử dụng để quyết định trong trường hợp bộ nhớ đệm đã đầy và nhiều giao dịch tiếp tục đổ vào, giao dịch nào sẽ bị loại bỏ khỏi bộ nhớ đệm. Cũng có một số tùy chọn cấu hình khác, chẳng hạn như tùy chọn datacarrier và datacarriersize, chúng ảnh hưởng đến các giao dịch có chứa đầu ra OP_RETURN.
Các lý do mà các nút khác nhau vận hành bộ nhớ theo cách khác nhau là khác nhau, do đó nhu cầu cũng khác nhau, nhưng cuối cùng, việc đáp ứng những nhu cầu này được thực hiện thông qua việc tất cả các nút đồng bộ vận hành bộ nhớ của mình và tương tác lẫn nhau.
Hãy nghĩ về mỗi mempool như một nhóm thực được kết nối với nhau bằng một kênh cơ bản. Mempool càng lớn thì bể bên dưới càng sâu. Các thợ đào, sàn giao dịch, nhà thám hiểm khối, đây sẽ là những nhóm sâu nhất. Tất cả họ đều có động cơ riêng và muốn hiểu mọi giao dịch chưa được xác nhận đang chờ được đóng gói thành từng phần. để đảm bảo rằng họ có giao dịch có lợi nhất trong khối tiếp theo. để đảm bảo rằng họ biết tất cả các giao dịch đang chờ xử lý. Block explorer, bởi vì toàn bộ dịch vụ của họ đang cố gắng trình bày bộ dữ liệu về blockchain và mempool một cách đầy đủ nhất có thể. Nút trung bình của bạn thực sự chỉ cần đủ sâu để chứa phần tốc độ cao nhất của "mempool".
Bây giờ hãy tưởng tượng mỗi giao dịch như một giọt chất lỏng, mức phí càng cao, độ đặc của chất lỏng càng lớn. Những chất lỏng này chảy qua các kênh giữa các hồ khai thác, khi đến mỗi hồ khai thác, một giọt chất lỏng nhận được sẽ được sao chép và sau đó được gửi qua kênh tới bất kỳ hồ khai thác nào khác chưa nhận được giọt chất lỏng đó. Khi các hồ khai thác đầy lên, khi chất lỏng tràn ra, chất lỏng có độ đặc thấp hơn (mức phí thấp hơn) sẽ tràn ra khỏi mép hồ khai thác trước tiên.
Cuối cùng, một số thợ mỏ may mắn sẽ múc một lượng chất lỏng nhất định từ đáy bể khai thác và đổ vào một bể kính mới nhất, tạo thành một bể kính dài và uốn lượn, đầy chất lỏng và sẽ mãi mãi ở đó (chuỗi khối). Đây chỉ là một cách để suy nghĩ trực quan về hệ thống và bao quát phần lớn các động lực của nó.
Sự sắp xếp kết nối này của các bể khai thác cung cấp các mục đích khác nhau cho các người dùng khác nhau.
Nhà giao dịch
Khi người dùng thực hiện giao dịch, mempool có hai mục đích. Đầu tiên, và cũng là quan trọng nhất, là gửi giao dịch của họ đến các thợ đào. Nếu giao dịch không vào mempool của thợ đào, nó sẽ không thể được đóng gói thành khối. Các mempool liên kết và chia sẻ giao dịch với nhau, đảm bảo rằng một khi giao dịch được đưa vào một mempool, cuối cùng nó sẽ vào mempool của tất cả các thợ đào. Có một mạng lưới mạnh mẽ và phi tập trung có thể đảm bảo giao dịch cuối cùng có thể được gửi từ người dùng đến tất cả các thợ đào, không bị ảnh hưởng bởi sự thay đổi và phân mảnh của kết nối mạng, điều này là rất quý giá.
Cách sử dụng thứ hai là ước tính phí, đặc biệt quan trọng đối với người dùng Layer 2, những người cần đảm bảo rằng các giao dịch phản hồi các trạng thái không hợp lệ luôn được xác nhận kịp thời. Phí có thể được ước tính ở một mức độ nào đó chỉ bằng cách nhìn vào tỷ lệ giao dịch trong các khối này, nhưng điều này không cung cấp bất kỳ thông tin nào về trạng thái của mempool sau khối gần đây nhất. Nó không thể giải thích sự gia tăng đột ngột, một dòng người cơ hội vào mempool, hoặc sự gia tăng trong làn sóng giao dịch tiếp theo vẫn chưa kết thúc. Vì bạn không thể nhìn thấy mempool, ước tính chi phí không đảm bảo rằng nó tính đến trạng thái hiện tại của các giao dịch đang chờ xử lý.
Người nhận
Khi bạn nhận được Bitcoin, nút của bạn sẽ xác minh giao dịch đó cũng như toàn bộ khối chứa giao dịch đó. Giao dịch được thanh toán cho bạn sẽ được phát sóng, cuối cùng vào bộ nhớ của thợ mỏ, thợ mỏ sẽ tìm một khối, khối đó sẽ được phát sóng đến mạng, sau đó nút của bạn sẽ tải xuống và xác minh khối đó.
Tuy nhiên, cách hoạt động thực tế không phải như vậy (trừ khi bạn vô hiệu hóa bộ nhớ của nút và chỉ chạy ở chế độ khối). Nút của bạn sẽ xác minh mỗi giao dịch ngay khi nhận được lần đầu vào bộ nhớ và lưu trữ nó như một giao dịch Bitcoin hợp lệ. Khi thợ mỏ tìm thấy một khối, họ thực sự chỉ chuyển tiếp tiêu đề khối và một đoạn thông tin nén nhỏ (do thiếu một giải thích đơn giản tốt hơn), thông tin này có thể được sử dụng để xác định các giao dịch nào có trong khối. Sau đó, nút của bạn sẽ lấy các giao dịch đã được xác minh trước, xác minh tiêu đề khối và nếu tất cả đều hợp lệ, sẽ chuyển tiếp "khối nén".
Tối ưu hóa này thực tế là lý do tại sao các thợ mỏ không còn phụ thuộc vào mạng trung gian tập trung và cần cấp phép, chẳng hạn như FIBRE do Matt Corrallo duy trì trước đây và mạng Falcon tồn tại ngắn ngủi. Do tốc độ trung gian của mạng ngang hàng chậm, các thợ mỏ trước đây phải kết nối với mạng Falcon để đảm bảo độ trễ trung gian khối với các thợ mỏ khác là thấp.
Thợ mỏ
Các thợ mỏ rõ ràng muốn thấy mọi thứ. Họ là những thực thể được thúc đẩy bởi lợi nhuận, muốn có thể chọn lọc các giao dịch có phí thanh toán cao nhất từ một tập hợp các giao dịch chờ xử lý càng lớn càng tốt. Đây là cách họ tối đa hóa lợi nhuận và kiếm thu nhập để tiếp tục mở rộng kinh doanh và duy trì tính cạnh tranh.
Họ thực sự lấy tiền từ pool nhớ. Động lực của họ để lấy bất kỳ giao dịch hợp lệ nào với phí là rất mạnh, đến mức họ đã xây dựng nhiều hệ thống trong lịch sử, hiện tại và gần như chắc chắn trong tương lai, thậm chí là các sắp xếp không chính thức có sẵn trong xã hội, nhằm cho phép người dùng gửi giao dịch trực tiếp đến thợ mỏ, thay vì thông qua mạng ngang hàng mở.
Trình duyệt khối, công cụ phân tích trên chuỗi, v.v.
Họ giống như các thợ mỏ, hy vọng thấy mỗi giao dịch đang chờ xử lý đã được tạo ra và phát sóng đến toàn thế giới. Sự khác biệt chính giữa hai bên là, các thợ mỏ kiếm lợi trực tiếp từ các giao dịch này thông qua việc thu phí, trong khi các trình duyệt blockchain và công ty phân tích kiếm lợi gián tiếp từ các giao dịch này bằng cách hiển thị, phân tích và cung cấp thông tin phân tích trong các sản phẩm có lợi nhuận.
Tôi không thể liệt kê bất kỳ ví dụ cụ thể nào liên quan đến dữ liệu bộ nhớ đệm, nhưng như mọi người đã biết, các công ty phân tích chuỗi thường xuyên mua dữ liệu siêu dữ liệu về hoạt động giao dịch chuỗi mà họ nhận được một cách riêng tư. Họ cũng điều hành các nút Bitcoin của phù thủy, những nút này sẽ kết nối ngang hàng với nhiều nút trong toàn bộ mạng càng nhiều càng tốt để thu hẹp phạm vi các nút phát sóng ban đầu giao dịch.
Các nhà khám phá khối cũng kiếm tiền thông qua biểu diễn trực quan của dữ liệu blockchain và mempool, và toàn bộ mô hình kinh doanh của họ xoay quanh điều này. Nếu bạn có thể trình bày thông tin này hoặc thông tin bạn nhận được từ nó một cách thực tế hoặc mới lạ, thì việc có quyền truy cập vào nhiều dữ liệu hơn và hiển thị cho người dùng có nghĩa là có thêm thông tin về khả năng kiếm tiền.
Thông tin khao khát lưu thông
Tất cả các loại người dùng khác nhau đều hưởng lợi từ "một" bộ nhớ công cộng, lý do rất đơn giản: thông tin tự do chảy giữa chúng. Chỉ cần có đủ phí thông qua bộ lọc trung gian tối thiểu, nó đáp ứng được sự đồng thuận, và sẽ không gây ra rủi ro từ chối dịch vụ hợp pháp hoặc cạn kiệt tài nguyên cho một nút đơn lẻ, nó có thể cung cấp giá trị cho từng loại người dùng trong việc truyền thông tin trong từng bộ nhớ riêng biệt trên mạng.
Nếu không có một bể nhớ công cộng đầy đủ chức năng, giải pháp khả thi duy nhất cho tất cả những người dùng cá nhân với các mục đích khác nhau chính là các giải pháp tập trung, hoặc là một tình huống hỗn loạn khó quản lý, tức là cố gắng xây dựng một bể nhớ công cộng phân mảnh một cách vội vàng và lộn xộn, trong đó mỗi người dùng cần theo dõi riêng các bể nhớ công cộng này.
Điều này không chỉ có thể gây ra mối lo ngại về việc thao túng dữ liệu tỷ lệ, lừa dối người dùng và giá trị có thể khai thác của thợ mỏ do giao dịch trung gian riêng tư. Nếu không có một bể nhớ công cộng mở lành mạnh, đây là những vấn đề mà Bitcoin phải đối mặt.
Trong các bài viết tiếp theo, tôi sẽ nghiên cứu những vấn đề này, cũng như các loại bộ lọc hồ bơi bộ nhớ khác nhau và lý do tồn tại của chúng.