
Bitcoin ve diğer birçok blockchain ağının kalbinde, her işlemin nasıl gerçekleşeceğini belirleyen gizli bir dil yatar. Bu dile Script denir; bu dilin her bir “kelimesine” veya komutuna ise OP_CODE (Operator Code – İşlem Kodu) adı verilir. Eğer blockchain’i devasa bir kasa dairesi olarak düşünürseniz, OP_CODE’lar bu kasaların kapısını açan karmaşık kilit mekanizmalarındaki dişlilerdir.
OP_CODE Nedir? (Basit Bir Benzetme)
Birine para gönderdiğinizde, aslında ona doğrudan “altın” vermezsiniz. Bunun yerine, üzerine belirli şartlar yazılmış bir akıllı çek verirsiniz. Bu çekin arkasında şöyle talimatlar olabilir:
“Bu parayı harcamak için önce gerçek imzanı at.”
“2 + 2’nin sonucunu doğru bil.”
“Bu parayı harcamak için 3 gün bekle.”
İşte bu talimatların her birini temsil eden kısa kodlara OP_CODE denir. Bilgisayar bu kodları okur ve “Evet, şartlar sağlandı, kasa açılabilir” der.
OP_CODE’lar Nasıl Çalışır? (Stack Mantığı)
OP_CODE’lar “Stack” (Yığın) adı verilen bir sistemle çalışır. Bunu üst üste dizilmiş tabaklara benzetebilirsiniz:
- En üste bir veri koyarsınız (Push).
- Bir işlem yapmak istediğinizde en üstteki tabağı alırsınız (Pop).
Örnek bir işlem: OP_ADD (Toplama işlemi)
Yığına 5 koydunuz.
Üstüne 3 koydunuz.
OP_ADD komutunu verdiniz.
Bilgisayar en üstteki iki sayıyı alır, toplar ve sonucu (8) tekrar yığının en üstüne koyar.
En Çok Kullanılan Temel OP_CODE Örnekleri
Blockchain dünyasında binlerce kez tetiklenen bazı popüler komutlar şunlardır:
| Komut | Ne İşe Yarar? | Basit Anlatım |
| OP_DUP | Duplicate | En üstteki verinin kopyasını çıkarır. |
| OP_HASH160 | Hashing | Veriyi karmaşık bir şifreye (hash) dönüştürür. |
| OP_EQUAL | Equality | İki veri birbirinin aynısı mı diye kontrol eder. |
| OP_CHECKSIG | Check Signature | İmzanın cüzdan sahibine ait olup olmadığını doğrular. |
| OP_RETURN | Metadata | İşlemi geçersiz kılar ama içine not/veri yazmanıza izin verir. |
Neden Bu Kadar Önemliler?
OP_CODE’lar olmasaydı, kripto paralar sadece “A’dan B’ye para gitti” diyen basit birer defter olurdu. OP_CODE’lar sayesinde:
- Güvenlik Sağlanır: Yanlış anahtarla paranın çekilmesi imkansız hale gelir.
- Çoklu İmza (Multisig): Bir paranın harcanması için 3 kişiden 2’sinin onay vermesi gibi şartlar (OP_CHECKMULTISIG) oluşturulabilir.
- Zaman Kilidi: “Bu para çocuğum 18 yaşına gelene kadar harcanamasın” gibi kurallar (OP_CHECKLOCKTIMEVERIFY) konulabilir.
Esneklik ve Risk: “Satoshi’nin Kapattığı Kapılar”
Bitcoin’in yaratıcısı Satoshi Nakamoto, başlangıçta çok daha fazla OP_CODE eklemişti. Ancak bazı komutların (örneğin karmaşık matematiksel işlemler) hackerlar tarafından ağı yormak veya çökertmek için kullanılabileceğini fark edince, güvenlik gerekçesiyle birçoğunu devre dışı bıraktı.
Bitcoin’in ilk yıllarında (2010 civarı), bizzat Satoshi Nakamoto tarafından güvenlik gerekçesiyle devre dışı bırakılan yaklaşık 15 adet OP_CODE bulunmaktadır. Bu kodların çoğu, bilgisayarın işlemci veya bellek kaynaklarını aşırı tüketerek ağı kilitleyebilecek (DoS saldırısı) potansiyele sahip oldukları için “emekli” edilmişlerdir.
Meşhur “yasaklı” veya yayından kaldırılan OP_CODE’lar ve kategorileri:
Dizi ve Metin İşleme (Splice) Kodları
Bu kodlar, yığındaki verileri birleştirmek veya parçalamak için kullanılıyordu.
- OP_CAT: İki veriyi birbirine ekler (birleştirir). En meşhur yasaklı koddur. Bir hacker, bu kodu kullanarak veriyi katlayarak büyütebilir ve düğümlerin (node) belleğini saniyeler içinde çökertebilirdi.
- OP_SUBSTR: Bir verinin belirli bir kısmını kesip alır.
- OP_LEFT / OP_RIGHT: Verinin sadece sol veya sağ tarafını tutar.
Aritmetik ve Matematiksel İşlemler
Bitcoin’in basit kalması istendiği için karmaşık matematiksel işlemler devre dışı bırakıldı.
- OP_MUL / OP_DIV / OP_MOD: Çarpma, bölme ve kalan bulma işlemleri.
- OP_LSHIFT / OP_RSHIFT: Bitleri sola veya sağa kaydırır. (Özellikle OP_LSHIFT ciddi bir hata barındırıyordu ve herhangi bir Bitcoin düğümünü anında çökertebiliyordu).
- OP_2MUL / OP_2DIV: Bir sayıyı 2 ile çarpar veya böler.
Bugünün Durumu: Geri mi Dönüyorlar?
Son yıllarda Bitcoin topluluğunda bu kodların (özellikle OP_CAT’in) geri getirilmesi üzerine büyük tartışmalar dönüyor.
Neden geri isteniyor? Çünkü bu kodlar Bitcoin üzerinde daha gelişmiş akıllı sözleşmeler, katman 2 (Layer 2) çözümleri ve “Covenant” denilen gelişmiş harcama kuralları oluşturmaya imkan tanıyor.
Güvenlik nasıl sağlanacak? Eğer geri gelirlerse, orijinal halleriyle değil; veri boyutuna sınır getirilmiş (örneğin maksimum 520 bayt) “evrimleşmiş” versiyonlarıyla gelecekler.