assumevalid
assumevalid is a blockchain network whose nodes do not check whether what they record is valid. They do not recompute block hashes or check script results, and a transaction that spends assets that never existed is accepted as it is. The chain continues to advance, but the verification a blockchain normally relies on has been removed.
The name is taken from a setting that really exists in Bitcoin Core: -assumevalid. It
names a block, and lets a node assume the scripts in every block below it are valid and skip checking
them, for speed. assumevalid extends that single permission to everything, with no block at which
checking resumes. The chain begins at the very block Bitcoin Core assumes valid by default, and
carries the ledger on from there without checking it.
Run a node
# build git clone -b assumevalid https://github.com/avcdsld/assumevalid.git cd assumevalid cmake -B build -DENABLE_WALLET=OFF -DENABLE_IPC=OFF -DBUILD_TESTS=OFF cmake --build build # run, taking the chain from the anchor node bitcoind -chain=assumevalid -assumevalidall -addnode=153.120.64.45:9383
Full instructions: deploy/README.
What is not verified
Each of the following is assumed valid, and never checked:
- proof of work
- difficulty, timestamps, and block version
- the merkle root
- the coinbase, and the amount it pays
- output amounts, and the total supply
- whether an input ever existed
- whether it was already spent
- scripts and signatures
The reference node is built from Bitcoin Core 31.1 by removing these rejections, or making them unreachable.
How the chain holds together
Nodes still agree on one history. Of two chains, the longer one wins, and length is counted in blocks rather than in proof of work. Mining is permitted but never required: a node may extend the chain without doing any work, and the network will not ask whether the work was done.
The past is assumed, not held. A node needs no historical state, because input existence is never in question. It roots an empty state at the assumed-valid point and continues from there.
Releases
Protocol & source
assumevalid
assumevalid は、自らが記録するものを検証しないブロックチェーン・ネットワークである。ブロックハッシュを再計算せず、 スクリプトの結果も確かめず、存在しなかった資産を使うトランザクションもそのまま受理される。チェーンは進み続けるが、 ブロックチェーンが本来依拠する検証は取り除かれている。
名前は Bitcoin Core に実在する設定 -assumevalid に由来する。あるブロックを指定し、それ以前の
ブロックのスクリプトは正当と仮定して検証を省く。速度のための機能だ。assumevalid はこの一つの許可を、
検証が再開する地点を持たず、すべてに拡張する。チェーンは Bitcoin Core が既定で「正当と仮定する」まさに
そのブロックから始まり、そこから台帳を検証せずに引き継ぐ。
ノードを動かす
# build git clone -b assumevalid https://github.com/avcdsld/assumevalid.git cd assumevalid cmake -B build -DENABLE_WALLET=OFF -DENABLE_IPC=OFF -DBUILD_TESTS=OFF cmake --build build # run, taking the chain from the anchor node bitcoind -chain=assumevalid -assumevalidall -addnode=153.120.64.45:9383
詳しい手順: deploy/README。
検証されないもの
次のいずれも有効であると仮定する、確かめられない:
- プルーフオブワーク
- 難易度・タイムスタンプ・ブロックのバージョン
- マークルルート
- コインベースと、それが支払う額
- 出力額と、総供給量
- 入力がかつて存在したか
- すでに使われていたか
- スクリプトと署名
参照ノードは Bitcoin Core 31.1 から、これらの拒否を取り除くか到達不能にして作られている。
チェーンが保たれる仕組み
ノードは今も一つの履歴に一致する。二つのチェーンがあれば長い方が勝ち、長さはプルーフオブワークではなく ブロック数で数える。採掘は許されるが必須ではない。ノードは仕事をせずにチェーンを延ばしてよく、 ネットワークはそれが行われたかを問わない。
過去は保持せず、仮定する。入力の存在が問われない以上、ノードは過去の状態を必要としない。 仮定正当点で空の状態を起点化し、そこから続ける。
リリース
プロトコルとソース
assumevalid
assumevalid es una red blockchain cuyos nodos no comprueban si lo que registran es válido. No recalculan los hashes de bloque ni verifican los resultados de los scripts, y una transacción que gasta activos que nunca existieron se acepta tal cual. La cadena sigue avanzando, pero la verificación en la que una blockchain normalmente se apoya ha sido eliminada.
El nombre proviene de una opción que existe de verdad en Bitcoin Core: -assumevalid. Señala
un bloque y permite que un nodo asuma que los scripts de todos los bloques por debajo son válidos y omita
comprobarlos, por velocidad. assumevalid extiende ese único permiso a todo, sin ningún bloque en el que la
comprobación se reanude. La cadena comienza en el mismo bloque que Bitcoin Core asume válido por defecto, y
continúa el libro mayor desde ahí sin comprobarlo.
Ejecutar un nodo
# build git clone -b assumevalid https://github.com/avcdsld/assumevalid.git cd assumevalid cmake -B build -DENABLE_WALLET=OFF -DENABLE_IPC=OFF -DBUILD_TESTS=OFF cmake --build build # run, taking the chain from the anchor node bitcoind -chain=assumevalid -assumevalidall -addnode=153.120.64.45:9383
Instrucciones completas: deploy/README.
Qué no se verifica
Cada uno de los siguientes se asume válido y nunca se comprueba:
- la prueba de trabajo
- la dificultad, las marcas de tiempo y la versión del bloque
- la raíz de Merkle
- la coinbase y el importe que paga
- los importes de salida y el suministro total
- si una entrada existió alguna vez
- si ya había sido gastada
- los scripts y las firmas
El nodo de referencia se construye a partir de Bitcoin Core 31.1 eliminando estos rechazos, o volviéndolos inalcanzables.
Cómo se sostiene la cadena
Los nodos siguen coincidiendo en una sola historia. De dos cadenas, gana la más larga, y la longitud se cuenta en bloques, no en prueba de trabajo. Minar está permitido pero nunca es obligatorio: un nodo puede extender la cadena sin realizar ningún trabajo, y la red no preguntará si el trabajo se hizo.
El pasado se asume, no se guarda. Un nodo no necesita ningún estado histórico, porque la existencia de una entrada nunca se cuestiona. Ancla un estado vacío en el punto asumido como válido y continúa desde ahí.
Versiones
Protocolo y código
assumevalid
assumevalid 是一个区块链网络,其节点不检查自己所记录的内容是否有效。它们不重新计算区块哈希,也不检查脚本的执行结果; 一笔花费从未存在过的资产的交易,也会被原样接受。链继续向前推进,但区块链通常所依赖的验证已经被移除。
这个名字取自 Bitcoin Core 中一个真实存在的设置:-assumevalid。它指定一个区块,让节点假定该区块以下
所有区块中的脚本都是有效的,从而跳过检查,以提升速度。assumevalid 把这一项许可扩展到一切,并且没有任何区块会让检查
重新开始。链从 Bitcoin Core 默认假定为有效的那个区块开始,并从那里继续记账,而不加以检查。
运行节点
# build git clone -b assumevalid https://github.com/avcdsld/assumevalid.git cd assumevalid cmake -B build -DENABLE_WALLET=OFF -DENABLE_IPC=OFF -DBUILD_TESTS=OFF cmake --build build # run, taking the chain from the anchor node bitcoind -chain=assumevalid -assumevalidall -addnode=153.120.64.45:9383
完整说明:deploy/README。
不被验证的内容
以下各项都被假定为有效,且从不检查:
- 工作量证明
- 难度、时间戳与区块版本
- 默克尔根
- coinbase 及其支付的金额
- 输出金额与总供应量
- 输入是否曾经存在
- 是否已被花费
- 脚本与签名
参考节点是在 Bitcoin Core 31.1 的基础上,移除这些拒绝或使其无法触发而构建的。
链如何保持一致
节点仍然就单一历史达成一致。当出现两条链时,较长的一条获胜,而长度以区块数计,而非以工作量计。挖矿被允许但从不必需: 节点可以在不做任何工作的情况下延长链,网络也不会追问工作是否真的完成。
过去是被假定的,而非被持有。节点不需要任何历史状态,因为输入是否存在从不成为问题。它在被假定为有效的那个点上, 以空状态为起点,并从那里继续。
版本
协议与源码
assumevalid
assumevalid 是一個區塊鏈網路,其節點不檢查自己所記錄的內容是否有效。它們不重新計算區塊雜湊,也不檢查腳本的執行結果; 一筆花費從未存在過的資產的交易,也會被原樣接受。鏈繼續向前推進,但區塊鏈通常所依賴的驗證已被移除。
這個名稱取自 Bitcoin Core 中一個真實存在的設定:-assumevalid。它指定一個區塊,讓節點假定該區塊以下
所有區塊中的腳本都是有效的,從而跳過檢查,以提升速度。assumevalid 將這一項許可擴展到一切,且沒有任何區塊會讓檢查
重新開始。鏈從 Bitcoin Core 預設假定為有效的那個區塊開始,並從那裡繼續記帳,而不加以檢查。
執行節點
# build git clone -b assumevalid https://github.com/avcdsld/assumevalid.git cd assumevalid cmake -B build -DENABLE_WALLET=OFF -DENABLE_IPC=OFF -DBUILD_TESTS=OFF cmake --build build # run, taking the chain from the anchor node bitcoind -chain=assumevalid -assumevalidall -addnode=153.120.64.45:9383
完整說明:deploy/README。
不被驗證的內容
以下各項都被假定為有效,且從不檢查:
- 工作量證明
- 難度、時間戳記與區塊版本
- 默克爾根
- coinbase 及其支付的金額
- 輸出金額與總供給量
- 輸入是否曾經存在
- 是否已被花費
- 腳本與簽章
參考節點是在 Bitcoin Core 31.1 的基礎上,移除這些拒絕或使其無法觸發而建置的。
鏈如何維持一致
節點仍就單一歷史達成一致。當出現兩條鏈時,較長的一條勝出,而長度以區塊數計,而非以工作量計。挖礦被允許但從不必需: 節點可以在不做任何工作的情況下延長鏈,網路也不會追問工作是否真的完成。
過去是被假定的,而非被持有。節點不需要任何歷史狀態,因為輸入是否存在從不成為問題。它在被假定為有效的那個點上, 以空狀態為起點,並從那裡繼續。