When you hit a key on your keyboard, you close a circuit. The circuit can be closed by the action of a collapsing rubber dome against a set of membranes, by action of a spring as it buckles catastrophically, as a pair of metal leaves pressing against a PCB, or even the discharge of a capacitive spring. However your keyboard is designed, you press a key and a circuit is closed. Specifically, two circuits are closed. These two circuits send a signal to your keyboard's controller, which looks at the circuits closed, then consults what's called a matrix (in the algebraic sense, not the Keanu Reeves sense). It uses the matrix to determine which key was pressed, then sends the code for that key to your computer.
Simple, right? What? No? YES IT IS TANJIT.
But it isn't always simple. What happens when you hit two keys simultaneously? When they're directly next to each other in the matrix, nothing happens. But if they're "diagonal"...
Here you've got the Q and the C, but there's a problem! The keyboard is also registering an E and a Z, because you've got intersections there. I'm going to ditch the regular terminology, because it's been corrupted and screwed up. This is called an ARTIFACT. Not a ghost. Got me? Good.
I am calling this type of key matrix a artifacting open matrix. It'll make sense in a minute.
Now, we can't have artifacts like that popping up. It'll cause problems while typing, and especially while gaming. So 99.999% of keyboards use BLOCKING to prevent this.
When you press C and Q, the keyboard's controller "blocks" all keys that could show up as artifacts. Thus only C and Q are sent, and not Z and E. But what if you *want* to hit Z and E?
You can't. You hold them down, but they don't register. They've been blocked.
I am dubbing this style of matrix a blocking matrix. This is the most common type of matrix found.
So what's the solution to this? How do you stop keys from being blocked? Simple. You unblock them. But what about artifacting? Simple. You remove the artifacting.
Whether by the addition of diodes to a PCB, or resistors to a membrane, or running a pair of traces to each key, or by adding dark magic to the heart of the controller, you eliminate artifacting. A given circuit denotes one, and only one, key.
Thus when you want to hit keys that would normally artifact:
It's kind of hard to figure out by eye, but trust me, each key is denoted with no artifacting and no blocking.
This is a non-artifacting open matrix. You can leave off the non-artifacting part because artifacting is very rare and occurs only on the trashiest keyboards ever to leave the dark pit of China's manufacturing industry.
Sometimes keyboards with blocking matrices (plural of matrix) do a bit of "matrix judo" and switch the positions of letters in the matrix. That way they can move artifacts, and thus blocking, to areas of the keyboard where you don't notice. Other times they just make the matrix different to make it different. No keyboard has a straight up-down, left-right excel-style matrix like the one I laid out; that applies to the standard IBM matrix and a handful of others on that part of the keyboard only. It looks a lot more complex when you map it all out.
A non-blocking matrix keyboard can register any number of keystrokes with no blocking or artifacting. However, it may not send all of them to the computer. If it's PS/2, then all keys can be sent at once and it's called NKRO. If it's USB, then traditionally it's limited to 6 keys and 4 modifiers (ctrl, shift, etc.). But some companies have found a way around that, allowing 7 or 11 or 17 or 24 keys to be registered over USB. Using my terminology, you won't have to bother differentiating between the different levels of KRO. It's just blocking, or open (or non-blocking, I guess). Simple. And all the ghosting nonsense? Forget it. Really. It's a word with two meanings, and it's been giving TwoCables seizures since day one, so it's best left in the dust bin of stupid terminology for now.
Hopefully this has cleared the cobwebs somewhat. Rejoice.