Skip to content

SRC-101: İsim ve Kimlik Protokolü

SRC-101, Bitcoin blok zinciri üzerinde insan dostu adlandırma sistemi ve dijital kimlik yönetimi sağlayan protokoldür. Karmaşık Bitcoin adreslerinin yerine kolay hatırlanan isimler kullanmanıza olanak tanır.

Protokol Genel Bakışı

Temel Özellikler

  • İnsan Dostu İsimler: alice.btc gibi kolay hatırlanan adresler
  • Hiyerarşik Sistem: DNS benzeri organizasyon yapısı
  • Sahiplik Kontrolü: Merkezi olmayan name ownership
  • Çakışma Koruması: First-come-first-served kayıt sistemi

Teknik Spesifikasyonlar

Veri Yapısı

json
{
  "p": "src-101",
  "op": "register|update|transfer",
  "name": "alice.btc",
  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
  "data": {}
}

İsim Formatları

Temel İsim Yapısı

[subdomain.][domain].[tld]

Örnekler:

  • alice.btc - Temel kullanıcı adı
  • pay.company.btc - Kurumsal subdomain
  • store.alice.btc - Kişisel subdomain

Karakter Kuralları

  • Uzunluk: 3-63 karakter arasında
  • İzin verilen karakterler: a-z, 0-9, tire (-)
  • Başlangıç/Bitiş: Alfanümerik karakter olmalı
  • Büyük/küçük harf: Case-insensitive

Operasyon Türleri

Register (Kayıt)

Yeni isim kaydı:

json
{
  "p": "src-101",
  "op": "register",
  "name": "alice.btc",
  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
  "ttl": 31536000,
  "data": {
    "description": "Alice's Bitcoin address",
    "avatar": "https://example.com/avatar.png"
  }
}

Parametreler:

  • name: Kayıt edilecek isim
  • address: Hedeflenen Bitcoin adresi
  • ttl: Time-to-live (saniye cinsinden)
  • data: Ek metadata (isteğe bağlı)

Update (Güncelleme)

Mevcut kaydı güncelleme:

json
{
  "p": "src-101",
  "op": "update",
  "name": "alice.btc",
  "address": "bc1qnew_address_here",
  "data": {
    "description": "Updated description"
  }
}

Transfer (Transfer)

İsim sahipliği transferi:

json
{
  "p": "src-101", 
  "op": "transfer",
  "name": "alice.btc",
  "to": "bc1qnew_owner_address"
}

Kullanım Durumları

1. Kişisel İsimler

Kolay Ödemeler:

Zor: bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
Kolay: alice.btc

Sosyal Kimlik:

  • Twitter: @alice → alice.btc
  • GitHub: alice → alice.btc
  • Email: [email protected] → alice.btc

2. Kurumsal İsimler

Şirket Adresleri:

company.btc        → Ana cüzdan
pay.company.btc    → Ödeme adresi
refund.company.btc → İade adresi
escrow.company.btc → Escrow hesabı

Departman Organizasyonu:

hr.company.btc      → İnsan kaynakları
marketing.company.btc → Pazarlama
dev.company.btc     → Geliştirici

3. Projeler ve DAOlar

Proje İsimleri:

project.btc
donate.project.btc
treasury.project.btc
governance.project.btc

Topluluk Organizasyonu:

community.btc
events.community.btc
grants.community.btc

Namespace Yönetimi

Hiyerarşik Yapı

                  btc (root)
                    |
        ┌───────────┼───────────┐
      alice       company     project
        |           |           |
    ┌───┼───┐      pay       treasury
  pay store blog  refund    governance

Yetkilendirme

Root Namespace (.btc):

  • Top-level registrations
  • First-come-first-served
  • Direct Bitcoin ownership required

Subdomain Yetkisi:

  • Main domain owner controls subdomains
  • Delegation sistemi
  • Granular permissions

TTL ve Yenileme

Time-to-Live Sistemi:

javascript
// 1 yıl TTL
const ttl = 365 * 24 * 60 * 60; // 31,536,000 saniye

// Kayıt işlemi
{
  "op": "register",
  "name": "alice.btc",
  "ttl": ttl
}

Otomatik Yenileme:

  • TTL bitiminden önce update işlemi
  • Grace period support
  • Expire edilen isimler tekrar kayda açık

Geliştirme Rehberi

1. İsim Kaydı

javascript
import { SRC101Builder } from '@btc-stamps/tx-builder'

const src101 = new SRC101Builder()

// İsim kaydı
const registerTx = await src101.register({
  name: 'alice.btc',
  address: 'bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh',
  ttl: 31536000, // 1 yıl
  data: {
    description: "Alice's main Bitcoin address",
    social: {
      twitter: "@alice_btc",
      github: "alice"
    }
  }
})

2. İsim Çözümleme

javascript
// İsmi adrese çevirme
const address = await src101.resolve('alice.btc')
console.log(address) // bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh

// Metadata alma
const metadata = await src101.getMetadata('alice.btc')
console.log(metadata.description) // "Alice's main Bitcoin address"

3. Batch İşlemleri

javascript
// Çoklu isim kaydı
const batchRegister = await src101.batchRegister([
  {
    name: 'pay.alice.btc',
    address: 'bc1qpay_address',
    data: { purpose: 'payments' }
  },
  {
    name: 'store.alice.btc', 
    address: 'bc1qstore_address',
    data: { purpose: 'shop' }
  }
])

4. İsim Transferi

javascript
// Sahiplik transferi
const transferTx = await src101.transfer({
  name: 'alice.btc',
  to: 'bc1qnew_owner_address'
})

İleri Teknikler

Wildcard Desteği

Subdomain'ler için wildcard resolution:

javascript
// *.alice.btc → alice.btc (catch-all)
{
  "name": "*.alice.btc",
  "address": "bc1qdefault_address"
}

Conditional Resolution

Koşullu adres çözümleme:

javascript
{
  "name": "smart.alice.btc",
  "conditions": [
    {
      "if": "amount > 1000000",
      "then": "bc1qlarge_tx_address"
    },
    {
      "else": "bc1qsmall_tx_address"
    }
  ]
}

Multi-Address Support

Tek isim, çoklu adres desteği:

javascript
{
  "name": "alice.btc",
  "addresses": {
    "payment": "bc1qpayment_addr",
    "savings": "bc1qsavings_addr", 
    "lightning": "lnbc1u...",
    "legacy": "1Alice..."
  }
}

Güvenlik Hususları

Ownership Doğrulama

javascript
// İsim sahipliği kontrol
const isOwner = await src101.verifyOwnership(
  'alice.btc',
  'bc1qowner_address'
)

// Signature doğrulama
const isValid = await src101.verifySignature(
  'alice.btc',
  message,
  signature
)

Phishing Koruması

Benzer İsim Algılama:

javascript
const similar = await src101.findSimilar('alice.btc')
// ['alise.btc', 'ailce.btc', 'alice.bct']

Visual Similarity Check:

javascript
const suspicious = await src101.checkHomograph('alice.btc')
// Homograph attack detection

Cüzdan Entegrasyonu

QR Code Desteği

javascript
// İsim tabanlı QR kod
const qr = await src101.generateQR('alice.btc', {
  amount: 1000000, // satoshi
  message: 'Payment to Alice'
})

BIP-21 Support

bitcoin:alice.btc?amount=0.01&message=Coffee

Lightning Network

javascript
// Lightning invoice with name
const invoice = await src101.createLightningInvoice('alice.btc', {
  amount: 50000,
  description: 'Coffee payment'
})

API Entegrasyonu

REST API Kullanımı

javascript
// İsim çözümleme
GET /api/resolve/alice.btc
Response: {
  "address": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
  "metadata": {...},
  "ttl": 31536000
}

// İsim arama
GET /api/search?q=alice
Response: {
  "names": ["alice.btc", "alice-store.btc"],
  "total": 2
}

WebSocket Güncellemeleri

javascript
// Real-time name updates
const ws = new WebSocket('wss://api.src101.io/ws')

ws.onmessage = (event) => {
  const update = JSON.parse(event.data)
  if (update.type === 'name_update') {
    console.log(`${update.name} updated to ${update.address}`)
  }
}

Gelecek Geliştirmeler

Roadmap

  1. Phase 1: ENS-style avatar support
  2. Phase 2: Multi-blockchain resolution
  3. Phase 3: Smart contract integration
  4. Phase 4: Decentralized DNS bridge

Community Proposals

  • Reverse Resolution: Adresten isme çevirme
  • Expiry Auctions: Expired name müzayedeleri
  • Subdomain Marketplaces: Alt domain ticareti
  • Identity Verification: KYC entegrasyonu

Best Practices

İsim Seçimi

  1. Kısa ve Anlamlı: Kolay hatırlanan isimler
  2. Brand Consistency: Sosyal medya ile uyumlu
  3. Future-Proof: Uzun vadeli kullanım planı
  4. Typo-Resistant: Yazım hatalarına dirençli

Güvenlik Stratejileri

  1. Backup Keys: Çoklu imza desteği
  2. TTL Management: Uygun yenileme planı
  3. Transfer Protocols: Güvenli sahiplik değişimi
  4. Monitoring: İsim kullanım takibi

SRC-101 protokolü, Bitcoin ekosisteminde insan dostu adlandırmayı mümkün kılar. Karmaşık adresler yerine anlamlı isimler kullanarak, Bitcoin'i herkes için daha erişilebilir hale getirir.

Bitcoin üzerinde dijital kültürü koruyan topluluk sahipli açık kaynak projesi