Block storage: Split files into MB blocks. Hash each block. Store blocks by hash. If two files share blocks, store once.
Sync protocol: Client computes block hashes. Sends to server: "I have blocks A, B, C." Server responds: "I need B." Client uploads only changed blocks.
Conflict resolution: For binary files, create conflict copy. "report.docx" and "report (conflicted).docx". User manually resolves.
Block-level sync means changing byte in a GB file uploads only the affected MB block.