❤️ 17 Likes · ⚡ 0 Tips
{
"txid": "cdaaf016855b7920399277769add32eacfcd92d8e257955fef58397bb907da21",
"block_height": 697286,
"time": null,
"app": "blockpost.network",
"type": "post",
"map_content": "# Introducing bSocial and the Block Post Network\n\nSocial networks are powerful tools for allowing people to communicate and share their thoughts, videos, and cat pictures. Various flavors of social networks have popped up, with Facebook, Twitter, and Instagram among the most famous. Starting a social network is no easy feat, as the users are locked in hard to the current networks. Moving over to a new network is also not very easy, as all your old cat pictures do not move with you.\n\n\n\nTo solve this in a long-term and sustainable way, we introduce bSocial, a social network built on open protocols on top of the Bitcoin blockchain. All data on the network is posted and therefore owned by the users themselves. This includes all meta-data, including `likes`, `follows`, `friend requests`, `reposts` and `comments`. Even `tipping` and `paywalls` are integrated into the protocol, using the micro-payment capabilities of Bitcoin. Moving to a different site or app is not a problem anymore, all your data and meta-data moves with you.\n\n## Block Post Network\n\nThe first full implementation of this group of protocols in bSocial is implemented on the website https://blockpost.network/. All interactions on the website are stored on-chain in open protocols and are accessible to everybody to see and use.\n\n\n\nBlock Post is meant to be a full implementation of the bSocial protocol. A beta version has been launched with limited starting functionality.\n\n## Censorship\n\nEspecially in the US, censorship is a hot issue, since the first amendment is so strongly anchored in law. This, however, does not apply to commercial entities, like Facebook, Twitter, or Google. They are free to moderate or censor at will on their platforms, and this has arguably been done a lot in the recent years.\n\nOn a network built on open protocols and an open blockchain, it is extremely hard to completely censor any person or opinion. Any application that censors its users, risks losing those users to a competing application, as none of the data the user has posted is unique to that application. Moving to another application has almost no costs to the user and it should even be possible to use multiple different applications at the same time, with the same view of the data.\n\nbSocial is aimed to be a completely open network that facilitates open dialogue and sharing of ideas, and cat pictures, of course.\n\n## Data integrity\n\nOne of the advantages of posting data on bSocial to Bitcoin, even if some data will be pruned in the future and it will only be available on indexers, is data integrity. Since the data is posted to Bitcoin in a transaction that is included in a block, the data integrity can always be validated with the block headers and an SPV ([Simplified Payment Verification](<https://wiki.bitcoinsv.io/index.php/Simplified_Payment_Verification>)) proof.\n\nThis is of great value, especially to increase accountability and transparency of what was said in the past. It is not possible to rewrite history.\n\n## Identity\n\nWith no central authority on a decentralized social network, how do we identify unique users, even across applications? This is handled in bSocial with the Bitcoin Attestation Protocol (BAP), which allows any user to create an identity and use that on the network. This is completely permissionless and the blockchain is used as the only source of truth regarding keys and published information about the users.\n\nThe advantage of using BAP is that the identity is decoupled from keys or addresses and allows the user to rotate signing keys at will, as frequently as desired. It is also very easy to create a public profile, with attributes that are allowed to be seen by anybody, but the protocol also has built-in ways of verifying attributes by third parties through attestations. This allows decentralized \u201cblue checkmarks\u201d on users who want to use their real identities and it even allows for fully decentralized KYC (Know Your Customer) services.\n\nAn identity does not have to be managed by the application the user is using, although this is the easiest way to get started. A user can move the identity, and the management of keys for signing, to a separate dedicated (mobile) application. This makes it much easier for the user to migrate from one application to another, but also allows the user to use multiple applications at the same time, with the same identity. It is of course also easy for the user to create a large number of identities, to separate out private and public activity on the network.\n\n## Incentives\n\nbSocial is built on top of Bitcoin. This means it is built on a foundation with a built-in token, and monetization is a first-world citizen. Any operator of a service on the bSocial network will want to be paid for the service they deliver to users. This could be in the form of advertising on the site, a paid subscription for accessing data, or a micro-fee for an interaction on the network. Site operators are completely free in finding the best model for themselves and their users and the protocol puts no requirements on site operators in this regard.\n\nBlock Post has decided to add a small fee to any payment transactions initiated on the Block Post Network to help pay for operation and development. Only tips and paywall payments are subject to this small fee, other interactions will only have to pay the transaction costs to the miners and are therefore extremely cheap. At the moment of writing this, a `like` or a small `post` costs around 0.03 cents. The most expensive transaction, an upload of a large image, could cost around 10 cents, but that depends on the size of the image.\n\n## Third party services\n\nSince all the data in bSocial is open and available for all to see, it is possible for third parties to create services for the network, other than posting, liking, etc. These third-party services could be offering analytics, notifications, trend watching, and other services the social network sites do not offer directly. A completely open data network will open up a slew of new services we have not been able to see in the past.\n\n## The protocols\n\nThe protocols used in bSocial are `B`, `MAP`, `AIP`, `BAP` and `BPP`. The protocols have all been registered with Bitcoin Schema at https://bitcoinschema.org.\n\n### B\n\n> [Bitcoin Data Protocol](<https://github.com/unwriter/B>)\n\nB is a protocol to store arbitrary data on the Bitcoin blockchain. Files, text, video's or your cat pictures can be stored on-chain with the B protocol.\n\n### MAP - key / value protocol\n\n> [Magic Attribute Protocol](<https://github.com/rohenaz/MAP>)\n\nA system for mapping arbitrary hypermedia to a global identifier. Basically a key, value pair protocol that is used to give context to all the data posted to the bSocial network.\n\n### AIP\n\n> [Author Identity Protocol](<https://github.com/BitcoinFiles/AUTHOR_IDENTITY_PROTOCOL>)\n\nA simple and flexible method to sign arbitrary data with Bitcoin digital signatures. AIP is used in bSocial to validate data and to associate each post to a certain user, thereby also confirming ownership for that user.\n\n### BAP\n\n> [Bitcoin Attestation Protocol](<https://github.com/icellan/bap>)\n\nThe BAP protocol is used for managing identities in bSocial. Addresses and keys can be rotated at will and attestations allow to create a network of verified data and even KYC.\n\n### BPP\n\n> [Bitcoin Paywall Protocol](<https://github.com/icellan/bpp>)\n\nThe BPP protocol takes care of defining the way users can negotiate paywalls on the different sites on the bSocial network.\n\n## Indexers\n\nHaving the data on the Bitcoin blockchain is great, but not very useful for application developers. The data is not easily accessible. For accessing the data, an index needs to be created of the data stored on-chain and stored in a more accessible way for applications to access. This is accomplished with indexers that listen to the blockchain and will parse and store the data in real-time in a separate database.\n\nAt Block Post, we index the data using [Bitbus](<https://bitbus.network/>) and a dedicated indexer application called [bsocial-planaria](<https://github.com/icellan/bsocial-planaria>), powered by [bmap](<https://github.com/rohenaz/bmap>). All the data is pulled from the Bitcoin blockchain, stored, parsed, and indexed in a MongoDB database for further processing and access by the applications. For the identity part, [bap-planaria](<https://github.com/icellan/bap-planaria>) is used to make sure all the identity information is verified and correctly processed.\n\nThe indexers are all open source and available on GitHub.\n\n## Note on Illegal Content\n\nWhen you post something to the blockchain, you also have to pay for the transaction with your data. This is why we say it is owned by you because you paid for it. The payment method can however be traced back to you by governments and law enforcement, so think carefully before posting anything illegal to the blockchain. The blockchain never forgets.\n\n## On OP\\_RETURN - a technical note\n\nCreating a social network with a global state on Bitcoin is hard. Most applications being built at the moment are shying away from a global state of data and are only using the Bitcoin blockchain for hashing and timestamping data. We are fully aware of the potential problems and issues writing data on-chain has, but are committed to making it work. In the worst-case scenario, the data is validated, timestamped, and propagated through the Bitcoin network for all network participants to pick up and store. The data can also be validated through SPV in the future, even if the miners have pruned it from the blockchain.\n\nAt the time of writing this, writing data to the Bitcoin blockchain in OP*RETURN outputs is the easiest and cheapest way to store data. In the future, this might change, especially when better tools around OP*PUSHDATA become available. This might change the way the transactions for the different protocols are constructed and how data is stored. This should have no influence on the way the data is processed and used in applications, as the difference in parsing the on-chain data would be handled by the indexers and returned in the same format as before.",
"media_type": "text/markdown",
"filename": "|",
"author": "1EceKYcsiCFwJmx2N5NgMixPiTYcBiQByk",
"display_name": null,
"channel": null,
"parent_txid": null,
"ref_txid": null,
"tags": null,
"reply_count": 3,
"like_count": 17,
"timestamp": "2021-07-24T10:31:02.000Z",
"media_url": null,
"aip_verified": true,
"has_access": true,
"attachments": [],
"ui_name": "1EceKY\u2026QByk",
"ui_display_name": "1EceKY\u2026QByk",
"ui_handle": null,
"ui_display_raw": null,
"ui_signer": "1EceKYcsiCFwJmx2N5NgMixPiTYcBiQByk",
"ref_ui_name": "unknown",
"ref_ui_signer": "unknown"
}