@botnet
What do you mean with the word PolynomialReduce? Do you mean polynomial reduction?
In my case I literally mean the PolynomialReduce function in Wolfram Mathematica:
http://reference.wolfram.com/mathematica/ref/PolynomialReduce.htmlSo my TUInt32 class creates a symbolic representation of every mathematical or logical operator that is applied to it, and after each operation, it feeds that equation through Wolfram Mathematica to reduce and simplify the equation, for example: FullSimplify[PolynomialReduce[a*b, a0^2 - a0, b0^2 - b0, Modulus -> 2]]
(recall that logical operations are being transformed to numeric operations in the modulo 2 number ring)
Now I understand your idea better. But you are possibly wrong: The main complexity of your approach is not because of the degree of the polynomials but because of the referencing of the literals (you called them 'variables') to each other.
At this point you have just two choices:
1. Try random input (you know this solution under the (wrong) name
'brute force')
2. Try to approximate to a good solution (but then your result would only be partly correct: Who is interested in a 90% correct nonce to the given block and targeted result?) and it is not proven in this case that an approximation exists.
@c789
1.21 Gigawatts!
I thank you. My tip address is below.
YMMD!
Really, what level of course material are you guys talking here? I only had the first level of CS classes and I'm having a tough time following. Looks cool though.
In my case: Halting problem, P, NP, some other part of the complexity zoo and SAT were basic stuff. Second year.
ILP came in higher classes.
Are you trying to get a degree in computer science?
@cheater123
I am just new here and just watching all about mining what is this but currently so confused here
Welcome to the forum!
A very short introduction to miningTo find a new block the network gives every miner a challenge (i.e. a
target value). The higher the
difficulty the lower the desired value. Now every miner reads the last block and tries to guess a
nonce for it. If the computed
result is lower than the target value then a new block has been found and the next challenge uses the newly found block.
Maybe one could try
addition as basic algorithm for mining:
lastblock + nonce = resultBut that would be pointless: Subtraction would find the nonce by simple computation.
result - lastblock = nonceThat is because of the fact that addition and subtraction are each fast to compute.
So the chosen basic algorithm is SHA256 which is known for a speciality: computing a result by
sha256(original_input)=resultis fast to compute.
But computing the
original_input by using only the
result is really time consuming.
These algorithms are known as
one way function (with trap door).
For reversing to the
nonce in a feasible time one would need a theoretical machine which guesses the right value in the first step. Unfortunately there is no known way to produce such a machine in reality.
So every miner uses a random value as
nonce and computes:
sha256(sha256(nonce, last_block))=resultand evaluates whether
result < target_value.
If so then a new block was found. Otherwise the miner tries another random value as
nonce and evaluates again.