Smart Contracts for Assessing Truth on a Blockchain
20220327112 · 2022-10-13
Assignee
Inventors
Cpc classification
G06F16/2379
PHYSICS
G06F21/64
PHYSICS
G06F16/9536
PHYSICS
G06F16/955
PHYSICS
International classification
Abstract
Disclosed is a system and method for associating endorsers with articles on by querying a smart contract on a blockchain. The invention establishes an assessor account for an assessor in an assessment database. The assessor account includes assessment attributes of an assessor. An article record is established for an article in the smart contract on a blockchain. The article record includes a URI, an article status from said assessor, and an association between the article record and the assessor account. The system responds to a request from an article viewer in which the request includes the URI of the article by querying the smart contract, determining if the URI supplied is associated with an article record, and if so, returning to the article viewer a response that includes the article status.
Claims
1. A non-transitory computer-readable medium with an executable program stored thereon, wherein the program instructs a processor connected to a network to perform operations comprising: establishing an assessor account for an assessor in an assessment database, wherein said assessor account comprises assessment attributes of an assessor; establishing an article record for an article in a smart contract on a blockchain, wherein said article record includes a URI, an article status from said assessor, and an association of said article record to said assessor account; responding to a request from an article viewer, wherein said request includes said URI, by querying said smart contract on said blockchain, determining if said URI is associated with said article record, and returning to said article viewer a response comprising said article status.
2. The non-transitory computer-readable medium of claim 1 wherein said assessment database comprises a second smart contract on said blockchain.
3. The non-transitory computer-readable medium of claim 1 wherein said article is composed of one or more subparts, and said article record further includes a URI, an association of said article record to said assessor account, and an article status from said assessor for each said subpart, and wherein said attribute of interest comprises a filter based on said article status, by querying said smart contract on said blockchain, determining if said URI is associated with said article record, filtering each of said subparts by said attribute of interest and returning to said article viewer a response comprising said article subparts matching said attribute of interest in said request.
4. The non-transitory computer-readable medium of claim 1 wherein establishing an assessor account includes requiring the assessor to verify said assessor's identity.
5. The non-transitory computer-readable medium of claim 1 wherein said response further includes said assessment attributes.
6. The non-transitory computer-readable medium of claim 1 further comprising modifying said article status in response to a challenge from a challenging assessor wherein said challenge has successfully traversed an adjudication process.
7. The non-transitory computer-readable medium of claim 1 wherein said article record may be associated with a plurality of assessor accounts.
8. The non-transitory computer-readable medium of claim 1 wherein said article record may represent a directory of articles.
9. A device, comprising: one or more memories; and one or more processors communicatively coupled to the one or more memories, configured to: establish an assessor account for an assessor in an assessment database, wherein said assessor account comprises assessment attributes of an assessor; establish an article record for an article in a smart contract on a blockchain, wherein said article record includes a URI, an article status from said assessor, and an association of said article record to said assessor account; respond to a request from an article viewer, wherein said request includes said URI, by querying said smart contract on said blockchain, determining if said URI is associated with said article record, and returning to said article viewer a response comprising said article status.
10. The device of claim 9 wherein said assessment database comprises a second smart contract on said blockchain.
11. The device of claim 9 wherein said article is composed of one or more subparts, and said article record further includes a URI, an association of said article record to said assessor account, and an article status from said assessor for each said subpart, and wherein said attribute of interest comprises a filter based on said article status, by querying said smart contract on said blockchain, determining if said URI is associated with said article record, filtering each of said subparts by said attribute of interest and returning to said article viewer a response comprising said article subparts matching said attribute of interest in said request.
12. The device of claim 9 further comprising modifying said article status in response to a challenge from a challenging assessor wherein said challenge has successfully traversed an adjudication process.
13. The device of claim 9 wherein said article record may be associated with a plurality of assessor accounts.
14. The device of claim 9 wherein said article record may represent a directory of articles.
15. A method for associated endorsers with articles on a blockchain, said method comprising: establishing an assessor account for an assessor in an assessment database, wherein said assessor account comprises assessment attributes of an assessor; establishing an article record for an article in a smart contract on a blockchain, wherein said article record includes a URI, an article status from said assessor, and an association of said article record to said assessor account; responding to a request from an article viewer, wherein said request includes said URI, by querying said smart contract on said blockchain, determining if said URI is associated with said article record, and returning to said article viewer a response comprising said article status.
16. The method of claim 15 wherein said assessment database comprises a second smart contract on said blockchain.
17. The method of claim 15 wherein said article is composed of one or more subparts, and said article record further includes a URI, an association of said article record to said assessor account, and an article status from said assessor for each said subpart, and wherein said attribute of interest comprises a filter based on said article status, by querying said smart contract on said blockchain, determining if said URI is associated with said article record, filtering each of said subparts by said attribute of interest and returning to said article viewer a response comprising said article subparts matching said attribute of interest in said request.
18. The method of claim 15 further comprising modifying said article status in response to a challenge from a challenging assessor wherein said challenge has successfully traversed an adjudication process.
19. The method of claim 15 wherein said article record may be associated with a plurality of assessor accounts.
20. The method of claim 15 wherein said article record may represent a directory of articles.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0065] A complete understanding of the present invention may be obtained by reference to the accompanying drawings, when considered in conjunction with the subsequent, detailed description, in which:
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
DETAILED DESCRIPTION
[0077] Before the invention is described in further detail, it is to be understood that the invention is not limited to the particular embodiments described, as such may, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only, and not intended to be limiting, since the scope of the present invention will be limited only by the appended claims.
[0078] Where a range of values is provided, it is understood that each intervening value, to the tenth of the unit of the lower limit unless the context clearly dictates otherwise, between the upper and lower limit of that range and any other stated or intervening value in that stated range is encompassed with the invention. The upper and lower limits of these smaller ranges may independently be included in the smaller ranges is also encompassed within the invention, subject to any specifically excluded limit in the stated range. Where the stated range includes one or both of the limits, ranges excluding either or both of those included limits are also included in the invention.
[0079] Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Although any methods and materials similar or equivalent to those described herein can also be used in the practice or testing of the present invention, a limited number of the exemplary methods and materials are described herein.
[0080] It must be noted that as used herein and in the appended claims, the singular forms “a”, “an”, and “the” include plural referents unless the context clearly dictates otherwise.
[0081] All publications mentioned herein are incorporated herein by reference to disclose and describe the methods and/or materials in connection with which the publications are cited. The publications discussed herein are provided solely for their disclosure prior to the filing date of the present application. Nothing herein is to be construed as an admission that the present invention is not entitled to antedate such publication by virtue of prior invention. Further, if dates of publication are provided, they may be different from the actual publication dates and may need to be confirmed independently.
[0082] We describe a system that enables users to easily determine whether an article can be trusted by conveying to the user whether the article has been endorsed by an endorser. A further embodiment of the present invention provides the user with endorsement attributes. Examples of endorsement attributes may include name, profession, employer, reputation, identification, qualification, and history of the endorser. This allows a user to see who has endorsed an article and determine whether that endorser should be trusted.
[0083] An assessment database is used to record the associations between an article record, including a URI, and its assessor (which may be one or more assessors). The assessment database also records associations between the assessor and the attributes about that assessor that the article viewer can respond to. In the simplest case, there is only one assessor and the only attribute considered is whether the assessor is TRUSTED or MISTRUSTED. In this case, the article viewer shows the article and prominently displays TRUSTED or MISTRUSTED accordingly. In other cases, the user can request to filter out presentation of any article or portion of an article that has particular assessor attributes, such as MISTRUSTED.
[0084] An article can be composed of multiple articles, some of which are assessed articles as well. In this case, the article viewer accesses the assessment attributes for each assessed component as well as the overall article. The article viewer then displays the selected assessment attributes used for filtering. In the default case, the article viewer shows the TRUSTED or MISTRUSTED attribute for the overall article. The user can request to display this or other attributes for the overall article or any of its components, and can also request to filter retrieval and display to those articles or components that have the attributes of interest.
[0085] Accordingly, this invention provides a layer of information about the trustworthiness of articles and sources and filtering mechanisms sensitive to that information that enable consumers to find articles from trusted sources efficiently.
[0086] In some embodiments, the assessor informs the system that an entire directory should be considered TRUSTED. In this case, every article retrieved from that directory is viewed as TRUSTED. The assessor can indicate whether articles in all of that directory's subdirectories, if any, should be considered TRUSTED, or whether only those in the named TRUSTED directory itself should be TRUSTED.
[0087] This system can also maintain a reputation object about each known party. The party may be an author, publisher, assessor, user or challenging assessor of an article. The reputation object records some or all data pertinent to a party's reputation, including what identification materials were used to vouch for the party's online credentials and the process or service used to validate those materials and the process or service used to verify the party's online credentials. In addition, the system can maintain a history of the articles the party has authored, published, assessed, justified, accessed, and challenged. A party can justify an article by providing evidence for some of its assertions. A party can challenge an article by providing evidence refuting or undercutting some of its assertions. In a system context where adjudicators are called upon to assess evidence, the reputation object should also record the outcome of such adjudications. This makes it possible for reputations to be enhanced by supporting adjudications or deprecated in response to adverse adjudications. For example, the reputation of an author should be enhanced when a challenge to the author's evidence is rejected. The reputation of a party whose challenge to an article's veracity is upheld by adjudication should likewise be enhanced. Reputations can also be associated with articles, as with parties who author, publish, assess, justify and access articles.
[0088] In some environments, reputations are stored in a secure database. In one preferred implementation, reputations are recorded using a blockchain, making possible a complete chronological record of all transactions related to articles and parties. This would provide maximum information about reputations that could be supplied to people or programs that need it. In other embodiments, the reputations may be provided by distributed services called upon to supply or vouch for an assessor's credentials. A plurality of such services might be employed, so that the reputations are available through a federation of reputation services. This has the advantage of enabling a variety of identity authenticators to provide and support reputations.
[0089] Turning now to
[0090] The following is Solidity code for a smart contract to establish the data structure and set the article record on the Ethereum blockchain:
TABLE-US-00001 contract Proof { struct ArticleDetails { uint timestamp; string assessor; string articleStatus; } mapping (string => ArticleDetails) files; event logFileAddedStatus(bool status, uint timestamp, string assessor, string articleStatus, string articleHash); function set(string memory assessor, string memory articleStatus, string memory articleHash) public { if(files[articleHash].timestamp == 0) { files[articleHash] = ArticleDetails(block.timestamp, assessor, articleStatus); emit logFileAddedStatus(true, block.timestamp, assessor, articleStatus, articleHash); } else { emit logFileAddedStatus(false, block.timestamp, assessor, articleStatus, articleHash); } }
[0091] Following is Solidity code for a function in a smart contract to retrieve the article record from the blockchain.
TABLE-US-00002 function get(string memory articleHash) public view returns (uint timestamp, string memory assessor, string memory articleStatus) { return (files[articleHash].timestamp, files[articleHash].assessor, files[articleHash].articleStatus); }
[0092] Continuing with
[0093] Turning now to
[0094] Turning now to
[0095] Turning now to
[0096] In
[0097] In
[0098] Turning now to
[0099] Turning now to
[0100] Continuing with
[0101] Turning now to
[0102] In one embodiment of the present invention, each article is in the form of an object, with various facets or attributes. Examples of the types of facets that could be incorporated in an embodiment include: Endorser, Date of Endorsement, URI for Article, Original Hash-signature of Article, Current Hash-signature of Article, List of Most Frequent Questions Answered by Article, List of Most Frequent Questions Article Raises, Cited Supporting Articles, Trustworthiness Status of Article, and Justification of Trustworthiness Status. The Original Hash-signature of Article records a key computed from the Article found at the URI when the article was endorsed. The Current Hash-Signature of Article determines the value of that key for the Article at the URI. Any difference indicates that the endorsed article has been changed and should no longer be considered TRUSTED. Absent any other information, in one embodiment of the present invention, the Trustworthiness Status of Article is changed to UNKNOWN, reflecting that it has no current valid Endorsement. In one embodiment of the present invention, a note is added to Justification of Trustworthiness Status indicating that the article was changed after its original endorsement. In one embodiment of the present invention, the endorser is notified of these decisions.
[0103] The system processes the endorsement information as shown in
[0104] Trusted article trees with their multi-faceted objects make possible numerous advantages compared to other knowledge collections. First, all objects have a justified trustworthiness status. The community of participants specifies the process for establishing and maintaining trustworthiness status assessments, and this increases community faith that the assessments are appropriate. Moreover, the trees provide a natural path for supporting discovery and learning. With a simple software program, a user can start a search with a question in mind, then search for objects whose attribute declares they answer that question best. After displaying the article to the user, the program can suggest the user identify which of the most likely subsequent questions to follow next and automatically jump to the object that best answers the chosen question. This is like “flying a route” in map software, but here the learner is being guided from object to object based on a pedagogical rule: someone asking a question should be given the best answer and then invited to follow automatically to the object that best answers the questions most often raised by that answer. Trusted article trees can be searched manually, automatically, or in a mixed-initiative way according to pedagogical rules. This makes them ideally suited for representing knowledge and helping others browse it and grasp it.
[0105] As article will generally be accessed by computers over the Internet, in one embodiment of the present invention, each article is in the form of an object, with various facets or attributes, each effectively answering one type of question or, equivalently, computing one type of function. The following is Mathematica code illustrating the attributes of every object [o]:
TABLE-US-00003 endorser[o], endorsementDate[o], articleURI[o], article[o]{* file contents of articleURI*}, originaHash[o], currentHash[o], questionsAnswered[o], questionsRaised[o], citations[o], trustworthiness[o], justification[o]
[0106] These attributes are available to all software in the same environment, or can be accessed through remote procedure calls with corresponding APIs. A function extracts the article from the object, saves any valid current hash for that article as the previous has value for that article and then computes a current hash value for the article. Then if the current and previous hash values are different, the function changes the trustworthiness status to UNKNOWN and calls a function no notify the endorser appropriately. The best way to implement the notify function depends entirely on the user interface to the endorser and is straightforward for anyone with ordinary programming skills.
[0107] In one embodiment of the present invention, a hash of the article is submitted to a blockchain along with the article status and endorser identity. In one embodiment of the present invention, a unique hash is made of the article and a unique hash is made of the article record. Those hashes are then stored on a blockchain. If the authenticity of the article is ever questioned, the off-chain file can be re-hashed at a later time and that hash compared to the on-chain value.
[0108] With reference now to
[0109] Although computer system 1100 of
[0110] In one embodiment, computer system 1100 of
[0111] Computer system 1100 of
[0112] Computer system 1100 also includes computer usable non-volatile memory 1108, e.g. read only memory (ROM), coupled to bus 1110 for storing static information and instructions for processors 1191, 1192, 1193. Also present in computer system 1100 is a data storage unit 1107 (e.g., a magnetic or optical disk and disk drive) coupled to bus 1110 for storing information and instructions. Computer system 1100 also includes an optional alpha-numeric input device 1112 including alpha-numeric and function keys coupled to bus 1110 for communicating information and command selections to processor 1191, 1192, 1193. Computer system 1100 also includes an optional cursor control device 1113 coupled to bus 1110 for communicating user input information and command selections to processor 1191 or processors 1191, 1192, 1193. In one embodiment, an optional display device 1111 is coupled to bus 1110 for displaying information.
[0113] Referring still to
[0114] Computer system 1100 also includes an I/O device 1114 for coupling computer system 1100 with external entities. In one embodiment, I/O device 1114 is a modem for enabling wired or wireless communications between computer system 1100 and an external network such as, but not limited to, the Internet. Referring still to
[0115] The present technology may be described in the general context of computer-executable instructions stored on computer readable medium that may be executed by a computer. However, one embodiment of the present technology may also utilize a distributed computing environment where tasks are performed remotely by devices linked through a communications network.
[0116] The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. The computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing computer-readable media now known or later developed.
[0117] The methods and processes described in the detailed description section can be embodied as code and/or data, which can be stored in a computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the computer readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the computer-readable storage medium. Furthermore, methods and processes described herein can be included in hardware modules or apparatus. These modules or apparatus may include, but are not limited to, an application-specific integrated circuit (ASIC) chip, a field programmable gate array (FPGA), a dedicated or shared processor that executes a particular software module or a piece of code at a particular time, and/or other programmable-logic devices now known or later developed. When the hardware modules or apparatus are activated, they perform the methods and processes included within them.
[0118] The present invention is embodied in a software application running on a computer. It could be distributed over a network and downloaded on the user's machine, downloaded as a package to be programmatically interfaced by other applications, accessed through a URL as either an API or embedded application, compiled into other applications, downloaded as a stand-alone application, or executed by a computing device that can run the code.
[0119] The computer system may be in communication with one or more databases. The one or more databases may utilize any suitable database techniques. For instance, structured query language (SQL) or “NoSQL” database may be utilized for storing the map data, auditory data, user information and the like. Some of the databases may be implemented using various standard datastructures, such as an array, hash, (linked) list, structure, structured text file (e.g., XML), table, JSON, NOSQL and/or the like. Such data-structures may be stored in memory and/or in (structured) files. In another alternative, an object-oriented database may be used. Object databases can include a number of object collections that are grouped and/or linked together by common attributes; they may be related to other object collections by some common attributes. Object-oriented databases perform similarly to relational databases with the exception that objects are not just pieces of data but may have other types of functionality encapsulated within a given object. If the database of the present invention is implemented as a data-structure, the use of the database of the present invention may be integrated into another component such as the component of the present invention. Also, the database may be implemented as a mix of data structures, objects, and relational structures. Databases may be consolidated and/or distributed in variations through standard data processing techniques. Portions of databases, e.g., tables, may be exported and/or imported and thus decentralized and/or integrated.
[0120] The present technology may be described in the general context of computer-executable instructions stored on computer readable medium that may be executed by a computer. However, one embodiment of the present technology may also utilize a distributed computing environment where tasks are performed remotely by devices linked through a communications network.
[0121] It should be further understood that the examples and embodiments pertaining to the systems and methods disclosed herein are not meant to limit the possible implementations of the present technology. Further, although the subject matter has been described in a language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
[0122] Since other modifications and changes varied to fit particular operating requirements and environments will be apparent to those skilled in the art, the invention is not considered limited to the example chosen for purposes of disclosure, and covers all changes and modifications which do not constitute departures from the true spirit and scope of this invention.