Why is Snapshot is considered to be "off-chain" and Tally considered to be "on-chain" when they both support decentralized governance?
And what does that actually mean practically - ie what are the benefits and disbenefits of onchain vs offchain?
Thanks very much to Kof! I've also done some research and investigation and am expanding on Kof's answer below, for the edification of those that come after.
For a high level conceptual understanding of what we mean by off chain vs on-chain take a look at this post.
There are two kinds of DAO governance that are used today: On-chain and Off-chain.
On Chain
runs entirely on the blockchain - i.e. all voting is done via transactions that change the state of the blockchain. This can get expensive because each user's transaction incurs costs (in Ethereum, that's Gas fees).
Off Chain
Includes off-blockchain components like IPFS, oracles, handle some of the storage (of voting transactions), computation etc
This is cheaper as the computationally expensive operations can be done cryptographically but stored and processed off-chain, and then the final result (which is the important bit) is delivered on chain and so you incur a cost only for that final transaction to store the voting result on-chain and trigger the execution of the proposal that was voted in.
Below are some popular tools used for these two types of governance.
SNAPSHOT
Snapshot is a decentralized voting system (useful for DAO members to vote on proposals that affect the DAO).
Users can cryptographically sign votes using their wallets, and those signed transactions are stored with snapshot. Since that is "off-chain" the voters arent paying high gas fees for storing their vote on-chain.
Later, the votes from snapshot can be counted, and the final results be delivered on-chain, in a single transaction. Since its a single transaction on the blockchain, the costs are significantly reduced, compared to each voter paying gas fees for their individual vote.
So snapshot is considered off chain. But...decentralized!
TALLY
Tally is a bit different because it gives users a UI skin (i.e. dashboard) that connects each user's wallet so that they can vote on proposals directly ON the blockchain. You pay gas fees, and your vote is recorded on the blockchain. To understand this, it is important to remember that voting on the blockchain literally means calling a function on the governance smart contract that handles voting. That contract call is done using the Tally interface.
And the downside is .... that you pay gas fees..which could be so expensive for some that they are discouraged from voting and that is kinda against the point of DAOs.
HYBRID
There are hybrid solutions like using oracles (eg Chainlink) to bring in your off-chain voting data through decentralized nodes, do the computation off chain, and deliver the single result/outcome to the smart contract in a cryptographically truthful way. This has the benefits of low transaction costs, and high cryptographic security.
The point of Snapshot is that they perform a snapshot of the chain in a specific block number (decided by the dev team), allowing holders of that DAO to vote using their allocation in that specific block number.
It's off-chain because you're not submitting a transaction, but rather trusting a centralized authority to work properly and count votes for you fairly.
Tally on-chain means you're submitting a transaction to the blockchain, therefor can prove your vote and see other's votes in full transparency.
I would add that one of the downsides to going off-chain for vote tallying is the potential of that tally getting altered before it goes back on-chain.