We are back with some exciting news. This time, we are rolling out our first-ever public version of Signchain as we promised in our last post. Since the inception of Signchain during the EthOnline hackathon, we have come a long way. We had a lot of learnings from our hackathon project and we revamped our application accordingly to get the best out of the decentralized technologies to build an open, interoperable digital signing platform. In this blog post, we will share those learnings and our solution design with you.
Feel free to check out our beta application before going through the rest of the article.
What has changed?
It is quite common to list out all the features in the release notes, and for Signchain, this is the first-ever public release. So, we will point out a few major design changes and why did we do that?
Document and user profile store:
When we started ideating the design of Signchain, we envisioned a platform where the document signature proofs are stored and accessed seamlessly without relying on any single service provider. Storing the document metadata off-chain and anchoring it to the smart contract on public ledger was an intuitive solution. This worked great for our initial version but what we didn’t realize is the scalability of this design on the main blockchain network (Ethereum), where not many users would do multiple transactions for a single operation. Especially this raises concerns when GAS prices are high on the network and there is not much user incentivization for doing such operation. So, we started looking into other decentralized solutions that provided the similar openness for verification of proofs created by others.
Textile ThreadDb to the rescue.
Textile ThreadDb is a multiparty database built on IPFS and Libp2p that provides interoperable bookkeeping for web3 applications. ThreadDb seemed like a perfect solution to achieve our envisioned openness and scalability, that transactions on the blockchain fail to provide yet. We moved our document exchange and proofs along with user metadata to ThreadDb collections. Currently, Textile ThreadDb collections hold information such as Document metadata, Signature proofs that are mapped to user profiles. We eventually want to also anchor this information to an immutable data store such as Ceramic documents where it is easier to keep track of the document versions. We also made sure that our ThreadDb integration was production-ready.
Ceramic IDX for user profiles
User profile management and verification was also a crucial component of Signchain. We had explored our options for different DID providers. But we were fanboys of the work the 3box team was doing in the identity space. So, we were pretty excited about the Ceramic and IDX project when we across it much before our initial integration. Here is a proof :P
Yes, both the Ceramic network and IDX were and are at early stages of development. But we wanted to be part of something that we believe will provide a solution to user-controlled data. Sure, we had to be patient at times during our integration as there were rapid updates in the features even after our initial success during the hackathon where we won the sponsor grant for the best use of the IDX library. But we are confident that Ceramic IDX will allow us to gradually build the features that we have planned in the roadmap. We are pretty excited to be one of the early builders on the Ceramic clay test network that was launched to public recentely.
Let us show what we got
Alrighty, I guess enough with the tech stack banter. Let’s talk about what we have in this public release and how do we get onboarded.
We have the following features in this beta release Signchain:
- Confidential document exchange with end-to-end encryption.
- Storing and verifying signatures proofs of documents
- The public view of user profiles for each document
- Incentivizing the notaries for their attestations
- Notifying the counterparties on signing request
- The updated user onboarding flow
With all the above mentioned features, a user will be able to confidentially sign and share the documents with other verified users on the platform, who will further verify and sign/ notarize the documents. Users will also be notified whenever they have a new document to be signed.
Yes, the feature list isn’t long as our main scope of this release was to get our tech stack integrations right and create a better user onboarding flow.
As our main goal for this release was to have a seamless user onboarding, we have prioritized usability over the security of the application. We are aware of a few security threats, especially on the user key management end. Feel free to create issues for any major security concerns.
Although all the data is stored on either IPFS or Ethereum network, we are still running on the test network (Rinkeby, Ceramic Clay, Unpinned IPFS files), so we request you not to perform any crucial operation.
Note that all the parties you want to share the signable document must be signed up to the platform. This is a requirement as we have to ensure that the documents are confidentially shared.
Our vision for Signchain is to build an open platform that is open source, leveraging the open web3 technologies. To make this happen, we need constant feedback and contributions. To bombard us with feedbacks, issues and get to know more about Signchain, you can reach out to us via Twitter, Discord server, or even the old fashioned email. You are most welcome to contribute to our GitHub project.
Signchain beta release is a baby step in understanding the technical feasibility of building a completely open yet secure digital signing platform. We will be applying the learnings from this release to build a platform that will serve the needs of enterprises and individuals at scale. This calls for a separate blog post in the future, until then take care 👋