پرش به محتویات

گزارش فنی زیرساخت سامانه توکن‌سازی دارانو

تهیه‌کننده: شرکت توسعه راه‌کارهای نامتمرکز سنا
تاریخ انتشار: مرداد ۱۴۰۴
نسخه: ۱.۰
محرمانگی: داخلی — خطاب به نهاد نظارتی


فهرست مطالب

  1. معرفی و شرح پروژه
  2. کاربران هدف
  3. ارتباط سامانه با بیرون
  4. دیاگرام موارد استفاده
  5. سرویس‌های شخص ثالث (3rd Party)
  6. زیرساخت پلتفرم — وضعیت فعلی
  7. زیرساخت پلتفرم — نقشه راه آینده
  8. خلاصه و جمع‌بندی

۱. معرفی و شرح پروژه

۱.۱ درباره شرکت

شرکت توسعه راه‌کارهای نامتمرکز سنا فعال در حوزه فناوری بلاکچین و توکن‌سازی دارایی‌های واقعی (RWA — Real World Assets) است. مأموریت اصلی این شرکت، ایجاد زیرساخت‌های لازم برای تبدیل دارایی‌های فیزیکی و حقوقی به توکن‌های قابل معامله در بازارهای دیجیتال، با رعایت کامل الزامات رگولاتوری و قوانین بانک مرکزی جمهوری اسلامی ایران است.

۱.۲ معرفی سامانه دارانو

سامانه دارانو پلتفرمی برای توکن‌سازی دارایی‌های واقعی است. این سامانه دارایی‌های فیزیکی (مانند املاک و مستغلات) را پس از طی فرآیندهای احراز مالکیت، ارزیابی و تکمیل تشریفات حقوقی، به توکن‌های دیجیتال تبدیل می‌کند. هر توکن نماینده بخشی از مالکیت دارایی پایه بوده و امکان خرید، فروش و معامله در بازار اولیه و ثانویه را فراهم می‌سازد.

در فاز پایلوت، تمرکز سامانه بر روی املاک است و یک واحد ملکی با نام «مژگان» به‌عنوان نمونه اولیه توکن‌سازی انتخاب شده است. مالک اصلی ملک یک هلدینگ بوده و بهسازان ملت به‌عنوان مستاجر فعالیت می‌کند.

۱.۳ مراحل توکن‌سازی

flowchart TB
    A[۱. شناسایی و ارزیابی دارایی] --> B[۲. بررسی حقوقی و مالکیت]
    B --> C[۳. قرارداد میزبانی و امانت]
    C --> D[۴. انتشار توکن روی بلاکچین]
    D --> E[۵. عرضه در بازار اولیه]
    E --> F[۶. معامله در بازار ثانویه]
    F --> G[۷. توزیع درآمد دوره‌ای]

flowchart TB
subgraph prepare[آماده‌سازی]
  direction LR
A[۱. شناسایی و ارزیابی دارایی] --> B[۲. بررسی حقوقی و مالکیت]
    B --> C[۳. تنظیم قرارداد میزبانی ]
end
   subgraph execute[ مرحله اجرایی]
  direction LR
     D[۴. انتشار توکن روی بلاکچین]
    D --> E[۵. شروع عرضه اولیه]
    E --> F[۶. معامله در بازار ثانویه]
    F --> G[۷. توزیع درآمد دوره‌ای]

end
subgraph fini[خاتمه پروژه]
   J[۸. بازخرید توکن]
J-->K[۹. سوزاندن توکن ها]
K-->L[۱۰. تغییر وضعیت به خاتمه یافته] 
end
prepare --> execute --> fini

۱.۴ اصول حاکم بر سامانه

اصل توضیح
رعایت رگولاتوری کلیه فرآیندها منطبق بر قوانین بانک مرکزی و مقررات مرتبط طراحی شده‌اند. سپیدنامه، قراردادهای ناشر و میزبان، و قوانین استفاده از سامانه به‌طور کامل تدوین شده است.
بلاکچین به عنوان Source of Truth مالکیت توکن‌ها فقط و فقط روی بلاکچین ثبت می‌شود. دیتابیس داخلی تنها Metadata نگهداری می‌کند.
تفکیک نقش‌ها ناشر، میزبان، سرمایه‌گذار، بازارگردان، ادمین و بازرس بانکی هر کدام نقش و دسترسی مجزا دارند.
امنیت چندلایه لایه‌های امنیتی از CDN و فایروال تا مدیریت کلیدها و JWT.
شفافیت کامل تمامی تراکنش‌ها و وضعیت دارایی‌ها شفاف و قابل ردیابی است.

۲. کاربران هدف

سیستم دارانو شامل نقش‌های زیر می‌باشد:

نقش شرح دسترسی
سرمایه‌گذار (خریدار) کاربران عادی که توکن‌ها را خریداری و نگهداری می‌کنند خرید توکن، معامله در بازار ثانویه، مشاهده پورتفولیو
ناشر مالک اصلی دارایی (یا صاحب سببی مانند صلح‌نامه/وکالت‌نامه) ایجاد پروژه توکن‌سازی، ثبت اطلاعات دارایی
میزبان (امین دارایی) نهاد مسئول نگهداری فیزیکی و حقوقی دارایی تأیید وضعیت دارایی، همکاری حقوقی
تیم بازارگردان یک یا چند نفر مسئول تنظیم و مدیریت بازار ثانویه مدیریت نقدینگی، تسهیل معاملات
پلتفرم (ادمین) تیم سنا مستقر در سامانه — شامل تیم فنی، پشتیبانی و مدیر سامانه مدیریت کاربران، صدور توکن، پیکربندی سیستم
بازرس بانکی کارشناس منتخب بانک برای نظارت امنیتی و بازرسی دفتری مشاهده تراکنش‌ها، تیک امنیتی، نظارت بر حساب‌وکتاب

نکته: سامانه اپراتور عمومی ندارد و تنها چند ادمین اصلی با دسترسی‌های مجزا فعالیت می‌کنند. مدیر سامانه دسترسی به ایجاد توکن جدید و تغییرات سایت دارد. تیم توسعه به کدها و اجرای آن‌ها روی سرور تست و سندباکس دسترسی دارد، اما استقرار در محیط عملیاتی (Production) نیازمند تأیید مدیر سامانه و کمیته اجرایی است.


۳. ارتباط سامانه با بیرون

۳.۱ معماری ارتباطی

flowchart tb
    subgraph internet
        webusers[کاربران]
        inspectors[بازرسان بانکی]
    end
    subgraph edge
        cdn[cdn — ابرآروان]
        firewall[فایروال لینوکس]
    end
    subgraph darano
        traefik[traefik v2.10<br/>reverse proxy + tls<br/>let's encrypt]
        apigw[api gateway — go/gin<br/>rest + websocket<br/>jwt + swagger/openapi]
        services[سرویس‌های میکروسرویس]
    end
    internet --> cdn --> firewall --> traefik --> apigw --> services

    style cdn fill:#e1f5fe
    style firewall fill:#fff3e0
    style traefik fill:#e8f5e9

flowchart TB
    subgraph internet[ شبکه عمومی اینترنت]
direction LR
        webusers[کاربران] 
      admin[ادمین سامانه]
bazar[بازارگردان]
    end
    subgraph edge
direction LR
        cdn[cdn — ابرآروان] --> firewall[فایروال لینوکس]
    end
    subgraph darano[سامانه دارانو]
        traefik[traefik v2.10<br/>reverse proxy + tls<br/>let's encrypt] -->
        apigw[api gateway — go/gin<br/>rest + websocket<br/>jwt + swagger/openapi]  -->
        services[سرویس‌های میکروسرویس]
    end
subgraph darano-priv
direction TB
db[دیتابیس]
vault[Vault/SSM]
end

internet --> edge --> darano -.دسترسی محدود با آی پی.-> darano-priv

    style cdn fill:#0003e0
    style firewall fill:#ea111111


لایه‌های ارتباطی:

لایه فناوری توضیح
CDN ابرآروان DDoS Protection، TLS termination، CDN محتوا
فایروال Firewalld (Linux) محدودسازی دسترسی بر اساس IP Allowlist
Reverse Proxy Traefik v2.10 مسیریابی خودکار بر اساس label، TLS خودکار با Let's Encrypt
API Gateway Go + Gin Router نقطه ورود واحد — RESTful API + WebSocket، مستندات OpenAPI v2 در Swagger
  • پروتکل ارتباط خارجی: RESTful با فرمت JSON (مستندات OpenAPI v2 در Swagger)
  • پروتکل ارتباط داخلی سرویس‌ها: gRPC با Protobuf (سرعت بالا، فشرده‌سازی، امنیت TLS)

۳.۲ بلاکچین

سامانه از بلاکچین (بر پایه استلار) برای ثبت تراکنش‌های توکنی استفاده می‌کند. در آینده امکان مهاجرت به راهکارهای جایگزین نیز بررسی خواهد شد.


۴. دیاگرام موارد استفاده (Use Case Diagram)

graph TB
    Investor[سرمایه‌گذار]
    Issuer[ناشر]
    Custodian[میزبان/امین دارایی]
    MarketMaker[بازارگردان]
    PlatformAdmin[ادمین پلتفرم]
    BankInspector[بازرس بانکی]

    Investor --> UC1[ثبت‌نام و ورود]
    Investor --> UC2[احراز هویت KYC]
    Investor --> UC3[خرید توکن در بازار اولیه]
    Investor --> UC4[معامله در بازار ثانویه]
    Investor --> UC5[مشاهده پورتفولیو و تاریخچه]
    Investor --> UC6[واریز و برداشت ریال]
    Investor --> UC7[واریز و برداشت توکن]
    Investor --> UC8[خرید اقساطی BNPL]
    Investor --> UC9[بازخرید توکن]

    Issuer --> UC10[ایجاد پروژه توکن‌سازی]
    Issuer --> UC11[ثبت اطلاعات دارایی]

    Custodian --> UC12[تأیید وضعیت دارایی]
    Custodian --> UC13[همکاری حقوقی]

    MarketMaker --> UC14[مدیریت نقدینگی بازار]
    MarketMaker --> UC15[سفارش‌گذاری در بازار ثانویه]

    PlatformAdmin --> UC16[مدیریت کاربران]
    PlatformAdmin --> UC17[صدور و مدیریت توکن]
    PlatformAdmin --> UC18[مدیریت سفارش‌ها و بازار]
    PlatformAdmin --> UC19[مدیریت بازخرید]
    PlatformAdmin --> UC20[پیکربندی و پایش سامانه]
    PlatformAdmin --> UC21[مدیریت کد تخفیف و دعوت]

    BankInspector --> UC22[مشاهده تراکنش‌ها]
    BankInspector --> UC23[تیک امنیتی و نظارت]

    style Investor fill:#e3f2fd
    style Issuer fill:#f3e5f5
    style Custodian fill:#e8f5e9
    style MarketMaker fill:#fff3e0
    style PlatformAdmin fill:#fce4ec
    style BankInspector fill:#efebe9

۴.۱ دسته‌بندی موارد استفاده

بخش سرمایه‌گذار (کاربری عمومی): - ثبت‌نام و ورود با OTP - احراز هویت KYC (شاهکار + سامانه احراز هویت + استعلام بانکی) - خرید توکن از بازار اولیه (درگاه آنلاین، شناسه‌دار، پرداخت‌یار، اقساطی) - معامله در بازار ثانویه P2P - مشاهده پورتفولیو و تاریخچه تراکنش‌ها - واریز/برداشت ریال و توکن

بخش ناشر و میزبان (حقوقی): - ایجاد پروژه توکن‌سازی - ثبت اطلاعات دارایی و قراردادها - تأیید وضعیت دارایی و همکاری حقوقی

بخش پلتفرم (مدیریتی): - مدیریت کاربران و نقش‌ها (RBAC/ABAC) - صدور و مدیریت توکن‌ها - مدیریت سفارش‌ها، بازخرید و بازار - پیکربندی سامانه و پایش

بخش بازرس بانکی (نظارتی): - مشاهده تراکنش‌ها و گزارش‌ها - تیک امنیتی و نظارت بر حساب‌وکتاب


۵. سرویس‌های شخص ثالث (3rd Party)

۵.۱ خدمات احراز هویت و بانکی

سرویس نقش توضیح
سامانه شاهکار احراز مالکیت سیم‌کارت و مطابقت کدملی با شماره تماس استعلام از پایگاه داده پست
سامانه احراز هویت تأیید اطلاعات هویتی (کدملی، تاریخ تولد، تصویر) سرویس‌های مشابه: زحل (Zohal)، احراز (Ehraz)، پکو (Pecco)
استعلامات بانکی تأیید مالکیت حساب بانکی و شماره شبا سرویس‌های مشابه: جیبیت (Jibit)

۵.۲ خدمات پرداخت

سرویس نقش توضیح
درگاه پرداخت بانکی پرداخت آنلاین مستقیم بانک ملت و بانک‌های دیگر
وندار پرداخت‌یار (کیف پول مجازی) خرید توکن از موجودی کیف پول مجازی
سایر پرداخت‌یارها پرداخت الکترونیک سرویس‌های مشابه

۵.۳ خدمات ارتباطی

سرویس نقش توضیح
پنل ایمیل سازمانی ارسال ایمیل‌های خدماتی (خوش‌آمدگویی، تأیید تراکنش و …) سرویس‌هایی مشابه لیموهاست
پنل پیامک (Kavenegar) ارسال OTP و پیام‌های خدماتی سرویس‌هایی مشابه کاوه‌نگار

۵.۴ زیرساخت و مانیتورینگ

سرویس نقش توضیح
Prometheus جمع‌آوری متریک‌ها استاندارد CNCF
Grafana داشبورد و تجسم داده‌ها استاندارد CNCF
OpenTelemetry Observability یکپارچه استاندارد CNCF
Node Exporter / cAdvisor مانیتورینگ سیستم‌عامل و کانتینرها استاندارد CNCF
Alertmanager مدیریت هشدارها استاندارد CNCF
Object Storage (S3) ذخیره‌سازی فایل‌ها و بک‌آپ سرویس ابری
Stellar Horizon مرورگر بلاکچین API ارتباط با بلاکچین

۶. زیرساخت پلتفرم — وضعیت فعلی

۶.۱ مشخصات سرور

پارامتر مقدار
ارائه‌دهنده VPS ابرآروان (سرویس ابری مورد تأیید بانک)
سیستم‌عامل Ubuntu 22.04
رم ۱۲ گیگابایت
پردازنده ۴ هسته @ 3.19 GHz
ظرفیت پیش‌بینی‌شده ۴,۰۰۰ کاربر
ترافیک محدود و کنترل‌شده

۶.۲ معماری کلان

flowchart TB
    subgraph Internet
        Users[کاربران]
    end
    subgraph Edge
        CDN[CDN — ابرآروان]
        FW[Firewalld]
    end
    subgraph Server["VPS ابرآروان<br/>سرویس ابری مورد تأیید بانک"]
        Docker[Docker + Docker Compose]
        subgraph Services
            Traefik[Traefik v2.10<br/>Reverse Proxy + TLS]
            UI[UI — Next.js 14<br/>SSR + Client Rendering]
            AdminPanel[Django Admin<br/>Server-Side Rendering]
            APIGW[API Gateway — Go/Gin<br/>REST + WebSocket]
            AuthSvc[Auth Service — Go]
            WalletSvc[Wallet Service — Go]
            MarketSvc[Market Service — Go]
            Streamer[Wallet Streamer — Go]
        end
        subgraph Data
            DB[(PostgreSQL 15)]
            Cache[(Redis 7)]
            MQ[(RabbitMQ 3.12)]
        end
    end
    subgraph ExternalServices
        Blockchain[بلاکچین]
        Monitoring["سرور مانیتورینگ جداگانه"]
    end

    Users --> CDN --> FW --> Traefik
    Traefik --> UI
    Traefik --> AdminPanel
    Traefik --> APIGW
    APIGW --> AuthSvc
    APIGW --> WalletSvc
    APIGW --> MarketSvc
    AuthSvc --> DB
    AuthSvc --> Cache
    WalletSvc --> DB
    WalletSvc --> Cache
    MarketSvc --> DB
    MarketSvc --> Cache
    MarketSvc --> MQ
    Streamer --> Blockchain
    Streamer --> DB
    Streamer --> MQ
    WalletSvc --> Blockchain
    Prometheus --> APIGW
    Prometheus --> AuthSvc
    Prometheus --> WalletSvc
    Prometheus --> MarketSvc
    Prometheus --> DB
    Grafana --> Prometheus
    AlertM --> Prometheus

    style Edge fill:#fff3e0
    style Server fill:#e8f5e9
    style ExternalServices fill:#f3e5f5
    style Monitoring fill:#e3f2fd

۶.۳ جزئیات فناوری‌ها

لایه فناوری توضیح
میزبانی VPS ابرآروان سرویس ابری مورد تأیید بانک — Ubuntu 22.04، ۱۲GB RAM، ۴ هسته
کانتینری‌سازی Docker + Docker Compose ایزولاسیون کامل سرویس‌ها
Reverse Proxy Traefik v2.10 مدیریت خودکار TLS با Let's Encrypt
API Gateway Go + Gin Router RESTful API + WebSocket + Swagger/OpenAPI
ارتباط داخلی gRPC + Protobuf ارتباط میکروسرویس‌ها با یکدیگر
سرویس احراز هویت Go + GORM JWT (RS256) + OTP + RBAC/ABAC
سرویس کیف پول Go + Stellar SDK HD Wallet (ED25519) + بلاکچین
سرویس بازار Go + GORM مدیریت سفارش‌ها و معاملات P2P
Streamer Go + Horizon SDK رصد بلادرنگ تراکنش‌های بلاکچین
ادمین پنل Python + Django + Unfold مدیریت کاربران، گزارش مالی، تسویه
رابط کاربری Next.js 14 + React + TypeScript Tailwind CSS + Material-UI
پایگاه داده PostgreSQL 15 بک‌آپ روزانه، Docker Volume
کش / Session Redis 7 Session، Rate Limit، Cache
صف پیام RabbitMQ 3.12 POC — استفاده محدود فعلی
مانیتورینگ Prometheus + Grafana + OpenTelemetry سرور مانیتورینگ جداگانه + IP Allowlist
کنترل نسخه و CI/CD Gitea + Act Runner شبیه GitHub Actions — استقرار زیر ۱ دقیقه

۶.۴ معماری سرویس‌ها

سامانه بر پایه میکروسرویس طراحی شده و شامل بخش‌های اصلی زیر است:

Backend (Go):

سرویس مسیر مسئولیت
API Gateway backend/api/ مسیریابی، احراز هویت اولیه، Rate Limiting، Swagger/OpenAPI
Auth Service backend/auth/ ثبت‌نام، ورود OTP، KYC، JWT، RBAC/ABAC
Wallet Service backend/wallet/ کیف پول On-Chain/Off-Chain، تراکنش‌ها، پرداخت‌یارها
Market Service backend/wallet/ (sub) سفارش‌گذاری، بازار اولیه و ثانویه، BNPL، بازخرید
Wallet Streamer backend/wallet/ (sub) رصد تراکنش‌های بلاکچین، همگام‌سازی

معماری داخلی سرویس‌ها: - Auth: Clean Architecture (Domain → Repository → Use Case) - Wallet: Hexagonal Architecture (Port & Adapter)

Frontend:

بخش فناوری توضیح
رابط کاربری Next.js 14 + React + TypeScript SSR، Tailwind CSS، Material-UI
ادمین پنل Django + Unfold Admin مدیریت و گزارش‌گیری

۶.۵ امنیت

لایه مکانیزم توضیح
لایه شبکه CDN + Firewalld DDoS Protection، محدودسازی IP
لایه انتقال TLS (Let's Encrypt) ترافیک رمزگذاری‌شده
لایه احراز هویت JWT (RS256) + OTP توکن ۱۵ دقیقه، Refresh Token ۷ روز در Redis
لایه رمزنگاری ED25519 (HD Wallet) کلیدهای خصوصی هرگز در دیتابیس ذخیره نمی‌شوند
لایه کلید ناشر Vault + SSM Pipeline ردیابی استفاده هر کلید
لایه رمز عبور bcrypt (Cost 12)
لایه تراکنش OTP + 2FA تأیید دو مرحله‌ای برای تراکنش‌های مالی
لایه داده PostgreSQL SSL + Encryption at Rest

۷. زیرساخت پلتفرم — نقشه راه آینده

۷.۱ Event-Driven Architecture

graph TB
    subgraph Current["وضعیت فعلی — Synchronous"]
        APIGW -->|gRPC| Auth
        APIGW -->|gRPC| Wallet
        APIGW -->|gRPC| Market
        Market -->|gRPC| Wallet
    end

    subgraph Target["آتی — Event-Driven"]
        APIGW -->|gRPC| Auth
        APIGW -->|gRPC| Wallet
        APIGW -->|gRPC| Market

        EventBus[(Event Bus<br/>Apache Kafka)]

        Auth -.->|Domain Events| EventBus
        Wallet -.->|Domain Events| EventBus
        Market -.->|Domain Events| EventBus
        Streamer -.->|Domain Events| EventBus

        EventBus -->|Subscribe| Notification[Notification Service]
        EventBus -->|Subscribe| Analytics[Analytics Service]
        EventBus -->|Subscribe| Audit[Audit Service]
    end

    style Current fill:#e3f2fd
    style Target fill:#e8f5e9

۷.۲ جدول نقشه راه

ویژگی وضعیت فعلی هدف آینده
الگوی ارتباطی Synchronous (gRPC/REST) Event-Driven (Apache Kafka)
Orchestration Docker Compose Kubernetes (K8s)
Event Bus محدود (RabbitMQ در Wallet — POC) Event Bus مرکزی با Kafka
مدیریت کلیدها Secret Manager در گیت HashiCorp Vault / KMS
مانیتورینگ Prometheus + Grafana (سرور جداگانه) اضافه‌شدن OpenTelemetry Distributed Tracing
Service Mesh ندارد Istio یا Linkerd
Database PostgreSQL Single Master-Slave + Read Replicas
CI/CD Gitea + Act Runner Pipeline خودکار با تأیید دو مرحله‌ای

۷.۳ استراتژی مهاجرت به Event-Driven

فاز بازه اقدامات
Phase 1 — پایه ۲-۳ ماه نصب Kafka، ایجاد Event Schema، پیاده‌سازی Event Publisher/Consumer
Phase 2 — پایلوت ۱-۲ ماه پیاده‌سازی Use Case ساده (Notifications)
Phase 3 — مهاجرت تدریجی ۴-۶ ماه افزودن تدریجی Use Case‌ها، Dual-Mode Operation
Phase 4 — کامل ۳-۴ ماه حذف Sync Calls غیرضروری، افزودن سرویس‌های جدید

تایم‌لاین کلی: ۱۲-۱۸ ماه


۸. خلاصه و جمع‌بندی

سامانه دارانو، توسعه‌یافته توسط شرکت توسعه راه‌کارهای نامتمرکز سنا، یک پلتفرم توکن‌سازی دارایی‌های واقعی است که با رعایت کامل ضوابط رگولاتوری و قوانین بانک مرکزی طراحی و پیاده‌سازی شده است.

خلاصه زیرساخت فعلی

دسته جزئیات
میزبانی VPS ابرآروان — سرویس ابری مورد تأیید بانک
معماری میکروسرویس — Docker + Docker Compose
زبان backend Go (Gin Router، GORM، Stellar SDK)
زبان admin Python (Django + Unfold)
frontend Next.js 14 + React + TypeScript
ارتباط خارجی RESTful JSON — Swagger/OpenAPI v2
ارتباط داخلی gRPC + Protobuf
بلاکچین بلاکچین (آتی: راهکار جایگزین)
دیتابیس PostgreSQL 15 (بک‌آپ روزانه)
مانیتورینگ Prometheus + Grafana + OpenTelemetry (سرور جداگانه)
CI/CD Gitea + Act Runner
احراز هویت JWT (RS256) + OTP + 2FA
سرویس‌های 3rd Party شاهکار، سامانه احراز، استعلام بانکی، درگاه بانک ملت، وندار، پنل ایمیل، Kavenegar

نقاط قوت کلیدی

  1. امنیت بالا: مدیریت کلیدها با Secret Manager، احراز هویت چندمرحله‌ای، فایروال و CDN
  2. شفافیت: مالکیت توکن‌ها فقط روی بلاکچین، ردیابی کامل تراکنش‌ها
  3. مقیاس‌پذیری: معماری میکروسرویس با امکان مهاجرت به Event-Driven و Kubernetes
  4. نظارت: مانیتورینگ ۲۴/۷ با ابزارهای استاندارد CNCF و دسترسی بازرس بانکی
  5. رعایت رگولاتوری: سپیدنامه و قراردادهای حقوقی کامل، تطابق با قوانین بانک مرکزی