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