wsxcde
Joined 13 years ago
Joined 13 years ago
But that said, we seem to be talking past each other at this point. I don't see why my criticism of the OP was unconstructive. This is not actually a research paper, it has not undergone any sort of academic peer review, and if the goal is to present it as one example of the kinds of things that are possible to build with zkSNARKs, then it ought to be presented in that context.
I do want to note that it is possible to compose zkSNARKs in an application in ways that result in the composition not being zero-knowledge. Not saying that has happened here, but implying there's no danger with incorrect usage of zkSNARKs seems sketchy to me.
I stand by my comment that there doesn't appear to be anything particularly novel about this work. Especially with crypto it is important to stick with well-studied and well-understood primitives. There's a danger that someone looks at this and assumes it is being endorsed by MIT and implements it in their system.
This is a fact that follows from the definition of +. But + needs to be defined before you can start making assumptions about what the additive inverse is. The set over which the field is defined (Z or R) already contains -3, -2 etc. and -3 * -2 or -3 + -2 needs to be defined when you're constructing the field. It then turns out that -3 is the additive inverse of 3. You can't use this when arguing about the definition of why applying * on negative 2 and negative 3 gives you the result positive 6. Because you need to define * over all members of the field before you construct a field in the first place.
1. You literally cannot prove this fact from the Peano axioms because Peano arithmetic operates on natural numbers, not integers.
2. As I said in my original post at the top, negative numbers are different from the unary subtraction operator (the additive inverse in the field). The number -2 is an entity that exists by itself regardless of whether you've defined an additive inverse. It turns out that the additive inverse of every positive integer is the corresponding negative integer, but this follows from the definition of +, not the other way around.
3. Even if you give OP the benefit of the doubt regarding his dodgy proof, it is saying something about the additive inverse and its relation to multiplication. It is not saying why the result of multiplying two negative values must be positive.
4. The multiplicative operator over the field must already be defined for you to be able to prove distributivity over addition. You can't assume distributivity over an operator that is only partially defined.
--
Think about how you'd define a field. First, you need a set (let's call it Z), then you need two total operators over the set (+ and ), and two elements of the set (0 and 1) and each of these must satisfy specific properties (aka the field axioms). In particular, + and must be defined for all members of Z, not just Z+ and further + and * must be distributive. These are all facts you need to prove about Z, *, +, and 1 and only then do you have a field. You cannot work backward by assuming the field axioms (which are unfortunately named because they are not axioms at all but properties) to derive the definition o the field operators.
The OP thinks that his "proof" is showing why multiplying negative values yields a positive result. But the proof is a load of nonsense because it assumes facts like distributivity of multiplication over addition and subtraction. It is literally impossible to prove that $\forall a, b, c \in Z. (a - b) * c = (a * c - b * c)$ -- distributivity of multiplication over subtraction -- without having already defined the meaning of a * b for all integers! This leads to a circular reasoning loop that the OP's "proof" can't get out of.
The thing to realize is that multiplication is not some magic operation handed down to us by god. It is just a binary total function defined over the integers. What the OP is trying to confusedly get at is the following:
1. There is an intuitive definition of multiplication as repeated addition over natural numbers.
2. It is not clear what the corresponding definition of multiplication over negative numbers is.
3. If we want to define multiplication as a total function over the integers, we need to define what the result should be when multiplying negative integers.
4. Specifically, with (3), we are taught in school that the result of multiplying two negative numbers should be positive, but it is not clear why this seemingly arbitrary choice was made.
Unfortunately, the OP is going about this all backwards. One cannot prove what the OP wants to prove. What one can instead do is argue that the specific (but seemingly arbitrary) definition that one has chosen for multiplication is a "good" choice because it has the same properties (distributivity etc.) as multiplication over natural numbers. At its core, this is a stylistic appeal about the "naturalness" of the definition.
Also, this post conflates the unary negation operator with negative numbers. The two are not the same. In so far as this post constitutes a proof (which IMO it does not), it is a proof about the behavior of the negation operator.
A good question to ask is why we made this specific choice of definition. Why should multiplication be defined such that -2*-3 = 6? This is a question that the post does shed some light on. If we'd chosen some other definition of multiplication, a lot of the "intuitive" properties of multiplication that hold over the natural numbers (such as the distributivity of multiplication over addition and subtraction) would no longer be true over the integers.
The thing is, Godel didn't live in an era of pervasive computing so he came up with a wonky encoding based on products of powers of primes. This makes the proof technically challenging, but the fundamental idea is not that complex. What he was able to eventually do was encode a recursive statement of the form "this statement is not provable" where the "this" is kind of like a pointer back to the full statement. The rest is straightforward.