senooken JP Social
  • FAQ
  • Login
senooken JP Socialはsenookenの専用分散SNSです。
  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. zunda (zundan@mastodon.zunda.ninja)'s status on Thursday, 28-Jul-2022 22:13:49 JST zunda zunda

    技術オタクとしてスマートコントラクトのことを勉強するのは楽しいだろうと思うんだけど僕は実用にはならないんじゃないかと思ってるよ。

    スマートコントラクトはコードの保管場所も状態の保管場所もブロックチェーンになっているのでコードもコードのステップごとの状態変化も全て公開されている。この状態で、例えば秘密投票を実現するためには、1ステップでアトミックに暗号化された多数の投票内容を復号して票の数を集計する命令を実装する必要がある。コードを実行してブロックをチェーンにつなぐためには、あるノードがノンスを発見するだけではなくて、多くのノードが同じコードを実行してノンスの検証をする必要があるので、多くのノードでこのアトミックな命令を実行する必要があることになる。

    それだけのコストをかけても、参加する全員を信用できない組織を運用する必要があるとは思えないんだよね。組織の誰かを信用するなら、そこを信用の起点にして、ブロックチェーンを利用しないで従来と同じように組織を運用すればいいだけなんよね。

    In conversation Thursday, 28-Jul-2022 22:13:49 JST from mastodon.zunda.ninja permalink
    • ikeji (ikeji@ostatus.ikeji.ma)'s status on Thursday, 28-Jul-2022 22:13:47 JST ikeji ikeji
      in reply to
      @zundan 誰が入れたかわからなくできたら、誰が開けても問題ないのでは?
      In conversation Thursday, 28-Jul-2022 22:13:47 JST permalink
    • zunda (zundan@mastodon.zunda.ninja)'s status on Thursday, 28-Jul-2022 22:13:48 JST zunda zunda
      in reply to

      待って、やっぱりスマートコントラクトで秘密投票は実装できない。

      開票メソッドがそれぞれの投票用紙を複号できるってことはブロックチェーンのどこかから復号鍵が得られる(どこから得られるかは開票メソッドのコードに書いてる)ってことだから、暗号化された投票用紙を誰でも複号できちゃうことになる。

      それでも誰が何に投票したかわからないようにするためには投票元のウォレットが匿名のままにする必要がある。ということは組織の意思を決める投票権を誰だかわからない人に渡すことになる。それでいい組織もあるだろうけど、僕には多くはなさそうに思えてくる。

      いやぁポンコツだねえ…

      In conversation Thursday, 28-Jul-2022 22:13:48 JST permalink
    • ikeji (ikeji@ostatus.ikeji.ma)'s status on Thursday, 28-Jul-2022 22:17:56 JST ikeji ikeji
      in reply to
      • ikeji
      @zundan 例えばzcashは誰が誰に払ったかブロックチェーンからはわからないことになってて、
      zcashのシステムを使って、投票券を出したい人にトークンを配って支払いを投票にしたら実現できないですかね。
      In conversation Thursday, 28-Jul-2022 22:17:56 JST permalink
    • ikeji (ikeji@ostatus.ikeji.ma)'s status on Friday, 29-Jul-2022 12:49:20 JST ikeji ikeji
      in reply to
      • 斎藤ただし
      @tadd @zundan
      準備
      1. 投票者の人数分の鍵ペア(投票鍵)を用意する。
      2. 投票秘密鍵をそれぞれの投票者の公開鍵で暗号化する。
      3. 誰にどの秘密鍵を割り当てたかは忘れる。
      4. 投票鍵の公開鍵のリスト、投票者用の暗号化済みの秘密鍵のリストを公開。

      投票
      1. 投票者は自分の秘密鍵で、投票秘密鍵を取り出す。
      2. 投票先を投票秘密鍵で署名。
      3. 新しい公開鍵で(匿名で)投票

      集計
      1. 票を投票公開鍵で開票。
      2. カウント

      みたいなの考えましたが、準備する人を信頼しないといけないので、要求に合ってるかわかりません。
      In conversation Friday, 29-Jul-2022 12:49:20 JST permalink
    • 斎藤ただし (tadd@best-friends.chat)'s status on Friday, 29-Jul-2022 12:49:21 JST 斎藤ただし 斎藤ただし
      in reply to

      @zundan 教えてくださってありがとうございます!具体的な応用例やら問題点を知らなかったので知れて嬉しいです。さすがに研究者の人たちは素人の思い付きの何倍も先を行っていて安心😌

      しかしなるほど、そうだとすると厳しいですねぇ。それぞれの投票内容はいつ誰にも=集計する人(システム?)でさえも、見られたくないし。そしてスマコンとかなら当然、全員が集計の計算ができて、その結果を見られて、それらは検証できないといけないだろうし……。(続)

      In conversation Friday, 29-Jul-2022 12:49:21 JST permalink
    • 斎藤ただし (tadd@best-friends.chat)'s status on Friday, 29-Jul-2022 12:49:21 JST 斎藤ただし 斎藤ただし
      in reply to

      @zundan その後、完全な素人考えと思いつきを10分くらい繰り返し、例えばこんなのを考えました。

      1. 投票前に有権者を確定する
      2. 有権者全員の鍵を合成して、全員の意思がないと開けられない鍵(選挙委員会鍵?)を作る
      3. それで暗号化して投票・集計
      4. 結果だけ全員で復号

      しかし

      * 1はそもそもできるのorしていいの?(スマコン界隈知識の不足)
      * 2/4もそもそもできるの?(暗号の基礎知識の不足)
      * 結局、4で誰か一人の意思(悪意)だけでまるっと結果を破棄できて、あまりにも弱くね?

      ということで、個人にもボツですね😭

      In conversation Friday, 29-Jul-2022 12:49:21 JST permalink
    • zunda (zundan@mastodon.zunda.ninja)'s status on Friday, 29-Jul-2022 12:49:22 JST zunda zunda
      in reply to
      • 斎藤ただし

      @tadd 暗号文の掛け算をすると平文の足し算をしたことになる(加法準同型というのですね)Paillier暗号というのがあるそうです。これは使える!と思ったのですが、掛け算の結果を平文の足し算に複号する段階で私有鍵が必要で、同じ鍵でそれぞれの投票内容も複号できちゃいそうです。私有鍵を隠せないスマートコントラクトの場合には使えなさそう…。

      https://tex2e.github.io/blog/crypto/homomorphic-tallying-with-paillier

      In conversation Friday, 29-Jul-2022 12:49:22 JST permalink
    • 斎藤ただし (tadd@best-friends.chat)'s status on Friday, 29-Jul-2022 12:49:23 JST 斎藤ただし 斎藤ただし
      in reply to

      @zundan 脊髄反射で「準同型暗号」というキーワードだけ浮かびました。
      (復号不要で計算可・ただし制限多し、ということしか分からない素人です。たぶんずんださんの方が詳しそうなので、間違ってるかも)

      In conversation Friday, 29-Jul-2022 12:49:23 JST permalink
    • zunda (zundan@mastodon.zunda.ninja)'s status on Friday, 29-Jul-2022 12:49:23 JST zunda zunda
      in reply to
      • 斎藤ただし

      @tadd ありがとうございます!勉強してみるー。僕は非対称鍵暗号の表層しか知りません…。

      In conversation Friday, 29-Jul-2022 12:49:23 JST permalink
    • ikeji (ikeji@ostatus.ikeji.ma)'s status on Friday, 29-Jul-2022 12:53:30 JST ikeji ikeji
      in reply to
      • 斎藤ただし
      • ikeji
      @tadd @zundan 多分、質問を言い換えるとDAOはDeterministicである必要があるか?かな。
      In conversation Friday, 29-Jul-2022 12:53:30 JST permalink
    • ikeji (ikeji@ostatus.ikeji.ma)'s status on Friday, 29-Jul-2022 13:36:17 JST ikeji ikeji
      in reply to
      • 斎藤ただし
      @zundan @tadd ↑の方法は、票が書きかえられてないとか、集計が正しいとかは証明できていいかなと思います。

      そもそもの問題として、スマートコントラクトが好きな人のいう投票って、秘密投票なんですか? 株主の議決権を使った投票みたいなもので、公開でやるものだと思ってました。
      In conversation Friday, 29-Jul-2022 13:36:17 JST permalink
    • zunda (zundan@mastodon.zunda.ninja)'s status on Friday, 29-Jul-2022 13:36:18 JST zunda zunda
      in reply to
      • 斎藤ただし
      • ikeji

      @ikeji @tadd なるほど!準備の3と投票の3で匿名化できて、さらに投票の2で投票権があることも確認できそうです。しかーし、おっしゃる通り準備する人を信頼するなら必要があるなら開票までぜんぶ任せちゃえばよいわけで、スマートコントラクトを使う必要がなくなっちゃうような気もしますよね…。

      In conversation Friday, 29-Jul-2022 13:36:18 JST permalink
    • mmasuda ????????#あらゆる軍事侵攻に反対します (mmasuda@fedibird.com)'s status on Friday, 29-Jul-2022 14:15:24 JST mmasuda  ????????#あらゆる軍事侵攻に反対します mmasuda ????????#あらゆる軍事侵攻に反対します
      in reply to
      • 斎藤ただし
      • ikeji

      @ikeji @tadd @zundan

      投票
      1. 投票者は自分の秘密鍵で、投票秘密鍵を取り出す。
      2. 投票先を投票秘密鍵で署名。
      3. 新しい公開鍵で(匿名で)投票

      この一連の操作を行う端末が信頼できる出来る端末であるか保証するのが結構大変かも。
      端末システムをhack して2の操作をするときにバックグラウンドでは実際の投票先とは違う投票先に改ざんして署名してしまうようにしてしまうというのを狙われたらどうか。
      もしくは「意に染まぬ投票先」だったのを検知したときはUIでは処理が進むように見せかけて実際には処理がされていないというようなhack とか。

      何か勘違いしていたらすまん(あらかじめ謝っておく)。

      In conversation Friday, 29-Jul-2022 14:15:24 JST permalink
    • ikeji (ikeji@ostatus.ikeji.ma)'s status on Friday, 29-Jul-2022 14:15:24 JST ikeji ikeji
      in reply to
      • 斎藤ただし
      • mmasuda ????????#あらゆる軍事侵攻に反対します
      @mmasuda @tadd @zundan ええ、他にも単純に秘密鍵を盗まれるとかですね。

      投票一般にはmikurubeさんの記事がよくまとまってると思います。
      https://zenn.dev/dmikurube/articles/online-voting-is-hard-ja
      In conversation Friday, 29-Jul-2022 14:15:24 JST permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: res.cloudinary.com
        オンライン投票はなぜ『難しい』のか
        from http://www.hatena.ne.jp/dmikurube/

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.