The Role of Bulletproofs in Ensuring Privacy for Smart Contracts

This website uses cookies
We use Cookies to ensure better performance, recognize your repeat visits and preferences, as well as to measure the effectiveness of campaigns and analyze traffic. For these reasons, we may share your site usage data with our analytics partners. Please, view our Cookie Policy to learn more about Cookies. By clicking «Allow all cookies», you consent to the use of ALL Cookies unless you disable them at any time.
Blockchain technology is renowned for its transparency and immutability, but these features often come at the cost of privacy. While every transaction is publicly recorded, this openness can expose sensitive data, making privacy a critical concern for users and businesses alike. Despite the decentralized nature of blockchain, the need for confidentiality remains paramount, especially in industries like finance, healthcare, and supply chain.
This is where zero-knowledge proofs (ZKPs) come into play. ZKPs are cryptographic methods that allow one party to prove the validity of a statement without revealing any underlying data. They offer a way to maintain transparency while ensuring privacy, making them a cornerstone of modern blockchain innovation. Let's explore how ZKPs, particularly zk-SNARKs and zk-STARKs, are revolutionizing data protection in blockchain ecosystems.
Zero-knowledge proofs (ZKPs) are a cryptographic concept that allows one party (the prover) to prove to another party (the verifier) that a statement is true without revealing any additional information beyond the fact that the statement is valid. In other words, ZKPs enable data verification or transactions while maintaining complete confidentiality.
The concept was first introduced in the 1980s by researchers Shafi Goldwasser, Silvio Micali, and Charles Rackoff. Since then, ZKPs have become a powerful tool for enhancing privacy in digital systems, particularly in blockchain technology.
At their core, ZKPs rely on complex mathematical algorithms to achieve their goal. Here’s a simplified breakdown of how they work:
Statement to Prove: The prover wants to convince the verifier that they possess certain information or that a specific condition is true (e.g., "I know the password" or "This transaction is valid").
Proof Generation: The prover generates a proof using the underlying data, but the proof itself does not reveal the data.
Verification: The verifier checks the proof using a predefined algorithm. If the proof is valid, the verifier can be confident that the statement is true, even though they have no access to the actual data.
A classic analogy to explain ZKPs is the "cave and door" scenario:
Imagine a cave with a secret door that can only be opened with a magic word.
The prover wants to prove to the verifier that they know the magic word without revealing it.
The verifier stands outside the cave and asks the prover to take different paths. If the prover consistently emerges from the correct path, the verifier can be confident the prover knows the magic word, even though the word itself is never disclosed.
ZKPs are not just theoretical; they are already being used in various real-world applications:
Blockchain Privacy:
Zcash: A cryptocurrency that uses zk-SNARKs to enable private transactions. Users can prove they have sufficient funds for a transaction without revealing their wallet balance or transaction history.
Ethereum: zk-SNARKs and zk-STARKs are used in layer-2 scaling solutions like zk-rollups to bundle transactions off-chain while maintaining privacy and security.
Identity Verification:
ZKPs can be used to verify identity attributes (e.g., age, citizenship) without revealing the actual data. For example, proving you are over 18 without showing your birthdate.
Secure Voting Systems:
ZKPs can ensure that votes are counted accurately without revealing how individuals voted, enhancing both privacy and trust in electoral systems.
Financial Services:
Banks and financial institutions can use ZKPs to verify customer information for compliance (e.g., anti-money laundering checks) without exposing sensitive data.
Healthcare:
ZKPs can enable secure sharing of medical records, allowing patients to prove certain health conditions or eligibility for treatment without disclosing their full medical history.
By enabling trustless verification, ZKPs are paving the way for a more private and secure digital future. In the next section, we’ll dive deeper into one of the most prominent ZKP technologies: zk-SNARKs.
zk-SNARKs, short for Zero-Knowledge Succinct Non-Interactive Argument of Knowledge, are a form of zero-knowledge proof that allows one party to prove the validity of a statement without revealing any underlying data. The term breaks down as follows:
Zero-Knowledge: No information beyond the validity of the statement is revealed.
Succinct: The proofs are small and quick to verify.
Non-Interactive: The prover and verifier do not need to interact after the initial setup.
Argument of Knowledge: The proof demonstrates that the prover possesses specific knowledge.
zk-SNARKs are a breakthrough in cryptography, enabling privacy and scalability in blockchain systems.
The process of creating and verifying a zk-SNARK proof involves several steps:
Setup Phase:
A trusted setup generates a pair of cryptographic keys: a proving key and a verification key.
The proving key is used to create proofs, while the verification key is used to check their validity.
This phase is critical and requires trust, as compromising the setup could undermine the system's security.
Proof Generation:
The prover uses the proving key to create a proof that a statement is true (e.g., "I know the secret input that produces this output").
The proof is compact and does not reveal any details about the input.
Proof Verification:
The verifier uses the verification key to check the proof.
If the proof is valid, the verifier can be confident that the statement is true without learning anything about the underlying data.
A simple analogy:
Imagine you want to prove you know the solution to a puzzle without revealing the solution itself.
You use a special "puzzle-solving machine" (the proving key) to generate a small, unique signature (the proof).
The verifier uses another machine (the verification key) to check the signature and confirm that you indeed know the solution.
Compactness:
zk-SNARK proofs are extremely small in size, often just a few hundred bytes, regardless of the complexity of the statement being proved.
This makes them ideal for blockchain applications, where storage and bandwidth are limited.
High Speed:
Verifying a zk-SNARK proof is computationally efficient, taking only milliseconds.
This enables fast transaction processing and scalability.
Non-Interactivity:
Once the proof is generated, no further interaction is needed between the prover and verifier.
This simplifies the process and reduces communication overhead.
Zcash:
Zcash is a privacy-focused cryptocurrency that uses zk-SNARKs to enable shielded transactions.
Users can send and receive funds without revealing their wallet balances or transaction details, while still proving the transactions are valid.
Ethereum (zk-Rollups):
zk-Rollups is a layer-2 scaling solution for Ethereum that uses zk-SNARKs to bundle multiple transactions into a single proof.
This reduces the load on the Ethereum mainnet, improving scalability and reducing transaction fees.
Projects like Loopring and zkSync leverage zk-Rollups to enable fast and low-cost transactions.
Identity Verification:
zk-SNARKs can be used to verify identity attributes (e.g., age, citizenship) without revealing sensitive personal data.
This is particularly useful in decentralized identity systems.
Supply Chain Transparency:
Companies can use zk-SNARKs to prove the authenticity of products or compliance with regulations without disclosing proprietary information.
Voting Systems:
zk-SNARKs can ensure the integrity of votes in electronic voting systems while maintaining voter anonymity.
Despite their advantages, zk-SNARKs have some limitations:
Trusted Setup: The initial setup phase requires trust, as compromising the keys could allow malicious actors to create fake proofs.
Computational Complexity: Generating proofs can be resource-intensive, though verification is fast.
Quantum Vulnerability: zk-SNARKs are not resistant to quantum computing attacks, which could break their cryptographic foundations.
zk-SNARKs have already made a significant impact on blockchain technology, enabling privacy and scalability in ways that were previously unimaginable. As the technology continues to evolve, it will be fascinating to see how it shapes the future of decentralized systems and beyond.
zk-STARKs, or Zero-Knowledge Scalable Transparent Arguments of Knowledge, are a newer generation of zero-knowledge proofs that build on the principles of zk-SNARKs while addressing some of their limitations. The acronym stands for:
Zero-Knowledge: No additional information is revealed beyond the validity of the statement.
Scalable: Proofs and verification times grow more efficiently with larger datasets.
Transparent: No trusted setup is required, enhancing security and decentralization.
Arguments of Knowledge: The proof demonstrates that the prover possesses specific knowledge.
zk-STARKs were introduced in 2018 by Eli Ben-Sasson and his team, offering a more robust and flexible approach to privacy-preserving computations.
Transparency:
Unlike zk-SNARKs, which require a trusted setup to generate cryptographic keys, zk-STARKs eliminate this need.
This makes zk-STARKs more decentralized and secure, as there is no risk of compromised keys undermining the system.
Quantum Resistance:
zk-STARKs rely on cryptographic hash functions rather than elliptic curve cryptography, making them resistant to attacks from quantum computers.
This future-proofs zk-STARKs against emerging threats in quantum computing.
Scalability:
While zk-SNARKs are highly efficient for small proofs, zk-STARKs excel in handling larger datasets.
Proof sizes and verification times grow logarithmically with the size of the computation, making them more scalable for complex applications.
Pros:
No Trusted Setup: Eliminates the risk associated with initial setup phases.
Quantum Resistance: Secure against potential quantum computing threats.
Transparency: Enhances decentralization and trust in the system.
Scalability: Better suited for large-scale computations.
Cons:
Larger Proof Sizes: zk-STARK proofs are significantly larger than zk-SNARK proofs, which can increase storage and bandwidth requirements.
Higher Computational Costs: Generating proofs can be more resource-intensive compared to zk-SNARKs.
Complexity: The technology is still relatively new and requires specialized expertise to implement effectively.
Blockchain Scalability:
zk-STARKs are being used in layer-2 scaling solutions, such as StarkWare, to bundle transactions off-chain while maintaining security and privacy.
Projects like StarkEx and StarkNet leverage zk-STARKs to enable high-throughput decentralized applications (dApps).
Decentralized Finance (DeFi):
zk-STARKs can enhance privacy and efficiency in DeFi protocols by enabling confidential transactions and reducing on-chain congestion.
Data Integrity and Auditing:
Companies can use zk-STARKs to prove the integrity of large datasets without revealing the underlying data, making them ideal for auditing and compliance.
Voting Systems:
zk-STARKs can ensure the integrity of electronic voting systems while maintaining voter anonymity and scalability.
Healthcare and Identity Verification:
zk-STARKs enable secure sharing of sensitive information, such as medical records or identity attributes, without compromising privacy.
Gaming and NFTs:
zk-STARKs can be used to verify in-game assets or NFT ownership without revealing user identities or transaction details.
zk-STARKs represent a significant leap forward in zero-knowledge-proof technology, offering transparency, quantum resistance, and scalability. While they come with trade-offs, such as larger proof sizes and higher computational costs, their potential to revolutionize privacy and efficiency in blockchain and beyond is undeniable. As the technology matures, we can expect to see even more innovative applications emerge, further solidifying their role in the future of decentralized systems.
zk-SNARKs and zk-STARKs are two leading technologies in the field of zero-knowledge proofs, each with its strengths and weaknesses. Understanding their differences is crucial for determining which solution is best suited for specific use cases. Below, we compare them across three key dimensions: performance, security, and applicability in blockchain networks.
zk-SNARKs:
Proofs are extremely compact, often just a few hundred bytes.
Ideal for applications where storage and bandwidth are limited, such as blockchain transactions.
zk-STARKs:
Proofs are significantly larger, often measured in kilobytes.
While less efficient in terms of size, they scale better for larger computations.
zk-SNARKs:
Verification is extremely fast, typically taking milliseconds.
This makes them highly suitable for real-time applications.
zk-STARKs:
Verification is also fast but can be slightly slower than zk-SNARKs due to larger proof sizes.
However, the difference is often negligible in practice.
zk-SNARKs:
Proof generation is computationally intensive but manageable for small to medium-sized computations.
zk-STARKs:
Proof generation is more resource-intensive, especially for large datasets.
However, zk-STARKs are more efficient for scaling to very large computations.
zk-SNARKs:
Rely on elliptic curve cryptography, which is vulnerable to quantum computing attacks.
This makes zk-SNARKs less future-proof in a world where quantum computing becomes mainstream.
zk-STARKs:
Use cryptographic hash functions, which are considered quantum-resistant.
This makes zk-STARKs a more secure choice for long-term applications.
zk-SNARKs:
Ethereum: Widely used in layer-2 scaling solutions like zk-Rollups (e.g., Loopring, zkSync).
Zcash: The first major blockchain to implement zk-SNARKs for private transactions.
Use Cases: Ideal for applications requiring small proof sizes and fast verification, such as micropayments and private transactions.
zk-STARKs:
StarkWare Ecosystem: Used in StarkEx and StarkNet for scalable and transparent layer-2 solutions.
Use Cases: Better suited for applications involving large-scale computations, such as decentralized exchanges (DEXs), gaming, and data integrity verification.
Summary of Trade-Offs
Feature | zk-SNARKs | zk-STARKs |
---|---|---|
Proof Size | Very small (hundreds of bytes) | Larger (kilobytes) |
Verification Speed | Extremely fast | Fast, but slightly slower |
Proof Generation | Computationally intensive | More resource-intensive |
Quantum Resistance | No | Yes |
Trusted Setup | Required | Not required |
Best Use Cases | Private transactions, zk-Rollups | Large-scale computations, DeFi, gaming |
The choice between zk-SNARKs and zk-STARKs depends on the specific requirements of the application:
zk-SNARKs are ideal for scenarios where proof size and verification speed are critical, such as private transactions and small-scale computations.
zk-STARKs are better suited for applications requiring transparency, quantum resistance, and scalability, such as large-scale DeFi platforms or data-intensive systems.
Both technologies are pushing the boundaries of what’s possible in blockchain and beyond, offering unique solutions to the challenges of privacy, scalability, and security. As the ecosystem evolves, we can expect further innovations that combine the best of both worlds.
While zk-SNARKs and zk-STARKs are at the forefront of privacy-preserving technologies, they are not the only tools available for enhancing confidentiality in blockchain systems. Other methods, such as Ring Signatures, Confidential Transactions, and CoinJoin, have also been widely adopted to address specific privacy challenges. Let's explore these techniques and their applications.
What Are Ring Signatures?
Ring signatures are a cryptographic tool that allows a user to sign a transaction on behalf of a group without revealing which member of the group created the signature. This ensures anonymity within a set of possible signers.
How They Work:
A group of users (a "ring") is formed, each with their public keys.
When a transaction is signed, the signature is constructed in such a way that it could have been generated by any member of the ring.
The verifier can confirm that the signature is valid and comes from a member of the ring but cannot determine the exact signer.
Use Cases:
Monero: A privacy-focused cryptocurrency that uses ring signatures to obscure the sender’s identity in transactions.
Voting Systems: Ring signatures can be used to ensure anonymous voting while maintaining the integrity of the process.
Advantages:
Strong anonymity guarantees for the sender.
No need for a trusted setup.
Limitations:
Does not hide transaction amounts or recipient addresses.
Larger transaction sizes due to the inclusion of multiple public keys.
What Are Confidential Transactions?
Confidential Transactions (CT) are a method for hiding the amount being transferred in a blockchain transaction while still allowing network participants to verify its validity.
How They Work:
Transaction amounts are encrypted using cryptographic commitments (e.g., Pedersen commitments).
The network verifies that the sum of inputs equals the sum of outputs without revealing the actual amounts.
Additional proofs, such as range proofs, ensure that the amounts are within valid limits (e.g., no negative values).
Use Cases:
Liquid Network: A Bitcoin sidechain that uses Confidential Transactions to enable private transfers of assets.
Monero: Combines Confidential Transactions with ring signatures to hide both sender and transaction amounts.
Advantages:
Hides transaction amounts, enhancing privacy.
Maintains the ability to verify transaction validity.
Limitations:
Increases transaction size due to additional cryptographic data.
Does not hide the sender or recipient's identities.
CoinJoin is a privacy technique that allows multiple users to combine their transactions into a single transaction, making it difficult to determine which inputs correspond to which outputs.
How It Works:
Multiple users agree to create a joint transaction.
Each user contributes one or more inputs and specifies their desired outputs.
The transaction is constructed so that the inputs and outputs are mixed, obscuring the link between senders and recipients.
Use Cases:
Wasabi Wallet: A Bitcoin wallet that uses CoinJoin to enhance user privacy.
JoinMarket: A decentralized marketplace for CoinJoin transactions.
Advantages:
Simple and effective for breaking the link between inputs and outputs.
No need for complex cryptography or trusted setups.
Limitations:
Requires coordination among participants, which can be challenging.
Does not hide transaction amounts or provide full anonymity.
Method | Anonymity Level | Hides Amounts | Hides Sender | Hides Recipient | Transaction Size Impact |
---|---|---|---|---|---|
Ring Signatures | High (within a group) | No | Yes | No | High |
Confidential Transactions | Medium | Yes | No | No | Medium |
CoinJoin | Medium (breaks input-output links) | No | Partially | Partially | Low to Medium |
The choice of privacy-enhancing method depends on the specific requirements of the application:
Ring Signatures are ideal for applications requiring strong sender anonymity, such as privacy-focused cryptocurrencies.
Confidential Transactions are best suited for hiding transaction amounts, making them useful in financial applications.
CoinJoin is a practical solution for breaking the link between inputs and outputs, particularly in Bitcoin-based systems.
Each of these methods contributes to the broader goal of enhancing privacy in blockchain systems, and they are often used in combination to achieve stronger confidentiality guarantees. As blockchain technology continues to evolve, these tools will play a critical role in balancing transparency and privacy.
While zero-knowledge proofs (zk-technologies) like zk-SNARKs and zk-STARKs offer groundbreaking solutions for privacy and scalability in blockchain, they are not without challenges. These technologies face significant hurdles in implementation, computational efficiency, and regulatory compliance.
Technical Expertise:
Designing and implementing zk-proofs requires deep knowledge of cryptography, mathematics, and software engineering.
The complexity of these systems makes them inaccessible to many developers and organizations without specialized expertise.
Integration with Existing Systems:
Incorporating zk-technologies into existing blockchain frameworks or applications can be challenging due to differences in architecture and protocols.
Ensuring compatibility while maintaining performance adds another layer of complexity.
Trusted Setup (for zk-SNARKs):
zk-SNARKs require a trusted setup phase, where cryptographic parameters are generated.
If compromised, this setup can undermine the entire system’s security, making it a critical vulnerability.
Proof Generation:
Generating zk-proofs, especially for complex computations, is computationally intensive.
This can lead to high hardware requirements and increased operational costs.
Proof Size and Verification:
While zk-SNARK proofs are small, zk-STARK proofs are larger, increasing storage and bandwidth requirements.
Although verification is fast, the resources needed for proof generation can be a bottleneck for scalability.
Energy Consumption:
The computational intensity of zk-proof generation can lead to high energy consumption, which may conflict with sustainability goals.
Privacy vs. Transparency:
While zk-technologies enhance privacy, they can also be used to obscure illicit activities, raising concerns among regulators.
Balancing privacy with the need for transparency in financial systems is a ongoing challenge.
Compliance with Regulations:
Regulations like GDPR (General Data Protection Regulation) and AML (Anti-Money Laundering) laws may conflict with the anonymity provided by zk-proofs.
Ensuring compliance without compromising the core benefits of zk-technologies is a delicate task.
Adoption Barriers:
Regulatory uncertainty can deter organizations from adopting zk-technologies, slowing their integration into mainstream applications.
Clear guidelines and frameworks are needed to encourage wider adoption.
Challenge | zk-SNARKs | zk-STARKs |
---|---|---|
Implementation Complexity | High (trusted setup required) | Medium (no trusted setup) |
Computational Costs | High proof generation costs | Higher proof generation costs |
Legal and Regulatory Concerns | Privacy vs. transparency issues | Similar concerns, but more transparent |
Education and Tools:
Developing user-friendly tools and educational resources can lower the barrier to entry for developers.
Open-source libraries and frameworks can simplify implementation.
Optimization:
Ongoing research into optimizing proof generation and reducing computational costs is critical.
Innovations like recursive proofs and hardware acceleration can improve efficiency.
Regulatory Collaboration:
Engaging with regulators to create balanced frameworks that support innovation while addressing concerns about misuse.
Demonstrating the legitimate use cases of zk-technologies can help build trust.
Despite these challenges, zk-technologies hold immense potential for transforming blockchain and beyond. By addressing implementation barriers, reducing computational costs, and navigating regulatory landscapes, the adoption of zk-proofs can unlock new possibilities for privacy, scalability, and security in decentralized systems. As the technology matures, collaboration between developers, researchers, and regulators will be key to overcoming these limitations and realizing the full potential of zk-technologies.
As blockchain technology continues to evolve, privacy remains a critical focus for developers, businesses, and users. Zero-knowledge proofs (zk-technologies) like zk-SNARKs and zk-STARKs are at the forefront of this evolution, offering innovative solutions to enhance confidentiality while maintaining transparency and security.
Improved Efficiency:
Ongoing research aims to reduce the computational costs and proof sizes associated with zk-proofs.
Innovations like recursive proofs (proofs of proofs) and hardware acceleration are expected to make zk-technologies more scalable and accessible.
Interoperability:
Developers are working on cross-chain zk-proofs to enable privacy-preserving interactions between different blockchain networks.
This will enhance the utility of zk-technologies in multi-chain ecosystems.
Quantum Resistance:
As quantum computing advances, zk-STARKs and other quantum-resistant technologies will become increasingly important.
Research into post-quantum cryptography will ensure the long-term security of zk-proofs.
User-Friendly Tools:
Simplifying the implementation of zk-technologies through developer-friendly SDKs, libraries, and frameworks will drive wider adoption.
Projects like StarkWare and zkSync are already making strides in this area.
Decentralized Finance (DeFi):
zk-proofs can enhance privacy in DeFi by enabling confidential transactions and shielding sensitive financial data.
Applications include private lending, anonymous trading, and secure asset management.
Projects like Aztec Protocol are leveraging zk-rollups to bring privacy to Ethereum-based DeFi.
Non-Fungible Tokens (NFTs):
zk-proofs can enable private NFT transactions, hiding ownership details and sale prices.
This is particularly valuable for high-value assets or sensitive collections.
Privacy-preserving NFTs can also support new use cases, such as anonymous digital identity and confidential intellectual property.
Gaming and Metaverse:
zk-proofs can protect user data in blockchain-based games and virtual worlds.
Applications include private in-game transactions, secure asset ownership, and anonymous player interactions.
Supply Chain and IoT:
zk-proofs can verify the authenticity and integrity of data in supply chains without revealing sensitive business information.
In IoT (Internet of Things), zk-proofs can ensure secure and private communication between devices.
Healthcare and Identity:
zk-proofs enable secure sharing of medical records and identity attributes without compromising privacy.
This can streamline processes like patient consent, insurance claims, and regulatory compliance.
For Businesses:
Competitive Advantage: Adopting zk-technologies can differentiate businesses by offering enhanced privacy and security features.
Regulatory Compliance: zk-proofs can help businesses comply with data protection regulations like GDPR while maintaining user trust.
New Revenue Streams: Privacy-preserving applications can unlock new markets and business models, such as confidential DeFi services or private NFT marketplaces.
For Users:
Enhanced Privacy: Users can enjoy greater control over their personal data and financial transactions.
Improved Security: zk-proofs reduce the risk of data breaches and identity theft by minimizing the exposure of sensitive information.
Access to New Services: Privacy-preserving technologies enable innovative applications, such as anonymous voting, secure digital identities, and confidential asset management.
The future of privacy in blockchain is bright, with zk-technologies playing a central role in shaping the next generation of decentralized systems. As these technologies mature, they will enable new levels of confidentiality, scalability, and security across industries. Key areas to watch include:
Mainstream Adoption: As zk-proofs become more efficient and user-friendly, their adoption will expand beyond niche applications.
Regulatory Frameworks: Clear guidelines and collaboration with regulators will be essential to balance privacy and compliance.
Cross-Industry Collaboration: Partnerships between blockchain projects, businesses, and researchers will drive innovation and integration.
By embracing zk-technologies, businesses and users can unlock the full potential of blockchain while safeguarding privacy in an increasingly digital world. The journey toward a more private and secure future is just beginning, and the possibilities are limitless.
zk-SNARKs and zk-STARKs are not just technological breakthroughs - they are game-changing tools revolutionizing the blockchain industry. These zero-knowledge proof systems are already transforming entire sectors, from decentralized finance (DeFi) to healthcare and beyond. They address key blockchain challenges such as data leaks, scalability limitations, and regulatory compliance, offering secure, private, and efficient solutions.
Balancing privacy and transparency is what makes blockchain a truly powerful tool. zk-SNARKs and zk-STARKs allow us to maintain the benefits of transparency without sacrificing confidentiality. This is especially crucial for building trust and unlocking the full potential of blockchain technologies.
At Technorely, we don’t just follow trends - we create them. Our team of blockchain experts is ready to develop a project from scratch or enhance an existing one by implementing cutting-edge solutions based on blockchain technologies. We are confident: there is no challenge we cannot handle.
If you want to integrate privacy and scalability into your project, leave a request on our website. We will help you bring any idea to life, no matter how complex it may seem. The future of blockchain starts here and now, and we are ready to make it private, secure, and efficient together with you.
Explore the possibilities, experiment, and trust the professionals. Technorely is your reliable partner in the world of blockchain innovation.
George Burlakov
5 min
LEARN MOREGeorge Burlakov
5 min
LEARN MOREGeorge Burlakov
7 min
LEARN MOREGeorge Burlakov
4 min
LEARN MORE