https://medium.com/@shierve/releasing-the-nem-voting-module-28c28597d790
NEMの投票モジュールに関する記事の後半の技術関係の訳です。翻訳精度については保証しません。
この記事はCanal氏の許可を取って投稿しています。
技術の詳細
モジュールのデータ構成には4つのメインコンセプトがあります。
Poll Index Account (PI)
Poll Account (PA)
Option Account (OA)
Voter Account (V)
投票が作成された時に最初に起こることは Poll Accountの作成です。
作成者は投票に関わる全ての情報をNEMのトランザクションに含まれるメッセージとしてPoll Accountに送信します。この情報は投票のタイトルや説明等です。
次に投票の持つオプションのためにOption Accountが作成されます。メッセージは説明等と共にOption Accountのアドレス情報を含むPoll Accountに送信されます。
ここまでのステップが完了すると、投票は既に形成されていて投票は可能な状態ですが、
最初に我々はその投票をPoll Indexに追加します。読み込みを早くするためにIndex Accountに投票に関するいくつかの情報を送信するのです。私たちはこれを poll headerと呼んでいます。Poll headerはPoll Accountやタイトル、タイプ等の情報を含んでいます。
メッセージのconfirmationsが終わったら、投票は正しく形成されpoll indexに表示されます。既に投票可能です。
票は空のNEM トランザクションとして選択されたoption accountに送信されます。
トランザクションはいかなるメッセージもxemも送信しません。単純に費用が発生するだけです。(通常の投票には1xem, マルチシグでは7xem)
新しいPoll Indexは誰でも作成可能です。新しいPoll Indexを作ると新しいNEMアカウントが作成され、2つのメッセージが作成者に送信されます。
一つ目はPoll indexに送信されます。作成のお知らせとその情報です。Poll Index情報はそれがプライベート Indexであれは作成者のアドレスを表示します。
二つ目は作成者のアカウントから作成者のアカウントへ送信されます。ユーザーはそのメッセージを確認することで自分で作成した投票を確認するこができます。
Index Accountの作成者のみが投票の作成を行えるPrivate Indexを作ることができます。Indexオーナー以外の作成した投票は表示されません。
投票が途中でもブロックチェーンの現在のブロックから情報を引き出して経過を確認することができます。
投票が終了するとブロックチェーンの履歴からデータが計算されます。
追加コメント
将来的にはモザイクを使用して票の重さを決める別のタイプの得票システムを実装したいと思っています。
これはとても面白い投票システムとなるでしょう。例えばもし貴方が会社を持っていて、社内的な投票を行いたい時にはモザイクを作成して配布できます。重要人物には多くのモザイクを配布できますし、XEMをモザイク代わりにすればPOSで得票を決めることができます。
この新機能は既にある投票システムと同時に機能が可能で現時点で既に票の重みを変えることが出来ます。
しかしNEM APIからはまだモザイクの履歴データにアクセスすることが出来ないので、ブロックチェーン上から計算せずに過去の記録を信頼しなければならなくなるため、最初のバージョンにはこれを含めないことに決めました。
我々はトラストレスで非中央集権性を実現できるまで待つ方を選びました。
この開発を支援してくれたAtrauraチームの全員にお礼を言いたいと思います。
特にNEMに誘ってくれて、この確かな技術に関わる最初の一歩を導いてくれたAlbert Castellanaさん。
そしてフィードバックや励ましをくれたJeff McDonaldさん。
バグやフィードバックをくれたRin Mizunashi さんや Quantum Mechanicsさんをはじめテスターの皆さん。
彼ら無しには不可能でした。
Congratulations @takeuchi! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of comments
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @takeuchi! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes received
Award for the number of upvotes
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit