Hacker News new | past | comments | ask | show | jobs | submit login
The paper that keeps showing up (cronokirby.com)
171 points by ementally on Oct 31, 2022 | hide | past | favorite | 44 comments



I have a question for people who read this and whose eyes aren't immediately glazing over: I am incredibly put off by math that feels like "symbol manipulation". Equations that I can't easily put in terms of geometry or statistics. I think something in me "broke" with the constant "i" (square root of -1) during my education - a purely synthetic concept that I used to manipulate equations and get good grades without any intuition behind it. I am having a similar experience just looking at the aesthetics of this paper. Swimming in symbols, detached from tangible reality.

My question is: did I just kinda hit the limit of my IQ / abstract thinking skills? Do other people smarter than me think all this makes sense on an intuitive level?


> did I just kinda hit the limit of my IQ / abstract thinking skills?

No, the biggest problem is you haven't been exposed to enough of theory side of maths to have a intuition about how these things combine into the bigger picture this article is covering.

Imagine for a moment, that you are a good basic JavaScript programmer. You don't use typescript, so you don't understand types, just variables (vars), but you get the big concepts (algorithms, classes, strings).

Now say you go look at a large technical C program, like a compiler. On the surface you can see a lot of things you do understand, but there is a lot you don't. What are pointers and doubles, long doubles, how do unsigned ints play into this, what is malloc, why am I mallocing? What is this namespace doing here, how about this struct?

Sure given enough time and a dictionary you could probably make sense of the program and you will have to learn a bit to get there.

Higher level maths are the same way. You have to have a ton of foundational knowledge to start having intuition on the bigger things. Unfortunately for most of us computer people, we just don't even get to scratch the surface of maths theory. Most of us stop just short of the intro to maths theory classes. The equivalent for us would be learning some logic, a few programming languages (algebra, geometry, trig, calculus), maybe intro to algorithms, but no theory of automata, programming language theory, etc (number theory for maths).


As a math professor and sub-dilettante programmer, I found this a fantastic and instructive analogy. Thank you!


I guess whoever taught you complex numbers didn't do it with a focus on diagrams?

I agree math should be taught as visually as possible, with algebra-only explanations being minimised. Even things like the expansion of (a+b)^2 = a^2 + 2ab + b^2 or a^2 - b^2 = (a + b)(a - b) should be motivated by diagrams.

Anyway it turns that multiplication of complex numbers is adding the polar angles. This explains why multiplying two negative real numbers gives you a positive despite multiply two positive also giving a positive. If you then go from that and say "what number when multiplied by itself would give me minus 1" you get i.

Also I don't think you've hit an IQ limit, it's not like you're lifting some weight that's too big for you. You just haven't seen an explanation that links to your existing corpus of knowledge.


To add to this, a website I've found useful is betterexplained.com. Specifically for complex numbers, take a look at [1] and [2]. But they also have good articles with visualizations to help you understand the Fourier transform, the number e, integrals and derivatives, linear algebra, etc. A starting point is [3]. One useful idea is that they color the different parts of math equations to explain each part separately, see [4].

Another great source of math visualizations is the YouTube channel 3Blue1Brown, in particular the series on linear algebra [5]. (I didn't intuitively understand what a determinant represented or what the determinant of a transformation being zero really meant, until watching [6].)

[1] https://betterexplained.com/articles/a-visual-intuitive-guid... [2] https://betterexplained.com/articles/intuitive-arithmetic-wi... [3] https://betterexplained.com/articles/developing-your-intuiti... [4] https://betterexplained.com/articles/colorized-math-equation... [5] https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x... [6] https://www.youtube.com/watch?v=Ip3X9LOh2dk&list=PLZHQObOWTQ...


It doesn't help that i is given names like "imaginary" and "complex". We may as well call them "too-hard-for-you" numbers, and laugh condescendingly when students ask about them.

Same with quaternions and dual quaternions. They perform rotation and scaling in 3D space. Calling them "hypercomplex numbers" makes it sound like an advanced concept only to be understood after years of dedicated study.

I get that naming things is hard, but they could have gone with something that didn't sound like it was intended to stroke the egos of the learned few who understand.

I prefer the term rotor, because they perform rotation. The actual math involved isn't that difficult if you've learned the basics of geometric/Clifford algebra.


Someone on HN proposed "Lateral Number" which I thought was a good one. It's a number, just to the side of the numbers you know.


"If we call +1, -1, and √-1 had been called direct, inverse and lateral units, instead of positive, negative, and imaginary (or impossible) units, such an obscurity would have been out of the question."

--Gauss


One of the most helpful things for me when handling imaginary and complex numbers came not from a math class, but a physics class. My HS physics instructor said rather than "imaginary" we could think of -1 as a "hidden" number, because after you do the math fairly often you see where the number would be, but you just can't see it among the "real" numbers. This was literally an aside to something else he was talking about at the time.

Calling the imaginary numbers "lateral" and saying they were "to the side of" other numbers would've been helpful, too. I'm not sure it would have been quite as helpful to me, personally, but either is better than "imaginary" just to juxtapose with the "real" numbers.


> My HS physics instructor said rather than "imaginary" we could think of -1 as a "hidden" number, because after you do the math fairly often you see where the number would be, but you just can't see it among the "real" numbers.

IIRC you often encounter a system where the energy is constant, but only if you consider the imaginary part of some equation holding the potential energy, which then exchanges with "actual" kinetic energy.


Somehow I missed the √ symbol in √-1 there but I think it was understood I meant i, not -1.


While it has been multiple decades now since I've been in school, this by far, was the best explanation I've read on how/when/where/why of imaginary numbers. I don't recall ever hearing polar anything related to discussions of "i". Thanks. You've now filled my "learn something new every day" quota.


Adding to the chorus - you'll probably figure it out with enough time.

With the rise of neural nets, there is some solid circumstantial evidence that human intelligence is a re-purposing of parts of the brain evolved for vision processing (dunno what the biologists have figured out but hopefully they agree). Most of the people who I've listened to talk about how there is usually a sharp change-over moment when they go from being unable to do understand something to grasping it.

Get used to maths being impossible to understand for a long period of time, then suddenly easy to understand after that. IQ is relevant if you have to try and figure it out from first principles, but after that it probably only governs speed of learning rather than what can be done. This math in particular is not hard in the grand scheme, it is basically multiplication but a bit spiced up with multiple perspectives. And outrageously easy to implement wrong.

Although if you try to approach math expecting to be able to 'see' the answer with concepts you already understand it'll be painful. Real Math (TM, taught by Real Scotsmen) is learning to see things that you couldn't see before. The expectation is to encounter concepts that initially you can only access by symbol manipulation and in time, with training, become intuitive suddenly after a long period of practice.


> My question is: did I just kinda hit the limit of my IQ / abstract thinking skills? Do other people smarter than me think all this makes sense on an intuitive level?

I honestly don't think so. I was like that at one point, too, and "quit" math. Got a job and spent a few years programming full-time. I then went back to college, and lo and behold, I was required to do math for the courses I was interested in. I then had a couple of teachers who really made us grind, like, all the even-number problems in each chapter.

One teacher gave what seemed to be impossibly long exams; he took pride in people dropping his course. After the first exam, I got an okay score, but he put a note on the exam and I chatted with him after class. He was like, "your handwriting sucks on the last half of the exam, you should practice the material more so you don't feel so rushed." So, on the following exam, I literally did speed drills on the practice exam until I could knock it dead in an hour. Took 4 tries, if I recall correctly.

Eventually, I was able to "see" through the symbols. It took hundreds, perhaps thousands, of hours of dedicated practice. It wasn't easy. I was enraged, distraught, I was brought to tears, but I kept at it. I used to tell myself that I was too stupid to do math. In retrospect, I wasn't motivated enough to do math. I found that it's hard, perhaps incredibly hard, but not impossible. Though it wasn't my goal to begin with, I eventually got a PhD in math.


No. It's just purely a matter of practice. If you don't understand it now, you will with enough time and repetition. I had classes lectured by Maurer some time ago. At first it was all gibberish but with time and repetition and practice everything becomes clear. It's interesting because I would say Maurer really puts effort into being _extremely exact and precise_ and even reading this I can appreciate that now. There's an element of that which makes it much easier and clearer to grasp than a math paper which is skipping over some basics and definitions and is more inexact because it leaves you guessing at times.


Do you know any group theory? Otherwise it's no wonder you see most of this as meaningless symbol manipulation, as you wouldn't be able to relate any of the symbols to meaningful concepts.

Though if you do know group theory you may have been put off by their choice to use addition and multiplication instead of multiplication and integer powers, as is more common.

I'm also somewhat annoyed they choose to phrase things in terms of a "Group of prime order p with associated field of scalars Fq". Since there is exactly 1 group of order p they may want to justify why it's worth bothering to phrase it like that instead of just doing addition mod q. And in this case Fq is also just integers mod q, and you don't use any of its field properties, so why not just use integers?


A subtle point which I don't really explain in the post, since it was initially targeted to people who had done some cryptography with groups before, is that you need to carefully distinguish a group as a mathematical object, and a group as a computational object.

In cryptography, you not only need a mathematical group, but you also need a group as a concrete object, with ways of representing elements as bits, and efficient algorithms for manipulating elements of the group.

In fact, you also assume that computing other representations of the group is difficult. If you take the kind of group I mention in the post, it is the same group, mathematically, as just taking the integers mod q, along with addition. However, it should be very difficult to figure out how to convert the representation of the group you have into the the "simpler" representation as integers.

As for the field properties, you do need to be able to invert for some things later on in the post.


Ah you need division for the extractability, fair enough. Though if it can be extended to arbitrary groups the field structure can't be crucial.


I’m glad you commented this (because the replies are encouraging me). I feel similarly to you in that I never had someone explain i to me in a way that I could intuitively grasp. I’m realizing now that this likely had more to do with not having a teacher who could explain it! Also, shoutout to non-Euclidean math for confusing me to no end and making me think I’m dumb (but also probably suffering from the same problem of not having a great teacher).

I’ve finally gotten to a point where I’m the one writing the confusing symbols for others to read after publication. Here’s something I never really realized before. Confusing equations, maybe more so in informally mathematic disciplines like computer science, are mostly an alternative way of trying to explain a complex paradigm. In a paper that I’m working on right now, we basically state something in plain English and then create an equation to communicate it in an alternative way. It’s a formal representation, but more than that, it’s just an attempt to communicate something that is inherently confusing.

It’s an oversimplification to say this, but: I think a lot of the confusion stems from humanity having discovered most of the simple stuff, what’s left to be communicated is inherently confusing.


I don't think it's related to IQ or abstract thinking skills.

Maybe you have astonishing skills in other domains but are not suited to mathematical thinking for whatever reasons. Also, the current mathematical language is just a compromise that suits a majority, maybe you are not in it.

I find the formulas on the page quite easy to read and to "sense" (I also have a background in cryptography, which helps a lot). I like these expressions, because they are very simple to manipulate, which helps understanding them better, and also to infer more results. However, because I "sense" them, I can always dig down every symbols and know what's behind (eg. the scalar multiplication, k.G, I know it is actually like doing the sum of G+G k times, which in turns results in more operations in the particular field or group that G belongs to, etc).

If you study electricity where complex numbers are used a lot for instance, the i symbol becomes very tangible. It is more than a symbol, but a real object with well defined properties, and that you can describe in multiple ways. If you start to learn all these properties and multiple ways, you will understand it better, until it becomes very familiar. Also, you have to understand that i is just not a fancy object, it is actually an object mathematicians created because some operations didn't have results in the set of real (in particular not all polynomial equations had roots). So we extended the set of real with a bigger set (the set of complex, which is actually a two-dimensional set), where these problem disappeared. Later, mathematicians and physicists start to use complex numbers a lot because they could describe many useful properties in a very compact way.


Like EVERYTHING, an unaccustomed mind will have trouble at first, and will manage to make sense of it later. Try reading something in Chinese, will you understand what you read? Now try to learn the language and try to read the same thing again a year later. Can you read it now? Probably not. It’ll require many years. Is it that you’re dumb? There’s billions of people who learned how to read that language.


> "Young man, in mathematics you don’t understand things. You just get used to them."

- John von Neumann


If you want to understand the geometric basis for the square root of –1, start with http://geocalc.clas.asu.edu/pdf/OerstedMedalLecture.pdf

A complex number is most intuitively thought of as a quotient of Euclidean planar vectors, i.e. a quantity z = v / u with which a Euclidean vector can be multiplied to scale and rotate it into another vector: zu = (v / u)u = v(u \ u) = v.

A unit bivector i then represents the quotient of two perpendicular vectors of the same magnitude. It naturally has the orientation of the plane spanned by the two vectors. Multiplying i by any vector in that plane serves to rotate it by a quarter turn. Multiplying a vector in the plane by i twice rotates by a half-turn.


I've done abstract reasoning tests and score top 0.1% and none of this makes sense to me without pouring in effort. Its interest related.


I think it is mostly about motivation. Intuition will come with practice and will remain even if you forget some details.

Why limit yourself just to models that map well to everyday life? Everyday life sucks in a lot of ways after all, and imaginary worlds are intriguing. People like fiction.

In the case of abstract math, you have a world with varied and intricate structure but lots of real life applications as well.


There are a lot of nice answers here talking about math generally, but I can offer a specific answer. This is a paper that generalizes a lot of things, and you have to understand the specific things for it to come across as an insight instead of a pointless abstract thing. Not knowing any specific thing and trying to learn the generalization is like trying to know Netwon's laws without relating them to any physical situations.


The interesting thing about doing mathematics — in a research sense — is that often there is no intuition. Instead, there's a projection from one domain into another, where that projection might have an intuitive proof yet is itself completely unintuitive; and then there are people using that domain-mapping equivalence to prove things in one domain using completely unintuitive statements about them that can only be made in the other domain.

I might liken it to what LLVM's IR optimizer passes do. You put in source code (intuitive), get out object code (also intuitive, for those who know the processor) — but in between, the code passes through various projective and derived forms that are not clean representations of either the source or target form, but instead are just models amenable to certain static analyses — i.e. proofs! — that then allow/deny certain rewrites to happen.

A mathematician is someone who has to do what those IR optimization passes do, in their head. They know that they can derive a projective model, that they can then poke at symbolically, to derive more lemmas that will be able to be mapped back into lemmas about the model outside the projection. That doesn't mean that they intuitively understand what those within-projection steps mean in terms of the outer model. (If they did, they wouldn't need the projected model; they'd just make their deductions in terms of the outer model!) Instead, they just know how the inner model works as a model — how to poke it to make it do things, etc — and they know general rules of math and logic that allow them to prove things within that model, and to transform and map proofs between models. But, in "feeling grounded" terms, they're mostly working blind.


Yes you have hit your limit in this particular area, but do not worry about it.

There is a saying that “A change of perspective is worth 80 IQ points.”, frequently attributed to Alan Kay.

In this particular case, you just need to look at 2D complex numbers, and what their multiplication looks like on a plane, and you will then have an intuitive understanding about i, as others have already pointed out.


Friend, I submit that you and I were both taught poorly. I think you will find this video [0] extremely helpful. It provided me with the missing piece for understanding the need for complex numbers, and what we're actually doing when we manipulate them.

[0] https://youtu.be/Bhf6W-j5O7s


Complex numbers are extensively used in electronics so I never had a feeling of it as something purely synthetic, but most of n-dimensional math was for me beyond my capabilities to understand it any level higher then treating at as a purely mathematical abstraction of our 3d world - and thus all I'd do was just crunching the equitations.

Probably if I was exposed to real world applications of that math it would be easier to reason about it. I found that to be the biggest problem with my academic curriculum - there was a lot of abstract math concepts that they teach you in first 2 years, and you discover their actual usefulness only years later.


Well, suppose you have a circuit with four mesh currents. Now you have dynamics going on in four dimensions.


You can think of `i` as a rotation by 90 degrees counterclockwise. You do it twice and the real number line gets reflected (as if multiplied by -1). It is what multiplying by i actually does to the complex plane.


Yes, the name imaginary does it no favours. I was confused for so long about i, as it was never explained on classes, and it wasn't until 3blue1brown and other math youtubers showed me the light. I really like this series on it by Welch Labs - loads of easily digestible videos, and a history lesson to boot:

https://youtu.be/T647CGsuOVU


I like how your illustration also implies that -i is also square root of -1, which is true


Yes! In fact, you can rotate i (or 1) by any angle around the origin and obtain a so-called "root of unity". If the angle was rational, you can now apply this rotation multiple times to itself and eventually you'll obtain 1 or -1.


You just need to familiarize yourself with the prereqs. If you have no idea what a "group homomorphism" is, or how to spot one in the wild, you aren't really expected to grok this stuff.


Yes. Manipulating abstract symbols should be easy and natural - after all, that's what arithmetic is.


Just needs practice. It's like when you want to learn a new language. If you hear too much of a language you don't have practice off, you might just get put off by it. But the more you practice, the more you understand subconsciously, the more you can show interest.


It's a beautiful piece of theory, but when the IACR tried to build a voting scheme based on that to elect their board annually (https://vote.heliosvoting.org/), they got caught by a non-obvious bear trap when you make the whole thing non-interactive (which is the way this is mostly used in practice).

Details here: https://eprint.iacr.org/2016/771

Basically, if you do this with a hash function, you need to HASH ALL THE THINGS, not just some of them.

As to why this paper keeps showing up without everyone knowing that they're using it: the result in this paper is not, to my knowledge, a new invention of Maurer, rather it's something that everyone working with Sigma protocols more or less knew at the time, but no-one had written it down in its generality (or at least, no-one else got a paper on that accepted; some reviewers might have rejected such a paper as not novel enough). You'll note that Maurer itself got the paper into AFRICACRYPT 2009, which is not quite in the same league as CRYPTO and friends - for example, https://sites.google.com/site/conferenceranking/ calls it "unranked", and the CORE ranking page doesn't seem to list it either.

It's a neat little result and it's very useful to be able to cite, but it's not ground-breaking.


Beautiful explanation. After reading this I wonder if anyone knows about homomorphic encryption and ZKP uses for role/policy management? Or something similar?

They main uses I know for ZKPs are in open distributed scenarios but I wonder if it could be used to simplify other spaces where public/private keys are involved.

For example, instead of having a user creating roles and policies and storing all of this info in a traditional DB we could have a token system based on homomorphic keys that we can verify... Where we could aggregate tokens, generate tokens with specific policies on-demand without storing it in a DB...


You've described the problem that macaroons [0] intend to solve by amending an hmac access token with constraints on its use. The described scenario of appending a hme circuit to evaluate policy requests sounds much more expensive (both in terms of effort to answer 'can this request send an email?' and size of the token) than a key:value pair.

[0] https://fly.io/blog/api-tokens-a-tedious-survey/#macaroons


What a great read! It's so refreshing to read this kind of article when normally bogged down by the day-to-day grind of writing code.


Wow, Ueli Maurer. That was a deeply nostalgic name to show up in this article.

I took the mandatory first-year Discrete Math course from him, and I would say that it was the tastiest math class I’ve ever taken in my life.

His script for the class as well, with its famous chapters 1-8. Even though it was riddled with Helvetisms, each sentence in the script was crystal clear and Ueli Maurer’s passion could be felt through and through.


This is beyond my pay grade for now. I need to go take a cryptography course.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: