What is Erasure Coding? Blockchain Data Protection Explained | RLNC vs Reed-Solomon — Transcript
Full transcript
- 0:01Hi everybody. Uh I'm Yuriel Medard, uh
- 0:04co-founder of Optimum and I'm here to
- 0:07tell you a little bit about coding
- 0:08today. Uh this is a small piece to go
- 0:11along with our uh little research paper
- 0:14uh with Nicholas and Kishori. Uh Kishor
- 0:18is one of my co-founders. Um so this is
- 0:21just a very brief introduction to uh
- 0:24erasia correcting code. So let's look at
- 0:26what erasers are. are so welcome by the
- 0:29way to my messy board. You can see I've
- 0:30made a little bit of space here uh so
- 0:33that we can uh uh we can chat together.
- 0:37So um coding is about sending data and
- 0:40imagine I have
- 0:43three pieces of data here x1 x2 x3 and
- 0:47I'm transmitting all three. Problem is
- 0:50one of them might get lost. Uh so
- 0:53suppose for the time being that x2 gets
- 0:55lost. So we get x1 and x3 but you know
- 0:58we can't make sense of the actual data
- 1:01because there's a missing piece. Okay
- 1:04you might say well you know I have a
- 1:05problem because x2 gets lost. Uh what
- 1:08I'll do is uh any which piece of data
- 1:12gets lost um when the receiver tells me
- 1:15that they didn't get it I shall resend
- 1:18it. That's fine but there's a delay
- 1:20there. The data has to get to someplace.
- 1:22is the place has to realize that the
- 1:24data didn't get there, then it has to
- 1:26request the data didn't get there.
- 1:28There's a lot of delay, you might want
- 1:30to be proactive and add what's called
- 1:32redundancy. I like to call it repair.
- 1:35And instead of doing that, you might
- 1:37say, well, look, if I'm worried that X2
- 1:38might get lost, why don't I send two
- 1:40copies of X2?
- 1:42So, if one copy of X2 gets lost, no
- 1:45problem. You get X1, X3, X2. You just
- 1:47need to reorder them at the receiver.
- 1:50Uh, what happens though if this time
- 1:52instead X3 gets lost? Well, we have a
- 1:56problem there because we have two copies
- 1:58of X2. That doesn't do me any good. I'm
- 2:00still missing X3. So, I have X1 and X2,
- 2:02but X3 is missing. In order to remedy
- 2:06this, what people will do is the
- 2:08following.
- 2:09They will create a code. That's to say,
- 2:11they will take an equation, generally a
- 2:14linear equation, maybe x1 + x2 + x3.
- 2:20So let's look at what happens here. If
- 2:22any one of these goes missing, I can
- 2:25still reconstruct the original x2, x1,
- 2:28and x3. So if x1 gets missing, I have
- 2:32x2, x3, and thanks to this last
- 2:34equation, I'm able by subtracting x2 and
- 2:37x3 to recover X1. So this is eraser
- 2:42coding. It basically makes up correct
- 2:45for erasers.
- 2:48All right, so far so good. So there's
- 2:51this different types of eraser that you
- 2:54can coding that you can do. So let's
- 2:56look at traditional block codes or fixed
- 2:59rate codes like read solvent that many
- 3:01of you may have heard of because they're
- 3:03used for instance for hash functions um
- 3:05in data availability in web 3. So um
- 3:10what does it mean to have a rate? Well,
- 3:12let's see here. I have three units of
- 3:15data and one unit of repair. So my
- 3:20overall rate is three units of payload
- 3:22over four units of transmission. So my
- 3:26overall rate is 3 over4. That's my rate.
- 3:29So this is a code with a fixed rate.
- 3:32Now um whenever I don't get a loss, I've
- 3:36basically paid for this extra
- 3:41effectively insuranceed and not gotten
- 3:43any benefit of it. And if instead I have
- 3:45two losses, then actually I still can't
- 3:47recover all of the data. So I only have
- 3:51made that my code is either sufficient
- 3:54so not too many losses or not wasteful a
- 3:59number of losses that's below the level
- 4:01of repair um every so often really. So
- 4:06most you know most of the time this is
- 4:08going to be wasteful and some portion of
- 4:10the time it's not going to be
- 4:11sufficient.
- 4:12So this is a code with a fixed rate.
- 4:16In order to remedy this, uh, they have
- 4:19been rateless codes. So in weightless
- 4:21codes, I don't decide ahead of time that
- 4:24I'm going to send equations. I'm just
- 4:26going to keep sending equations as many
- 4:29as needed until uh I know that all of
- 4:32the data has gotten there. Now, of
- 4:34course, if I did that on a single unit
- 4:36at a time, it gets back to the case we
- 4:38bu we discussed before where, you know,
- 4:41I have to transmit, wait to see if it
- 4:44got there or not, then retransmit.
- 4:46Instead, if people are looking at
- 4:49transmission for a chunk of data, say
- 4:52here are these three numbers, then what
- 4:54they'll do is they'll just keep sending
- 4:55equations as many as needed until the
- 4:58receiver says, hey, you know, I got all
- 5:00of the data I need. um those are called
- 5:03weightless codes. So examples of
- 5:05readless codes are raptor codes.
- 5:10All right. So we have two kinds of
- 5:12codes. Now what's the problem with these
- 5:16codes? You know they look like both a
- 5:18good idea
- 5:20and they are good ideas. The problem is
- 5:23that you basically need all of the
- 5:25original data to start out to make the
- 5:29code. So the code is sort of like a
- 5:31one-time only used code. You make the
- 5:34code once and you use it for that one
- 5:37event.
- 5:38Uh this is not suitable for web 3 where
- 5:42things need to be decentralized.
- 5:45In particular,
- 5:47traditional codes that are either block
- 5:50codes or weightless codes have a
- 5:53particular way of creating these
- 5:56equations. So they have particular
- 5:59coefficients for creating these
- 6:00equations. Now what happens if instead
- 6:05I allow more general coefficients? So
- 6:08maybe I'm going to have alpha 1 x1
- 6:12plus beta
- 6:161 x2
- 6:19plus gamma 1 x3 be my first equation.
- 6:24Maybe my next equation is alpha 2 x1
- 6:29plus beta
- 6:322 x2
- 6:35plus gamma 2
- 6:39x3 and then I'll have alpha 3 beta 3
- 6:43gamma 3 and so on and so forth. Okay. um
- 6:47if I allow these equations to happen
- 6:51over a set of numbers generally called a
- 6:54field that's rich enough I actually have
- 6:56a lot of possible chases for these alpha
- 6:58beta gamas and in particular I don't
- 7:02need to predetermine them read Solomon
- 7:05codes or um codes like uh you know or uh
- 7:09traditional rateless codes like raptor
- 7:11codes predetermine what these alphas
- 7:13betas and gamas are going to
- 7:16uh but in general I don't need to. I can
- 7:18make them however I want. In particular,
- 7:19I can make them randomly as long as I
- 7:22choose them over a rich enough set of uh
- 7:26uh of choices. Uh so basically this is
- 7:30what a random linear network code is.
- 7:34You can choose to use it as a block
- 7:36code. So for instance here I could do
- 7:38three
- 7:39data pieces and two equations for a rate
- 7:43three fifths if I wanted to or I can
- 7:47choose to do this in a rateless fashion
- 7:49and just keep generating equations until
- 7:52enough equations have been received.
- 7:54It's really up to me. Now one of the
- 7:57things that's very um interesting about
- 7:59RLNC is that I can actually create
- 8:02equations from equations. So here I
- 8:05created those equations from the
- 8:07original data. But what if I did not
- 8:09have access to the original data and I
- 8:11had only access to these two equations.
- 8:14Well, I can actually combine these two
- 8:16equations. Okay? And let me combine them
- 8:18using here
- 8:21delta 1 delta 2. So I'm going to take
- 8:24these two equations. I'm going to take
- 8:26delta 1 times this expression. Delta 2
- 8:30times this expression. So I get delta 1
- 8:33alpha 1
- 8:36plus delta 2 alpha 2 x1
- 8:45plus
- 8:47delta 1 beta 1 + delta 2 beta 2 x2 plus
- 8:58delta 1 gamma 1 plus delta 2 gamma 2 x3.
- 9:07So basically what I've managed to do
- 9:09here is I've made an expression directly
- 9:13out of other expressions without having
- 9:15access to the original data. So why is
- 9:19this important? Why is this interesting?
- 9:22Well, now throughout the network, I can
- 9:25generate
- 9:27new expressions, new codes from any
- 9:32piece of code, and I don't need to go
- 9:34back to the original
- 9:36uh to the original data. So, if you look
- 9:39at this
- 9:42expression here, delta 1 alpha 1 plus
- 9:46delta 2 alpha 2, that's basically just a
- 9:49new alpha. that is the coefficient that
- 9:52is mapped to x1. So that's basically how
- 9:56RNC works. So if you think of read
- 9:59Solomon, if you think of traditional
- 10:03uh weightless codes like Rapto code, all
- 10:07they are is effectively a constrained
- 10:11not general version of our an RLNC. So
- 10:14the RLNC is inherently
- 10:17more general and more powerful. I look
- 10:21forward to receiving questions on this.
- 10:23Thanks.
About this transcript
This page contains the full transcript of What is Erasure Coding? Blockchain Data Protection Explained | RLNC vs Reed-Solomon by Optimum, generated from the public captions YouTube serves with the video. The transcript has 1,480 words across 213 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.
What you can do with it
Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to translate the transcript into 100+ languages.
Free YouTube transcript tool
YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, translation to 100+ languages, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.