- I can't find any code path that actually mines proof of stake blocks. The code seems to be implemented, but nothing seems to be calling it yet. Proof of stake blocks definitely aren't mined through getwork, but rather through (currently inactive, or maybe I'm just blind) CPU mining.
- The difficulty for work and stake blocks seems to be (mostly?) the same, but it's divided by the number of accumulated coin days for stake blocks.
- The block reward for a work block is sqrt(sqrt(9999^4 / difficulty)), rounded down to the next cent boundary.
- The block reward for a stake block is the number of coin years put into it divided by 100.
- The number of "bruteforce attempts" for stake blocks is limited to once per second (up to 2 hours into the past), per transaction used as stake input, per block found on the network.
- Proof of stake blocks can include stake from multiple transactions, as long as it's on the same address (IIUC).
- Minimum age for coins used in a stake block is 30 days.
Sunny might want to confirm if the above is correct...
1) It's shared codepath with BitcoinMiner() and it's created in a separate thread and is active
2) The two difficulties starts the same at 256 but will adjust fairly independently from each other
3) About right
4) 1 cent per coin-year consumed in coinstake only (other transactions coin age do not count)
5) It's just the built-in minter's behavior, not an enforcement
6) There is only one output allowed, but inputs can be from multiple addresses. The built-in default minter does not combine from different addresses though to avoid compromising anonymity.
7) Right