These are the functional and non-functional requirements for roadmapped efforts, according to the FURPS model.
FURPS are elsewhere divided into Milestones and Deliverables, to form a roadmap.
Functionality
bedrock
bedrock:blockchain
- Nodes can permissionlessly participate in consensus
- Nodes can join bedrock services and earn rewards
- Users can transfer funds
bedrock:ppos (Private Proof of Stake)
- Leaders can propose blocks privately
- Leaders can claim block rewards without revealing their block proposal
- Blend spam protection
- Block proposal redundancy
- Censorship resistance against malicious broadcasters
- Blend edge node privacy
bedrock:sdp (Service Declaration Protocol)
- SDP enables membership in service networks
- SDP enables rewarding of service participants
- SDP enables sybil resistance in service networks
bedrock:sovereign-rollups
- Sovereign Rollups can post their data to Bedrock channels
- Decentralized sequencing for Sovereign Rollups through blockchain enforced sequencer coordination
- Cross-Sovereign Rollups messaging facilitated by Bedrock
bedrock:wallet
- Transfer operations
- Inscription operations
- SDP operations
bedrock:areon
- Probabilistic finality model analyzed
- Network latency tolerance analyzed
- Total stake inference on Areon model
- Areon with Private Proof of Stake (Cryptareon)
bedrock:block-building
- Distributed block building Enabling tagging attack resistance and removing the leader as SPOF
lssa
lssa:programmable-privacy
- LSSA supports Programmable Privacy by allowing LSSA Programs to be agnostic as to whether they are interacting with private or public accounts
lssa:sequencer
- LSSA Sequencer accepts transactions from users, orders them and posts them to Logos Blockchain
- Sequencer manages pending vs. safe vs. confirmed transactions
- Sequencer maintains funds to pay for bedrock transactions
lssa:indexer
- Indexer follows LSSA channel in bedrock
- Indexer validates messages in the channel, skips invalid messages
- Indexer parses messages as blocks and applies blocks to local state
- Indexer maintains state history
- Indexer provides RPC endpoints for querying LSSA state
lssa:program-interface
- Programs have defined interface exposing input/output accounts and contextual information (block number, random oracle, etc.)
lssa:cross-program-calls
- Programs can call other programs deployed on LSSA
lssa:bridging
- Channel Balance management
- Sequencer signing on withdrawal
- User deposits from L1 to LSSA
Usability
bedrock
- Blockchain node will be accessible through Logos-Core
- Blockchain configuration will be done through Logos-Core
- Blockchain will finalize transactions within 18hrs
- Logos Core Blockchain Wallet integration
- Ability to select which bedrock services are configured in a bedrock node
lssa
- LSSA Programs are RISCV binaries, allowing developers to program in high level languages like Rust that compile down to RISCV
- The same LSSA Programs can be used in both private and public execution contexts
- Logos Core integration for LSSA Wallet
- Ability to run a sequencer through Logos Core
- Users can interact with LSSA through a wallet
- Block Explorer displays LSSA blocks and transactions
- Logos Core Module for LSSA operations
Reliability
bedrock
- Blockchain prioritizes liveness over safety ensuring we are resilient to large network failures
- Blockchain provides 18hrs for failures to resolve before the chain may split requiring manual intervention
- Data posted to DA will be available for at least 2 sessions (session length to be determined)
lssa
- LSSA Sequencer supports decentralized sequencing through Blockchain enforced sequencer coordination, ensuring crash tolerance
- Crash tolerance through persisting state to disk
- Sequencer passes stress testing
Performance
bedrock
- Blockchain finalizes transactions in 18hrs
- Practical finality can be achieved much sooner
- Blocks are produced on average every 30s
- Blend network manageable on low bandwidth network links
lssa
- Transaction throughput targets (TBD)
- Proof generation time targets (TBD)
Supportability
lssa
- Developer tooling to support LSSA program development
- Documentation ready for external contributors