So, here's a random idea I had. I have no idea if it even makes sense - a lot of the technical underpinnings of bitcoin is just black magic to me.
Basically, I got the idea because when I stare at grids of random numbers I see patterns. And at some point, a cryptocurrency block is a stack of hashes, which is a grid of random numbers.
If these hash stacks are indexed, and then considerable processing power is spent trying to find geometric shapes in the hash stacks, the amount of data required to communicate the hash stack can be reduced.
I realize that this type of work violates one of the rules of a proof of work - namely, you shouldn't be closer to completing the puzzle based on the amount of time spent working on the puzzle. So it might be a proof of work. Or it might be just a way to compress data.
2 primary suppositions:
Big blockchains not ideal for cryptocurrencies
ASICS not ideal for decentralization
(or you can ignore point 2 - asic debate is happening somewhere else I’m sure)
Solution: Incorporate proof of compression into the currency
What this exploits - blocks are made up of stacks of 64 character strings (or other equally sized strings).
These stacks can be encoded by shapes originating from their most north western coordinate.
A shape originates at its north west coordinate(node), and is defined by number of sides (edges), and the rules of the nodes. Node count starts at 0. As illustrated, their can be many rules (skip = skips a particular node; jump = start at node 0, then jump X nodes and apply rule, repeat; offset = doesn’t apply rule until a particular node). Shape build types can exist = the null argument is all the nodes are the same.
![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2F9ilgwiA.png&t=665&c=1eBw7GvHNhr48Q)
![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FUSlPTIx.png&t=665&c=97pxIfy2ss4xFA)
![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FN1glqWq.png&t=665&c=hy1P_jmoWcOPCg)
![](https://ip.bitcointalk.org/?u=https%3A%2F%2Fi.imgur.com%2FN4zqoP7.png&t=665&c=aGX_TjRjGNR63g)
The POW might work slightly differently than conventional POW, because there is not a guarantee that a given block can be reduced to a target compression. (unlike the current bitcoin protocol, which can define a particular difficulty).
Thus, instead of a varying difficulty, perhaps at the end of block time (the amount of time the network has to encode a block), all the nodes communicate their solutions that are stamped with address, time, and compression ratio. The address with the best solution (the most compression) at the earliest timestamp receives the block award. The other nodes validate the solution, and the compressed block is added.
Difficulty can also be modified by allowing and disallowing certain types of shapes.
Actual compression is unknown. Compression increases if their are multiples of the same shape - the same rules apply, but to different coordinates.
Simple, perfect shapes give small compression (a square is roughly 1:4). Greater compression is achieved with many-sided shapes (16 sided polygon is potentially 1:16). Shapes can be complex aren’t don’t need to be closed - a spiral could be made where the length increases by 1 at every node.
It can be seen that the shape library can be huge. But this is on the fixed side of the equation - i.e., if person A and person B both have the compression / decompression client with the huge shape definition library, they can send smaller shape indexes.