Nostr or the like wont be involved for Accrescent, it's been designed to compliment GrapheneOS to be a private and secure app store in the same fashion that GrapheneOS is. There had been interests for us using Accrescent for a long time and this addition coming in a time where people are into using other app stores is just a coincidence. Accrescent has been in active development and maintenance since 2021 and we had expressed interest to mirror it in our Apps app for a while.
> Accrescent's catalog is maintained by a respected community member and checks dev signatures on a third-party database on Github. Correct me if I'm wrong.
This is not done through GitHub rather Accrescent's own hosted infrastructure. When you open the app it will download the current repository metadata JSON which has the app names, ID, signing cert hashes, etc.
> Users will be able to cryptographically verify an artifact came from a developer using nostr. They can do so directly, relying on a web-of-trust check, or indirectly via curators (choose your own walled gardens).
For Accrescent, apps are verified by key pinning of the apps and signing of the app store's repository data. The repository is signed by Accrescent and verified with the repository data public key (hard coded into the app) before it can be fetched. It has downgrade protection and also has a minimum revision hard coded to protect against being served old metadata on first use. It also can support key rotation.
Downloading an app will make the client check the signed repository metadata and compare the app's certificate hash, minimum version, and app name from the signed repository metadata. If any of the parameters do not match it will not install the app for you. For updates it does not matter as Android won't let you update apps with a different certificate than your currently installed version.
Minimum version protects against first install of an insecure, older version, and app name protects against malicious copycat apps.
When someone submits an app on the Accrescent developer console (whitelist only right now) for the first time, it will put a hash of their app's signing key to the repository metadata. This makes sure users are only downloading apps by the real developer.
I explained a bit about how the security modeling of Accrescent (new third party app store available in our Apps app) works here, if anyone is interested.
nostr:nevent1qqsppzrz5247av55sc7jy4etu8vk890z0pp0dm7rcn3uaqyw2v83t8gpz4mhxue69uhhyetvv9ujumn0wd68ytnzvuhsygxptfdxtxrw026pxn0w82u9y4x6t3w5kp883d83djpgxuvj6d23s5psgqqqqqqs85v6vl
👀
nostr:nevent1qqs07nzsdd8t4n6strarfz52rdp6lrwqx0tyznp3r6zn8ncqwndnyyspzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtczyrq45kn9nph84dqnfhhr4wzj2nd9ch2tqnncknckeq5rwxfdx4gc2qcyqqqqqqgy89nzq
Which stores are avaiable in GrapheneOS? Does it support android apps?
GrapheneOS is an AOSP distribution and is compatible with Android apps. Currently the GrapheneOS App Store app mirrors downloads for the Google Play Store or Accrescent so users can download those stores safely if they want them. You're free to use something else though.
So in a nutshell, Accrescent places trust in 1 respected GrapheneOS community member. Zapstore places trust in your NOSTR-derived web of trust. Thanks for the clarification!
Regardless, when using an app store you are required to trust the app itself, the party who maintains the app, and the source of the apps. If your source to get the apps is from the same party who develops the app store, there is less parties to trust. It's a big reason we provide the option to install the apps like Markup, Android Auto, or Play Services directly from GrapheneOS as well. You'd only need to trust the apps and the developers rather than an arbitrary additional party just to get those apps specifically.
Right, that's a given. I'm specifically talking about the curation trust model inherent in all app stores. On this point, Zapstore & Accrescent diverge.