Yes, exactly. Those blocks will be client-side. The server just tells the one client "block at x,y,z changed to id abc", without actually setting the block. One problem is that when the client right-clicks on one of those fake blocks, they vanish (or go back to the real block, to be precise). I don't know if a PlayerInteractEvent is thrown for that when there is actually an air block. If not, you'd probably need to resend the fake blocks every couple of seconds or so (if the player manages to "click-break" those blocks fast enough, it's the job of the PlayerMoveEvent listener to keep him inside). Otherwise, resend the specific block on interact.