Title: Bitcoin (but better) with Smart Contracts Post by: ipicoin on July 27, 2023, 05:38:37 PM Some useful links: landing: www.ipi.io (pass: ipi); scan: www.scan.ipi.io wallet: www.wallet.ipi.io swap: www.swap.ipi.io TG: www.t.me/ipicoin
IPI Whitepaper version 0.4 - 2023-07-25 Table of contents: 1. Introduction 2. Our Mission 3. Key Features for Users 4. Key Features for Developers 5. Coins Economy 6. Consensus Algorithm 7. Smart Contracts 8. Comparison with other blockchains 1. Introduction To us, the principles of truth, justice, and integrity are paramount. We aspire for a world where fairness prevails, a world that functions according to predefined rules and not at the discretion of officials. We advocate for a system where all participants abide by the same, straightforward, and comprehensible rules. We desire greater transparency in financial affairs and insist on contracts that are unequivocal, lucid, and easily understood by all. We believe in the concept of code as law, with contracts articulated in code, delivering clarity and understanding to each person. We strive for an environment where every action taken by the software can be viewed in a transparent way, enabling everyone to grasp the actions being undertaken. We firmly believe that blockchain technology holds the potential to construct the kind of environment we envision. Still, existing solutions leave much to be desired. They are either overly complex for the average user or lack the requisite level of security. This, in our view, is the primary obstacle preventing widespread adoption of blockchain technology. Our ambition is to develop an ecosystem that's user- friendly, secure, and enables the development of applications that far outstrip the capabilities of present solutions. We aim to empower everyone to create their own decentralized applications, functioning on the blockchain and making use of sidechains. We aspire for these applications to be straightforward and enjoyable to develop, and safe and intuitive to use. One of our key tenets is that every interaction with these applications, like transactions, should be comprehensible and transparent to users, enabling everyone to make informed decisions and understand the implications of their actions, thus avoiding potential errors. We attach equal importance to decentralization, ensuring that no single entity can censor or block applications, while users maintain full ownership control. We have been enthusiastic about developing decentralized applications and have numerous exciting ideas. However, we've found no suitable platform for implementing these ideas. Ethereum, despite its popularity, suffers from being slow, expensive, and not scalable enough. Binance Smart Chain offers speed and affordability, but it is centralized. Ethereum, which has transitioned to Proof of Stake, is subject to the regulatory whims of the U.S authorities, who have the power to block any address, coupled with its issue of significant inflation. The programming language Solidity is not particularly user-friendly or convenient. Cosmos provides greater freedom, but its reliance on Tendermint and DPoS results in excessive centralization and questionable security. There's a clear void for a solution that could support the creation of decentralized applications, which need to be quick, affordable, scalable, secure, decentralized, immune from governmental interference, free from inflation, and supported by a user-friendly programming language. 2. Our Mission Therefore, we're developing our own blockchain solution to tackle the aforementioned challenges. We'll employ the Pure Proof of Stake (PPoS) algorithm to ensure superior decentralization and autonomy. To preclude inflation and resource manipulation, we have capped the total number of coins at 100 million. All coins beyond the first will be mined by users, with the first coin created through a 1BTC to 1IPI conversion. Transferring mining activities to other addresses will be prohibited, thereby preventing centralization and censorship. Our smart contracts will be built on the reliable WebAssembly standard, with programming capabilities in a multitude of languages including C, Rust, C++, Go, Python, and crucially, AssemblyScript. The latter, with its strong resemblance to TypeScript, will make contract creation accessible to web developers. Consequently, it will be feasible to develop comprehensive distributed web applications using TypeScript as the sole language. This single-language approach fosters enhanced creativity and allows for small teams or even individuals to develop applications. We're also creating a visual editor, augmented with artificial intelligence, to enable contract creation without requiring programming skills. The AI will generate and enhance diagrams based on natural language commands. All contracts will be executable on both the main chain and side chains, facilitating the development of distributed applications. Additionally, we will provide debugging tools and contract operation explanations to help developers identify and rectify errors and to allow users to comprehend the functioning of the contracts they engage with. 3. Key Features for Users 1. Experience lightning-fast transactions with zero or negligible fees – By leveraging an advanced engine for smart contracts and implementing side-chain off-chain solutions, we've supercharged our network's efficiency and brought down the transaction costs substantially. 2. Enjoy unparalleled independence and robust censorship resistance – We employ a unique consensus method that ensures a level of decentralization far beyond that offered by traditional Proof Of Stake mechanisms. 3. Leverage iExplain - Our innovative transaction analysis tool interprets smart contract transactions, providing a clear understanding of the implications for your funds. Our AI elucidates the inner workings of the smart contract in layman's terms. 4. Benefit from iSwap - A high-speed, decentralized currency exchange with zero commission fees for protocol developers. 5. Play with iGamble - Engage in secure lottery games underpinned by provable randomness and open-source mathematical models. This ensures players have full knowledge of their odds and are never deceived by the house. 6. Invest with iFund - Our decentralized platform allows you to invest in promising startups, innovative protocols, and exciting projects through an Equity crowdfunding model. 7. Enjoy transactions in a blink - With our unique algorithm that prohibits forks, transactions are finalized in seconds, eliminating the need to wait for additional block confirmations. 8. Participate in iDAO - Be part of decentralized autonomous organizations governed by iVote, our system inspired by the principles of liquid democracy. 9. Access your Wallet anywhere - Whether on mobile, desktop, or web, our wallet is available across all platforms for seamless access. 4. Key Features for Developers In an ever-evolving digital landscape, developers are the architects who build the bridge between technology and its end-users. Through their creations - decentralized applications (dApps) - they elevate the network's value, crafting a vibrant digital ecosystem that caters to diverse needs. We understand the critical role they play, and we strive to make their journey as smooth and productive as possible. To speed up application development and debugging 1. Benefit from an AI-supported environment for creating smart contracts using AssemblyScript (a high-level TypeScript dialect), or via intuitive no-code diagrams in web, desktop, or mobile apps. 2. Replay any operation that occurred either on-chain, off-chain, on the client-side, or the server-side, across various interconnected systems for testing purposes. 3. Experience our unique debugging tool for distributed apps, offering comprehensive error explanations and stack traces for both blockchain and off-chain logic. It allows for tracing the entire operation flow, in case of both failures and successful executions. 4. Enjoy automatic generation of API descriptions and serialization code for binary and JSON formats, including ABI (Application Binary Interface), and glue code for languages compiling to WebAssembly, JavaScript, and TypeScript. 5. Rest assured with full code execution determinism regardless of the platform and virtual machine implementation. 6. Utilize documentation that features interactive examples runnable directly in a web browser, alongside tutorials and tests that ease your learning and software creation journey. To accelerate code execution and enable application optimization 1. Combine multiple programming languages, from high-level languages for comfortable coding (such as AssemblyScript, Go, Python), to languages designed for high-performance applications (like C, C++, Rust, and pure WebAssembly). This is achieved through linking smart contracts at the WebAssembly code level and inter-smart contract communication via message passing and inter- process remote procedure calls (iRPC). 2. Take advantage of the Just-In-Time (JIT) compilation of intermediate code (WebAssembly) during execution, and anticipate the future option of compiling into native code to be run in a virtualized environment. For portability, convenience, and flexibility 1. Have the power to craft your entire application in one language, by one developer, or even by a non- programmer. Or use multiple languages across a team or multiple teams. 2. Leverage a minimalistic, cross-platform virtual machine that simplifies creating new implementations for diverse environments. Several ready-made implementations are already available. The blockchain and off-chain logic is implementation-independent and operates within the virtual machine itself. 3. Employ a communication system fully based on messages, binary serialization, and iRPC, whether it's between smart contracts, smart contracts and environmental components, or smart contracts and client applications. 4. Generate glue code to incorporate native server libraries and web APIs in client applications. 5. Coins Economy Our overarching mission is to facilitate broad decentralization, ensuring fair profit distribution among all participants. This commitment is reflected in our decision to allocate a whopping 90% of the total IPI coin supply, which stands at a fixed 100 million coins, to incentivize mining and promote participation. The remaining coin allocation has been judiciously planned to fuel network growth and innovation, with 3% dedicated to funding the development team and investing in future enhancements. We've reserved 6.8% for unexpected costs, which, if unspent after three years, will be burned, bolstering coin value. A pool of 0.1% has been set aside for bug bounties and promotional events to ensure network security and further our reach, with another 0.1% earmarked for advisors and strategic partners who bring value to our project. Remarkably, we, the founders, have not reserved any coins for ourselves. We believe in our system's fairness and will mine our coins just like any other user, with our only advantage being early participants. The denomination of IPI is designed for practicality and flexibility. Each IPI can be subdivided into a billion pIPI (10^-12 IPI), providing a sufficient supply to sustain expansive network growth. This granular division enables precise transactions, catering to various user needs while ensuring extensive usability. Through these measures, we aim to uphold a transparent, equitable, and robust digital ecosystem that not only values developers and miners but also ensures every participant can reap the rewards of a truly decentralized network. 6. Consensus Algorithm The Proof Of Network protocol offers an enhanced consensus mechanism by adding trust and network optimization components to the process. This, along with the revised reward structure, promotes active and honest participation. Consensus Process The consensus process includes Block Proposal, Preliminary Vote,Certification Vote, and Rejection Vote phases. All of these stages employ a Verifiable Random Function (VRF) as a fundamental part of the sortition process, enhancing security,unpredictability, and verifiability. 1. Block Proposal: A proposer is selected via sortition, where the likelihood of selection is proportional to the number of tokens held. The selection process is underpinned by a VRF, which ensures a fair, unpredictable, and verifiable selection process. The selected proposer suggests a new block. 2. Preliminary Vote: A committee of validators is chosen via sortition, which is again based on the VRF, ensuring a random and fair selectio of validators. They vote on the proposed block. If the block garners more than half of the committee's voting power, the process proceeds to the Certification Vote phase. Otherwise, it moves to the Rejection Vote phase. 3. Certification Vote: In this phase, if the block secures a supermajority of votes (more than two- thirds), the block is certified and added to the blockchain. If not, the Rejection Vote phase is initiated. 4. Rejection Vote: Regardless of the outcome of the Preliminary Vote or Cert Vote phase, the Next Vote phase ensues. The committee, selected via VRF-based sortition, votes whether to move on to the next period. Regardless of the result, the system proceeds to the next period, and the process restarts. Incorporating VRF into the Proof Of Network protocol greatly enhance the security and fairness of the consensus mechanism. By ensuring that each selection process is unpredictable and verifiable, it contributes to maintaining a trustworthy and efficient network. Incentive Mechanism 1. Token Emission and Reward Halving: In the Proof Of Network, all coins will be mined eventually due to a halving mechanism. Blockrewards, which include transaction fees, are periodically halved until the supply is fully distributed. 2. Block Reward Distribution: Rewards are split into four parts. One part is distributed to all staking participants. The second partgoes to all validators who validate the proposed block. The third part is shared among the certifiers who certify the block, with the distribution based on the witnesses who saw the certifiers votes. This incentivizes honest participation in the validation and certification process. 3. Distributed Trust Mechanism: This protocol introduces a mechanism for distributed trust, allowing nodes to reward or penalize validators based on their performance. This is an off-chain, subjective value associated with a node's IP, not its wallet address. In case of an incident, such as proposing or validating an incorrect block, the incident is broadcast by witnesses resulting in a loss of trust in the validator. This creates a robust system with incentivized good behavior. 4. Network Speed Rating: Nodes calculate a network speed rating for received transactions and blocks. Nodes that deliver blocks and transactions fastest are recognized as more efficient. Messages are prioritized to these nodes first, resulting in an automated network optimization. 7. Smart Contracts On-chain, Off-chain and serverless Blockchain networks, like the IPI network, face scalability limits due to their architecture. To overcome these, off-chain transactions are employed which increase transaction processing capacity, while keeping transaction fees low. Most operations, like game-related transactions, can be executed off- chain and only critical state confirmations are processed on-chain. In disputes, the main-chain contract serves as an arbitrator. Side-chains can also be utilized for specific user groups, increasing network flexibility and efficiency. They are processed off-chain but can be verified by the main-chain's smart contracts if required. Smart contracts can execute other contract's code, including off-chain and side-chain contracts, which aids in interoperability. The coding environment is consistent across the main and off-chains, enabling easy code migration. This parallel and distributed transaction handling results in greater throughput. For IPI network developers, a server-less public cloud environment is provided to run applications. This includes not only off-chain code but also application logic. Similar to the isolation found in blockchain environments, a secure operating context is assured. Smart contract environment and ABI Smart contracts communicate with the external world through sending and receiving messages. To ensure smooth communication between smart contracts and other virtual machine modules, a common message format must be established. The message data, which includes call parameters and results, will be serialized into a binary format. This format will be consistent for both network messages and inter-module communications. Data will be densely packed to reduce the message size and enhance efficiency. However, the messages themselves will not contain structural information. To allow for debugging and inconsistency detection, this information will be stored in separate structures called Application Binary Interfaces (ABI). ABIs will provide intricate information about the message type and the structure. Additionally, they will carry information about the methods available in the smart contract, their names, parameters, and the types of returned values. Parallel execution and determinism The parallelization of data reads and writes within a transaction significantly boosts efficiency, enabling multiple database queries to execute concurrently. However, to prevent potential race-condition errors and ensure determinism, execution remains single-threaded, and messages to a smart contract are delivered in the exact sequence they were sent during the block proposal. This strategy ensures consensus across validators, avoiding discrepancies that could emerge due to asynchronous responses. Additionally, maintaining a record of message sequences facilitates debugging, allowing for the replication of the exact conditions under which the smart contract operated. 8. Comparison with other blockchains Please check on landing page: www.ipi.io (pass:ipi) Thank you - we are waiting for your feedback :) |