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.btcgibi 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ı
{
"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 subdomainstore.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ı:
{
"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 isimaddress: Hedeflenen Bitcoin adresittl: Time-to-live (saniye cinsinden)data: Ek metadata (isteğe bağlı)
Update (Güncelleme)
Mevcut kaydı güncelleme:
{
"p": "src-101",
"op": "update",
"name": "alice.btc",
"address": "bc1qnew_address_here",
"data": {
"description": "Updated description"
}
}Transfer (Transfer)
İsim sahipliği transferi:
{
"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.btcSosyal 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ştirici3. Projeler ve DAOlar
Proje İsimleri:
project.btc
donate.project.btc
treasury.project.btc
governance.project.btcTopluluk Organizasyonu:
community.btc
events.community.btc
grants.community.btcNamespace Yönetimi
Hiyerarşik Yapı
btc (root)
|
┌───────────┼───────────┐
alice company project
| | |
┌───┼───┐ pay treasury
pay store blog refund governanceYetkilendirme
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:
// 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ı
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
// İ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
// Ç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
// 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:
// *.alice.btc → alice.btc (catch-all)
{
"name": "*.alice.btc",
"address": "bc1qdefault_address"
}Conditional Resolution
Koşullu adres çözümleme:
{
"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:
{
"name": "alice.btc",
"addresses": {
"payment": "bc1qpayment_addr",
"savings": "bc1qsavings_addr",
"lightning": "lnbc1u...",
"legacy": "1Alice..."
}
}Güvenlik Hususları
Ownership Doğrulama
// İ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:
const similar = await src101.findSimilar('alice.btc')
// ['alise.btc', 'ailce.btc', 'alice.bct']Visual Similarity Check:
const suspicious = await src101.checkHomograph('alice.btc')
// Homograph attack detectionCüzdan Entegrasyonu
QR Code Desteği
// İ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=CoffeeLightning Network
// Lightning invoice with name
const invoice = await src101.createLightningInvoice('alice.btc', {
amount: 50000,
description: 'Coffee payment'
})API Entegrasyonu
REST API Kullanımı
// İ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
// 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
- Phase 1: ENS-style avatar support
- Phase 2: Multi-blockchain resolution
- Phase 3: Smart contract integration
- 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
- Kısa ve Anlamlı: Kolay hatırlanan isimler
- Brand Consistency: Sosyal medya ile uyumlu
- Future-Proof: Uzun vadeli kullanım planı
- Typo-Resistant: Yazım hatalarına dirençli
Güvenlik Stratejileri
- Backup Keys: Çoklu imza desteği
- TTL Management: Uygun yenileme planı
- Transfer Protocols: Güvenli sahiplik değişimi
- 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.