Enterprise adoption: Baseline protocol

Hey everybody,

the last 2 weeks I devoted myself to the Baseline protocol (https://www.baseline-protocol.org/) which seems to be an attractive approach for companies to use the public mainnet (which in the sense of Baseline could be any state machine / blockchain).

To summarize things quickly:

  • Baseline protocol is a design pattern that combines multiple components / techniques to achieve integrity in a cross-company business process
  • this allows companies to get involved quickly without having to reinvent the wheel. they can still use their existing e.g. ERP systems and use the blockchain “only” as source of truth which allow to enforce certain rules within cross-company workflows
  • the most important components are zero knowledge proofs and a secure point to point messaging
    • proofs are generated off-chain and only stored on the chain if valid
    • the messaging component is used to deliver data only between participants that are involved in the process
    • on-chain there are contracts deployed to verify the proofs

I personally think this is a very interesting approach to move into the direction of enterprise mainnet adoption.

Do you think it would currently be possible to use æternity for that usecase? Or will this only be possible after the next hardfork? (I mean e.g. provide a contract to verify the proofs)

In the reference implementations PoC they used Whisper as messaging protocol. But I think they are looking for another solution because Whisper doesn’t seem to be the best solution. Do we currently have any answer for this?

Last but not least there is this Tool called ZoKrates which provides a DSL to write zero knowledge proof circuits. This tool can automatically generate solidity contracts which can be deployed to the blockchain and used to verify proofs. If possible it would be cool to see that extended that it can also generate Sophia smart contracts that can be used to verify proofs.

What do you think about the project and do you think æternity could be a better solution than Ethereum in this case?

  • I think æternity would need to have arguments specifically regarding the messaging component because the “blockchain”-part can probably be solved by many projects and Ethereum has much more adoption so there is no reason to ditch it at the moment of speaking
2 Likes

Hi, you can take a look at aeasy.io. It is also a tool to help developers speed up their aepp

1 Like

I am not familiar with this protocol but it looks interesting. What I got though is - this is good ol’ State Channels with some (fancy!) ZN proof contracts?

mhh I think there are some aspects to mention that it comes a bit clearer:

  • a “Shield” contract is being stored on-chain
    • this is the “source of truth” for all parties involved in a workflow (and there can be many parties involved in such workflow)
    • the Shield contract contains a Merkle Trie with all commitments which the participants agree upon
    • this is why I don’t think that state channels are the solution they are seeking for (correct me if I am wrong)
  • the proof-generation and messaging is handled off-chain
    • could the messaging component be sth. which æternity could handle (way better than whisper e.g.)?
    • question is how could developers make use of the noise protocol similar to whsiper, is this possible?

if I have some reasons I might be able to suggest them to take a look at æternity. but I think currently we wouldn’t be able to provide verify-contracts on-chain as long as the iris hardfork isn’t in place, right?

maybe someone could take a look at their “Radish34” PoC. maybe all what they try to achieve is already possible using æternity state channels?!

You’re right, SC are something different from this. This is more of a mesh of SCs, so more like VSCs with some additional infrastructure.

I brought SCs up because they do provide means for enforcing off-chain contract on chain but this requires a preexisting SC.

If all commitements are hashed and stored on-chain, they could possibly be used as a proof for the commitement. I don’t know if we could bring random bytecode with the same hash and enforce it on-chain, though. I think we can not. cc @hanssv.chain

Hmm, I think we would be better off using ZK-proofs or similiar… And no, that can’t be implemented without some new crypto primitives - i.e. we need a protocol upgrade/hard-fork first.

1 Like

Hi Marco!

Seeing you researching/interested in this direction, just dropping these repos which might be interesting for you… :wink: