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 InstantSend and CoinJoin, as the and instant transaction and privacy 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.

Masternodes are paid by the network for the InstantSend, CoinJoin and governance services they provide. 45% of the block reward is paid out to the masternodes, 45% to miners and 10% to the budget. In practice, half of the reward from a normal block goes to the miner and half to the masternode. Then, every 16,616 blocks (approximately 30.29 days), a superblock is created that contains the entire 10% payout to the budget proposal winners. Masternodes are selected for payment in each block (approximately every 2.6 minutes) from a deterministic masternode list, and moved to the back of the list after payment. As more masternodes are created, the duration between payments increases. If the collateral behind a masternode is spent, or if a masternode stops providing services to the network for more than one hour, it is removed from the list until normal service resumes. In this way, masternodes are given incentive to provide efficient and reliable services to the network.

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.

Vào tháng 11 năm 2018, mạng lưới Dash có hơn 5000 masternode nằm trên hơn 45 quốc gia và được giữ ở trên hơn 140 nhà cung cấp dịch vụ Internet. Phần thưởng khối lúc đó xấp xỉ 3.34 Dash, như vậy mỗi masternode được chọn sẽ nhận khoảng 1.67 Dash cho mỗi lần nhận hoặc xấp xỉ 6 Dash mỗi tháng. Phần thưởng khối giảm 7.14% cứ xấp xỉ mỗi năm, như vậy thu nhập hàng năm của mỗi chủ masternode xấp xỉ khoảng 7% của phần đặt cọc, và nó sẽ giảm đi theo thời gian như trong tính toán sau đây. Xem công cụ này để tính toán tỷ lệ trả thưởng theo thời gian thực, và trang web này để có thông tin thống kê theo thời gian của mạng lưới mastenrode.

DIP003 Những thay đổi Masternode

Dash 0.13.0 thực hiện DIP003, nó giới thiệu một số thay đổi cách một masternode của Dash được cài đặt và vận hành. Có một loạt các tài liệu ở trong danh sách dưới đây:

Những khái niệm quan trọng và những thay đổi:

  • Bạn có thể nâng cấp một masternode tại chỗ mà không cần phải bắt đầu một máy chủ mới và không cần phải di chuyển khoản 1000 DASH đặt cọc.

  • Một masternode trước đó được "khởi động" sửu dụng câu lệnh masternode start-alias dựa trên một file masternode.conf. Với DIP003, file này không còn được dùng nữa và các masternode được "đăng ký" thay vì được "khởi động". Masternode bắt đầu cung cấp các dịch vụ khi một ProRegTx giao dịch đặc biệt có chứa một khoá cụ thể được viết vào blockchain.

  • Như trước đây trong masternode.conf, thì ProRegTx tham chiếu đến mã giao dịch (txid) và chỉ mục giữ khoản đặt cọc. Địa chỉ IP và cổng của masternode cũng được định nghĩa trong giao dịch này.

  • Lệnh ProRegTx có chứa 2 địa chỉ Dash (cũng được gọi là các khoá công khai) và một khoá công khai BLS, chúng đại diện cho 3 vai trò khác nhau trong masternode và xác định quyền nâng cấp và bỏ phiếu. Các khoá đó là:

    1. ownerKeyAddr: Đây là một địa chỉ Dash (khoá công khai) kiểm soát bởi chủ masternode. Địa chỉ này khác với địa chỉ dùng cho việc đặt cọc. Bởi vì chủ sở hữu sử dụng khoá riêng liên kết với địa chỉ này để thực hiện giao dịch ProUpRegTx, do vậy nó phải là duy nhất cho mỗi masternode.

    2. operatorPubKey: Đây là khoá công khai BLS của người vận hành masternode. Chỉ có người vận hành mới có thể thực hiện giao dịch ProUpServTx. Bởi vì khoá vận hành được sử dụng trong quá trình vận hành masternode để ký các thông điệp P2P liên quan đến masternode, thông điệp liên quan đến quorum và kích hoạt việc bỏ phiếu quản trị, nên các khoá BLS phải là duy nhất cho mỗi masternode.

    3. votingKeyAddr: Đây là một địa chỉ Dash (khoá công khai) được sử dụng cho việc bỏ phiếu đề xuất. Việc bỏ phiếu ký với khoá riêng tương ứng hợp lệ khi masternode còn trong tập các masternode được đăng ký.

  • Giao dịch thanh toán masternode trước đây được gửi đến địa chỉ giữ khoản đặt cọc. Với DIP003, chủ sở hữu masternode nên chỉ rõ một địa chỉ khác để nhận thanh toán trong giao dịch ProRegTx. Chủ sở hữu cũng có thể không bắt buộc chỉ ra một số phần trăm khác không để dành riêng thanh toán cho người vận hành masternode, nếu muốn.

  • Cấu hình masternode sau đó có thể cập nhật bằng việc sử dụng các giao dịch ProUpServTx, ProUpRegTx và ProUpRevTx. Hãy xem Cập nhật thông tin masternode trong DIP003 và Thông tin cập nhật masternode trong tài liệu này để biết thêm chi tiết.

  • Tất cả các chức năng liên quan đến DIP003 sẽ chỉ có hiệu lực sau khi Spork 15 được kích hoạt trên mạng. Trước khi đến lúc đó, thì vẫn cần phải thiết lập masternode theo quy trình cũ và sau đó tiến hành thông qua quy trình nâng cấp. Trong giai đoạn này, masternode sẽ tiếp tục hoạt động trong chế độ tương thích, và tất cả các tính năng liên quan đến DIP003, sẽ chưa có hiệu lực. Các ownerKeyAddrvotingKeyAddr cũng phải giống hệt nhau đến tận khi Spork 15 được kích hoạt.

Tiến trình cài đặt hoặc nâng cấp một masternode là như sau:

  1. Cài đặt máy chủ và hệ điều hành

  2. Cài đặt phần mềm Dash và đồng bộ blockchain

  3. Sinh một cặp khoá BLS và nhập khoá riêng vào masternode

  4. Chuẩn bị cho một giao dịch ProRegTx

  5. Ký cho giao dịch ProRegTx

  6. Gửi một giao dịch ProRegTx đã được ký

Bước 1 có thể bỏ qua nếu bạn đã có sẵn một máy chủ. Bước 2 và 3 cần truy cập trực tiếp vào masternode. Bước 3 và 4 yêu cầu truy cập đến một ví Dash Wallet (hoặc DMT). Bước 5 cần truy cập đến ví có chứa khoản đặt cọc. Bước 6 cần một số dư Dash để trả cho phí giao dịch.

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 works a little differently from Bitcoin, however, because it has a two-tier network. The second tier is powered by masternodes (Full Nodes), which enable financial privacy (CoinJoin), instant transactions (InstantSend), and the decentralized governance and budget system. Because this second tier is so important, masternodes are also rewarded when miners discover new blocks. The breakdown is as follows: 45% of the block reward goes to the miner, 45% goes to masternodes, and 10% is reserved for the budget system (created by superblocks every month).

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

Thanh toán cho masternode ở Dash phiên bản 0.13.0 được xác định hoàn toàn và dựa trên thuật toán sắp xếp danh sách đơn giản. Để có tài liệu về logic cho thanh toán trong phiên bản 0.12.0, hãy xem tài liệu cập nhật về thanh toán cho masternode. Dash phiên bản 0.13.0 thực hiện DIP003 và định nghĩa hai nhóm masternode.

  1. Trọn bộ, nó có chứa tất cả các masternode đã được đăng ký mà chưa tiêu mất khoản tiền trong các giao dịch đặt cọc.

  2. Hợp lệ, là một tập hợp con của Trọn Bộ nó có chứa tất cả các masternode mà không được đánh dấu là bị cấm Proof of Service (PoSe).

Mỗi masternode trong tập các masternode hợp lệ, xác định bởi mã của giao dịch đăng ký liên kết với khối mà nó được thanh toán lần cuối. Nếu nó chưa từng nhận được thanh toán hoặc bị cấm do không đáp ứng được yêu cầu về PoSe, thì tại block đó nó sẽ được đăng ký như là lần đầu và dịch vụ sẽ được khôi phục trở lại. Một danh sách được sắp xếp tăng dần theo thứ tự độ cao của khối và giá trị băm ProRegTx (như là một bộ ngắt trong trường hợp có hai masternode cùng được đăng ký trong cùng một block), và cái nào đăng ký trước sẽ được chọn để thanh toán.

Proof of Service

Proof of Service (PoSe) là một hệ thống tính điểm dùng để xác định liệu một masternode có cung cấp các dịch vụ một cách trung thực không. Một số tiêu chí được cậy cho việc tính toán, do vậy không thể chơi trò với hệ thống bằng việc làm cho các masternode có thể bị cấm PoSe vì không trả lời các yêu cầu ping bằng việc, ví dụ việc tấn công từ chối dịch vụ DDoS trước khi thanh toán. Mỗi lần thất bại trong việc cung cấp dịch vụ dẫn đến việc tăng điểm PoSe so với điểm tối đa, nó bằng với số lượng masternode đã đăng ký. Nếu điểm số bằng với số masternode được được đăng ký thì một lệnh cấm PoSe sẽ được kích hoạt và masternode phải được sửa chữa để đảm bảo cung cấp những dịch vụ đáng tin cậy và đăng ký vào danh sách lại sử dụng một lệnh ProUpServTx. Quy luật tính điểm hiện tại trong Dash 0.14 là:

  • Không tham gia vào DKG= 66% hình phạt

  • Mỗi khối tiếp theo làm giảm điểm PoSe xuống 1

Lựa chọn Quorum

Trong những phiên bản trước của Dash, một nhóm tối thiểu 10 masternode được lựa chọn một cách tức thời để khoá các giao dịch InstantSend. Từ phiên bản 0.14 của Dash, một nhóm tối thiểu được xác định trước, gồm có các masternode đang và có thời gian hoạt động lâu nhất trên mạng. Trong khi chúng vẫn có nhiệm vụ cho các giao dịch InstantSend, cơ chế khoá này đã thay đổi để tự động khoá một cách tối đa các giao dịch trên mạng mà đạt được những yêu cầu theo như mô tả ở đây. Các Masternode bây giờ cũng chịu trách nhiệm cho nhiều chức năng đồng thuận hơn, như ChainLocks. Các nhóm tối thiểu các masternode được lập nên thông qua một quá trình sinh khoá phân tán. Nếu không tham gia được vào DKG thì thậm chí kết quả sẽ bị khoá PoSe như đã mô tả ở trên.

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.

  • A server or VPS running Linux: Most recent guides use Ubuntu 20.04 LTS. We recommend VPS services such as Vultr and DigitalOcean, although any decent provider will do. Generally an instance with low to average specifications will do, although performance requirements will increase according to this roadmap.

  • 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.

Thêm vào với 1000 Dash được giữ trong khoản đặt cọc, các masternode cũng cần đảm bảo yêu cầu phần cứng tối thiểu. Với Dash phiên bản 0.14 hoặc cao hơn, thì phần cứng yêu cầu là như sau:

Tối thiểu

Đề xuất

CPU

1x 1 GHz

1x 2 GHz

RAM

2 GB + 2 GB swap

4 GB + 2 GB swap

Ổ Đĩa

40 GB

60 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

The exact hardware requirements for Dash Evolution masternodes have yet to be determined, although some pointers can be taken from the roadmap and this blog post. It should be possible to run Dash masternodes on normal VPS servers until the block size reaches approximately 20 MB, after which custom hardware such as GPUs and eventually ASICs may be required.