שילוב עם חתימות שרשרת של NEAR לניהול נכסים בין-שרשרתי

פעולות חוצות-שרשרת דורשות לעיתים קרובות גשרים מורכבים ומספר חוזים. אנחנו בונים אינטגרציה עם NEAR Chain Signatures, המאפשרת ניהול נכסים על פני בלוקצ'יינים שונים מחשבון אחד. הצוות שלנו מספק את הפרויקט במפתח מלא, תוך הבטחת פתרון אמין וניתן להרחבה.

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1481
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1335
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1034
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1293
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    738
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1031

אינטגרציה עם חתימות שרשרת של NEAR

אינטראקציה בין-שרשרתית דורשת באופן מסורתי גשרים או פריסת חוזים בכל שרשרת. אנו מציעים חלופה—אינטגרציה סוהר עם חתימות שרשרת של NEAR. חשבון NEAR אחד מנהל נכסים ב-Ethereum, Bitcoin, Solana ללא חוזים נוספים. הניסיון שלנו מראה הפחתה של 40% בזמן ו-60% בעלות בהשוואה לגשרים קלאסיים. נבחן את הפרויקט שלך בחינם.

איך זה עובד

בליבה נמצאת רשת MPC (חישוב רב-צדדי) של מאמתי NEAR המאחסנים יחד מפתח ראשי. משתמש מבקש חתימת עסקה לשרשרת אחרת; רשת ה-MPC מייצרת חתימה באמצעות קריפטוגרפיה סף. החתימה המתקבלת תקפה לשרשרת היעד וניתן לשדר אותה.

משמעות הדבר היא שחשבון ה-NEAR שלך יכול לשלוט בכתובת Bitcoin, כתובת Ethereum, כתובת Solana—ללא ביטוי גיבוי לכל אחת. חשבון 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)

מהו נתיב גזירה ולמה הוא נחוץ?

כל חשבון NEAR יכול לקבל כתובות מרובות בשרשרות חיצוניות באמצעות נתיב גזירה. חשבון אחד מנהל ארנקים מרובים: alice.near עם נתיב 'eth-1' נותן כתובת ETH אחת, עם נתיב 'eth-2' אחרת, עם נתיב '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');

איך חתימות שרשרת חותמות על עסקה לשרשרת אחרת?

התהליך מורכב מכמה שלבים. ראשית, אתה יוצר עסקה לא חתומה לשרשרת היעד (למשל, Ethereum). לאחר מכן, ה-hash של עסקה זו נשלח לחוזה v1.signer.near. רשת ה-MPC של מאמתים מייצרת חתימת ECDSA או EdDSA באמצעות קריפטוגרפיה סף. החתימה המתקבלת תואמת לשרשרת היעד—אתה מחבר אותה לעסקה ומשדר ישירות.

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). זו יכולת ייחודית: רוב הפרוטוקולים הבין-שרשרתיים האחרים אינם תומכים ב-Bitcoin באופן טבעי. באמצעות תיעוד חתימות שרשרת של NEAR, יישמנו חתימת עסקאות 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);
}

מקרי שימוש

DeFi אומני-שרשרת. dApp על NEAR המנהל עמדות ב-Ethereum AAVE, Uniswap, GMX ללא גשר. המשתמש מתקשר רק עם NEAR (זול, מהיר), חתימות שרשרת מבצעות פעולות על Ethereum.

בוט חיסול בין-שרשרתי. ניטור עמדות במספר שרשרות, חיסול אוטומטי באמצעות חתימות שרשרת לחתימת עסקאות ללא טעינת ETH מראש בכתובות מבצע.

ניהול תיק רב-שרשרתי. ניהול נכסים ב-Ethereum, Bitcoin, Solana מחשבון NEAR אחד.

החלפות אטומיות ללא גשר. ETH ↔ BTC ללא בורסה מרכזית, עם ערבויות על-שרשרת באמצעות HTLC + חתימות שרשרת.

השוואה: חתימות שרשרת מול גשרי L2

קריטריון חתימות שרשרת גשרים מסורתיים
פריסת חוזים בשרשרת היעד לא נדרש נדרש בכל שרשרת
נעילת נזילות לא כן (קפואה בגשר)
זמן אישור 3-5 שניות 5-30 דקות
סיכונים פשרה ב-MPC (התקפת סף) פריצת גשר (היסטורית שכיחה)
תמיכה ב-Bitcoin כן נדיר

חתימות שרשרת מהירות וזולות פי 3-5 להחלפות אטומיות בין שרשרות.

מגבלות ובשלות

פתרון זה הוא מוצר חדש יחסית (mainnet הושק). בשלות התשתית נמוכה יותר מ-Axelar או LayerZero. השהיית MPC: חתימה אורכת 3-5 שניות. עלות: כל בקשת חתימה עולה ~0.1 NEAR + גז.

מחסנית טכנולוגית

  • Frontend: React + near-api-js
  • חוזים חכמים של NEAR: Rust (near-sdk-rs) או TypeScript (near-sdk-js)
  • אינטראקציות עם שרשרת היעד: ethers.js, bitcoinjs-lib, @solana/web3.js
  • חוזה MPC: v1.signer.near (mainnet), v1.signer-prod.testnet (testnet)

למה לבחור בחתימות שרשרת לפרויקט שלך?

אם המשימה שלך היא DeFi אומני-שרשרת, תיק רב-שרשרתי, או אוטומציה ללא גשרים, הפרוטוקול מציע יתרונות: נקודת שליטה אחת, השהיה נמוכה, והפחתת עלות תשתית פי 3. נבחן את התרחיש שלך בשלב פיילוט—צור קשר.

מה כלול באינטגרציה

  • תכנון ארכיטקטוני ובחירת נתיבי גזירה
  • קוד TypeScript בצד הלקוח עבור Ethereum, Bitcoin, Solana
  • הגדרת חוזה MPC וניהול תקציב גז
  • תיעוד על טיפול בשגיאות ואסטרטגיות גיבוי
  • בדיקות על testnet ו-mainnet
  • תמיכה תפעולית בשלב ההפעלה

לוחות זמנים

  • חשבון NEAR + זרימת חתימות שרשרת בסיסית: 2-3 שבועות
  • אינטגרציית Ethereum (עסקאות + ERC-20): +1-2 שבועות
  • תמיכה ב-Bitcoin: +2-3 שבועות
  • dApp אומני-שרשרת מלא: 2-3 חודשים

לצוות שלנו 5 שנות ניסיון בלוקצ'יין ויותר מ-10 פרויקטים מיושמים. צור קשר להערכה חינמית של התרחיש שלך—נעזור לקבוע אם הטכנולוגיה מתאימה למשימה שלך.