Develop a process or tools to verify that a motion or custodial proposal has not been modified in the time since it was originally published

When a prospective custodian presents a proposal for a motion or custodial grant, I feel it is important for the community to be able to validate that the proposal that they are reading is the same one that everyone else has read.

Are there any suggestions from the team about how this could be done? I’ve considered a couple of different methods, and so far, none have stood out as particularly simple or robust, but conversely, all of them have different benefits that don’t immediately disqualify them.

So far, here are the options that I’ve come up with:

RIPEMD-160
Use RIPEMD-160 to turn the proposal text into a hash that can be displayed for the community to see. Links will be provided on the site to different, 3rd-party sites where a RIPEMD-160 hash can be generated from the text. If the text that is copied and pasted by someone looking to verify that the proposal has not been changed matches the original hash, the proposal is (theoretically) the same.

Submission Generator
Integrate a submission tool into discuss.nubits.com that allows an member to submit a proposal.

  • This proposal would be submitted through a text form (most likely using Markdown) for content, and could include a limited palette of style options (h1, h2, h3, bold, italic, hyperlink, footnote).
  • Also included would be a public “signing key” unique to the person submitting the proposal. They would hold the private key for follow-up confirmations.
  • Once submitted, this input is processed through a LaTeX engine and a non-editable PDF is generated. The resulting document will then be run through an MD5 algorithm and the resulting hash will be made available for follow-up confirmation.
  • Finally, a new topic will be generated on discuss.nubits.com with a auto-generated proposal number, and a copy of the original proposal (in PDF form, with the hash) could then be uploaded to one or more 3rd-party storage sites for archiving. Potential locations include a public Github repository, Pastebin, etc.

It’s very possible that I"m overthinking this problem and that there is a very simple, elegant solution out there that can be used to publish these proposals in such a way that they are both secure and long-lasting. If there are alternatives that you know about, I’d love to hear about them.

2 Likes

Here is a link if you like to play with ripemd-160:
http://crypo.in.ua/tools/eng_ripemd.php

Ripemd-160 is readily available, the submission generator requires some work clearly.

With the submission generator one can trace back to a person holding a key, with that the ability to built reputation, stay anonymous and still publish on multiple locations, which I think is desirable.

I hope there are simpler ready-made tools out there to achieve the same though.

I totally agree, we need something like that. While your solution proposal make sense to me, I would wait before implementing it. As you say, there might be a out-of-the-box solution or some better idea around. We need to research the topic : what are other industries or use cases where a similar solution is needed?

I’m going to conduct a trial run to see how easy it would be to use Markdown as a possible syntax. There are a variety of online tools available that will take a Markdown-formatted document and turn it into a PDF for you, cleanly.

During my research this morning, I came across Pandoc, which could be a very nice component to include in any plugin solution we may attempt to develop. From the tool’s “About Pandoc” web content:

If you need to convert files from one markup format into another, pandoc is your swiss-army knife. Pandoc can convert documents in markdown, reStructuredText, textile, HTML, DocBook, LaTeX, MediaWiki markup, OPML, Emacs Org-Mode, Txt2Tags, Microsoft Word docx, EPUB, or Haddock markup to

  • HTML formats: XHTML, HTML5, and HTML slide shows using Slidy, reveal.js, Slideous, S5, or DZSlides.
  • Word processor formats: Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML
  • Ebooks: EPUB version 2 or 3, FictionBook2
  • Documentation formats: DocBook, GNU TexInfo, Groff man pages, Haddock markup
  • Page layout formats: InDesign ICML
  • Outline formats: OPML
  • TeX formats: LaTeX, ConTeXt, LaTeX Beamer slides
  • PDF via LaTeX
  • Lightweight markup formats: Markdown, reStructuredText, AsciiDoc, MediaWiki markup, DokuWiki markup, Emacs Org-Mode, Textile
  • Custom formats: custom writers can be written in lua.

Pandoc understands a number of useful markdown syntax extensions, including document metadata (title, author, date); footnotes; tables; definition lists; superscript and subscript; strikeout; enhanced ordered lists (start number and numbering style are significant); running example lists; delimited code blocks with syntax highlighting; smart quotes, dashes, and ellipses; markdown inside HTML blocks; and inline LaTeX. If strict markdown compatibility is desired, all of these extensions can be turned off.

LaTeX math (and even macros) can be used in markdown documents. Several different methods of rendering math in HTML are provided, including MathJax and translation to MathML. LaTeX math is rendered in docx using native Word equation objects.

Pandoc includes a powerful system for automatic citations and bibliographies, using pandoc-citeproc (which derives from Andrea Rossato’s citeproc-hs). This means that you can write a citation like

[see @doe99, pp. 33-35; also @smith04, ch. 1]

and pandoc will convert it into a properly formatted citation using any of hundreds of CSL styles (including footnote styles, numerical styles, and author-date styles), and add a properly formatted bibliography at the end of the document. Many forms of bibliography database can be used, including bibtex, RIS, EndNote, ISI, MEDLINE, MODS, and JSON citeproc. Citations work in every output format.

Pandoc includes a Haskell library and a standalone command-line program. The library includes separate modules for each input and output format, so adding a new input or output format just requires adding a new module.

Pandoc is free software, released under the GPL. © 2006-2014 John MacFarlane.

Just to clarify, the steps included above would not be steps that the person submitting the proposal would need to take, themselves. A lot of the functionality would exist behind the scenes. The only steps that we would require of someone who is submitting a proposal would be to:

  • Connect their signing key to their forum account
  • Fill out the proposal details using the plugin’s integrated form (text, file attachment, etc.)
  • Confirm (using a document preview) that the to-be-submitted content that was generated by the tool meets their needs and that it is correct and accurate.
  • Submit the approved copy of the proposal.

Once it is submitted, the tool would handle the rest of the steps (generating an md5 hash, creating a new topic in the correct category on the forum using the Discourse API, and then passing the document along to whatever third-party archiving sites we’ve agreed upon using each of those service’s respective APIs.

I understand that this isn’t a simple proposal, and that the level of effort to build this tool could be very large.

I just came across this link on DeepDotWeb for a service called BlockSign.

Functionally, it’s a step in the direction that we’re discussing. They are trying to make it a pay service, but if they accept Bitcoin, it may be useful. I’ll check it out.

Edit: Here’s the /r/Bitcoin posting that I found it through. It may have interesting comments over time, but right now it’s barren.