Show original
Enjoyed this article?
Use "Request tipping" to ask the author to set up tip receiving.

AI translation
Even if they say "Since it's OSS, I created my own version by reusing the code," I think the response is... and I looked into it.
Enjoyed this article?
Use "Request tipping" to ask the author to set up tip receiving.
I started thinking about this while doing OSS development, thinking "I still want to assert my rights."
I understand the valid argument that "it's unavoidable because it's OSS," but once that's said, the conversation ends, so I'd like to set that aside for now.
This article is a conceptual memo of how I've grappled with this contradiction.
※This is merely a record of my personal trial and error. I'm sure there are people with different views, but I'd appreciate it if you'd read this as one perspective.
It's natural that code gets reused in OSS. But I feel uncomfortable when someone just changes the copyright notice and claims it as their own work.
However, proving this is difficult.
→ Can be altered
→ Impossible to track if the language is different
→ People who don't follow it won't follow it
Since it's publicly available, proving authorship is difficult.
So I thought, could we create a mechanism like DRM where "copying doesn't make it work"?
So I thought, could we address this with DRM? But first, the concept of DRM itself was vague, so I researched it.
DRMの仕組み(アドビ)
(I've looked at various sources, but I'll limit myself to one link since I can't paste them all.)
In conclusion, I thought OSS and DRM are incompatible.
A mechanism that ensures trust chains through technology
Transparency where anyone can verify, modify, and redistribute
DRM presupposes "closed trust," while OSS presupposes "open verification." These two are structurally contradictory.
So what should we do?
DRM contradicts the essence of OSS. So how far can we compromise?
After thinking about it, I realized we should narrow it down to just "proving origin."
In other words, enforce license attribution.
But that's meaningless to people who don't follow the rules.
So, we should create a mechanism at the code level that makes "removing license attribution difficult."
Make it technically cumbersome to remove, so people think "it's faster to write it myself than to plagiarize."
To begin with, it's difficult to deal with people who have clear malicious intent and technical skills.
Having thought this far, what occurred to me was not "preventing plagiarism" but "proving origin."
I'm working on something proper, but here's what I'm thinking at this point.
To reiterate, this is different from DRM.
I thought if it's treated as DRM, there would be these three concerns.
On the other hand, if provided as OSS,
these benefits remain.
So, I'll think about the actual mechanism going forward, but
So, I'll think about the actual mechanism going forward, but I don't mind if other people come up with the same mechanism and end up with the same result, so I'm publishing this at the conceptual stage.
Using this idea, I created an origin-proving module in Qt6 C++.
TrustChain(出自証明機能追加モジュール)
I'd be happy if you'd consider using it.
※The image was drawn by ChatGPT.
※Also, due to my poor writing skills, I had GPT and Claude review it and made substantial revisions. (I feel like my personal touch to the memo has disappeared.)
OSS開発をしていて、「それでも権利は主張したい」と思ったのが発端。
「OSSなんだから仕方ない」という正論は理解しているが、それを言われると話が終わってしまうので、ここでは一旦脇に置いてほしい。
本記事は、その矛盾にどう向き合ったかの構想メモです。
※あくまで個人的な試行錯誤の記録です。考えが違う方もいると思いますが、一つの視点として読んでいただければ幸いです。
OSSなんだからコードを流用されるのは当然。でも、コピーライトだけ変えて自作発言されるのは違和感がある。
ただ、これを証明するのが難しい。
→ 改変可能
→ 言語が違えば追跡不可能
→ 守らない人は守らない
公開している以上、著作権の証明は困難。
じゃあ、DRMのような「コピーしても動かない仕組み」を作れないか?と考えた。
じゃあDRMで対策できないか?と考えたが、そもそもDRMとは何かが曖昧だったので調べた。
DRMの仕組み(アドビ)
(色々見たつもりだが、リンクが貼り切れないので1か所にとどめる。)
結論から言うと、OSSとDRMは相性が悪いと思った。
信頼の連鎖を技術で担保する仕組み
誰でも検証・改変・再配布できる透明性
DRMは「閉じた信頼」を前提とし、OSSは「開かれた検証」を前提とする。この二つは構造的に矛盾する。
じゃあ、どうすればいいのか?
DRMはOSSの本質と矛盾する。じゃあ、どこまでなら折り合いがつくのか?
考えた結果、「出自の証明」だけに絞ればいいんじゃないかと思った。
要は、ライセンス表記を強制すればいい。
でも、ルールを守らない人には意味がない。
だったら、コードレベルで「ライセンス表記を削除しにくくする」仕組みを作ればいい。
削除するには技術的な手間がかかるようにして、「盗用するより自分で書いた方が早い」と思わせる。
そもそも、明確な悪意があって技術スキルもある人には対処は難しい。
と、ここまで考えて思い立ったのが、「盗用を防ぐ」のではなく「出自を証明する」仕組みだった。
ちゃんとしたものは作成中だが、現時点ではこんな感じ。
繰り返しになるが、DRMとは違う。
DRM扱いされると、下記3点の懸念があると思った。
一方、OSSとして提供すれば、
というメリットは残る。
なので、これから実際の仕組みは考えるんだけど、
なので、これから実際の仕組みは考えるが、他の人が同じ仕組みを考えて結果的に同じになるのは気にしないので、構想段階で公開してみた。
この考えを利用して出自証明を行うモジュールをQt6C++で作成しました。
TrustChain(出自証明機能追加モジュール)
宜しければ使っていただけたらと思います。
※画像はChatGPTに描いてもらいました。
※あと、文章力無さ過ぎ問題でGPTとClaudeにレビューしてもらってがっつり修正しました。(メモに対する自分らしさが消えた気がする。)