An important part of ZenCash is operating Secure Nodes. Zen Nodes run the software that makes the ZenCash system work.
The purpose of Secure Nodes is to create a network that is large and resilient enough to provide the foundation for a worldwide private communication and publishing system that is difficult to interrupt and gather data on. The ideal would be 1000-5000 secure nodes, each running on a separate system, all over the world.
Part of the ZenCash specification is to redirect 3.5% of the mining reward to the owners of ZenCash Secure Node which meet the requirements. The ZenCash Secure Node System is the application software running on nodes as well as the systems and servers which perform these functions:
- Challenge Generation
- Response Tracking
- Analysis and Reporting
The first level implementation is to get the basics of the system going so people can operate and be rewarded for running Secure Nodes. Over time the system can be improved to be more distributed, resilient, and automatic. Each of the specific applications are intended to run on servers owned by the ZenCash Foundation, with operation by team members.
The first step is to find someone to select as the software development project manager for the different Secure Node system below. Next would be for the project manager to get more specific software specifications written. After that, we can get proposals for development of the software application on ZenCash maintained servers.
Zen team will contract for the development of the applications, which will be developed in an open-source manner with an MIT license.
Please review the ZenCash forum post with the Secure Node System overview specification. Discussion takes place in the forum, and on the ZenCash Slack in the #securenodes and #developers channels.
General Description of System
Zen Secure Nodes require multiple applications running on different systems to operate. It involves the Zen nodes running software to monitor for and respond to a challenge. There are also applications running on systems that track the challenge, record it, and report. Furthermore, there are applications running on systems to authorize payment.
List of System Applications:
- Secure Node Challenge Publishing System (ChalPubSys) – This is the system that generates the challenge. Anyone operating a secure node can monitor the challenge system and respond to it.
- Secure Node (SecNode) – This is the actual secure node. There will be many of these. It is a hardened server that runs the Zen node system software. It also needs to run the SecNodeApp software. It has to maintain a small amount of Zen on it to be able to send shielded transactions.
- Secure Node System Application (SecNodeApp) – This is an application designed to operate on the same system as the Secure Node. It will check the ChalPubSys every minute. When a new challenge is published, it will take action and generate a Response, publish the Response, and send a Response Notification.
- Secure Node Response Tracking System (TrackSys) – This server receives the shielded transactions, analyzes them, and records them in a database.
- Secure Node Response Reporting Server (ReportSys) – This server will operate a web page that posts the information in the databases of the TrackSys.
- Secure Node Payout System (NodePaySys) – This is the server that calculates the payment transactions to be made every payout period.
Other Application Servers that are helpful to operating the system:
- Secure Node Information System (NodeInfoSys) – This server maintains a count and identification of all the Zen nodes it can find. It figures out which ones are operating with a valid SSL certificate. Operates a web page providing information.
- ZenCash Block Explorer (BlockExplorer) – Server running a full Zen node with entire Zen blockchain. Provides a web page with a way to search the ZenCash blockchain by transaction, t_address, block number, and other ways.
Operating System Example
At the beginning, a Challenge will be published daily. This can be increased in frequency as the system scales.
- Challenge is published by ChalPubSys (JSON format)
- Challenge Sequence Number
- Transaction number from the ZenCash blockchain
- Shielded address (z_address) to send response to
- SecNodeApp is running on a Zen Secure Node. It checks for a new challenge every minute. When it sees a new Challenge, it:
- Creates a Response
- Challenge Sequence Number
- Response address (looked up from the transaction number)
- Secure Node identifier (Secure node t_address)
- Secure Node ZenCash staking info (Staking t_address)
- Encrypts the response using SSL private key
- Publishes SSL public key and Response (JSON format)
- Creates a z_transaction with Response URL in memo field and sends it to the Challenge Shielded Address
- Creates a Response
- TrackSys checks ZenCash blockchain for new responses. When it sees one, it:
- Reads the memo field.
- Gets the JSON information from the URL in the memo field
- Verifies SecureNode SSL public cert is valid
- Decrypts the Response with the SSL public cert
- Validates the Response is correct for the challenge
- Records the valid response for both the Node t_address and Staking t_address.
- When the Challenge period is complete, it stops checking for new responses and creates a list of Node and Staking addresses that provided a valid challenge .
- ReportSys updates it’s data and presents it in a user readable web page.
- Information from TrackSys as each response comes in.
- List of successful Secure Nodes per valid Challenge sequence number
- Historical record of Challenges and valid Responses
- Process 1-4 continues for the duration of the 1 week period. When the week is over, NodePaySys calculates payouts based on formula above.
- The more successful Responses, the less each Secure Node is paid.
- Payment will be sent to the Staking t_address
- Payments will be made weekly.
Please review the ZenCash forum post with the Secure Node System overview specification. Discussion takes place in the forum, and on the ZenCash Slack in the #securenodes and #developers channels. We would love to have people join the ZenCash Secure Node System discussion, no matter what level of development or cryptocurrency experience.
ZenCash Website – https://www.horizen.io/
ZenCash Blog – https://blog.horizen.io
ZenCash Github – https://github.com/HorizenOfficial
ZenCash Forum – https://www.reddit.com/r/Horizen/
ZenCash Slack – https://www.horizen.io/invite/discord
ZenCash Twitter – @HorizenGlobal
ZenCash on BitcoinTalk – https://bitcointalk.org/index.php?topic=2047435.0;topicseen