We present the methodology of our project. Three machine learning methods were applied to improve the efficiency and profitability of blockchain mining. Please feel free to read the Final Report for more details.

1) Enhanced Nonce Finding

We first compared different iteration methods, including both linear and non-linear sequences, in finding the nonce value. We further applied regression to predict the starting nonce for iteration. This helped us mine blocks more quickly and achieve a greater number of wins.

2) Transaction Selection with Reinforcement Learning

We developed a reinforcement learning algorithm to optimize block transactions selection while adhering to the weight limit. Our RL agent was more effective than traditional approaches and was able to fully explore and utilize the complex transaction pool.

3) Optimal Chain-Level Mining Strategy with Markov Decision Process

We modeled the blockchain mining process as a Markov Decision Process (MDP) and solved it using both undiscounted and discounted MDP solvers. Our derived policy attained higher revenue compared to traditional honest and selfish mining, and near-perfect results with favorable hash power and network communication factors.