A system, network or protocol that allows entities to securely request and store a proven permission, to send an email to another entity inside an open, permissionless, decentralized peer-to-peer blockchain. We also call this permission the “Atomic-Double-Opt-In”, which doesn’t save any personal data (only signatures) inside the blockchain, as it is requested by European data protection regulations (GDPR). In future Doichain will be used as a spam protection system, as it produces a definite whitelist, which can be used in Anti-Spam Plugins, SMTP-Filters and other Anti-Spam-software.
Blockchains send transactions from A to B. In the past we started calling A – Alice and B – Bob.
We want to reuse this tradition and add another party Peter.
Peter is an usual email user, who is subscribing to a newsletter at Alice’s ordinary website.
Alice is a brand, an e-commerce platform or another party, which wants to send an email to Peter. Because of that, Alice submits a Doi-request-transaction over the Doichain blockchain and pays all storage-fees of that process. (Please see: How much does it cost to store a Double Opt-In inside Doichain?)
Bob is a trustable third party, which receives the Doi-request-transaction from Alice and sends a Doi-request-email (ordinary email) to Peter, in order to sign Peters confirmation inside Doichain afterwards. Normally Bob is the ISP or ESP of Peter. It could also be a fallback server, in case Peters ISP/ESP doesn’t have a Doichain node installed yet.
If Alice wants to store the permission, which allows her to email Bob, she requests this via her own Doichain dApp and node instance. Typically Alice is an e-commerce company, shop or another marketing related company. The request is automatically broadcasted to Bob’s Doichain node inside an unconfirmed Doichain transaction. At this moment Alice already has to pay for all storage and transactions fees, which sums up to 0,04 DOI / per Double-Opt-In.
In case Bob doesn’t have or want a Doichain node, the node of either a self-configured trustable third party is used (via a DNS TXT value) or if that isn’t available too, a trustable fall back node of Doichain.org is chosen instead.
Whatever trusted node was receiving the email permission request, the transaction will immediately trigger the nodes dApp to send out the Double Opt-In request email to Bob via SMTP. Bob can now confirm the request via a HTTP(S)-link to Bob’s dApp. Bob’s dApp will store the confirmation inside his version of the Doichain, by also signing it with his own private key.
Here you can see, that Alice can not claim to own a Double-Opt-In of Peter, which Bob didn’t sign.
With the public interface (REST) of any dApp, it is possible to verify for all participants, whether a valid Double-Opt-in permission was given or not.
A single Double Opt-In costs 0.04 DOI.
The amount includes:
– Revokation fee of 0,01 DOI
– Processing fee for Bob (trustable third party) about 0,01 DOI
– Transaction fees
– Storage fee
At the moment 1 DOI has a nominal value of 1 euro. The costs in order to store a Double-Opt-In permission into the blockchain is 0,04 €.
Because of different reasons the price of that service must be stable and bound to that price in fiat currency (Euro). This means that Doichain is automatically lowering or raising the service price in DOI according to the average exchange rate on public crypto-exchanges.
Having this functionality ensures stability in calculation of costs for companies, who need a stable service price for their business model. Also the current price ensures spam protection, as traditional stamps protect against standard mail.
Additionally it reduces the encouragement of speculation with Doichain against other currencies.
The decentralized nature of blockchain ensures the proof-of-existence of a given Double Opt-In permission. Permissions can not be faked, since only the trusted third party (Bob), who stores the permission in the blockchain can sign it. The public key of the trusted third party is published in a TXT value inside the DNS of the recipients email domain.
In future versions it is planed, that digital signatures for email permissions can alternatively be managed in everybody’s own mobile wallet app.
In fact no personal data is written inside Doichain – neither in plain text, nor in any encrypted form like trackable hashes. This wouldn’t comply with European data protection regulations. For the DOI-Permission in the blockchain we only save two signatures. The first one is from Alice (the DOI-requesting party or Single Opt-In) and the second one is from Bob for the “Double Opt-In”.
Optionally there is the possibility to store additional data (e.g. a screenshot or form data) together with the DOI-Request on Alice local database. The dApp calculates a hash for this additional data and stores it together with the permission inside the blockchain.
These coins were mined by the core team since the launch of the Doichain blockchain. They are reserved for the Doichain organization, to ensure further development and implementations, which are visible on the roadmap.
Every email service provider (ESP) can install a so called SMTP filter. It’s scanning all incoming emails and can decide, if the email gets accepted or rejected.
The ESP uses a special SMTP-Filter, which queries the local data of the Doichain dApp and checks if the sender and recipient address have a valid Double Opt-In and proofs the validity of the signatures. In such a case this email would be automatically regarded as non-spam. (Remark: DKIM + SPF must be checked also)
Remark for version 0.2
A centralized fallback server doesn’t fit our vision of a public, permissionless and decentralized blockchain. Also at the moment we cannot trust that all ESP’s and ISP’s worldwide are joining the tool immediately. Because of that we work on a concept, which allows the confirmation of a Double-Opt-In over many fallback servers, making use of well known Proof-Of-Stake methods. Especially in this case we need to consider the requirements of GDPR regulations.
In this version an extension of the Doichain protocol will be necessary (no hard fork), which allows the import of permissions, which were already given by fallback nodes before, into subsequently installed Doichain nodes.
Currently we still work on the first version of a spamfilter for mail programs like Postfix, Spamassassin and others.
If you want to contribute to this feature, you can implement it yourself with the bounty program or donate an amount in Doicoin, Bitcoin or Fiat-, Currency, to speed up the development:
At the time of evaluation for suitable blockchain technologies (we didn’t want to reinvent the wheel) the Namecoin blockchain seemed to be the perfect foundation for storing Double Opt-Ins.
During implementation of the first prototype we realized, that in order to speed up the processing of a Double-Opt-in request (which is a must-have in email marketing), we would have to modify Namecoin. So we forked Namecoin into Doicoin. Furthermore the cost of storing the permission and the price of NMC (Namecoin) was already too high, to ensure a stable business model, which uses atomic Double Opt-Ins.
As soon as Alice executes the HTTP-POST to the Doichain-dApp REST interface, the Single-Opt-In transaction gets broadcasted immediately to the Doichain network. Bob’s Doichain node is receiving the transaction and sends out the email via SMTP. This procedure usually takes about 5-10 seconds.
Doichain dApp currently supports the following features:
every co-sponsor gets its own DOI-record inside the blockchain. A co-sponsor is referenced via a “Master-Doi”, which is the responsible main sponsor. As each sponsor is getting its own Doichain entry, a separate fee is necessary as well.
- Hashvalue in DOI-permission record for optional local data
If you store additional data with every DOI request inside the dApp’s database (e.g. a screenshot or form contents), the dApp’s interface calculates a hash for this additional data and automatically stores it together with the Single Opt-In when requesting a Double Opt-In permission over the blockchain. Later you have a proof-of-existence for your submitted data in case you need it during legal action.
- User management inside dApp
Every user can configure a separate template URL and redirect URL for their personal DOI-request-email. It is also possible to configure additional template params and redirect params for those URLs. This can be useful in cases you need to inform a third party about a successfully received Double-Opt-In. Every user can see and export its requested and received Double Opt-Ins. In a future version it will be possible for each user to have his own Doichain address for receiving and sending Doicoin. For dApps in confirm mode there will be a possibility, that email users with Doi confirmations can log in for managing email permissions. Furthermore it is planed that every user gets its own Doicoin account and Doichain address, where it’s possible to send and receive Doicoin and display the users balance accordingly.
- Export function
(as described under user management)
(as described under user management)
(as described under user management)
Doicoin (DOI) was solely made, in order to manage storing Double Opt-In’s on the blockchain. Additionally there will be a future technical implementation, which keeps the service price to store a “Double-Opt-In” stable at 0,04 € Fiat currency (Please also see: “How much does it cost to store a Double-Opt-In inside Doichain?”). We also don’t offer shares of a company or organization with Doicoin. As a result it can’t be used as an object of speculation and investment. Therefore it is a classic utility coin.
The approximate maximum of storable “Double-Opt-Ins” is currently at:
3,8 million DOIs per month, 45 million DOIs per year (for 3,5 billion email adresses worldwide)
– Doichain block size 1 MB
– To save 1 DOI, you need 2 Doichain transactions (1 Single-Opt-In + Double-Opt-In)
– 1 transaction is about 600 bytes
– 1 DOI is about 1200 bytes
– 1 block is 1024 KB => about 870 DOIs per block
– Approximately 5200 DOIs per hour => 126.000 DOIs per day
The first way to increase the capacity, could be to increase the block size to 10 MB for example or increase the block time to 5 or 3 minutes.
- The simplest and most secure method is to use a paper wallet. You need to generate your Doicoin address offline by switching off the internet. Download a offline paper wallet website here.
- Afterwards you can send your Doicoins to your address and print out your paper wallet on a non-public printer. Make sure your printer doesn’t keep your documents saved after printing (some modern printer do that!).
- You can also download the Doichain-QT wallet from the downloads section on our website. At the moment it is only available for Windows
- If you run your own Doichain node, you can use the integrated wallet (windows, mac, linux).
- Furthermore we work on bringing Doicoin to several multicoin wallets and will soon offer a mobile wallet for Android and iOS on our own.
If Alice puts her newsletter form online without Fraud-Protection, there is a big risk, that a malicious Bob could set up a temporary email domain and node, in order to attack Alice with thousands of email addresses. That way he is slowly emptying Alice Doichain wallet and transfers it into his own wallet. It’s a matter of opinion, if this problem needs to be solved by Doichain or is even raised by Doichain, since public web forms have always been attacked by spamers and other criminal bots. The email marketing industry knows this problem for a long time and many providers offer integrated fraud protection systems inside their email marketing products. For example we would suggest to integrate “Google-Captcha”, since it’s more expensive to solve a Captcha, then the incentive Bob can get. Anyhow we still discuss about this problem and we will add an optional function into Doichain, so Alice can sign incentive transactions manually, as soon as its clear the given Double-Opt-Ins are legit. If this function is enabled, the permission is stored into the blockchain only after you manually sign it.
- Stable DOI Request Price Feature
As soon as Doicoin (DOI) is getting traded more intensively on open crypto exchanges it’s obvious, that the price of Doicoin gets more volatile. If the price gets to low, it will probably be bad for the spam protection function. A DOI-Request-Email could be abused as a classic spam-email. If the price is too high, it can become unaffordable for “Alice” to pay for “Atomic Double Opt-Ins”. Because of that the price for storing a DOI-Request in the blockchain, should be bound to the Fiat euro currency. (Not the coin price itself, but only the price of the service should stay ‘stable’) Once a day, the current price for DOI-Requests will be written into the blockchain, by the fallback nodes. This price has to be respected from all nodes for this time range.
This statement is correct in normal circumstances. For small blockchains it is relatively difficult to achieve the same security, hashrate and difficulty like the Bitcoin blockchain offers.
The developers of one of the first altcoins “Namecoin” (where Doichain was forking from) had exactly the same problem and invented so called “Merged mining” or “Auxiliary Proof-of-Work”. With “merged mining” you can mine Doicoin for free if you already mine Bitcoin, as long as Doichain has a lower difficulty than Bitcoin. Today Namecoin has nearly the same difficulty and is almost as secure as Bitcoin. When Doichain gains more momentum, the hashrate and difficulty will gradually approach the level of Bitcoin.
For more information about Merged Mining read here:
Additionally the economic incentive for a 51% Attack on Doichain is relatively low.
A node, which confirms Double-Opt-In permissions on the Doichain, keeps about 0,01 DOI per transaction (minus the transaction fee for the miner).
If we take one of the larger german email provider with about 20 million users and one user saves about 50 Double-Opt-Ins per year, we would get around 1 billion Double-Opt-Ins, which equals an incentive of 10 million euros.
No, it isn’t possible for an attacker to appear as a domain, which he doesn’t have a PrivateKey.
The public Doichain key of a domain is saved as a TXT value in its DNS. Therefore it isn’t possible to come up with a private and public key, which could be the right one, without changing the DNS.
Another scenario: It isn’t possible as well, that an attacker takes any transaction in the Doichain network, in order to create and send a second (forged) Doi-Request-Email to someone, because Alice is cryptographically checking the email template before delivery. Bob can only decipher the TemplateURL of Alice, if he has the the right PrivateKey. The TemplateURL of Alice is an encrypted One-Time-URL and only reacts to the exactly decoded URL.
- We created a Bounty Program, where you can earn Doicoin, it you help us with certain things
- You can become a member in the Doichain LVC organization
- You can earn Doicoin and support miners and developers