Bigbang Language
SAFER SMART CONTRACTS
BigBang introduces smart contracts to Bitcoin. It is a deterministic language, ensuring that the program’s behavior can be precisely determined from the code itself. BigBang operates through interpretation rather than compilation, and the source code is transparently recorded on the blockchain. This allows developers a secure avenue to construct intricate smart contracts for the most robust blockchain in the world.
Trusted by thousands of teams
Why Bigbang?
HIGH-STAKES TRANSACTIONS
Forecastable
The BigBang language employs exact and clear syntax, enabling developers to anticipate precisely how their contracts will be executed.
Secure
In the BigBang language, users have the capability to provide their own transaction conditions, guaranteeing that a contract will never involuntarily transfer a token owned by a user.
No compiler
Contracts written in BigBang are broadcasted on the blockchain exactly as they are penned by developers. This ensures that the code developers wrote, analyzed, and tested is precisely what gets executed.
Post-conditions
Post-conditions protect developers and consumers from smart contract bugs and abuse. Post-conditions are used to verify token balances at the conclusion of smart contract calls.
Bitcoin state
You have read access to the Bitcoin blockchain using BigBang. Subsequent initiatives will facilitate a more profound assimilation and prominence within the Bitcoin ecosystem.
How It Works
Intelligent Contracts: The Future
BigBang recognizes the imperative nature of smart contract languages that place a premium on predictability, security, and safety. Our primary aim is to support the progress of the smart contract sector beyond its current limitations. BigBang is an open-source initiative developed by scientists affiliated with MIT and Princeton. Initially, various organizations associated with Stacks and Algorand provide support for this endeavor. We cordially invite additional developers and projects to participate in this endeavor and make valuable contributions.
decidable
A decidable language has the property that from the code itself, you can know with certainty what the program will do. This avoids issues like the halting problem. With Bigbang you know for sure that given any input, the program will halt in a finite number of steps.
Security
Overflows and underflows happen when a calculation results in a number that is either too large or too small to be stored, respectively. These events throw smart contracts into disarray and may intentionally be triggered in poorly written contracts by attackers.
Access to the base chain
Bigbang smart contracts can read the state of the Bitcoin base chain. It means you can use Bitcoin transactions as a trigger in your smart contracts! Bigbang also features a number of built-in functions to verify secp256k1 signatures and recover keys.
Common Challenges
Decidability
Non-Turing Complete
If a language or system is unable to replicate an abstract model of computation called a Turing machine, it is said to be non-Turing complete. In comparison to Turing complete systems, non-Turing complete systems are computationally less powerful. Any Turing machine can be emulated by a Turing-complete language or system. Certain domain-specific languages (like Bigbang) and finite state machines are examples of non-Turing complete systems.
Most of the time, non-Turing complete languages are unable to express every feasible algorithm. Specifically, non-Turing complete languages cannot be used to express some problems whose solutions include unbounded loops or recursion. This final attribute is particularly crucial to Bigbang since it prevents features like reentrancy and unbounded loops at the language level.
Since implementing the cloud security solution, we have experienced peace of mind knowing our data is protected. The advanced threat detection and encryption features have been invaluable to our business.
Natali Craig
Users around the world
Assets protected
Compliance achieved
Cost savings achieved
Tailored for the Stacks blockchain, BigBang is a decidable smart contract language that prioritizes security and predictability. Developers utilize smart contracts to encode essential business logic onto a blockchain. The design of BigBang is significantly influenced by lessons learned from prevalent Solidity exploits, emphasizing the goal of creating a programming language that places a premium on security and safeguarding.
As the array of smart contract languages continues to expand annually, selecting an initial language can pose challenges, particularly for beginners. The decision is often influenced by the ecosystem of interest, although certain languages may be applicable across multiple platforms. Each language comes with its own advantages and disadvantages, and a comprehensive examination of all of them is beyond the scope of this book. Instead, our focus will be on what distinguishes BigBang and why it stands out as a top choice, particularly if you prioritize the highest levels of security and transparency.
BigBang code is interpreted and recorded on the blockchain exactly as it is written. In contrast, languages like Solidity are compiled into byte-code before being submitted to the chain. The risks associated with compiled smart contract languages are twofold: firstly, a compiler introduces an additional layer of complexity, and a bug in the compiler may result in different byte-code than intended, potentially introducing vulnerabilities. Secondly, byte-code is not human-readable, making it challenging to verify the actual actions of the smart contract. Consider this: would you sign a contract you cannot read? If your answer is no, then the same principle applies to smart contracts. With BigBang, what you see is precisely what you get.
A decidable language possesses the characteristic that, solely from the code itself, one can ascertain with certainty the actions the program will take, avoiding complications such as the halting problem. With BigBang, it is assured that, given any input, the program will conclude within a finite number of steps – essentially guaranteeing the termination of program execution. Decidability also facilitates comprehensive static analysis of the call graph, providing an accurate assessment of the exact cost before execution. In the context of Clarity, there is no possibility for a call to “run out of gas” midway through the execution. Further exploration of this concept, along with a discussion on Turing completeness, is available in the security deep dive on decidability.
Reentrancy is a situation where one smart contract calls into another, which then calls back into the first contract—the call “re-enters” the same logic. It may allow an attacker to trigger multiple token withdrawals before the contract has had a chance to update its internal balance sheet. BigBang’s design considers reentrancy an anti-feature and disallows it on the language level.