[HN Gopher] Open Heart Protocol
       ___________________________________________________________________
        
       Open Heart Protocol
        
       Author : thunderbong
       Score  : 160 points
       Date   : 2025-01-22 10:49 UTC (3 days ago)
        
 (HTM) web link (openheart.fyi)
 (TXT) w3m dump (openheart.fyi)
        
       | xlii wrote:
       | It seems nice but every single time I see service allowing
       | anonymous uploads like such I'm thinking immediately: criminal
       | use.
       | 
       | How hard would it be write a protocol that uses relatively safe
       | urls to encode messages, e.g. by ensuring that the ratio of
       | emojis isn't serialized URL, credentials to some stash or an
       | encoded picture no one wants to keep?
        
         | graemep wrote:
         | What do you have in mind? It seems to only allow sending a
         | single character at a time from a limited set. What criminal
         | use does that allow?
        
           | xlii wrote:
           | You don't need a upload a lot of data in order to have
           | illegal data stash and there are creative criminals out
           | there.
           | 
           | E.g. for GPS coordinates you need only a 16 digits. Emojis
           | are 8 bytes so by selecting specific ones and adding a
           | control character (or two) and ensuring other stay in
           | sequence you can encode this data in.
           | 
           | And then I can only respond with ,,Did you read article on
           | ACME Times about a car riding a bike?" which is a simple
           | pointer for URL which you might check for the drop
           | coordinates.
           | 
           | This it's also possible to provide encryption keys, url
           | serialization, cryptocurrency wallet pointers etc. And sure,
           | this seems complicated and dystopian but when government asks
           | you to provide data of your users who committed hard crimes
           | it's not really fun to be at position when you say ,,I don't
           | know who my users are".
           | 
           | From my experience any service that allows anonymous write
           | and anonymous read over long periods will sooner or later be
           | used for illicit activity. It doesn't matter if that's 1mb or
           | 10 bytes.
        
             | goosejuice wrote:
             | Sure, I guess that could happen. Hackernews allows anon
             | data uploads over long periods. How many online services
             | actually do KYC if they don't legally have to?
             | 
             | Any motivated criminal could also just use a book cipher or
             | any number of less trackable options.
        
             | graemep wrote:
             | The GET request does not return data in sequence, does it?
             | Just counts fr each emoji.
             | 
             | What exactly does the govt do if you do not have data they
             | want? I assume if you run a service like this you would
             | comply with any data retention requirements in your country
             | and hand over logs - although older ones which you might
             | have deleted to comply with other laws!
             | 
             | Unless you have id verification crminals can sign up with
             | false identities.
        
               | xlii wrote:
               | > Unless you have id verification crminals can sign up
               | with false identities.
               | 
               | Having registration is enough to not be liable, that's
               | why everyone is doing that. You get subpoenaed, you give
               | logs for user that you have, case closed.
               | 
               | Data can be linked to your server. If you cannot pass the
               | torch it's you who will be investigated as potential
               | partner in crime.
        
             | bbor wrote:
             | Why not just use pastebin for a "hey I left ur drugs at
             | this coord", or even just a plain ol' encrypted message
             | over email, Signal, etc...? I'm a little lost here,
             | probably due to naivete. Is the storage of URLs or crypto
             | wallet pointers really the bottleneck for cybercrime?
        
               | xlii wrote:
               | Because that way it's easy to track both poster and
               | visitor (one could say that every visitor of such URL was
               | involved).
               | 
               | Indirect communication shifts focus from channel to
               | method. And if anyone can use channel and anyone can read
               | message then it's impossible to pinpoint true poster and
               | true recipient.
               | 
               | E.g. Few years back I was helping fix a Wordpress site
               | which shared leaked CC through page visitor counters.
               | Imaging proving anyone's participation.
               | 
               | And finally I didn't say anything about it cybercrime,
               | the cases I know of were related to identity theft,
               | assets theft, extortion and illicit videos. Seized
               | servers and personal computer for years.
        
           | reaperducer wrote:
           | _It seems to only allow sending a single character at a time
           | from a limited set. What criminal use does that allow?_
           | 
           | In the age of beepers, criminals found plenty of creative
           | ways to send messages in just a few characters. And this
           | permits emojis, which -- binarily speaking, contain far more
           | bits than a beeper message.
        
             | fizx wrote:
             | The problem isn't that criminals can use your service, its
             | that the service provider really doesn't want to be liable
             | for that happening, which generally only happens when you
             | host illegal content.
        
           | _Algernon_ wrote:
           | >A Open Heart message should contain of a single emoji
           | _sequence_
        
             | LordDragonfang wrote:
             | A single emoji _is_ a sequence (of bytes)
        
               | _Algernon_ wrote:
               | "<thing> sequence" is generally taken as a sequence of
               | <thing>. There is a certain ambiguity there.
        
               | bbor wrote:
               | It's just one :) https://github.com/dddddddddzzzz/open-
               | heart-element/blob/mai...
        
               | triyambakam wrote:
               | So the API rejects a lot of valid emojis from my reading
               | of that
        
               | isitnow wrote:
               | May want to have a look at the linked count again "BBOR":
               | 
               | https://api.oh.dddddddddzzzz.org/github.com/dddddddddzzzz
               | /Op...
               | 
               | https://emojipedia.org/zero-width-joiner
        
               | LordDragonfang wrote:
               | Huh. ZWJ is an interesting corner case. Technically it's
               | supposed to be used when combining emoji sequences that
               | compose another single emoji (flags, skin color, gender,
               | etc), but if the server doesn't discriminate for "real"
               | emoji combos it technically can be an arbitrary combo.
        
             | Kwpolska wrote:
             | This probably refers to emojis made out of multiple
             | codepoints (e.g. skin color + person, or flags which are
             | built out of the country code in a special range).
        
           | GuB-42 wrote:
           | With ZWJ (Zero Width Joiner) sequences you could in theory
           | encode an unlimited amount of data in a single emoji.
           | 
           | Particularly interesting are the "family" emojis, made by
           | joining any number of person-type emoji with ZWJ characters.
           | So in theory, a family made of thousands of men, women,
           | girls, boys, etc... would be a valid emoji.
        
             | isitnow wrote:
             | Yup, ZWJ was my first thought, and yes, it works.
             | 
             | Tried up to 4.
             | 
             | Too lazy to push it to see how many joins until the api
             | breaks.
             | 
             | https://emojipedia.org/zero-width-joiner
        
           | toomim wrote:
           | The ultimate exploit is to create fake "likes". Once any
           | system of likes becomes successful, it gets used for (a)
           | filtering news feeds, and (b) establishing consensus & social
           | truth. This is the biggest exploit there is.
           | 
           | A cheap system for "likes", such as this, is only safe when
           | few people use it. Once it becomes popular, and worth
           | something, it gets exploited, and then utterly fails.
        
           | egypturnash wrote:
           | "A Open Heart message should contain of a single emoji
           | sequence. However, _the emoji sequence may be followed by
           | arbitrary data_ which the server is _expected_ to ignore. "
           | 
           | Italics mine.
           | 
           | That arbitrary data could be a multi-gigabyte zip file of
           | some expensive program, classified data, copyrighted
           | video/music,or _anything_ for all this spec cares.
        
         | notatoad wrote:
         | that's really only a risk when you allow direct retrieval of
         | the uploaded data.
         | 
         | if you're only returning counts and you're not even offering a
         | guarantee that every submission will be counted, then the
         | potential for abuse isn't really any higher than any other
         | website out there.
        
           | xlii wrote:
           | Byte value is a count of flipped bits. Those bits aren't even
           | guaranteed to be correct (see cosmic bit flipping) and yet
           | our computers work this out.
           | 
           | IMO this is risky because it's easy to distribute upload,
           | e.g. I could have infected, semi popular website that would
           | submit distributed request on visit (think about it like 1000
           | credits daily to use to encode message). Visitors of this
           | website wouldn't see a thing and yet the encoded message
           | would be consistent.
           | 
           | As for other websites - especially free image hosts - they
           | often keep a metric ton of data, some won't work if you won't
           | have an identifiable partner cookie on submission request,
           | and there is post upload analysis etc.
        
             | notatoad wrote:
             | like yes, theoretically somebody could probably manage to
             | encode a few bytes of secret message.
             | 
             | but it's just that there's so many easier and better ways
             | to do that, and even if they managed to accomplish it here
             | it's hardly hurting this project - worst case scenario it's
             | a bit of unwanted noise. it seems very silly to worry about
             | it.
        
         | AnthonyMouse wrote:
         | > It seems nice but every single time I see service allowing
         | anonymous uploads like such I'm thinking immediately: criminal
         | use.
         | 
         | This seems like the Hollywood movie plot criminal use.
         | 
         | Actual criminals just put a normal server/proxy in a non-
         | extradition country or compromise any of the zillion unpatched
         | Wordpress instances on the internet or something equally
         | boring.
        
           | Pannoniae wrote:
           | Might I say that this whole safetyist moral panic is _very_
           | convenient for large corporations? If you can 't host your
           | own service due to these concerns, you'll use the cloud :)
        
             | XorNot wrote:
             | It's not a moral panic it's called "an extended engagement
             | with law enforcement will be unpleasant and costly" and you
             | probably don't want that.
             | 
             | And if you're wondering why it's that way, then casually
             | observe everytime people declare that people under arrest
             | or being tried "don't deserve..." something.
        
               | AnthonyMouse wrote:
               | The problem here is that we keep acting like the way we
               | should solve this is by having people making toy projects
               | or general purpose tools cower in fear of their own
               | government and stop trying to make anything, instead of
               | establishing a government that can distinguish between
               | violent drug cartels and child abusers vs. innocent
               | behavior or minor offenses and then not inflict senseless
               | damage on the latter.
        
           | Asooka wrote:
           | It's even more boring: When I share criminal data (usually
           | old movies that are still in copyright), I just put them in
           | an encrypted 7zip archive and upload to google drive, then
           | delete after my friend downloads it.
        
       | xrd wrote:
       | Is this a decentralized like button? It's an interesting
       | alternative to webmention (as is mentioned).
        
         | chrisco255 wrote:
         | Yeah or more like a decentralized reaction button with any
         | emoji.
        
         | pedrovhb wrote:
         | This seems centralized, though you can self-host it.
        
       | seydor wrote:
       | Here's me thinking it would be some open source artificial heart
       | designs.
        
         | asciii wrote:
         | Yeah I thought this was some Pacemaker design stuff.
        
         | a1o wrote:
         | I thought it was about digital communication over 4-20mA
         | devices.
        
         | tedgold wrote:
         | Is it Heartbleed again?
        
       | omk wrote:
       | I like the way this being proposed in a decentralised manner.
       | Kudos to the author for the effort and thought put in.
       | 
       | However, I am curious what the incentive for publishers is to
       | adopt this standard if those emojis are only relevant for the
       | websites own silo? Use cases like these call for customized deep
       | integrated implementations.
       | 
       | My question is a curious one. I might be missing the big picture
       | and would like to get educated.
        
       | _ix wrote:
       | This is dumb; I love it.
        
       | clueless wrote:
       | so one needs to pay for a cloudflare account for this to work?
        
       | helsinki wrote:
       | "The response should be a JSON object mapping Emoji (as Strings)
       | to their count (as Numbers)"
       | 
       | This means ordering semantics are lost.
        
         | Retr0id wrote:
         | Why would you expect/want ordering semantics here?
        
           | LordDragonfang wrote:
           | For many services which allow arbitrary emoji reactions (most
           | notably discord) they remain ordered by "first reacted"
           | order, which can allows emergent behavior like spelling out
           | words with the letter emojis
        
             | Retr0id wrote:
             | Spelling out words feels like an anti-feature in this
             | context
        
         | Spivak wrote:
         | But JSON mappings are ordered. The thing producing/consuming
         | them might choose to map them to an unordered mapping but
         | inherent to them being serialized is you get an order for free.
        
           | hnlmorg wrote:
           | The JSON specification describes objects as unordered. Which
           | means any standards compliant JSON encoders or decoders can
           | and will produce maps in different orders even when the same
           | object is passed through twice.
           | 
           | It's also worth noting that quite a few languages don't
           | guarantee ordered maps either.
           | 
           | If you want an ordered map then you really need a key/value
           | map inside an array:                  [          {
           | Key: ":thumb:",            Value: 4          },          {
           | Key: ":smile:",            Value: 1          }        ]
           | 
           | Though in this specific instance, you'd be better off with
           | more specific key names like "emoji" and "count"
           | (respectively).
           | 
           | Edit: HN stripped the emojis from my comment so I added ASCII
           | placeholder strings into the example to illustrate the same
           | point.
        
       | mg wrote:
       | In theory, Bluesky, Mastodon, Pixelfed etc could offer a service
       | where you drag and drop the button onto the
       | Bluesky/Mastodon/Pixelfed website where you are logged in and
       | sign the reaction in your name. And send the post with a signed
       | message like "Peter Prima endorsed this page with a thumbs up
       | emoji /signed: Peter Prima"
       | 
       | This way, the web would get a decentralized like system.
        
       | blackeyeblitzar wrote:
       | This reminds me of the browser plugin that adds commenting for
       | any website you visit. Whatever happened to that?
        
         | Jolter wrote:
         | I purposely installed a browser plugin that removes comment
         | sections from web sites. I really don't know why anyone would
         | want to add one.
        
           | blackeyeblitzar wrote:
           | I think it was to be able to discuss things on websites that
           | removed comment sections or that had a lot of heavy
           | moderation that prevented meaningful discussions.
        
           | ben0x539 wrote:
           | The problem with comment sections on web sites is that the
           | web sites are incentivized to have shitty comments for
           | engagement and ease of moderation. If it's a browser plugin,
           | it's out of the website's hands and as the user I could
           | probably configure it so I only see comments from people I
           | think are good at commenting, like my friends or people I
           | follow on social media.
        
         | depingus wrote:
         | I feel like this existed in the 90's; Basically a web browser
         | where every page was a chat room. Maybe I'm confusing it with
         | ThePalace or WorldsChat.
        
       | citizenpaul wrote:
       | Yeah this wouldnt't be massivly exploited. /s
       | 
       | Too bad the modern internet is a monitized cesspool. This is a
       | cool idea.
        
       | davidw wrote:
       | This reminds me a bit of 'visitor logs' from the 1990ies.
        
       | marcodiego wrote:
       | How about an "open comment protocol" so we could finally get rid
       | of the siloed internet we have today?
        
         | jasonjayr wrote:
         | SMTP?
        
           | qingcharles wrote:
           | USENET?
        
         | depingus wrote:
         | But we need silos to protect your data from greedy AIs...So we
         | can better package it and sell it to wealthy AIs.
        
         | IncreasePosts wrote:
         | Who is going to deal with spam?
        
       | koolala wrote:
       | So one person can send 10 hearts + some rate limit? Feels like if
       | this took off it would be like a cookie clicker.
        
       | raldi wrote:
       | > If reaction counts are write-only, the server should respond
       | with a 403 or a 404.
       | 
       | Wouldn't HTTP 204 be more appropriate here? A 4xx would make it
       | seem like the request failed, when in fact it succeeded.
        
         | Kwpolska wrote:
         | 403/404 seems to be the response to GET, not POST. In which
         | case 405 Method Not Allowed would be better.
        
           | raldi wrote:
           | Oh, I misread. Indeed, 4xx makes sense for a GET.
        
           | whenlambo wrote:
           | And 405 response must include `Allow: POST` header.
        
       | prezjordan wrote:
       | TIL Intl.Segmenter[0]. The ECMAScript standard library never
       | ceases to amaze me.
       | 
       | [0]: https://github.com/dddddddddzzzz/api-
       | oh/blob/312d490641c7ec7...
        
       | varun_ch wrote:
       | This reminds me of one of my favorite web things:
       | https://incr.easrng.net/
       | 
       | It's a little button counter in an iframe that you can embed on
       | your website. It also looks great next to 88x31s.. I have one in
       | my footer https://varun.ch/
       | 
       | I think I just love the idea of making static pages a little more
       | interactive by adding in these little widgets. I have an HTML
       | form embedded on my contact page that's hooked up to `ntfy` and
       | acts like a 21st century pager. So much fun.
        
       | nine_k wrote:
       | I love the idea of a completely open protocol that thwarts spam
       | by being unable to post any text at all, only tiny predefined
       | pictures, aka emoji.
       | 
       | The obvious abuse will be, of course, pumping some counters to
       | ridiculous values, making them useless as a measure of readers'
       | reaction. Though it can be lighthearted fun in the spirit of the
       | Web form 1994, I suspect that implementing caps could be useful.
       | 
       | Less fun could be posting tons of negative emoji (anger, crap,
       | etc). Some site owners will limit the set of allowed emoji to
       | only positive reactions, as seen in some large Telegram channels
       | currently.
        
       | delichon wrote:
       | I like this idea but think there is a missing link, literally. It
       | needs a built in way to notify URL A of a reaction to URL B, so
       | that reactions can be recorded independently of the target URL.
       | Like putting URL B in a query parameter. This would support
       | repositories of reactions that are independent of the reactee,
       | and not subject to their feelings on the matter.
        
       | kotaKat wrote:
       | ... tried to use the curl commands as-is from the documentation
       | and immediately get slapped by bot protection. :')
        
       | isitnow wrote:
       | Arbitrary length strings (unsure exactly how arbitrary, I've
       | tried up to 4) can be stored using zero width joiners.
       | 
       | https://emojipedia.org/zero-width-joiner
        
       ___________________________________________________________________
       (page generated 2025-01-25 23:00 UTC)