Định nghĩa node (nút) có thể thay đổi đáng kể theo ngữ cảnh nó được sử dụng. Khi nói đến mạng máy tính hoặc viễn thông, node có thể được dùng với các mục đích riêng biệt, hoạt động như một điểm phân phối lại hoặc là điểm cuối giao tiếp. Thông thường, một node là một thiết bị mạng vật lý, nhưng trong một số trường hợp cụ thể, nút ảo được sử dụng.
Nói một cách đơn giản, một node mạng là một điểm mà tại đó một tin nhắn có thể được tạo ra, được nhận, hoặc truyền đi. Theo đó, chúng ta sẽ thảo luận về các loại node Bitcoin khác nhau: full node, super node, miner node, và SPV client.
Node Bitcoin
Đi vào ngữ cảnh của blockchain - được thiết kế như một hệ thống phân tán - mạng các node máy tính giúp cho Bitcoin có thể được sử dụng như một loại tiền tệ kỹ thuật số ngang hàng phi tập trung (P2P) không chịu sự kiểm duyệt nhờ vào thiết kế của nó và không cần một bên trung gian để tiến hành giao dịch giữa những người dùng (bất kể khoảng cách địa lý trên thế giới).
Do đó, các node blockchain có trách nhiệm đóng vai trò như một điểm giao tiếp có thể thực hiện các chức năng khác nhau. Bất kỳ máy tính hoặc thiết bị nào kết nối với giao diện Bitcoin đều có thể được coi là một node vì nhìn chung thì chúng giao tiếp với nhau theo cách nào đó. Các node này cũng có thể truyền thông tin về các giao dịch và các khối trong mạng máy tính phân tán bằng cách sử dụng giao thức ngang hàng Bitcoin. Tuy nhiên, mỗi node máy tính được xác định theo các chức năng cụ thể của nó, vì vậy có các loại node Bitcoin khác nhau.
Node đầy đủ (Full Node)
Full node là các node thực sự hỗ trợ và cung cấp bảo mật cho Bitcoin. Các node này không thể thiếu đối với mạng. Các node này cũng được gọi là các node xác nhận đầy đủ vì chúng tham gia vào quá trình xác minh các giao dịch và khối trước các quy tắc đồng thuận của hệ thống. Full node cũng có thể chuyển tiếp các giao dịch và khối mới đến blockchain.
Thông thường, một full node tải xuống một bản sao của blockchain bitcoin với mỗi khối và giao dịch trên đó, nhưng đây không phải là yêu cầu để được coi là một full node (một bản sao thu gọn của blockchain có thể được sử dụng thay thế).
Một full node của Bitcoin có thể được thiết lập thông qua các triển khai phần mềm khác nhau, nhưng được sử dụng nhiều nhất và phổ biến nhất là Bitcoin Core. Đây là những yêu cầu tối thiểu để chạy một full node Bitcoin Core:
Máy tính bàn hoặc máy tính xách tay được cài phiên bản gần đây của Windows, Mac OS X hoặc Linux.
200GB dung lượng ổ cứng trống.
Bộ nhớ 2GB (RAM).
Kết nối internet tốc độ cao với tốc độ tải lên tối thiểu 50 kB/s.
Kết nối không giới hạn hoặc kết nối có giới hạn tải lên cao. Full node có thể đạt hoặc vượt quá mức sử dụng tải lên là 200 GB/tháng và mức sử dụng tải xuống là 20 GB/tháng. Bạn cũng sẽ cần tải xuống cỡ 200GB khi lần đầu tiên khởi chạy full node.
Full node của bạn nên chạy ít nhất 6 giờ mỗi ngày. Thậm chí tốt hơn nếu bạn cho chạy liên tục (24/7)
Nhiều tổ chức và người dùng tình nguyện đang chạy full node Bitcoin như là một cách để hỗ trợ hệ sinh thái Bitcoin. Hiện tại, có khoảng 9.700 node công cộng đang chạy trên mạng Bitcoin. Lưu ý rằng con số này chỉ bao gồm các node công cộng là các listening node của Bitcoin được cho hiển thị và có thể truy cập vào được (còn được biết đến là các listening node).
Bên cạnh các node công cộng, có nhiều node ẩn khác không hiển thị (các non-listening node). Các node này thường hoạt động đằng sau tường lửa, thông qua các giao thức ẩn như Tor, hoặc đơn giản là vì chúng được cấu hình để không nhận kết nối.
Listening Node (Super Node)
Về cơ bản, một listening node hoặc super node là một full node có kết nối được công khai. Nó giao tiếp và cung cấp thông tin cho bất kỳ node nào khác quyết định thiết lập kết nối với nó. Do đó, một super node cơ bản là một điểm phân phối lại có thể đóng hai vai trò như một nguồn dữ liệu và một cầu giao tiếp.
Một super node đáng tin cậy thường chạy 24/7 và có một số kết nối được thiết lập. Node này truyền tải lịch sử blockchain và dữ liệu giao dịch tới nhiều node trên khắp thế giới. Vì lý do đó, một super node có thể cần nhiều công suất tính toán hơn và kết nối internet tốt hơn khi so sánh với một full node bị ẩn.
Node của thợ đào
Để có thể đào Bitcoin trong tình trạng cạnh tranh hiện tại, thợ đào phải đầu tư vào các phần cứng và chương trình đào chuyên biệt. Các chương trình đào (phần mềm) này không liên quan trực tiếp đến Bitcoin Core và chạy song song để đào các khối Bitcoin. Một thợ đào có thể chọn làm việc một mình (solo miner) hoặc theo nhóm (pool miner).
Trong khi các full node của solo miner tận dụng bản sao blockchain của riêng họ, các pool miner làm việc cùng nhau, mỗi người đóng góp tài nguyên tính toán của mình (hashpower). Trong một mỏ khai thác, chỉ quản trị viên của mỏ cần phải chạy một full node - có thể được gọi là full node của pool miner.
Lightweight Client hay còn gọi là SPV Client
Còn được biết đến là Simplified Payment Verification (SPV) client, lightweight client là máy khách tận dụng mạng Bitcoin nhưng không thực sự hoạt động như một full node. Do đó, SPV client không đóng góp vào an ninh của mạng vì không giữ một bản sao của blockchain và không tham gia vào quá trình xác minh và xác thực giao dịch.
Tóm lại, SPV là phương thức mà qua đó người dùng có thể kiểm tra xem liệu một số giao dịch có được đưa vào trong một khối hay không mà không phải tải xuống toàn bộ dữ liệu khối. Do đó, SPV client dựa vào thông tin được cung cấp bởi các full node khác (các super node). Lightweight client hoạt động như các điểm cuối giao tiếp và được sử dụng bởi nhiều ví tiền điện tử.
Client Node và Mining Node
Điều quan trọng cần lưu ý là chạy một full node không giống như chạy một node đào đầy đủ. Trong khi thợ đào phải đầu tư vào phần cứng và phần mềm đào đắt tiền, bất kỳ ai cũng có thể chạy một node xác thực đầy đủ. Hơn nữa, trước khi cố gắng đào một khối, thợ đào cần thu thập các giao dịch đang chờ xử lý mà trước đó đã được chấp nhận là hợp lệ bởi các full node. Tiếp theo, thợ đào tạo ra một khối ứng cử viên (với một nhóm các giao dịch) và cố gắng đào khối đó. Nếu thợ mỏ tìm ra một lời giải hợp lệ cho khối đó, anh ta sẽ thông báo nó trên mạng và các full node khác sẽ xác minh tính hợp lệ của khối. Do đó, các quy tắc đồng thuận được quyết định và bảo đảm bởi mạng phân tán gồm các node xác thực chứ không phải bởi các thợ đào.
Kết luận
Các node Bitcoin giao tiếp với nhau thông qua giao thức mạng P2P Bitcoin, Bằng cách như vậy, chúng đảm bảo tính toàn vẹn của hệ thống. Một node bị lỗi hoặc cố gắng truyền đi thông tin không chính xác sẽ nhanh chóng được các node trung thực nhận ra và sẽ bị ngắt kết nối khỏi mạng.
Mặc dù thực tế là việc chạy một node xác thực đầy đủ không nhận được phần thưởng tài chính, nó vẫn được khuyến khích vì nó cung cấp sự tin tưởng, bảo mật và riêng tư cho người dùng. Các full node đảm bảo rằng các quy tắc đang được tuân theo. Chúng bảo vệ blockchain chống lại các cuộc tấn công và gian lận (chẳng hạn như gian lận chi tiêu double-spending). Ngoài ra, full node cho phép người dùng có toàn quyền kiểm soát tiền của mình vì không cần phải ủy thác vào đối tượng khác.