![]() |
|
|
#12 | |
|
"/X\(‘-‘)/X\"
Jan 2013
https://pedan.tech/
24×199 Posts |
Quote:
Do we reward on work done or factors found? I'm inclined to go with rewarding factors found on an exponent, as checking the work is done is trivial. I'm inclined to not track unsuccessful TF attempts: we can't easily verify it was actually done. This means work will be repeated, which is what we want anyway to catch missed factors. Smart pools will obviously avoid duplicating work, but implement heuristics to detect underperforming clients. Machines that find new factors in each round would be eligible to certify the block. They could reject factors for exponents already found. The lower the exponent and larger the prime factor, the higher the payout should be. I'm sure someone smarter than me knows the magic formula for how many candidates there are for a given bit depth for a given exponent. We could then multiply that formula by a function (perhaps the rational function?), such that finding factors for the highest exponents is almost worthless: this should focus the effort on low exponents. I suppose if we wanted to make a dynamically adjusting target, we could restrict the largest eligible exponent for a round or something like that. I'm not sure about the best way to determine this cutoff though. I'll have to study cryptocurrency algorithms more to comment further. I've probably missed critical things in my thoughts above. |
|
|
|
|
|
|
#13 | ||
|
"/X\(‘-‘)/X\"
Jan 2013
https://pedan.tech/
24·199 Posts |
Quote:
Quote:
|
||
|
|
|
|
|
#14 | |||||||
|
"Composite as Heck"
Oct 2017
95010 Posts |
Quote:
Quote:
Quote:
BTW how ASIC-able are we talking? I've always thought GPUs are pretty well matched for factoring, but I suppose some sort of dedicated integer solution could blow them out of the water. Quote:
Quote:
Quote:
Quote:
This is an interesting topic, neatly merging two of my interests. I might make a shopping list later of what I think a viable solution would be, but this post is a bit long and I'm hungry :P |
|||||||
|
|
|
|
|
#15 | |
|
Sep 2003
2×5×7×37 Posts |
Quote:
But from our point of view, we only care about finding factors, not space heaters doing random proof-of-work. So you'd be advertising yet another cryptocurrency, except you say it's obviously ASIC-able and we're ruling out ever doing any algorithm modifications? Hmm. I can't see mercenary GPU farmers getting on board. Are there enough math enthusiasts to achieve critical mass? |
|
|
|
|
|
|
#16 | ||
|
"/X\(‘-‘)/X\"
Jan 2013
https://pedan.tech/
24·199 Posts |
Quote:
Quote:
|
||
|
|
|
|
|
#17 |
|
If I May
"Chris Halsall"
Sep 2002
Barbados
2C6E16 Posts |
A *very* interesting subject!
One of the big things I don't like about cryptocurrencies is that they are competitive rather than cooperative with their use of computational resources (and, thus, energy usage). A few issues I can immediately think of for TF'ing Mersenne Prime candidates as a block-chain PoW: 1. There is nothing stopping someone with lots of ability to simply keep back from submitting new factors they've already found until new blocks are needed to be "solved". 1.1. The only way I can think of to get around this is to somehow have a completed block state what the next candidate(s) to TF are. Perhaps produce a list of at least a few thousand so that it is unlikely to be intractable, but at the same time not predictable. 2. Turn-around-time for each worker would have to be reduced significantly, since once a block has been completed each worker would have to start on the new challenge(s). 3. The temporal domain for the next block is somewhat undefined. Will people transferring "MFcoin" be comfortable not knowing how long the transfer will take? 4. A "double-spend" attack could easily be done with our current resources. Just today, for example, "The Judger" dumped 447K GHD/d worth of work (!) after only a temporal week. Still, worth thinking about! |
|
|
|
|
|
#18 | |||
|
"Composite as Heck"
Oct 2017
3B616 Posts |
Candidate space
Limit allowable candidates to validate this block
Difficulty
Using the bitcoin block header as reference ( https://en.bitcoin.it/wiki/Block_hashing_algorithm ) , here is a potential block header: Code:
hashPrevBlock - Hash of the previous block header hashMerkleRoot - Hash of all the transactions in this block Time - Current timestamp as seconds since 1970-01-01T00:00 UTC Difficulty - As above factorCount - Varint encoded ( https://en.bitcoin.it/wiki/Protocol_documentation#Variable_length_integer ) count of the factors found during PoW for this block candidate/factor pair - A factorCount length list of candidate/factor pairs, using some variable length encoding (Varint is not sufficient) Quote:
Quote:
Quote:
In the beginning it would just be enthusiasts and speculators mining it, over time the hope would be that the coins gain a value based on the work it takes to mine them (the work being useful may help with the perceived value), then it may be possible to break into the mainstream and have proper momentum/trading happen. It would take time to have enough coins to enable any sort of trading anyway, you start at zero after all so in the beginning it'll always be a grassroots thing. |
|||
|
|
|
|
|
#19 | |
|
"David"
Jul 2015
Ohio
11×47 Posts |
Quote:
1. Was my biggest concern. Regarding 3, at a large enough scale don't statistics take care of this? I don't think you can prevent pre-factoring, you just have to ensure that you would have to pre-factor so much ahead of time that you'd be better off just running the PoW algorithm in real time. One way I could think of to prevent users from pre-factoring specific ranges is to the make factoring only a portion of the proof of work, or make the hash of the previous block that must be part of the input some how restrict which factors are considered value. i.e. 0x112233445566778899aabbccddeeff aka ol' 100010010001000110011010001000101010101100110011101111000100010011001101010101011101111001100110111011110111011111111 is a bitmap of valid candidates for the lower 9 bits with the last digit assumed as 1 (no evens). You'd have a lot of overlap, but maybe that isn't a bad thing. 1. Get previous block header, and block target candidate range (and possibly target factor range?) that's pre-computed and known for each block number. Assigning ranges not currently factored ensures we're doing new work with this fun algorithm. 2. sieve the candidates (within your assigned range) against both primes and the 256 bit header mask to get valid candidates. 3. Run the TF algorithm against candidates for your assigned starting range up as high as you can go in the block time. 4. Generate solutions message, and use traditional hashing algorithm to hash the previous block header along with your solutions. Submit both to the server. 5. Server rejects any duplicate solutions, rather than compete for time the nodes operate on a fixed block time, and the solution with the highest sum of log2(factors) is chosen to seal the block and get the reward. |
|
|
|
|
|
|
#20 | ||
|
If I May
"Chris Halsall"
Sep 2002
Barbados
2×112×47 Posts |
Quote:
Quote:
One way to do that is to somehow make the TF result dependant upon previous inputs. Like the last hash, for example. Those that are just into TF'ing will just TF, of course. |
||
|
|
|
|
|
#21 |
|
"Forget I exist"
Jul 2009
Dartmouth NS
8,461 Posts |
What are all the primes up to : ~31622776601683793319988935444327185337195 ?
Last fiddled with by science_man_88 on 2018-04-03 at 19:40 |
|
|
|
|
|
#22 | |
|
"Victor de Hollander"
Aug 2011
the Netherlands
117910 Posts |
Quote:
|
|
|
|
|
![]() |
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Thinking of Joining GPU to 72 | jschwar313 | GPU to 72 | 3 | 2016-01-31 00:50 |
| Thinking about lasieve5 | Batalov | Factoring | 6 | 2011-12-27 22:40 |
| Thinking about buying a panda | jasong | jasong | 1 | 2008-11-11 09:43 |
| Lateral thinking puzzle for you | Bundu | Puzzles | 30 | 2005-11-26 10:33 |
| Latteral thinking puzzle | Uncwilly | Puzzles | 5 | 2004-09-01 14:38 |