701 / 736SIMPLICITY

Simplicity

Formalnie zdefiniowany język kontraktów

Simplicity to niskopoziomowy typowany język funkcyjny kontraktów z formalną semantyką, statycznymi limitami zasobów i zmerklizowanymi programami; działa w Liquid, ale nie jest aktywny w mainnet Bitcoin.

Simplicity składa programy z małego zestawu kombinatorów i może zastępować znane podwyrażenia szybkimi jets o identycznym znaczeniu, łącząc analizowalność z praktyczną wydajnością.

Rdzeń tworzy mały zestaw typowanych kombinatorów z matematycznie określoną semantyką denotacyjną i operacyjną. Formalny model w Rocq umożliwia maszynową kontrolę dowodów dotyczących języka, implementacji i właściwości konkretnego programu. [1]

Język nie ma nieograniczonych pętli ani ogólnej rekurencji, więc przed wykonaniem można wyznaczyć górne granice obliczeń, pamięci i danych. Program nie powinien zatem zatrzymać się przy nieznanym zużyciu gas ani działać bez końca. [1]

Program jest zmerklizowanym drzewem wyrażeń, a nieużywane gałęzie podczas wydawania można zastąpić ich Merkle root. Validator sprawdza zobowiązanie do całego programu, lecz on-chain ujawniane są tylko potrzebna ścieżka i witness data. [1]

Jet rozpoznaje określone wyrażenie Simplicity i wykonuje je zoptymalizowaną funkcją natywną. Bezpieczeństwo consensus wymaga wyniku dokładnie zgodnego z semantyką referencyjną; jet nie dodaje ukrytego nowego znaczenia. [1]

libSimplicity zawiera minimalny runtime wrażliwy na consensus w C, części referencyjne i generujące w Haskell oraz formalny model w Rocq. Warstwy wzajemnie się sprawdzają, ale repository wyraźnie stwierdza, że język i implementacja nadal są rozwijane. [2]

SimplicityHL to czytelniejszy język podobny do Rust, kompilowany do Simplicity bytecode. Projekt opisuje go jako work in progress, a nie production-ready; audyt kontraktu musi objąć źródło, compiler, bytecode, witness oraz jets. [3]

Simplicity wdrożono w Liquid mainnet w 2025 roku. Liquid jest federacyjną sidechain z wieloma aktywami i Confidential Transactions, więc to wdrożenie nie jest aktywacją w consensus mainnet Bitcoin; wymagałaby ona osobnej propozycji i soft fork. [4]

Formalna semantyka nie gwarantuje właściwego zamiaru ekonomicznego, bezpiecznych kluczy ani wiarygodnej strony. Weryfikacja musi rozróżniać program niskopoziomowy, narzędzia SimplicityHL, konkretny zestaw jets, wersję Liquid i hipotetyczną integrację Bitcoin. [2]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Bitcoin Script, Miniscript, Taproot, Soft Fork, Reguły konsensusu, Sidechain.

01Czy Simplicity jest dostępny w mainnet Bitcoin?

Nie. Wdrożono go w Liquid mainnet o innym consensus; użycie jako języka skryptów Bitcoin wymagałoby osobnej propozycji i soft fork.

02Czy Simplicity to to samo co Miniscript?

Nie. Miniscript jest analizowalną strukturą nad obecnym Bitcoin Script; Simplicity to osobny, formalnie zdefiniowany język niskopoziomowy.

DOC · 001Simplicity paperŹródło pierwotne DOC · 002Blockstream Research — Simplicity implementationŹródło pierwotne DOC · 003Blockstream Research — SimplicityHLŹródło pierwotne DOC · 004Blockstream — Simplicity launches on LiquidŹródło pierwotne
Zaktualizowano: Najpierw źródła · To nie jest porada inwestycyjna