3 ms·
Somehow related take. When I was still interested in blockchains back in 2018 I was thinking that instead of proof of work, wouldn't it be nice to have a distr
by mhitza 5y ago
Somehow related take.
When I was still interested in blockchains back in 2018 I was thinking that instead of proof of work, wouldn't it be nice to have a distributed CI where you run your builds & tests on end-user machines, it computes a hash of the resulting artifact. Which is validated by multiple nodes that run the same job for validation (then split the PoW fees among themselves).
It's not an easy problem to solve of course, and didn't go too deep into what TPM (Trusted Platform Module) can do, but I think you would need an isolation unit from the kernel/OS to allow running untrusted code, and prevent tampering. There's definitely a fine line between such a functionality and spyware that would need serious safeguards.
- yjftsjthsd-h 5y agoJust make it fully isolated with WASM or whatever, and then port the necessary compilers to cross-compile back to whatever native platform you want to use the outputs binaries on. Simple! (Not easy, but conceptually simple and probably doable.) The big problem that I can't see an obvious solution for is proving that a given output corresponds to the work requested. I guess you can just run it on enough machines that you hope they're not collaborating?
- mhitza 5y agoI think isolation itself is the harder problem, as you don't want to have the untrusted code interface with your primary OS, nor the computer owner tamper with the isolated environment. > I guess you can just run it on enough machines that you hope they're not collaborating? Right validation through numbers. Still susceptible to a 51% attack, if I recall correctly what Sybil attacks are about. This type of proof of work gives you a way to find collusion post fact. For example if your last commit on a PR (which triggers a decentralized CI), is the same commit on which you base you distribution build (assuming reproducible builds, same output), that's run on your fully trusted system, you would find out if jobs were faked.