That manifesto! Wow. It kind of reads like a bunch of technobabble, doesn’t it. If you don’t know what APIs, NFTs, blockchain, etc. are, how on earth are you supposed to understand what it’s on about?
Well, you’re in luck. I’m going to break it down for you and explain it.
If you haven’t read it, you can find it copied into a Google Doc and screenshot here.
What’s an API?
API stands for Application Programming Interface. It’s a bit of code, basically, that sits between a system – like Ravelry’s database – and an interface, and dictates how data flows in and out of that system.
So. The key part of Ravelry is its database – the thing storing all the patterns, projects, yarns, etc. This data is stored in a specific structure, kind of like organising data in a spreadsheet. Nobody who uses Ravelry ever sees the actual database; what people see when they log in is data from the database presented in the Ravelry interface, i.e. the web pages.
The Ravelry API sits between the web pages and the database. When we want to view a project, the web page collects data based on what we’ve clicked on and sends that to the API. The API has been coded to know what to do with that data, and what data to look up in the database and send back to the web page.
This is the big appeal of using an API: consistency, and security. It means that every time Cassidy writes a web page, she can just type “use the API to get this project data” rather than having to type out exactly which bits of data she wants every time. And, more importantly, it means that she can safely allow other people to access the database without worrying that they’ll go looking at things they shouldn’t. By using the API, people will only be able to see the data she has decided to include.
Pretty much any database or system that’s used by more than one entity will have an API. Even systems that are only updated by one entity will often have one in order to standardise the way data goes in and out of the system.
APIs don’t have much to do with the rest of the things brought up in the manifesto, so you can go ahead and forget all that now if you like.
What’s an NFT?
This is a bigger question with a bigger answer. It’s also something I know less about. Strap in!
NFT stands for Non-Fungible Token. A fungible asset is one which can be exchanged for another of the same kind. Currency is a fungible asset; a pound is a pound, a dollar is a dollar. They are the same thing, worth the same amount. Yarn is a non-fungible asset; even two hanks of the same yarn in the same colour are not identical. Whilst you might agree to trade one for another, a trade has actually occurred.
Specifically, an NFT is basically a number used to represent an entry in a ledger. The entry in the ledger is the thing of value; it’s used to prove that someone owns something digital.
Sounds nifty, right? I can hear all the designers reading this and thinking oh wow, that’d be handy when someone steals my content and I have to try to get it taken down.
Yes, yes it would. But wait for it, we’re not done yet.
NFTs are stored in a ledger, right? And that’s not a physical book somewhere. It’s a digital ledger. And those ledgers are stored in a blockchain.
Okay, so what’s a blockchain?
This is where is starts to get pretty technical.
Blockchains are a bunch of data in a very specific format that sit on lots of different servers and talk to each other. Because of how cryptocurrency is created, the amount of computing power needed to create, update, and validate this data is HUGE, to the point of being environmentally devastating.
To create one NFT uses around 48.14kWh of energy, which is about the same as the average US household uses in 1.5 days (source). If a designer released a new pattern and sold 100 copies – probably just about enough to break even – and each copy sold came with an NFT, the amount of energy used to create those NFTs would be equal to the energy used by the average US household in 150 days. Right now there are just over 1 million patterns in Ravelry’s database. If each pattern sold just one copy and no more patterns were ever added, the NFTs required for those sales would use as much energy as the average US household in 1.5 million days. That’s 4,109.6 years. Over four thousand years.
What does cryptocurrency have to do with anything?
In short, cryptocurrencies and blockchain go hand in hand. Blockchain was invented to solve the double-spending problem, which is unique to cryptocurrencies.
NFTs are part of the Ethereum blockchain. Ethereum is a cryptocurrency, like Bitcoin. So, to use NFTs, you need to use Ethereum.
Yes, that does mean that if you wanted to buy a knitting pattern with an NFT proof-of-purchase, you would need to pay in Ethereum. No, I don’t think knitters at large will be on board with that.
What’s the double spending problem?
Basically, it’s the idea that a cryptocurrency token can be spent more than once. Cryptocurrencies are just digital tokens, right? And we all know digital stuff can be copied and replicated. So what’s to stop anyone spending the same Bitcoin more than once?
There’s two ways to deal with this. Either you can check against a centralised third party to see if the token has already been spent or not, or you can check against a decentralised system – i.e. a distributed ledger.
What’s a distributed ledger?
It’s a key feature of blockchain. That ledger that NFTs are stored in isn’t one ledger that one person looks after; it’s multiple ledgers stored on multiple servers that all validate against each other. There are differences in exactly how they’re created and updated, but the general idea is that if 10 people all have a copy of the ledger, then if 1 person’s ledger is corrupted or hacked, the other 9 will know it’s wrong and speak up. It also means that you don’t have to trust 1 person to know what’s what; you’re trusting all 10 collectively.
Why the hell does it use so much energy?
That’s because of cryptocurrency mining and the integral design of blockchain.
To understand that, first we need to understand the technical format of a blockchain.
A blockchain is made up of blocks. (Stay with me, it gets harder than that!) The blocks are arranged in a tree structure, kind of like an organisation diagram or family tree. Each block holds some data, including a hash of the previous block. A hash is a cryptography thing; it’s a way of using maths to create a string of numbers representing something else, a bit like a bar code. Once data has been hashed, you usually can’t reverse engineer it to get the data back out. They’re used to confirm that two things are the same, or that one thing is what it says it is, without seeing the thing itself. This works because if the thing changes even a little bit, the hash value produced would be different.
As well as a hash of the previous block, each block will contain a timestamp, and whatever data it’s supposed to hold about the transaction it represents.
The blocks are arranged in a chain. Each new block that’s added references the previous block (by including its hash), so it’s extremely difficult to modify one.
Here’s an example. Let’s say I have a blockchain with three blocks. Their hashes are A, B, and C. Block B holds the hash of block A, and block C holds the hash of block B. If I add block D, it will include the hash of block C. If I then wanted to hack block C and change it, I could do that, but it would mean that block C’s hash is now different, and block D is also wrong (because it stores the hash of the valid block C before I hacked it). So, if I want to change any block in the chain, I have to also change every subsequent block.
It’s pretty nifty, from an information security perspective. But, doing this relies on every transaction being audited, and that’s where the mining comes in.
What’s mining?
Basically, anyone who’s mining cryptocurrency is being paid for auditing and verifying blockchain transactions. They’re contributing their computing resources to solve the complex equations necessary to validate blockchain transactions.
Remember the hash we talked about earlier? Well, what cryptocurrency miners are doing is attempting to randomly come up with the hash for a particular block. It’s known as brute force in hacking circles – you just keep trying combinations until you land on the right one.
The bad news is that there are trillions of potential values for each hash, so it’s a lot of wasted energy trying the wrong ones before you get to the right one. And it gets worse.
If you verify 1MB worth of transactions, known as a block, then you become eligible to receive some cryptocurrency of your very own. But you only get paid if you are the very first person to verify it correctly.
What that means is that multiple people are wasting their resources attempting to verify blocks in the hopes of mining themselves some cryptocurrency. But if they never manage it, or if they manage it too late, all that energy is discarded, wasted, pointless.
This makes the whole process incredibly wasteful in terms of energy resources. Miners need very powerful computers to be able to do this work, and the overwhelming majority of the work doesn’t validate any blocks or earn anyone any money.
So what exactly is Cassidy proposing here?
It sounds to me like Cassidy is proposing to issue NFTs with knitting pattern sales. Those NFTs would be stored in a blockchain, and if you wanted to access your pattern file from anywhere, your NFT would be validated before you were given access to it. The NFT in this case would be acting as proof of purchase, like a receipt. The benefit to knitters would be that you could access your patterns anywhere they were stored, probably in a central repository, and wouldn’t have to worry about storing and keeping your own patterns. Kind of like the concept of Ravelry’s library, except with multiple interfaces and no one person being responsible for maintaining it.
Which sounds pretty cool, really, in theory? I can see how this concept would “light someone up”. But when you factor in the practicalities of it – like having to pay with cryptocurrencies and trashing the environment every time you buy (or, potentially, open) a pattern file – it quickly becomes ridiculous.
There are plenty of knitters who struggle to use Ravelry as it is, and not just because of the eyestrain. We’re not all technically savvy teenagers and frankly, even those of us who are professional nerds don’t necessarily understand this stuff.
More importantly, I can’t think of a single knitter who’d be okay with contributing to this level of environmental devastation for what is essentially a very minor convenience that is still ultimately trusting someone else to look after your pattern collection.
And don’t get me started on the devastation those editors could cause…
If you have questions, please drop them in the comments here so everyone can benefit from the replies!
If this free information helped you, please consider buying me a coffee.