How Flow enforces honest node behaviour
Flow slashes nodes only for acts that directly impact the security and integrity of the network and its shared execution state. Nodes are not slashed for liveness infractions. The protocol reserves slashing for maintaining the security of the protocol rather than its liveness.
You can find more details on the conditions under which a node is slashed in the Flow whitepapers.
Direct stake slashing is not currently enforced by the protocol and staking contract. It will be handled on a case-by-case basis for the foreseeable future to ensure network participants have time to participate in the testing and rollout of slashing.
There is a very basic form of slashing that is currently used, where nodes who have liveness issues during an epoch may have their rewards and their delegators' rewards reduced by a pre-determinded amount based on the severity of the liveness infractions. This amount is often 50% and is only taken from the stakers' rewards for a given epoch. Their staked FLOW is not touched at all.
When slashing is enforced, slashable protocol violations must be adjudicated by a supermajority of more than 2/3 of the staked consensus nodes in order to take effect. If a node is found guilty of committing a slashable protocol violation, the consensus nodes directly deduct a fine from the node's stake.
It is still TBD where the slashed tokens will be deposited.
The remaining un-slashed stake is deposited back into node's unstaked pool at the end of the unstaking period.