The updater can be disabled:
https://grapheneos.org/usage#updates-disabling
You can either use a feed reader to be notified about GrapheneOS releases and re-enable it to update it, or you can keep it disabled and sideload whenever you want. We recommend that people stay up to date as fixes, including security fixes come through updates, but you can choose your own adventure. Here are steps on how to sideload should you choose to do so:
https://grapheneos.org/usage#updates-sideloading
Furthermore, GrapheneOS is reproducible (something that it inherits from AOSP). One can build GrapheneOS and compare it with the releases to see that the code in the release matches the source code.
There's an unofficial effort to make doing exactly that palatable for every day users as well, for those that feel the need to get that extra confirmation, but it's not done yet.
I would also recommend giving this section in the usage guide a read:
https://grapheneos.org/usage#updates-security
The update server isn't a trusted party since updates are signed and verified along with downgrade attacks being prevented. The update protocol doesn't send identifiable information to the update server and works well over a VPN / Tor. GrapheneOS isn't able to comply with a government order to build, sign and ship a malicious update to a specific user's device based on information like the IMEI, serial number, etc. The update server only ends up knowing the IP address used to connect to it and the version being upgraded from based on the requested incremental.
Android updates can support serialno constraints to make them validate only on a certain device but GrapheneOS rejects any update with a serialno constraint for both over-the-air updates (Updater app) and sideloaded updates (recovery).