scrypt KDF
Los wallets se cifran. Cada intento de fuerza bruta requiere ~64 MiB de RAM, lo que es equivalente a que una GPU RTX 4090 pueda probar solo ~128 contraseñas en paralelo, frente a miles de millones con SHA-256 puro.
VectraNetwork es una blockchain P2P construida con criptografía de curva elíptica, cifrado de mensajes ECIES y protección activa contra ataques. Diseñada para la comunicación segura.
VectraNetwork nació como respuesta a la eliminación del anonimato en internet. Se plantean nuevas formas de eliminar el anonimato de las redes sociales, formas de control masivo que, aunque vienen disfrazadas de buenas acciones, la realidad es que no sirven para otra cosa que no sea tener a la población completamente bajo control. El cifrado de punto a punto deja de ser útil cuando la empresa se ve forzada por los gobiernos a entregar los datos guardados en el propio dispositivo. Aquí es cuando entra en juego la descentralización. Concretamente hablamos de blockchain basada en PoW (Proof of Work), similar a los incios de bitcoin.
El proyecto está escrito en C++17, sin frameworks externos innecesarios, dependiendo únicamente de OpenSSL y LevelDB.
Vectra está pensada para priorizar la seguridad frente a distintos ataques y por eso tratamos diversos frentes a la vez. No solo priorizamos el cifrado de los mensajes, sino que también nos aseguramos de que tu información de la wallet y de la blockchain en general esté a salvo.
Los wallets se cifran. Cada intento de fuerza bruta requiere ~64 MiB de RAM, lo que es equivalente a que una GPU RTX 4090 pueda probar solo ~128 contraseñas en paralelo, frente a miles de millones con SHA-256 puro.
Toda clave pública recibida pasa por una triple validación. Previene ataques de subgrupo y puntos inválidos antes de cualquier operación ECDH.
Las firmas ECDSA usan HMAC-DRBG para generar el
nonce k de forma determinista a partir del mensaje y la
clave privada. Elimina la posibilidad de filtrar la clave privada
por reutilización de nonce aleatorio débil.
Los mensajes cifrados usan un nonce de 12 bytes (RFC 5116) generado por CSPRNG. El tag GCM de 16 bytes garantiza integridad.
El servidor JSON-RPC soporta HTTP Basic Auth con comparación en tiempo constante.
El RPC puede configurarse con certificado TLS propio.
Se inicializa con SSL_CTX, se fuerza
TLS 1.2 mínimo y se rechaza cualquier
conexión que no supere el handshake.
Cada peer acumula puntos de "misbehavior": −10 por transacción inválida, −20 por mensaje malformado. Al llegar a 100 puntos el peer queda baneado 24 horas.
Máximo 3 conexiones por subred /24. Las IPs privadas (RFC 1918) están exentas para no perjudicar redes locales.
El "wire format" incluye un byte de versión al inicio de cada mensaje cifrado. Permite migrar algoritmos en el futuro sin romper la compatibilidad con nodos anteriores.
Cada bloque minado sigue un ciclo preciso de distribución económica. Las comisiones de red no van íntegras al minero: la mitad se quema permanentemente y la otra mitad se acumula en una billetera autónoma para repartirse mensualmente entre quienes sostienen la red.
VectraNetwork sigue el modelo UTXO de Bitcoin: cada salida de transacción se consume exactamente una vez. El conjunto de UTXOs se mantiene en LevelDB para un acceso eficiente. Los scripts de desbloqueo son simples y sin contratos complejos que amplíen los vectores de ataque.
Cada bloque referencia al anterior mediante su hash doble SHA-256, formando la cadena inmutable. La validación de consenso rechaza bloques con transacciones que gasten UTXOs ya consumidos, con firmas inválidas o con scripts malformados.
El mempool gestiona las transacciones pendientes con límites de tamaño y validación previa antes de propagar a la red. Las transacciones con mensajes cifrados ECIES se validan de la misma forma que las normales.
Tanto entrantes como salientes pasan por el mismo pipeline de validación. No hay tratamiento preferencial por origen de conexión.
Protección contra flood de conexiones. Límite configurable de intentos por periodo antes de descartar la solicitud.
Las transacciones solo se propagan tras validación completa. Un peer que envía datos inválidos acumula misbehavior points inmediatamente.
Lista de peers persistida en disco. Reconexión automática a peers conocidos tras el reinicio del nodo.
Los peers baneados quedan registrados con un timestamp. Al expirar las 24 horas pueden reconectarse. El historial ayuda a detectar atacantes persistentes.
Máximo 3 conexiones por subred /24. Un atacante Sybil con IPs en el mismo rango no puede saturar el slot de peers.
VNFT (Vectras File Transfer Protocol) es un protocolo de capa superior construido sobre la blockchain de VectraNetwork. Permite transferir archivos de cualquier tamaño de forma completamente cifrada entre dos peers, usando la blockchain únicamente como canal de señalización inicial y la conexión TCP directa para el transporte de datos.
# Send a file to another peer:
vectra-wallet vnft send \
--to VCT1xzABCDEF... \
--file /your/file/route/file.zip
# Or by using Wallet CLI:
#1. Select 13 option (Send File).
#2. Writte the public wallet address.
#3. Writte the file location (e.g: ./file.dat).
#4. Confirm the transaction.
# Scan for incoming transactions
vectra-wallet vnft list
# Descargar una transferencia detectada
vectra-wallet vnft receive \
--id <transfer-id>
# Or by using Wallet CLI:
#1. Select 14 option (File Transfers).
#2. Select "Search for incoming transfers".
#3. Select "Download incoming transfer".
#4. Confirm IP and port and donwload.
El nodo completo (vectrad) integra blockchain,
mempool, red P2P, servidor RPC y gestión de wallet en un único
binario sin dependencias de runtime más allá de OpenSSL y LevelDB.
La configuración se gestiona desde vectra.conf
y soporta credenciales RPC, TLS, puertos personalizados y
parámetros de red que se pueden escribir mediante argumentos.
# Credenciales RPC
rpcuser=admin
rpcpassword=su-contraseña-aleatoria
# TLS para el RPC
rpctlscert=/etc/vectra/rpc.crt
rpctlskey=/etc/vectra/rpc.key
# Red
maxconnections=125
port=8333
OPENSSL_cleanse y std::fill después de cada uso, incluyendo intentos fallidos.
vectra-miner es un binario independiente que se conecta al nodo completo vía JSON-RPC. Separa la lógica de minado del nodo para mayor modularidad. Puedes ejecutar múltiples mineros contra un mismo nodo, o apuntar a un nodo remoto.
Solicita plantillas de bloque mediante getblocktemplate, realiza la búsqueda del nonce SHA-256d en paralelo usando todos los hilos disponibles, y envía los bloques encontrados automáticamente con submitblock.
El minado de bloques hace uso de los hilos de tu CPU para que más gente pueda minar sin necesitar una tarjeta gráfica. El minado de cada bloque está establecido en un tiempo aproximado de 10 segundos para mayor fluidez de la red. Para llegar al tiempo objetivo se hace uso de un ajuste dinámico en tiempo real de la dificultad de la red.
# Node conection
rpcurl=http://127.0.0.1:8332
rpcuser=admin
rpcpassword=your-password
# Mining threads (0 = auto)
threads=0
# Your wallet public address for the reward
miningaddr=VxxxYourPublicAddress
./vectra-miner \
--rpcurl http://127.0.0.1:8332 \
--rpcuser admin \
--rpcpassword pass \
--threads N (1, 2, 3, 4, N) \
--miningaddr VxxxYourPublicAddress
--rpcport 8332
--rpchost 127.0.0.1
--threads N.
El código está en GitHub. Puedes reportar bugs, proponer mejoras, auditar el código criptográfico o ejecutar tu propio nodo. Creemos en la libertad de expresión y en una comunicación libre sin control externo. Si crees que este proyecto encaja contigo no dudes en aportar, toda sugerencia o ayuda es bienvenida.
Sigue estos pasos en orden para tener tu nodo sincronizado, tu wallet operativa y el minero funcionando en pocos minutos.
Elige la versión que mejor se adapte a tu sistema. La versión portable no requiere instalación: descomprime el ZIP y ejecuta directamente. La versión instalador realiza la instalación completa en el sistema.
vectrad)Abre una terminal (CMD, PowerShell o consola de comandos) en la carpeta donde has extraído o instalado VectraNetwork y ejecuta:
# Parámetros principales
./vectrad ^
--datadir "C:\VectraData" # Carpeta donde se almacenará la blockchain
--bind 0.0.0.0 # Escucha en todas las interfaces (conexión al nodo público)
--port 8333 # Puerto P2P
--rpcport 8332 # Puerto RPC local (usado por wallet y minero)
--loglevel info # Nivel de log: info | debug
--addnode bilbao1-node.duckdns.org:8333 # IP:puerto del nodo público al que conectarte
Consejo: Puedes agregar varios --addnode para conectarte a múltiples nodos públicos simultáneamente y acelerar la sincronización inicial.
Conecta tu nodo a cualquiera de estas direcciones mediante --addnode. Elige el más cercano a tu región para menor latencia.
vectra-wallet)Una vez el nodo esté en marcha y sincronizando con la red, abre la wallet CLI. Tienes dos opciones:
Al arrancar, la wallet aparecerá como desconectada. Esto es normal: aún no está vinculada a tu nodo local.
En el menú principal de la wallet, selecciona la opción 7 — Sincronizar con el nodo. A continuación introduce:
127.0.0.1 (localhost)
8332 (o el que hayas configurado con --rpcport)
Una vez sincronizada, la wallet cambiará su estado a conectada y podrás consultar tu saldo, enviar y recibir transacciones, y usar todas las funciones del protocolo.
vectra-miner)El minero te permite obtener tokens VCT validando bloques de la red. Se conecta al nodo local vía RPC y trabaja de forma completamente independiente. Desde la terminal ejecuta:
./vectra-miner ^
--threads 0 # Hilos (0 = automático, usa todos los núcleos)
--miningaddr VxxxTuDirecciónPública # Dirección pública donde recibir la recompensa
¿Para qué minar? El minero tiene dos funciones: (1) obtener tokens VCT con los que realizar transacciones en la red, y (2) validar y confirmar las transacciones de otros usuarios minando bloques, lo que contribuye directamente a la seguridad y descentralización de VectraNetwork.