diff --git a/frontend/package.json b/frontend/package.json
index b875d67..2c89d3e 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -14,6 +14,7 @@
"@bitcoinerlab/secp256k1": "^1.2.0",
"@heroicons/react": "^2.0.18",
"@hookform/resolvers": "^3.9.1",
+ "@radix-ui/react-accordion": "^1.2.3",
"@radix-ui/react-checkbox": "^1.1.3",
"@radix-ui/react-collapsible": "^1.1.2",
"@radix-ui/react-dialog": "^1.1.4",
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index bd31ce2..ec9f2d7 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -1,16 +1,18 @@
-import { SnackbarProvider } from 'notistack';
-import { Route, BrowserRouter as Router, Routes } from 'react-router-dom';
-import 'reflect-metadata';
-import Layout from './components/layout/Layout';
-import { ErrorHandlerProvider } from './contexts/ErrorHandlerContext';
-import { WalletProvider } from './contexts/WalletContext/WalletContext';
-import ArbiterDashboard from './pages/ArbiterDashboard/ArbiterDashboard';
-import ArbiterList from './pages/ArbiterList/ArbiterList';
-import CompensationList from './pages/CompensationList/CompensationList';
-import DAppList from './pages/DAppList/DAppList';
-import RegisterArbiter from './pages/RegisterArbiter/RegisterArbiter';
-import RegisterDApp from './pages/RegisterDApp/RegisterDApp';
-import TransactionList from './pages/TransactionList/TransactionList';
+import { SnackbarProvider } from "notistack";
+import { Route, BrowserRouter as Router, Routes } from "react-router-dom";
+import "reflect-metadata";
+import Layout from "./components/layout/Layout";
+import { ErrorHandlerProvider } from "./contexts/ErrorHandlerContext";
+import { WalletProvider } from "./contexts/WalletContext/WalletContext";
+import ArbiterDashboard from "./pages/ArbiterDashboard/ArbiterDashboard";
+import ArbiterList from "./pages/ArbiterList/ArbiterList";
+import CompensationList from "./pages/CompensationList/CompensationList";
+import DAppList from "./pages/DAppList/DAppList";
+import HelpPage from "./pages/HelpPage/HelpPage";
+import GlossaryPage from "./pages/GlossaryPage/GlossaryPage";
+import RegisterArbiter from "./pages/RegisterArbiter/RegisterArbiter";
+import RegisterDApp from "./pages/RegisterDApp/RegisterDApp";
+import TransactionList from "./pages/TransactionList/TransactionList";
function App() {
return (
@@ -29,12 +31,17 @@ function App() {
+ This glossary provides definitions for key terms used in the BeL2 + Arbitration Protocol. Use the alphabetical navigation below to + quickly jump to specific sections, or use the search function to + find specific terms. +
+ + {/* Back to Help link */} + + + + + {/* Search Bar */} ++ No terms found matching "{searchTerm}" +
+ ) : ( ++ {term.definition} +
+ {term.tags && ( ++ {term.definition} +
+ {term.tags && ( ++ This portal is your interface to the{" "} + BeL2 (Bitcoin + Elastos Layer 2) Decentralized Arbitration Protocol. It allows{" "} + Arbiters to register, manage + their stakes, and monitor their activity.{" "} + DApp developers can also register + their applications to utilize the network of Arbiters. +
+ + {/* Quick Navigation */} ++ The{" "} + + BeL2 Arbitration Protocol + {" "} + provides a trustless mechanism for securing Bitcoin + transactions, especially those involving interactions with the{" "} + Elastos Smart Chain (ESC){" "} + and other EVM-compatible chains. It relies on a network of + independent + Arbiters who stake + collateral to guarantee the correct execution of transactions. + If an Arbiter misbehaves, their stake can be used to{" "} + compensate users who + are affected. +
+ ++ Solutions like Wrapped Bitcoin (WBTC) rely on a centralized + custodian to hold the actual Bitcoin. You give your Bitcoin + to this custodian, and they issue you an equivalent token + (WBTC) on another blockchain. This introduces a single point + of failure and requires trust in that custodian. +
++ BeL2 takes a fundamentally different approach: +
++ A crucial part of the BeL2 protocol is how it verifies that + an arbiter has acted correctly (or incorrectly) without + needing to reveal sensitive Bitcoin transaction details on + the Elastos Smart Chain. +
++ The BeL2 protocol incorporates{" "} + + Zero-Knowledge Proofs (ZKPs) + + , advanced cryptographic techniques that allow proving the + validity of a Bitcoin transaction (or the incorrectness of + an arbiter's actions) without revealing the transaction + details themselves on the ESC. This provides enhanced + privacy and security while allowing for dispute resolution. +
++ In summary, BeL2 provides a more secure and decentralized way + to use Bitcoin in DApps by eliminating single points of + failure, keeping Bitcoin on Bitcoin, automating dispute + resolution, and leveraging advanced cryptographic verification + methods. This makes it a powerful tool for building robust and + trustworthy Bitcoin-integrated applications on EVM-compatible + chains. +
++ BeL2 (Bitcoin-Elastos Layer 2) is an innovative layer 2 + solution that bridges Bitcoin's security with the + versatility of smart contracts and decentralized + applications (dApps). By leveraging advanced zero-knowledge + proofs, BeL2 maintains Bitcoin's robust security while + significantly expanding its utility in the blockchain + ecosystem. +
++ BeL2 enables Bitcoin to interact seamlessly with other + blockchain networks, particularly Ethereum-compatible + chains, opening up new possibilities for DeFi applications, + cross-chain functionality, and more. The core philosophy + behind BeL2 is encapsulated in its "Be Your Own Bank" + principle, allowing users to put their Bitcoin holdings to + work while maintaining security. +
++ BeL2 facilitates seamless interaction between Bitcoin + and EVM-compatible chains, particularly the Elastos + Smart Chain (ESC). This allows Bitcoin users to leverage + their assets across various DeFi applications without + compromising security. +
++ One of BeL2's flagship applications enables users to use + their Bitcoin as collateral for loans in stablecoins or + other cryptocurrencies. This functionality is + implemented through a secure, non-custodial lending + platform. +
++ BeL2 brings programmability to Bitcoin by enabling + complex financial operations and dApps that leverage + Bitcoin's security and value, significantly expanding + Bitcoin's utility beyond simple transfers. +
++ By processing transactions off-chain and using + zero-knowledge proofs for verification, BeL2 drastically + reduces fees and increases throughput for + Bitcoin-related operations. +
++ BeL2 is built for peer-to-peer contracts and is managed + by zkBTC Full Nodes and Arbitrator Nodes to maintain + decentralization while ensuring security and efficiency. +
++ The BeL2 architecture consists of several interconnected + components that work together to bridge Bitcoin with + EVM-compatible chains: +
++ These specialized nodes can run on ordinary hardware, + even mobile phones. They monitor the Bitcoin network and + generate proofs of transactions using zero-knowledge + technology. +
++ This component is used to generate and verify Bitcoin + transaction proofs. It's essential for creating + zero-knowledge proofs that can be verified on other + chains. +
++ The Arbitrator Network, including Arbitrator Nodes, is + central to the architecture. It facilitates the + transmission of data and proofs between Bitcoin and + other blockchains. +
++ This smart contract bridges Bitcoin transactions with + EVM-compatible chains. It receives, processes, and + verifies zero-knowledge proofs of Bitcoin transactions. +
++ Deployed on EVM-compatible chains, this contract + receives and processes requests to verify Bitcoin + transactions. It maintains a list of verified + transactions. +
++ The BeL2 SDK serves as a toolkit for developers, + enabling them to build applications that leverage BeL2's + architecture. It simplifies creating dApps that interact + with both Bitcoin and EVM-compatible chains. +
++ The BeL2 Arbitration Protocol is a crucial component of the + BeL2 ecosystem that helps ensure the security and + reliability of cross-chain operations. As described in the + previous section, the Arbitrator Network plays a vital role + in maintaining the integrity of the system by acting as + guarantors for Bitcoin transactions initiated by DApps on + EVM-compatible chains. +
++ Arbiters: +
++ DApps (Decentralized Applications): +
++ Users (DApp Users): +
+
+ arbiter_signer
+
+ .
+ >
+ ),
+ },
+ ].map((step, index) => (
+ + {step.content} +
++ The Arbiter Signer is a crucial component that enables you + to fulfill your role as an Arbiter in the BeL2 ecosystem. It + provides the signing services required for cross-chain + operations and ensures network security and stability. This + guide will walk you through the setup process with a + simplified one-click solution. +
++ The Arbitrator Network is a key component that enables + cross-chain operations and maintains system integrity: +
++ As an Arbiter in the BeL2 ecosystem, you'll enjoy: +
++ Ensure you have the following before beginning: +
++ You can follow along with these setup guide videos: +
+ ++ + Applies to both setup methods + +
++ + For GUI setup method only + +
++ There are two ways to set up your Arbiter Signer. You can + choose the method that best fits your technical comfort + level and requirements: +
+ ++ A user-friendly graphical interface for easy setup, + recommended for most users. +
++ Command-line based setup from the official repository, + recommended for advanced users. +
++ Download the latest release for your operating system + from the{" "} + + Releases section + {" "} + of the community-maintained Arbiter Signer repository. +
++ Run the executable to start the interactive setup + process. +
++ chmod +x filename.AppImage + ./filename.AppImage ++
+ sudo dpkg -i filename.deb sudo apt install + -f # if dependencies issues ++
+ sudo dnf install filename.rpm ++
+ Follow the prompts to configure your arbiter node. + You'll need to provide: +
++ Once configured, the Arbiter Signer will start running + automatically. Ensure it stays running and monitor its + operation. +
++ The standard setup method uses the official BeL2 Labs + Arbiter Signer repository. This method provides more + configuration options and is recommended for advanced users + or production environments. +
+ ++ Clone the official BeL2 Labs Arbiter Signer repository + from GitHub: +
++ git clone + https://github.com/BeL2Labs/Arbiter_Signer.git ++
+ cd Arbiter_Signer ++
+ Follow the detailed instructions in the repository's{" "} + + README.md + {" "} + file and the{" "} + + deployment guide + + . +
++ The official repository requires manual configuration + of several parameters. You'll need to: +
++ Refer to the repository documentation for detailed + configuration steps. +
++ Once configured, you can start the Arbiter Signer + using the commands specified in the documentation. + Consider setting up monitoring and auto-restart + capabilities to ensure 24/7 operation. +
++ The BTC private key and ESC private keys are managed + privately and securely by you, the Arbiter. With the latest + updates, the keys are encrypted using a custom password + which needs to be provided when you run the program. +
++ For enhanced security: +
++ Congratulations on setting up your BeL2 Arbiter node! As an + Arbiter, you play a vital role in the BeL2 ecosystem, + facilitating cross-chain operations and ensuring network + security and stability. +
++ Stay updated with the latest developments and participate + actively in the community. Your contribution is essential to + the growth and success of the BeL2 system. +
++ Before beginning the DApp registration process, ensure your + DApp is{" "} + ready for integration{" "} + with the BeL2 protocol. +
++ {step.content} +
++ After registration and authorization, you'll need to{" "} + + integrate the Arbitration Protocol's smart contracts + {" "} + into your DApp's code. This will allow your DApp to request + arbiter guarantees for Bitcoin transactions. +
+
+ arbiter_signer
+ {" "}
+ is a separate Go application that arbiters must run. It
+ performs the actual Bitcoin transaction signing. It's
+ separate from this web portal for{" "}
+
+ security and operational reasons
+
+ . Arbiters need to keep their Bitcoin private keys
+ secure, and the{" "}
+
+ arbiter_signer
+ {" "}
+ is designed to run in a secure environment, separate
+ from the web interface.
+ >
+ ),
+ },
+ {
+ question: "What happens if I lose my private keys?",
+ answer: (
+ <>
+ If you lose your private keys (both your EVM key for
+ managing the arbiter and your BTC key for signing), your
+ stake will be inaccessible, and you will not be able to
+ fulfill your arbitration duties.{" "}
+
+ It is critical to back up your private keys securely.
+ {" "}
+ The protocol does not{" "}
+ provide a way to recover lost keys. This is a
+ fundamental aspect of how blockchains work.
+ >
+ ),
+ },
+ {
+ question: "Is this system fully decentralized?",
+ answer: (
+ <>
+ The underlying smart contracts and arbiter selection are
+ decentralized. However, this portal (the website) is
+ currently centrally hosted. The long-term goal is for
+ the entire system, including the frontend, to be fully
+ decentralized. Also, note that DApp registration
+ currently requires{" "}
+
+ authorization by the protocol owner
+ {" "}
+ (administrator). This is a centralizing factor that may
+ be removed in the future.
+ >
+ ),
+ },
+ {
+ question: "Is this system ready for production use?",
+ answer: (
+ <>
+ The system is currently in{" "}
+ BETA.
+ It's undergoing active development and testing. While
+ the core functionality is in place, including ZKP
+ verification for secure dispute resolution, we recommend
+ careful consideration before using it with large sums of
+ money or in critical production environments until
+ further testing and auditing have been completed.
+ >
+ ),
+ },
+ ].map((item, index) => (
+ + {item.answer} +
+