Hiểu về Masternode

Masternode, đã từng là độc nhất cho mạng lưới Dash, nhưng bây giờ trở nên một công nghệ phổ biến và được đưa lên những nền tảng blockchain khác. Phần tài liệu này sẽ mô tả những nguyên tắc và cơ chế của masternode và các dịch vụ mà chúng cung cấp đặc biệt cho mạng lưới Dash.

Simply put, a masternode is a server with a full copy of the Dash blockchain, which guarantees a certain minimum level of performance and functionality to perform certain tasks related to block validation, as well as PrivateSend and InstantSend, as the anonymity and instant transaction features in Dash are called. The masternodes are paid for this service, using a concept known as Proof of Service. This is in addition to the Proof of Work done by miners to secure the blockchain. Masternodes are also allowed to vote on governance and funding proposals, with each masternode receiving one vote (yes/no/abstain) on each proposal submitted to the system.

Bất cứ ai cũng có thể chạy một masternode. Mục đích của việc này là có được sự phi tập trung cần thiết để đảm bảo rằng không một ai có thể kiểm soát phần lớn các masternode. Tuy nhiên, để tránh làm đầy mạng lưới với nhiều masternode không cần thiết hoặc khuyến khích những người thiếu thận trọng, thì có một điều kiện cần phải thực hiện: đó là chứng minh việc sở hữu 1000 DASH. Coin không cần thiết phải ở trong masternode, nhưng nó cần phải được giữ trong một cách nào đó mà làm minh bạch cho toàn bộ mạng lưới. Nếu chủ sở hữu di chuyển hoặc tiêu đi những coin đó, thì masternode sẽ dừng hoạt động và việc thanh toán sẽ dừng lại.

Masternode được trả công bởi mạng lưới cho việc cung cấp dịch vụ PrivateSend, InstantSend và dịch vụ quản trị. 45% Phần thưởng khối được trả cho các masternode, 45% trả cho các thợ mỏ và 10% sẽ đưa vào ngân sách. Trong thực tế, một nửa phần thưởng từ các khối bình thường sẽ trả cho thợ mỏ và một nửa sẽ trả cho masternode. Sau đó, cứ mỗi 16,616 khối (xấp xỉ 30.29 ngày), một siêu khối được tạo và nó có chứa toàn bộ 10% phần chi trả cho những người dành được đề xuất ngân sách. Các masternode được chọn một cách ngẫu nhiên để thanh toán trong mỗi khối (xấp xỉ cứ mỗi 2.6 phút) từ một danh sách một khi chúng đạt tới top 10% của tổng số các masternode, và sau đó quay trở lại cuối hàng đợi sau khi đã được thanh toán. Khi càng có nhiều masternode được tạo, thì thời gian giữa các đợt thanh toán này sẽ được tăng lên. Do thuật toán lựa chọn, luôn có một khía cạnh ngẫu nhiên để lựa chọn thanh toán, nhưng về lâu dài, tất cả các chủ sở hữu masternode sẽ nhận được các khoản thanh toán tương tự nhau. Nếu khoản đặt cọc của masternode đã bị tiêu, hoặc một masternode dừng cung cấp dịch vụ cho mạng trong khoảng hơn một giờ, nó được đưa ra khỏi danh sách cho đến khi dịch vụ được cung cấp trở lại. Theo cách này, các masternode có động lực để cung cấp dịch vụ một cách hiệu quả và tin cậy cho mạng lưới.

Việc có nhiều máy chủ lưu giữ toàn bộ bản sao của blockchain và làm việc cho đồng coin làm cho nó trở nên cực kỳ hữu ích. Nhờ có hệ thống phần thường này, làm cho không còn rủi ro do việc thiếu masternode, và do đó các nhà phảt triển có thể dựa vào đó để nhanh chóng triển khai những tính năng phi tập trung mới mà họ muốn thực hiện. Đây thực sự là điểm mạnh của Dash - một hệ thống tạo động lực cho hàng ngàn máy chủ nằm phân tán hoạt động 24x7 có nghĩa là Dash có thể mở rộng một cách hiệu quả hơn và triển khai các dịch vụ nhanh chóng hơn các blockchain mà chạy hoàn toàn bởi những người tình nguyện không được trả công. Càng có nhiều masternode mạng lưới của Dash càng tốt hơn và an toàn hơn.

As of March 2018, the Dash network has over 4700 masternodes located in over 41 countries and hosted on over 100 ISPs. The block reward is approximately 3.34 Dash, so the selected masternode receives 1.67 Dash per payment or approximately 6 Dash per month. The block reward decreases by 7.14% approximately once per year, so the annual earnings for a masternode owner is approximately 7% of the collateral, and will decrease over time as calculated here. See this tool to calculate real-time payment rates, and this site for various real-time statistics on the masternode network.

Masternodes so với đào coin

Dash, cũng giống như Bitcoin và hầu hết các loại tiền kỹ thuật số, là dựa trên một sổ cái phi tập trung chứa tất cả các giao dịch, được biết là một blockchain. Blockchain này được đảm bảo thông qua một cơ chế đồng thuận; trong trường hợp của cả Dash và Bitcoin, cơ chế đồng thuận đó là Proof of Work (PoW). Các thợ mỏ cố gắng giải quyết bài toán khó, họ nhận quyền tạo một khối mới vào blockchain. Nếu tất cả những người khác đang chạy phần mềm đó đồng ý rằng bài toán đã dược giải một cách chính xác, khối sẽ được tạo vào blockchain và thợ mỏ đó nhận được phần thưởng.

Dash hoạt đông khác một chút so với Bitcoin, tuy nhiên, bởi vì nó có mạng lưới hai tầng. Tầng thứ hai được tạo bởi các masternode (các Full node), nó cho phép giao dịch tài chính riêng tư (PrivateSend), giao dịch tức thời (InstantSend), và hệ thống quản trị và cấp vốn phi tập trung. Bởi tầng thứ hai này là rất quan trọng, masternode cũng được trả thưởng khi các thợ mỏ tạo ra những khối mới. Nó chia phần thưởng khối như sau: 45% phần thưởng khối được trả cho thợ mỏ, 45% trả cho masternode và 10% dự trữ lại cho hệ thống ngân sách (được tạo ra bởi các siêu khối cứ mỗi tháng một lần).

Hệ thống masternode được gọi là Proof of Service (PoSe), từ khi masternode cung cấp những dịch vụ quan trọng cho mạng lưới. Thực ra, toàn bộ mạng lưới được giám sát bởi các masternode, nó có khả năng từ chối những khối được tạo không đúng bởi các thợ mỏ. Nếu một thợ mỏ cố gắng chiếm đoạt toàn bộ phần thưởng khối cho mình hoặc cố gắng chạy một phiên bản cũ của phần mềm Dash, thì mạng lưới masternode sẽ làm cho khối đó trở nên mồ côi, và nó sẽ không được đưa vào blockchain.

Nói một cách ngắn gọn, các thợ mỏ tạo nên tầng thứ nhất, nó cơ bản là gửi và nhận tiền và ngăn ngừa việc tiêu lặp. Masternode thì tạo nên tầng thứ hai, nó cung cấp những tính năng bổ sung làm cho Dash trở nên khác biệt với các loại tiền điện tử khác. Masternode không đào coin, và các máy đào không thể phục vụ như các masternode. Hơn nữa, mỗi masternode được "đảm bảo" bởi 1000 DASH. Những DASH đó vẫn luôn thuộc quyền quản lý của người chủ nó, và vẫn có thể được tự do chi tiêu. Khoản tiền này không bị khoá theo bất cứ cách thức nào. Tuy nhiên, nếu khoản tiền này được di chuyển hoặc chi tiêu, masternode gắn cùng với nó sẽ không được kích hoạt và sẽ dừng nhận phần thưởng.

Logic thanh toán

Việc thanh toán cho masternode trong phiên bản 12 của Dash được xác định bằng việc sử dụng hàng đợi xác định phi tập trung với việc lựa chọn xác xuất.

Danh sách toàn cục

Mỗi masternode xuất hiện trong một danh sách chung. Vị trí của chúng trong danh sách này xác định bởi thời gian của chúng kể từ lần thanh toán cuối cùng theo mạng chứ không phải là blockchain. Một masternode mới tham gia mạng lưới và các masternode mới nhận thanh toán được đưa vào cuối của danh sách. Các masternode đang chạy và dược kích hoạt được sử dụng bởi câu lệnh rpc 'masternode start' or 'masternode start-alias' cũng được đặt vào cuối của danh sách. Sử dụng câu lệnh mới 'masternode start-missing' để tránh điều này. Khi các masternode được đưa xuống cuối của danh sách chung, những masternode còn lại sẽ dần dần được di cuyển về phía đầu của danh sách. Khi một masternode đạt đến 10% trên cùng của danh sách chung, nó sẽ đủ điều kiện để được lựa chọn từ bể lựa chọn.

Pool lựa chọn

Bể lựa chọn là 10% đầu tiên của danh sách chung. Kích thước của chúng được xác định bởi tổng số masternode. Ví dụ, nếu có 4500 masternode hoạt động thì 450 masternode đầu tiên trong danh sách chung là đủ điều kiện cho việc chọn lựa. Khi ở trong bể chọn lựa, việc chọn lựa thanh toán được xác định bởi entropy của mã băm của khối. Mã băm của 100 khối trước xác định masternode nào sẽ được chọn để thanh toán. Một giá trị băm kép SHA256 của mã băm và chỉ số giao dịch cấp vốn cho tất cả các masternode trong bể lựa chọn được so sánh với mã băm Proof of Work của 100 khối trước đó. Masternode có giá trị băm gần nhất với mã băm của khối thì được chọn để thanh toán.

Xác xuất

Bởi vì việc lựa chọn được xác định bởi entropy của mã băm khối, nên không thể đoán được khi nào thì thanh toán sẽ xảy ra. Người vận hành masternode sẽ thấy có những khác nhau về khoảng thời gian cho mỗi đợt thanh toán. Khi một masternode đi vào bể chọn, việc thanh toán xảy ra như là một xác xuất. Xác xuất trong trường hợp này được tính bằng cách sử dụng kích thước bể chọn hiện tại là 450 (với 4500 masternode). Các nút trong bể chọn được lựa chọn trả thưởng một cách ngẫu nhiên. Trong trường hợp này xác suất được chọn trên bất kỳ khối nhất định nào là 1/450.

Bảng dưới đây cho thấy xác suất của một nút đủ điều kiện được chọn để thanh toán trong một khoảng thời gian cụ thể. Ví dụ, xác suất mà một nút đủ điều kiện được chọn trong vòng 12 giờ là khoảng 46%. Bảng này không (và không thể) cho chúng ta biết xác suất được chọn sau một khoảng thời gian nhất định. Ví dụ: nếu bạn chưa được chọn trong vòng 12 giờ qua -- và chúng ta biết từ bảng này có khoảng 54% cơ hội xảy ra -- xác suất được chọn trên khối tiếp theo không là 46%. Nó vẫn là 1/450. Đặt những thứ này lại với nhau, nếu bạn có nút đủ điều kiện và giả sử 48 giờ đã trôi qua mà không được thanh toán, thì bạn đã rất không may mắn vì có ít hơn 10% khả năng đó xảy ra. Nhưng, cơ hội được chọn của bạn trên khối tiếp theo vẫn giữ nguyên như đối với bất kỳ khối nào, tức là 1/450.

Một khi một nút được chọn để thanh toán, nó được đưa xuống cuối của danh sách và không thể được chọn lại lần nữa cho đến khi nó được đưa vào bể chọn lựa.

Giờ Khối Xác xuất
1 23.07 5.00%
2 46.14 9.76%
3 69.21 14.27%
4 92.28 18.56%
6 138.42 26.50%
8 184.56 33.67%
10 230.70 40.14%
12 276.84 45.98%
18 415.26 60.30%
24 553.68 70.82%
30 692.10 78.56%
36 830.52 84.24%
42 968.94 88.42%
48 1107.36 91.49%
72 1661.04 97.52%
96 2214.72 99.28%

Bạn có thể chạy đoạn mã (được viết bởi thành viên cộng đồng là moocowmoo dùng để tạo ra bảng trên đây.

Lựa chọn Quorum

Giao dịch InstantSend trong Dash phiên bản 12 được đảm bảo an toàn bằng việc đồng thuận của các masternode đã được chọn nhất định. Tập hợp các masternode này được gọi chính thức là một quorum và phải ở trong sự chấp thuận của đa số, ít nhất là sáu trên mười, để có thể khoá thành công các đầu vào của một giao dịch. Có nhiều quorum được tự chọn cho mỗi đầu vào và trong một giao dịch InstantSend sử dụng một khoảng cách toán học giữa giá trị băm của mỗi đầu vào và của tập hợp các giao dịch cấp vốn cho masternode.

Mỗi masternode nhận yêu cầu khóa giao dịch InstantSend so sánh giá trị băm của giao dịch cấp vốn của masternode với giá trị băm của đầu vào yêu cầu khóa. Sau khi kiểm tra tính hợp lệ của các đầu vào không được chi tiêu, mười masternodes xa nhất từ mã băm này phát tán việc chấp nhận của chúng về việc khóa.

Tất cả các đầu vào cho InstantSend phải có ít nhất qua 6 block nếu không giao dịch sẽ bị từ chối.

Các yêu cầu cho masternode

  • 1000 Dash: Thường được cho rằng là phần khó nhất. Có thể có được Dash bằng việc mua nó trên các sàn giao dịch như Poloniex, Bittrẽ, Kraken và LiveCoin. Sử dụng dịch vụ của Shapeshift cũng là một cách hay.
  • Một máy chủ hoặc VPS chạy Linux: Hầu hết các hướng dẫn gần đây sử dụng Ubuntu 16.04 LTS. Chúng tôi gợi ý dùng dịch vụ VPS như Vultr và DigitalOcean, mặc dù bất kỳ nhà cung cấp tốt nào cũng đều có thể làm được. Nói chung một cấu hình cỡ thấp và vừa cũng có thể chạy được, tuy nhiên yêu cầu về năng lực sẽ tăng lên theo lộ trình này.
  • Có một địa chỉ IP dành riêng: Thường được đi cùng với một máy chủ/máy chủ ảo.
  • Trong thời gian ngắn ban đầu (và cốt lõi): Các masternode thường yêu cầu việc cài đặt phức tạp, nhưng công cụ như Dashman hiện nay đã đơn giản hoá rất nhiều cho công đoạn này.

Bên cạnh việc phải dành riêng 1000 DASH làm đặt cọc, các masternode cũng phải có phần cứng đạt mức yêu cầu tối thiểu. Trong phiên bản 12.1 thì yêu cầu cho masternode là như sau:

  Tối thiểu Đề xuất
CPU 1x 1 GHz 1x 2 GHz
RAM 1 GB 2 GB
Ổ Đĩa 8 GB 16 GB
Mạng 400 GB/mth 1 TB/mth

Masternode sử dụng băng thông vào khoảng 300-500 GB cho mỗi tháng và sẽ tăng lên khi mạng lưới phát triển.

Dash Evolution

Yêu cầu về phần cứng cụ thể cho masternode của Dash Evolution chưa được xác định, tuy nhiên có một số điểm có thể được lấy từ lộ trìnhbài viết trên blog này. Sẽ có thể chạy masternode cho Dash trên các máy chủ ảo thông thường đến tận khi kích thước block tăng lên xấp xỉ 20 MB, sau dó thì cần phải có những phần cứng riêng như GPU và thậm chí cần đến cả chip ASIC.