Интеграция с NEAR Chain Signatures
Кросс-чейн взаимодействие традиционно требует мостов или деплоя контрактов на каждой цепи. Мы предлагаем альтернативу — интеграцию с NEAR Chain Signatures под ключ. Один NEAR аккаунт управляет активами на Ethereum, Bitcoin, Solana без дополнительных контрактов. Наш опыт показывает снижение времени на 40% и стоимости на 60% по сравнению с классическими мостами. Оценим ваш проект бесплатно.
Принцип работы
В основе — MPC (Multi-Party Computation) сеть из NEAR валидаторов, которые коллективно хранят master key. Пользователь запрашивает подпись транзакции для другой цепи, MPC сеть генерирует подпись через threshold cryptography. Результирующая подпись — валидная подпись для целевой цепи, которую можно broadcast-ить.
Это означает: ваш NEAR аккаунт может контролировать Bitcoin адрес, Ethereum адрес, Solana адрес — без seed phrase для каждого. Один NEAR аккаунт = доступ ко всем активам на всех цепях.
NEAR Account (alice.near)
├── Controls ETH address: 0x1234... (secp256k1 derived key)
├── Controls BTC address: bc1q... (secp256k1 derived key)
└── Controls SOL address: ABC... (ed25519 derived key)
Что такое derivation path и зачем он нужен?
Каждый NEAR аккаунт может получить несколько адресов на внешних цепях через derivation path. Один аккаунт управляет множеством кошельков: alice.near с path 'eth-1' даёт один ETH адрес, с path 'eth-2' — другой, с path 'btc-main' — BTC адрес. Это позволяет структурировать активы по назначению.
Пример генерации адресов ETH и BTC
const ethPath = `ethereum-1`;
const btcPath = `bitcoin-main`;
const ethAddress = await deriveAddress(nearAccount, ethPath, 'secp256k1');
const btcAddress = await deriveAddress(nearAccount, btcPath, 'secp256k1');
Как Chain Signatures подписывает транзакцию для другой цепи?
Процесс состоит из нескольких шагов. Сначала вы формируете unsigned транзакцию для целевой цепи (например, Ethereum). Затем хеш этой транзакции отправляется на контракт v1.signer.near. MPC сеть валидаторов генерирует ECDSA или EdDSA подпись через threshold cryptography. Полученная подпись совместима с целевой цепью — вы подставляете её в транзакцию и отправляете напрямую.
import { connect, KeyPair, utils } from "near-api-js";
import { CONTRACT_ID } from "./constants";
async function requestEthSignature(
nearAccount: Account,
ethTxPayload: string,
derivationPath: string
): Promise<{ r: string; s: string; v: number }> {
const result = await nearAccount.functionCall({
contractId: "v1.signer.near",
methodName: "sign",
args: {
payload: Array.from(Buffer.from(ethTxPayload, "hex")),
path: derivationPath,
key_version: 0,
},
gas: "300000000000000",
attachedDeposit: utils.format.parseNearAmount("0.1"),
});
const { big_r, s, recovery_id } = result as any;
return {
r: big_r.affine_point,
s: s.scalar,
v: recovery_id,
};
}
Полный флоу: NEAR → Ethereum транзакция
import { ethers } from "ethers";
async function sendEthFromNear(
nearAccount: Account,
recipient: string,
amountWei: bigint,
derivationPath: string
) {
const ethAddress = await getEthAddressFromNear(nearAccount, derivationPath);
const provider = new ethers.JsonRpcProvider("https://eth.llamarpc.com");
const nonce = await provider.getTransactionCount(ethAddress);
const feeData = await provider.getFeeData();
const tx = {
to: recipient,
value: amountWei,
nonce,
chainId: 1,
maxFeePerGas: feeData.maxFeePerGas,
maxPriorityFeePerGas: feeData.maxPriorityFeePerGas,
gasLimit: 21000n,
type: 2,
};
const serialized = ethers.Transaction.from(tx).unsignedSerialized;
const payload = ethers.getBytes(ethers.keccak256(serialized));
const signature = await requestEthSignature(
nearAccount,
Buffer.from(payload).toString("hex"),
derivationPath
);
const signedTx = ethers.Transaction.from({
...tx,
signature: {
r: "0x" + signature.r,
s: "0x" + signature.s,
v: signature.v,
},
});
const txResponse = await provider.broadcastTransaction(signedTx.serialized);
return txResponse.wait();
}
Bitcoin интеграция
Система поддерживает Bitcoin (secp256k1 + P2WPKH/P2TR). Это уникальная возможность: большинство других cross-chain протоколов не поддерживают Bitcoin нативно. С помощью [NEAR Chain Signatures документация] (https://docs.near.org/concepts/chain-signatures) мы реализовали подпись Bitcoin-транзакций.
import * as bitcoin from "bitcoinjs-lib";
async function sendBitcoinFromNear(
nearAccount: Account,
recipient: string,
satoshis: number,
derivationPath: string
) {
const network = bitcoin.networks.bitcoin;
const btcAddress = await getBtcAddressFromNear(nearAccount, derivationPath);
const utxos = await fetchUTXOs(btcAddress);
const psbt = new bitcoin.Psbt({ network });
for (const utxo of utxos) {
psbt.addInput({ hash: utxo.txid, index: utxo.vout, witnessUtxo: utxo.witnessUtxo });
}
psbt.addOutput({ address: recipient, value: satoshis });
for (let i = 0; i < utxos.length; i++) {
const sighash = psbt.data.inputs[i].sighashType ?? bitcoin.Transaction.SIGHASH_ALL;
const hash = psbt.__CACHE.__TX.hashForWitnessV0(i, psbt.data.inputs[i].witnessScript!, utxos[i].value, sighash);
const signature = await requestBtcSignature(
nearAccount,
hash.toString("hex"),
derivationPath
);
psbt.finalizeInput(i, /* custom finalizer with MPC signature */);
}
const rawTx = psbt.extractTransaction().toHex();
return broadcastBitcoin(rawTx);
}
Варианты применения
Omnichain DeFi. dApp на NEAR, управляющий позициями на Ethereum AAVE, Uniswap, GMX без bridge. Пользователь взаимодействует только с NEAR (дёшево, быстро), Chain Signatures исполняет действия на Ethereum.
Cross-chain liquidation bot. Мониторинг позиций на нескольких цепях, автоматическая ликвидация с использованием Chain Signatures для подписи транзакций без предзагрузки ETH на executor адрес.
Multi-chain portfolio management. Управление активами на Ethereum, Bitcoin, Solana из одного NEAR аккаунта.
Atomic swaps без bridge. ETH ↔ BTC без centralized exchange, с on-chain гарантиями через HTLC + Chain Signatures.
Сравнение Chain Signatures и L2-мостов
| Критерий | Chain Signatures | Традиционные мосты |
|---|---|---|
| Деплой контрактов на целевой цепи | Не требуется | Требуется на каждой цепи |
| Блокировка ликвидности | Нет | Да (заморозка в bridge) |
| Время подтверждения | 3-5 секунд | 5-30 минут |
| Риски | MPC-компрометация (пороговая атака) | Взлом моста (исторически часто) |
| Поддержка Bitcoin | Да | Редко |
Chain Signatures в 3-5 раз быстрее и дешевле при атомарных обменах между цепями.
Ограничения и зрелость
Данное решение — относительно новый продукт (запуск mainnet). Зрелость инфраструктуры ниже, чем у Axelar или LayerZero. MPC latency: подпись занимает 3-5 секунд. Стоимость: каждый sign запрос стоит ~0.1 NEAR + gas.
Стек разработки
- Frontend: React + near-api-js
- NEAR smart contracts: Rust (near-sdk-rs) или TypeScript (near-sdk-js)
- Target chain interactions: ethers.js, bitcoinjs-lib, @solana/web3.js
- MPC контракт: v1.signer.near (mainnet), v1.signer-prod.testnet (testnet)
Почему стоит выбрать Chain Signatures для своего проекта?
Если ваша задача — omnichain DeFi, мультичейн-портфель или автоматизация без bridge, протокол даёт преимущество: единая точка управления, низкая задержка, сокращение затрат на инфраструктуру в 3 раза. Оценим ваш сценарий на пилотном периоде — свяжитесь с нами.
Что входит в интеграцию
- Архитектурный дизайн и выбор derivation paths
- Клиентский код на TypeScript для Ethereum, Bitcoin, Solana
- Настройку MPC контракта и управление gas-бюджетом
- Документацию по обработке ошибок и fallback-стратегиям
- Тестирование на testnet и mainnet
- Поддержку в период эксплуатации
Сроки
- NEAR аккаунт + Chain Signatures базовый флоу: 2-3 недели
- Ethereum интеграция (транзакции + ERC-20): +1-2 недели
- Bitcoin поддержка: +2-3 недели
- Полноценный omnichain dApp: 2-3 месяца
Наша команда имеет 5-летний опыт в блокчейне и более 10 реализованных проектов. Свяжитесь с нами для оценки вашего сценария — поможем определить, подходит ли технология для вашей задачи. Получите консультацию бесплатно.







