![]() Also, include a path from the root of the main tree down to the user's leaf. The one most relevant for this discussion is what we call the "main" tree, which contains updates for users and teams.įetchPathAndSigs - Fetch from Keybase the signatures over the grove that matches the hash we just got from Stellar. The groveHash is the hash of the roots of several Merkle trees (a "grove" of trees) that Keybase publishes. returns the full sigchain of the user.Ĭonst groveHash = await this.fetchLatestGroveHashFromStellar()Ĭonst pathAndSigs = await this.fetchPathAndSigs(groveHash, uid)Ĭonst treeRoots = await this.checkSigAgainstStellar(pathAndSigs, groveHash)Ĭonst chainTail = this.walkPathToLeaf(pathAndSigs, rootHash, uid)Ĭonst chain = await this.fetchSigChain(chainTail, uid)įetchLatestGroveHashFromStellar - Fetch the last groveHash that Keybase published into Stellar from an observer of the Stellar Network. ![]() The top level framework is as follows: // checkUid traverses the stellar root down to the given Uid, and We're providing sample code in TypeScript. You Mean My Signatures affect a Major Cryptocurrency Blockchain? There's little Eve can do to get in the way without being detected. When Bob observes changes in the Stellar blockchain, he can work backwards to see Alice's change. Whenever Alice uploads a signed announcement to the Keybase servers, she influences Keybase's Merkle Tree, which in turn influences the Stellar blockchain, which in turn Bob can observe. Unless Eve can fork the Stellar blockchain, Alice and Bob will see the same value, and can catch Eve if she tries to fork Keybase.Īnother way to think of this property is to turn it on its head. Now, Alice and Bob can consult the blockchain to find a recent root of the Keybase Merkle tree. Since, Keybase has been regularly pushing its Merkle Root into the Stellar blockchain, signed by the key GA72FQOMHYUCNEMZN7GY6OBWQTQEXYL43WPYCY2FE3T452USNQ7KSV6E. (See Mazières and Shasha for a formal treatment of fork-consistency). Eve could get away with her attack as long as she never tries to merge Alice and Bob's views back together, and as long as they don't communicate out-of-band. A sophisticated adversary Eve could commandeer our server and fork it, showing Alice and Bob different versions of server state. This configuration strongly discourages the server from lying by omission, since clients have the tools to catch the server in the act. identity proofs (twitter, github, your website, etc.)Įarlier, in the server security overview we described Keybase's approach to server security: (1) each user has his or her own signature chain that grows monotonically with each announcement (2) the server maintains a global Merkle Tree that covers all signature chains and (3) the server signs and publishes the root of the Merkle Tree with every new user signature.(Note, we previously were writing to the Bitcoin Blockchain, see the prior post here.)Įvery public announcement you make on Keybase is now verifiably signed by Keybase and hashed into the Stellar blockchain. Keybase is now writing to the Stellar blockchain
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |