Nguồn: Tạp chí Bitcoin; Người dịch: Wuzhu, Golden Finance
Tất cả những ai đã sử dụng Bitcoin đều đã sử dụng mempool. Vậy, bộ nhớ là gì?
Về mặt kỹ thuật, không có thứ gọi là nhóm bộ nhớ "duy nhất". Mỗi nút đầy đủ của Bitcoin đều vận hành mempool riêng, đây là bộ nhớ đệm các giao dịch Bitcoin hợp lệ đã được phát tới mạng nhưng chưa được xác nhận trong khối. Các nút trao đổi tin nhắn với nhau để xem chúng có hoặc không có giao dịch nào và trao đổi các giao dịch mà chúng không có.
Mỗi nhóm bộ nhớ về cơ bản là một "hòn đảo" độc lập với tập hợp các giao dịch chưa xác nhận riêng và đôi khi thậm chí có cả các biến cấu hình và thiết lập riêng. Kích thước của nhóm bộ nhớ có thể cấu hình được và mặc định là 300 MB. Ngoài ra, còn có mức giá tối thiểu có thể điều chỉnh linh hoạt và có thể được cấu hình theo một giá trị. Tùy chọn này được sử dụng để quyết định giao dịch nào sẽ bị loại khỏi mempool khi nó đầy và nhiều giao dịch khác tiếp tục đến. Có một số tùy chọn có thể cấu hình khác, chẳng hạn như tùy chọn datacarrier và datacarriersize, ảnh hưởng đến các giao dịch chứa đầu ra OP_RETURN.
Các nút khác nhau có lý do khác nhau để chạy mempool và do đó có các yêu cầu khác nhau, nhưng cuối cùng các yêu cầu đó đều được đáp ứng bởi tất cả các nút chạy mempool của riêng chúng một cách đồng bộ và tương tác với nhau.
Bạn có thể tưởng tượng mỗi nhóm bộ nhớ như một nhóm thực sự được kết nối với nhau thông qua các kênh cơ bản. Nhóm bộ nhớ càng lớn thì nhóm cơ sở càng sâu. 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. Mỗi người đều có động cơ riêng và muốn biết về mọi giao dịch chưa được xác nhận đang chờ được đưa vào khối. Người khai thác phải đảm bảo họ có được những giao dịch có lợi nhuận cao nhất trong khối tiếp theo. sàn giao dịch để đảm bảo họ biết về tất cả các giao dịch đang chờ xử lý. Block explorers, vì toàn bộ dịch vụ của họ đều dành riêng để trình bày một bộ dữ liệu hoàn chỉnh nhất có thể về blockchain và mempool. Nút thông thường của bạn thực sự chỉ cần đủ sâu để chứa phần có mức phí cao nhất trong "mempool" của bạn.
Bây giờ hãy tưởng tượng mỗi giao dịch như một giọt chất lỏng. Tỷ lệ phí càng cao thì chất lỏng càng đặc. Các chất lỏng này chảy theo các kênh giữa các hồ và khi đến mỗi hồ, một giọt chất lỏng nhận được sẽ được sao chép rồi được đưa qua kênh đó đến bất kỳ hồ nào khác chưa nhận được chất lỏng. Khi hồ đầy và chất lỏng tràn ra ngoài, chất lỏng ít đặc hơn (tốc độ thấp hơn) sẽ tràn ra mép hồ trước.
Cuối cùng, một số thợ đào may mắn sẽ lấy một lượng chất lỏng nhất định từ đáy bể khai thác và đổ vào bể thủy tinh mới nhất, tạo thành một bể thủy tinh dài uốn lượn chứa đầy chất lỏng và ở đó mãi mãi (chuỗi khối). Đây chỉ là cách để suy nghĩ về hệ thống một cách trực quan và bao hàm hầu hết các động lực của nó.
Sự sắp xếp các nhóm khai thác được kết nối với nhau này mang lại nhiều mục đích sử dụng khác nhau cho những người dùng khác nhau.
Nhà giao dịch
Khi người dùng thực hiện giao dịch, nhóm bộ nhớ có hai mục đích. Đầu tiên và quan trọng nhất, các giao dịch của họ được gửi đến thợ đào. Nếu giao dịch không nhập vào nhóm bộ nhớ của thợ đào, giao dịch đó không thể được đóng gói thành một khối. Các mempool liên kết và chia sẻ các giao dịch với nhau, đảm bảo rằng khi một giao dịch được đặt trong một mempool, cuối cùng nó sẽ nhập vào mempool của tất cả thợ đào. Việc có một mạng lưới mạnh và phi tập trung đảm bảo rằng các giao dịch cuối cùng sẽ được gửi từ người dùng đến tất cả thợ đào, bất kể sự khác biệt và phân mảnh của kết nối mạng, là vô cùng có giá trị.
Công dụng thứ hai là ước tính phí, đặc biệt quan trọng đối với người dùng Lớp 2 vì họ luôn cần đảm bảo rằng các giao dịch phản hồi trạng thái không hợp lệ có thể được xác nhận kịp thời. Có thể ước tính phí ở một mức độ nào đó chỉ bằng cách xem xét tỷ lệ phí của các giao dịch trong các khối đó, 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 được những đợt tăng đột biến, những kẻ cơ hội tràn vào bộ nhớ, hay làn sóng giao dịch tiếp theo vẫn chưa kết thúc. Nếu không có quyền truy cập vào mempool, ước tính phí không thể đảm bảo tính đến trạng thái hiện tại của các giao dịch đang chờ xử lý.
Nhận
Khi bạn nhận được Bitcoin, nút của bạn sẽ xác minh giao dịch và toàn bộ khối chứa giao dịch đó. Giao dịch trả tiền cho bạn sẽ được phát sóng, lưu vào bộ nhớ của thợ đào, thợ đào tìm thấy một khối, khối đó sẽ được phát sóng lên mạng và nút của bạn sẽ tải xuống và xác minh khối đó.
Nhưng thực tế thì nó không hoạt động như vậy (trừ khi bạn vô hiệu hóa mempool của nút và chạy ở chế độ chỉ khối). Nút của bạn xác thực từng giao dịch khi nó được nhận lần đầu tiên trong mempool và lưu vào bộ nhớ đệm như một giao dịch Bitcoin hợp lệ. Khi thợ đào tìm thấy một khối, họ thực chất chỉ chuyển tiếp tiêu đề khối và một phần nhỏ thông tin được nén (do không có lời giải thích đơn giản nào tốt hơn) mà có thể được sử dụng để xác định giao dịch nào được bao gồm trong khối. Sau đó, nút của bạn sẽ lấy các giao dịch đã được xác thực trước, xác minh tiêu đề khối và nếu mọi thứ đều thông qua, sẽ chuyển tiếp "khối nhỏ gọn".
Thực tế, quá trình tối ưu hóa này chính là lý do khiến thợ đào không còn phải dựa vào các mạng chuyển tiếp tập trung và được cấp phép như FIBRE trước đây do Matt Corrallo và Mạng Falcon duy trì trong thời gian ngắn. Do tốc độ chuyển tiếp chậm của mạng ngang hàng, thợ đào thường phải kết nối với Mạng Falcon để đảm bảo độ trễ chuyển tiếp khối thấp với những thợ đào khác.
Thợ mỏ
Rõ ràng là thợ mỏ muốn nhìn thấy mọi thứ. Họ là những tổ chức hoạt động vì lợi nhuận và muốn lọc qua càng nhiều giao dịch đang chờ xử lý càng tốt để tìm ra các giao dịch có phí thanh toán cao nhất. Đây là cách họ tối đa hóa lợi nhuận và kiếm doanh thu để tiếp tục mở rộng hoạt động kinh doanh và duy trì khả năng cạnh tranh.
Trên thực tế, họ lấy tiền từ bộ nhớ. Động lực của họ trong việc trích xuất bất kỳ giao dịch thanh toán hợp lệ nào mạnh mẽ đến mức trong quá khứ, hiện tại và gần như chắc chắn là trong tương lai, họ đã xây dựng nhiều hệ thống và thậm chí là các thỏa thuận không chính thức có sẵn trên mạng xã hội được thiết kế để cho phép người dùng gửi giao dịch trực tiếp cho thợ đào thay vì thông qua mạng ngang hàng mở.
Công cụ khám phá khối, công cụ phân tích trên chuỗi, v.v.
Giống như thợ đào, họ muốn xem mọi giao dịch đang chờ xử lý đã được tạo và phát sóng ra toàn thế giới. Sự khác biệt chính giữa hai loại này là thợ đào hưởng lợi trực tiếp từ các giao dịch này bằng cách thu phí, trong khi các công ty phân tích và khám phá blockchain kiếm tiền 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ể trích dẫn bất kỳ ví dụ cụ thể nào liên quan đến dữ liệu mempool được lưu trong bộ nhớ đệm, nhưng ai cũng biết rằng các công ty phân tích trên chuỗi thường xuyên mua siêu dữ liệu thu được riêng về hoạt động giao dịch trên chuỗi. Họ cũng vận hành các nút Sybil Bitcoin, có khả năng kết nối rộng rãi nhất có thể với các nút trên toàn mạng lưới để thu hẹp phạm vi các nút ban đầu phát sóng giao dịch.
Các nhà khám phá khối cũng kiếm tiền bằng cách trực quan hóa dữ liệu blockchain và nhóm bộ nhớ, và toàn bộ mô hình kinh doanh của họ xoay quanh điều này. Việc truy cập nhiều dữ liệu hơn và trình bày chúng cho người dùng có nghĩa là có nhiều thông tin có khả năng sinh lợi hơn nếu thông tin đó hoặc thông tin thu được từ thông tin đó có thể được trình bày theo cách hữu ích hoặc mới lạ.
Thông tin luôn khao khát được lưu thông
Tất cả những loại người dùng khác nhau này đều được hưởng lợi từ “một” nhóm bộ nhớ chung vì một lý do đơn giản: thông tin lưu thông tự do giữa họ. Miễn là có đủ phí để vượt qua bộ lọc chuyển tiếp tối thiểu, tuân thủ theo sự đồng thuận và không có nguy cơ từ chối dịch vụ hợp pháp hoặc cạn kiệt tài nguyên cho từng nút, thì việc truyền bá thông tin trong mọi nhóm bộ nhớ riêng lẻ trong mạng sẽ mang lại giá trị cho mọi loại người dùng.
Nếu không có một nhóm bộ nhớ công cộng hoạt động đầy đủ, giải pháp khả thi duy nhất cho người dùng cá nhân với tất cả các mục đích khác nhau này là một giải pháp tập trung hoặc một mớ hỗn độn không thể quản lý được do những nỗ lực cẩu thả và thiếu tổ chức nhằm xây dựng các nhóm bộ nhớ công cộng phân mảnh mà mỗi người dùng cần theo dõi riêng lẻ.
Điều này có thể dẫn đến lo ngại về việc thao túng dữ liệu phí, lừa dối người dùng và cho phép thợ đào trích xuất giá trị thông qua các giao dịch chuyển tiếp riêng tư. Nếu không có một nhóm bộ nhớ công khai lành mạnh và cởi mở, đây chính là những vấn đề mà Bitcoin phải đối mặt.
Trong các bài đăng tiếp theo, tôi sẽ xem xét các vấn đề này cũng như các loại bộ lọc nhóm bộ nhớ khác nhau và lý do tồn tại của chúng.