I was thinking if there is any other way to scale bitcoin on-chain. I did some research, And i want to share it here, This is my first post, I will try my best to explain, and sorry for my english (im moroccan, english is not my native language)

One thing always came in my mind is a block are like a bus who pass every 10min. In real life the bus have theoric limited amount of seats (the 1mb limit analogy), but it possible to add more people in the bus with a little of additional work. or "compress" work

Like this image

http://www.ethiopianreview.com/photos/obama_family_kenya.jpgAnd in physics its possible to compress anything on a small limited volume, but that "compress" need always addition work according to the initial volume. (Black holes for example)

So my theory is if it is possibile to find an algorythm that do the same thing but with data and information. Giving an arbitrary large file, is it possible mathematically to compress it to a limit less 1Mb.

Here, I begin to research in mathematic and factorisations of numbers. I found the problem in factorisation is constructing the set of prime numbers is computationaly infeasable. So i go the opposite of prime numbers, which are Superior highly composite number.

Then I found there is a formula to construct all Superior highly composite numbers.

https://wikimedia.org/api/rest_v1/media/math/render/svg/fea86cc31d3cb47548322d753b565ab7c068a3f5with

https://wikimedia.org/api/rest_v1/media/math/render/svg/d05b57d2a54edd20b348a57021b58c887ef6732dThe question is, like factorise a numbers in product of prime numbers, is it possible to factorise a number to a sum of Superior highly composite number.

In short, If this proposition is true :

"Every positive integer is the sum of Superior Highly Composite Number"

If it does, its possible to transform an arbitrary large number to sum of SHCN (Superior highly composite number), then use the construct formula to assign every SHCN in the list to a real number that was calculate from a prime number. Then assign every prime number in the list to the order of the prime number used to make the real number.

So the arbitrary large number is compressed to a permutable set/list of small order numbers.

For example, we have this list of prime numbers order we want to decompress

1,3,6 (1st prime, 3rd prime, 6th prime)

we transform it to primes

2,5,13

then we transform it to real number x the solution of 1/(p^(1/x)-1) = 1, which is log(p)/log(2)

1,2.32192809489,3.70043971814

Then use the constructor to calculate the SHCN of each real number. Then sum them to get the original number. (Sorry, I dont know to how to do this manually)

This is how decompression is done with SHCN

Now for compression for a file.

We need to search for the biggest SHCN less than the file. and memorise the prime p in the SHCN which 1/(p^(1/x)-1) is the closest but not less than 1, and get his order n prime set.

file = SHCN(real(prime(n_0))) + file rest

then we do the same for "file rest".

file = SHCN(real(prime(n_0))) + SHCN(real(prime(n_1))) + file rest

until we get this.

file = SHCN(real(prime(n_0))) + ... + SHCN(real(prime(n_m))) + 0 (or 1)

And the compressed file is the list of m numbers

n_0,n_1,...,n_m;0 (or 1)

And this compression is very dynamic in theory. For example if we want to compress a 1.1Kb to be only less than 1Kb, we just stop when the

file = SHCN(real(prime(n_0))) + ... + SHCN(real(prime(n_k))) + file rest

is less than 1Kb, and the compressed file will be:

n_0,n_1,...,n_k;file rest

in decompression the program will just decompress n_0,n_1,...,n_k then add file rest at the end to get the original file

If this compression is mathematically provable and computationaly feasable, it can be used to compress arbitrary big number of transactions to be less than 1Mb by adding "compression" work into mining in addition to the proof of work. And make the hash more elementary, by just permuting numbers on the list of the compressed block and hash it.

And if the miners want to profit more from fees they need to perform more in "compression" work by compressing more transaction to the block. And maybe with the "compression" work added, will make the ASIC mining more difficult, so the mining will be more decentralised.

But all this is just a theory, I didnt test anything from above. That's why i want to share it here to know you thoughts about this type of compression and collaborate. It's theoricaly possible to lossless compress all sort of data, but my purpose is to use it in scalling bitcoin.

PS: I just made a mistake, the real number x from the SHCN is a solution of a 1/(p^(1/x)-1) = k, where k is the closest integer to x when searching of the SHCN. so x is log(p)/log(1+k)

so the compressed file will be in this form

(n_0,k_0),(n_1,k_1),...,(n_m,k_m);file rest

it remind me the product factorisation of p0^k0*p1^k1*...*pm^km, but in summation, its a good sign that summation factorisation can be in bijection with product factorisation.