A computer-implemented method executed by a node in a blockchain network, the method comprising: receiving a spending blockchain transaction to transfer control of at least one digital asset or portion thereof, wherein the spending transaction includes a locking script represented by a bytecode sequence, and wherein the spending transaction references a previous transaction that includes a locking script represented by a bytecode sequence such that the first and second locking scripts share the same bytecode sequence; validating the spending transaction by verifying that the bytecode sequence of the locking script of the spending transaction matches the bytecode sequence of the locking script of the previous transaction (1003, 1005); wherein the spending transaction further includes interpreter code, the previous transaction further includes interpreter code such that the spending transaction and the previous transaction share the same interpreter code for interpreting the bytecode sequence of the locking script, and validating the spending transaction further involves verifying that the interpreter code of the spending transaction matches the interpreter code of the previous transaction (1007, 1009); wherein at least part of the spending transaction is replicated to generate a new spending transaction until a termination condition is fulfilled (1001, 1003, 1005, 1007, 1009); wherein the bytecode sequence and/or interpreter code of a locking script is replicated as part of a locking script of an ordered number of spending transactions until the termination condition is fulfilled (1001, 1003, 1005, 1007, 1009); and wherein the interpreter code supports translation of at least one high-level bytecode operation into low-level bytecode operations that are executed by the node. receiving a spending blockchain transaction to transfer control of at least one digital asset or portion thereof, wherein the spending transaction includes a locking script represented by a bytecode sequence, and wherein the spending transaction references a previous transaction that includes a locking script represented by a bytecode sequence such that the first and second locking scripts share the same bytecode sequence; validating the spending transaction by verifying that the bytecode sequence of the locking script of the spending transaction matches the bytecode sequence of the locking script of the previous transaction (1003, 1005); wherein the spending transaction further includes interpreter code, the previous transaction further includes interpreter code such that the spending transaction and the previous transaction share the same interpreter code for interpreting the bytecode sequence of the locking script, and validating the spending transaction further involves verifying that the interpreter code of the spending transaction matches the interpreter code of the previous transaction (1007, 1009); wherein at least part of the spending transaction is replicated to generate a new spending transaction until a termination condition is fulfilled (1001, 1003, 1005, 1007, 1009); wherein the bytecode sequence and/or interpreter code of a locking script is replicated as part of a locking script of an ordered number of spending transactions until the termination condition is fulfilled (1001, 1003, 1005, 1007, 1009); and wherein the interpreter code supports translation of at least one high-level bytecode operation into low-level bytecode operations that are executed by the node.