A method for synchronizing rule changes in a system which implements a blockchain for transactions, the system comprising a static rule data store operative to store one or more static rules and a dynamic rule data store operative to store one or more dynamic rules, the dynamic rules being identified with a rules version identifier comprising a counter, wherein the static rules stored in the static rule data store may only be modified by an update to the blockchain software, the method comprising: receiving, by a processor, a data message comprising a change to operation of the system with respect to how blocks are processed for addition to the blockchain, the data message including a rules version identifier; determining, by the processor, if the data message is valid according to one or more rules stored in the static and dynamic rule data stores including checking that the counter of the rules version identifier included in the data message is incremented by one from the currently stored rules version identifier; wherein, if the data message is determined to be valid, modifying the dynamic rule data store in accordance therewith, including updating the rules version identifier by incrementing the counter by one, and generating a transaction in a new block comprising at least the data indicative of the change to the operation of the system to the blockchain, the new block being added to the blockchain which is linked to the prior most recently added block by a hash chain; and communicating, by the processor, data indicative of the new block to other systems implementing the blockchain; and wherein validity of transactions received subsequent to the new block are subject to the one or more rules with the most recent rules version identifier stored in the static and dynamic rule data stores, including the added change to the operation of the system. receiving, by a processor, a data message comprising a change to operation of the system with respect to how blocks are processed for addition to the blockchain, the data message including a rules version identifier; determining, by the processor, if the data message is valid according to one or more rules stored in the static and dynamic rule data stores including checking that the counter of the rules version identifier included in the data message is incremented by one from the currently stored rules version identifier; wherein, if the data message is determined to be valid, modifying the dynamic rule data store in accordance therewith, including updating the rules version identifier by incrementing the counter by one, and generating a transaction in a new block comprising at least the data indicative of the change to the operation of the system to the blockchain, the new block being added to the blockchain which is linked to the prior most recently added block by a hash chain; and communicating, by the processor, data indicative of the new block to other systems implementing the blockchain; and wherein validity of transactions received subsequent to the new block are subject to the one or more rules with the most recent rules version identifier stored in the static and dynamic rule data stores, including the added change to the operation of the system.