New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Faizan Nehal - Unpacking the Security Implications of Bitcoin Ordinals

NapulETH MeetupThu, Oct 9, 2025, 12:00 AM

Hacken NapulETH 2025

Transcript

Morning everyone. Good morning everyone. My name is Stephano. I'm the host today uh for the Pilipo talks. So it's really nice to meet you all guys.

Uh today I have this special duty to introduce the first talk. The first talk is about IT security. uh smart smart contract auditing and how to unpacking the security implication of Bitcoin ordinance. So it's very pleasure for me to introduce the the first speaker NAL. The floor is yours.

Thank you. Uh so hello everyone. Uh okay. So my name is Fesan Nihal and I will be speaking about what are Bitcoin ordiners and what are their security implications. So if I give a bit background about myself, I have been in the cyber security space for 5 years and specifically in blockchain security for three years now.

uh I am working as an auditor at Hacken for the last 15 months and uh I started as a bug bounty hunter. I did a smart contract audits and I did pen testing and now I'm doing kind of like a security engineering. Uh so like before I move forward can I ask you guys one questions? Uh how many of you know what are bitcoin ordinals? Okay.

So if I just uh so like this will be the agenda of the talk. I will first introduce what exactly are bitcoin ordiners. Uh then I will go into a technical details about how exactly they work. Uh then I will put forward some security risk that they carry with them and then I will share some best practices uh that you should follow if you want to jump into this field. So in in in very simple terms uh what exactly are bitcoin ordinars?

They are like NFTs but on the bitcoin blockchain. And but the thing is like they are a bit different from the NFTs on other blockchains like Ethereum or Solana. Uh because here there are no smart contracts on Bitcoin. Uh so the NFT have to be directly bounded to each Satoshi Satoshi on to the blockchain itself. So it's a bit unique approach to making NFTs and uh I will be sharing more details further.

So these are some characteristics of Bitcoin ordinance. The most important one is that uh they don't have any smart contract. Everything is on chain. Everything like is bonded on to the Satoshi and each Satoshi on the Bitcoin blockchain can carry one ordinary with them. So if you look at uh how many Satoshi's one BTC have, it has like 100 million Satoshi's.

So one BTC can have like 100 million different ordiners. And if we just multiply it with the total number of bitcoins. Uh so like we can say that the supply is pretty large and the data is assigned to each satoshi on the bitcoin and it is added through a approach called tap routt transaction and let me go a bit forward uh and let me so here is a comparison between ethereum NFTs and NFTs on the bitcoin. uh the the most important one is like there are no token standards and there are no like smart contracts on Bitcoin. So on Ethereum we have like standards like ERC 721 that is specifically for NFT and then we have ERC15 which is for like if you want an NFT and a token at the same time.

On the other hand in the Bitcoin blockchain there is no such things as a standards or a smart contract. So it is kind of like a wild west field where uh where uh you just go with it without following any specific rules. And the other important thing is the metadata. Uh when you create an NFT on the Ethereum blockchain uh you don't upload the metadata onto the blockchain itself. You upload the metadata on platforms like IPFS or RV.

uh and then you connect uh your metadata with your NFT. That's how it works on Ethereum. But on Bitcoin everything like uh all the content and all the metadata is uploaded onto the blockchain itself. So many people have this opinion that this thing also makes it somewhat more decentralized than NFTs on Ethereum blockchain or Solana blockchain because everything is on uh on onto the blockchain itself and you don't have to rely on uh centralized services or other uh quasicon centralized services uh to make your NFD work. There are some downsides as well.

The most important one is the support. Right now the support for Bitcoin ordinance is really limited and on the other hand on Ethereum there is like a broad support and like there is a very much acceptance in the community uh when it comes to NFTs on the on the Ethereum then there's a transfer mechanism. So suppose if you own a Bitcoin ordinary uh let me first tell you about NFTs on Ethereum. If you have an NFT on Ethereum what you do you just call a transfer function on the smart contract and the smart contract transfer your NF to the other user. That's exactly how you transfer your NFT on Ethereum.

Uh but on Bitcoin there is no such thing like a transfer function. you have to transfer the specific Satoshi that is bounded to the NFT and that's how you transfer your NFT to the other user. So suppose I have an NFT in my wallet and it is bounded to a Satoshi number 101. I would have to specifically transfer this Satoshi 101 to the other user in order to make the transfer of the NFT and in order to make that the ownership is transferred now. So this is also kind of like a unique thing to this ordiners.

So how exactly they work like how we can bound NFTs or images or anything else to the uh to the Satoshi. So there are some core things that we need to consider before we go into a technical details. The first one is the ordinal theory. So ordinal theory is a process of mapping out each Satoshi on the Bitcoin blockchain and and giving it a unique number based on when and where it was mined. So like every Satoshi on the blockchain have a unique number because of this ordinary theory and this helps make us track each and every Satoshi and uh giving them a unique number like a private key in a database.

Then we have a witness data. Uh in 2017 like there was a bitcoin update. It was called segwit. And this update created this new witness data into the uh into the transaction. So when you send a transaction there's a data field.

It's called witness data. And it usually stores the signatures and the scripts that are sent in the transactions. And this plays a key role in how ordinary works. Uh then the other thing to consider is the tap routt transaction. So this was another uh another update in 2021 and uh with the help of tap routt now you can send like a an script in a transaction that is of a larger size.

So like tap would make the make sending a transactions that is way larger possible and because of uh because of the changes in the size of transaction and the size of a script we can send it was possible to create like uh upload the whole metadata onto the blockchain itself. Uh so so suppose you want to create an ordinary how what would be the process? Uh the first one would be the numbering. You uh a unique number is assigned to the uh ordinar based on the ordinary theory uh so that it can be identified and tracked. Then a tap routt transaction is created and an inscription of the metadata and the exact uh NFT that you want to upload.

uh it is sent uh with the tap loot transaction onto the blockchain and and like when you send a transaction uh this exact tap loot transaction you also send some Satoshi's along with it it's like making a transaction and the Satoshi that you send with it the very first Satoshi that you send in that transaction the ordinary is assigned to that specific Satoshi and the thing is like once you assign a Satoshi to an ordiner you cannot changes. So it's kind of like permanent on the blockchain where you can once it's bounded to ordinary it's bounded forever. You cannot do anything and finally there's a role of indexer and this is like a very important aspect of ordinary. So if we talk about the Bitcoin blockchain itself on Bitcoin blockchain there is no like mechanism uh like on Ethereum NFTs like on Ethereum NFTs uh you know exactly uh who each specific NFT belongs to like there is a tracking mechanism there is like a u there's like a tracking mechanism where you can see like who the NFT belongs to but there's no such thing on bitcoin blockchain uh you own an ordiner or the other I own an ordinary on the blockchain itself. There's no way to find out who owns what because everything is on the uh everything is on the transaction.

It's on the history but on the blockchain itself there's no function to call or find out. So in the end you have to rely on centralized services to make the ordinal works. And these centralized services are called indexer. So what they do they constantly map out the whole blockchain and see like uh how many ordiners are currently present on the blockchain itself and like who owns which ordinar currently and like how many satoshi's are bounded to like which Satoshi's bounded to which NFT and things like that. The important thing to note these services are centralized.

So although the everything on other that we see they are like decentralized on the blockchain but in the end to make everything work you have to rely on a centralized service and there is no other way to do that. So this is also like a block diagram of how everything is done. First the Satoshi on the uh bitcoin itself is numbered. Then a tap routt transaction is created and in the tap routt transaction you make an script uh and add a metadata of the ordiner. Uh then you send a transaction and the data is added into the witness field of that specific transaction and the satoshi's that is sent in that transaction are assigned the ordiner.

Then comes the indexer. uh the indexer detects like which specific Satoshi have which ordinar and that's like they constantly update the database and once the uh once the ordinar is uh assigned to the uh to the satoshi uh you can like just transfer the satoshi in order to move the ownership of the ordinary itself and that's how the ownership is transferred. Uh one important one like common argument that people give um uh is that um what if you can just send uh suppose you assigned a ordinary through a Satoshi. What if you send the same Satoshi with another Tableau transaction and in that way you can change the ordinary. So what you can do you can always send out a new Tableau transaction with the same Satoshi and it will be uploaded on the blockchain.

But the thing is when the when the indexer will uh go on to detect which Satoshi has which ordinar they will only take the very first one. So even if you assign like four or five ordiners after the first one it doesn't matter because they only look for the very first one and as soon as they find the first one it just take that one. So that's why you know once it's assigned you cannot change it. It's kind of permanent. So this is like an example of how a tap routt transaction looks like.

Uh for us the important thing is the witness field. Uh in the witness field like the script is added and so like there is like uh after everything after opals is uploaded on the transaction on the blockchain. But the thing is like they are not executed. So like the if you want to uh they are like an script and but everything after ops is is uploaded on the blockchain but they are not executed. So you can add like you can hide the data of the NFT like a metadata into this thing.

They are like an it is kind of like a trick to hide that data on the blockchain and that's exactly how it's done. So like you just add an odd keyword which is used by indexer to make sure that this is an ordinary then you upload the content land and what's the type and then you upload the uh the whole metadata there and once it's there it's it's in the transactions and they are permanent there. So what are some security risks uh that ordiners carry? Uh let me give uh uh let me clear some misconceptions first. Uh there is like a misconception that if it's on the Bitcoin blockchain it must be secure because it's the most decentralized blockchain.

uh but the thing is uh things doesn't work exactly like on other uh other blockchains when it comes to ordinance and NFTs on this specific on this like for this specific thing then people think that if the data cannot be tempered uh it must be secure uh but the thing is like permanent data means permanent consequences uh you cannot change anything when once it's there and it's bonded to a Satoshi And like there's although the uh supply of Satoshi is really large in the end it is limited it's not unlimited and the most important thing is like as of right now there are no standards no access control mechanisms on how to create an NFD what to create an for an NFT so again it's like a wild west you can just upload anything on the blockchain and you can say it's an NFT it can be like a piece of code and you can say it's an image and the blockchain itself self is accepted. So it carries a lot of risk about what exactly you can from the perspective of end user it has a lot of risk because anything can be on the blockchain and you have to uh personally verify it that it's the correct information that it's saying it is. So if you are a user who owns ordinars or NFTs on Bitcoin, the biggest risk uh you can have is like accidentally transferring your Satoshi's to other user. uh suppose you have an NFT on Bitcoin and it is bonded to a specific Satoshi like Satoshi 101 and now you trans now you want to make a payment to your friend uh in some bitcoin your wallet don't your wallet doesn't know like which exact uh bitcoin to transfer it just transfer the satoshi's randomly from your wallet to the other wallet so in that transfer your wallet can transfer the NFTs to the other user without you knowing it. So if you own ordinary you have to use wallets that are specific to ordinars and there not every bitcoin wallet are aware of ordiners.

So like you have to you have a specific uh list list from which you should only use those one and the problem with here is that uh most of the hardware wallets that's like many people prefer uh they are not aware of ordiners. So in the end you have to rely on centralized services again to make sure that you are using the void that are aware of ordiners so that you don't accidentally lost them. Then there's a problem with the denial of service which is like ordinance are in the end the metadata and metadata is quite large in terms of uh the data. Uh so when you upload the metadata on the blockchain it usually like bloat the transaction it makes the transaction really long. So if you repeat this process so often uh there is a risk that the transaction fees on the Bitcoin blockchain would increase a lot and uh even and sending valid transactions or important transaction would take much longer time than it is now.

So the bloating is another big risk that it can make the blockchain somewhat unusable. As we know right now that the Bitcoin blockchain is somewhat slower than other blockchains, but with ordinance it can make it much more slower than it is right now. And that is also like a big thing. Then there is like a for me like this is the biggest issue with ordinance. It's like the the indexing services that you have to rely on in the end.

They are centralized. They're not like completely decentralized. And so there's a factor that the service in the end like if you want to use NFTs on blockchain on bitcoin they are somewhat centralized and it need the help of those centralized services uh to make it work. So this kind of kills the concept of uh uh concept of decentralization as a whole because this is also like a single point of failure and any attacker or malicious actor can just attack these centralized services and like change the data directly and so things like hacking and attacking and fishing becomes a lot easier because of these services because attackers now don't have to attack the blockchain or the smart contracts. they just need to attack the these services and they can do it in several ways like uh attacking the employees of the themselves or attacking the web applications or something else.

But uh yeah and then there is a thing of illegal and malicious content can be uploaded onto the blockchain and this thing although uh we can say that it's on the blockchain uh even if something illegal or malicious is uploaded uh uh it cannot nothing can happen because the governments or anything they they cannot censor it but the thing is it could uh cause a lot of problem for the indexing services because in the end they are centralized services and if and they and they have to like map out the blockchain for the ordinance to work and if something illegal is uploaded on the block Bitcoin blockchain itself or something malicious it can cause legal issues for the indexing services themselves. So in the end it could end up in somewhat kind of like a long legal battle and it could like because of the lack of moderation there's like you know it could not end up in the favor of the masses. Uh some other security risk is like if you're a marketplace uh on which the users like buy and sell the NFTs uh you also have to rely on indexing services and if a marketplace in the end relies on only one service again there is a uh there is a higher chance that that service uh might uh be attacked by the attacker and it can be exploited. Then there's a thing is like do you really have to trust those indexing services? What if there are two different indexing services and both of them supplies different data which one you will you have to trust.

So in the end you have what you have to do you have to like uh go on and uh verify the transaction hash by yourself and again this could also make the whole process of buying and selling much more slower and less optimized because of all the verifications you have to do back and forth because you cannot trust just one service. There's then the fee is fee issue which I mentioned earlier that if uh that it can bloat the blockchain itself and fees can increase and the block the bitcoin is already much slower than other blockchain. It can make it more slower and this can cause problems in the in in get getting the mass adoptation on the blockchain. Uh then we have the issue of access control like there are no smart contracts. There's no logic about what exactly to upload, what not to upload, what makes an NFD, what doesn't makes an NFD.

You can anyone any anyone can upload an NFT and say like yeah we belongs to this organization we belongs to that organization because in the end there is no way to uh differentiate it if you are just looking from the perspective of from the decentralized perspective. So if you want to in Indian differentiate between different ordinance you have to again rei rely on centralized services to make the difference which against like break the concept of the decentralization itself. So some of the best practices that you can follow if you are like interested in ordiners is like the first one is to use an wallet that is aware of bitcoin ordiner uh because uh there is always a risk that you will transfer your NFTs accidentally to another one if you don't use a ordinary specific wallet. So in order to make sure that uh you don't transfer your NFTs to other person, you have to use a word that is aware that you have an ordinary and where you can mention that don't transfer a specific number of Satoshi's h and you can transfer anything else so you don't accidentally lose your wallets uh use your NFTs sorry then if you are a creator from the perspective of creator is like uh you should always uh have this thing in in mind that uh you are everything that you are doing on the blockchain is permanent and uh it has a permanent consequences and it is embedded there. You cannot change it.

You cannot like add some access control like change it or like burn it once you send a transaction. It's always there. Uh for the perspective of marketplaces which is like if you are a marketplace uh uh you carry a great responsibility because in the end users use your platform to buy and sell their stuff and you have to use like multiple different indexes and not rely on only one service itself and make sure that you crossverify the data you are getting from each of those indexes and uh you crossverify the information and you also you not only crossverify the information with each other, you also do it with on with the blockchain itself. So like uh you verify the transaction hash and and you you you see that yeah I have uh I have verified information from the blockchain directly itself. I am not just relying on on the indexes.

Then there are some general best practices like uh keeping your private key uh by yourself and don't trust the metadata because on bitcoin anything can be uploaded and anything can be an NFD. There are no rules or regulation about or access controls about what constitute a particular NFD. Other thing is like the inscriptions are permanent on the blockchain. Uh um you cannot go back once you upload something. So from my perspective like yeah I personally think that ordiners itself like they break the concept of decentralization itself although it's something interesting that you can create an NFTs on bitcoin itself but on the other hand it carries a lot of risk and a centralized point of failurious in itself uh which which I think everyone must be aware of.

Yeah, at at hack and what we do uh we allows the developer to better understand the uh protocol and the D5 application they are building in order to make sure that uh everything that they're doing is safe and secure. Uh in our uh experience of like seven years we have audited hundreds of thousands of lines of code and we have seen all the different kinds of uh protocols. So uh we like we we give like the best recommendations to our clients about what to do and what not to do. Uh these are some of the services we provide. These are like we do a protocol audit.

We have a bug bounty program like we manage the bug bounty programs of different um uh different protocols and different centralized exchanges as well. We do dab security audit which is like the um testing the web two components of your D5 application. And then we also do a penetration testing of different centralized exchanges. We verify the proof of reserves for for different centralized exchanges. And the most important things is like we also do smart contract audits which is like a security review of your smart contract.

Um it doesn't matter if it's on Ethereum or Solana or NA like we have expertise in all of those fields. Uh yeah. So that's all from my side. If you have any questions, Uh you mean is there a tool to ver uh stole the Satoshi's from inscriptions? Uh no I think because the it is this thing the the transferring and encryption this thing is managed by the blockchain itself.

So it is not possible but there are it is possible through other ways like uh uh like altering the database on the indexer itself. So like although on the blockchain you might be the owner but an attacker can attack the indexer service and from the on the indexer I will be the owner. So the data that will be the feed by the indexer to the end user would be uh altered as a whole. Uh, no more questions. Okay, so that's all from my side.

Thank you.

Automatic transcript — names and jargon may be misspelled.