Bitcoin Forum
June 15, 2024, 08:08:29 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Using Proof-of-work to find 'Pythagorean triples'  (Read 509 times)
remotemass (OP)
Legendary
*
Offline Offline

Activity: 1119
Merit: 1017


ASMR El Salvador


View Profile WWW
May 31, 2015, 09:57:34 AM
 #1

Following my recent post 'Casting out nines' instead of leading zeros on Proof of Work,
I came up with another idea that might be interesting:

The sha-256 hash found in block mining, A, would need to be such that:
A^2+(sha256(A))^2=C^2, and C was an integer.


So for instance, miners would try a nonce and find the sha-256 hash when mining a block.
The hash of that hash would have to be so that the two numbers, in base10, were "a" and "b" of a Pythagorean triple (a^2+b^2=c^2).

Of course you would be discarding a lot of potential candidates in the way B gets tied to A as an hash of it, but still, you would always be finding a Pythagorean triple in each block created.

And finding out how difficult the problem is, statistically/experimentally, would also be interesting.
We would get to know how hard is finding 'Pythagorean triples' with numbers of this magnitude, and eventually this could reveal interesting for mathematical study and research.

{ Imagine a sequence of bits generated from the first decimal place of the square roots of whole integers that are irrational numbers. If the decimal falls between 0 and 5, it's considered bit 0, and if it falls between 5 and 10, it's considered bit 1. This sequence from a simple integer count of contiguous irrationals and their logical decimal expansion of the first decimal place is called the 'main irrational stream.' Our goal is to design a physical and optical computing system system that can detect when this stream starts matching a specific pattern of a given size of bits. bitcointalk.org/index.php?topic=166760.0 } Satoshi did use a friend class in C++ and put a comment on the code saying: "This is why people hate C++".
remotemass (OP)
Legendary
*
Offline Offline

Activity: 1119
Merit: 1017


ASMR El Salvador


View Profile WWW
May 31, 2015, 10:52:51 AM
 #2

Maybe B should not be simply the sha-256 hash of A, but rather the sha-256 hash of A concatenated with the hash of a previous block. This would decouple more A from B, and avoid discarding potential good candidates A.

{ Imagine a sequence of bits generated from the first decimal place of the square roots of whole integers that are irrational numbers. If the decimal falls between 0 and 5, it's considered bit 0, and if it falls between 5 and 10, it's considered bit 1. This sequence from a simple integer count of contiguous irrationals and their logical decimal expansion of the first decimal place is called the 'main irrational stream.' Our goal is to design a physical and optical computing system system that can detect when this stream starts matching a specific pattern of a given size of bits. bitcointalk.org/index.php?topic=166760.0 } Satoshi did use a friend class in C++ and put a comment on the code saying: "This is why people hate C++".
remotemass (OP)
Legendary
*
Offline Offline

Activity: 1119
Merit: 1017


ASMR El Salvador


View Profile WWW
May 31, 2015, 12:07:11 PM
 #3

Another way, of finding 'Pythagorean triples' would be accepting hashes for block mining where the first 128 bits of the hash, where A, in base10, and the other 128 bits, where B, also in base10.

So imagine, as an example, that the miner tries a nonce and gets as hash:
29b83dc9db54697bf049a1585b46d257dd6649d1f5619935cd74e1662c1b5ce3

Then,

You would have found a winning block if:

(29b83dc9db54697bf049a1585b46d257 in base10)^2 + (dd6649d1f5619935cd74e1662c1b5ce3 in base10)^2 = integer^2.

If not, you would need to try another nonce till you found one hash that cut in two, gave our "a" and "b", of the "a^2 + b^2 = c^2" pythagorean triple.

{ Imagine a sequence of bits generated from the first decimal place of the square roots of whole integers that are irrational numbers. If the decimal falls between 0 and 5, it's considered bit 0, and if it falls between 5 and 10, it's considered bit 1. This sequence from a simple integer count of contiguous irrationals and their logical decimal expansion of the first decimal place is called the 'main irrational stream.' Our goal is to design a physical and optical computing system system that can detect when this stream starts matching a specific pattern of a given size of bits. bitcointalk.org/index.php?topic=166760.0 } Satoshi did use a friend class in C++ and put a comment on the code saying: "This is why people hate C++".
remotemass (OP)
Legendary
*
Offline Offline

Activity: 1119
Merit: 1017


ASMR El Salvador


View Profile WWW
May 31, 2015, 01:09:43 PM
Last edit: May 31, 2015, 02:19:17 PM by remotemass
 #4

And you could rule that the "c" is lower than some target value, forcing the finding/evaluation of the 'pythagorean triples' to happen prior to the difficulty problem adjustment.

[Edit: Actually, the interesting thing to find would be primitive Pythagorean triples, instead...]

{ Imagine a sequence of bits generated from the first decimal place of the square roots of whole integers that are irrational numbers. If the decimal falls between 0 and 5, it's considered bit 0, and if it falls between 5 and 10, it's considered bit 1. This sequence from a simple integer count of contiguous irrationals and their logical decimal expansion of the first decimal place is called the 'main irrational stream.' Our goal is to design a physical and optical computing system system that can detect when this stream starts matching a specific pattern of a given size of bits. bitcointalk.org/index.php?topic=166760.0 } Satoshi did use a friend class in C++ and put a comment on the code saying: "This is why people hate C++".
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!