[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)